SharePoint online - intercept document request when document clicked - sharepoint

I am working on this project where it includes hosted app with SharePoint online and a dozen of other things.
When they built the project, they implemented a functionality that does this :
When a user goes to a document library, and clicks on the name of a document of specific type, the user gets redirected to the hosted app where there is a logic to do something on the document.
What I am not able to figure out is :
How are they implementing the part of "when user clicks on document, user will be redirected to app" ?
I checked httpmodules and couldn't find anything, I also checked remote event receivers and couldn't find anything..maybe I am not searching properly in the large C# solutions they have, or maybe there is another way to implement this..I need help to figure that out.

You would typically add JavaScript to the library page that finds the <a> tags for the documents with your file extensions, and then replaces the "onclick" with your custom code.
You could also intercept the JavaScript function used by SharePoint and add your additional logic. (do a web search for "SharePoint coreinvoke")
Disclaimer: most of what you will find is for the "Classic experience". The SharePoint Online "modern experience" changes all of the rules!

Related

Why won't the Note Board SharePoint 2013 web part work?

I am trying to create a dashboard via SharePoint and I would like to create a section beneath a displayed document where users can type and submit a description of what is going on in the document above. I don't want the users to be able to edit the site page in order to add text to the page so I believe the best solution would be the creation of a web part where a user can create and submit their desired description. The only web parts that I've come across to do something like this are the Note Board web part and the Microfeed web part. The Microfeed part seems too much like a social media page. My problem is I would like to try the Note Board web part but whenever I insert it on the page it never displays an area to type in, just the title "Note Board".
So it seems that this problem came up because of the way my account is related to this particular SharePoint site that I am editing. My account doesn't have a profile attached to it essentially and the way that these notes are shared and stored directly relates to having one of these profiles. The Note Board Web Part turned out to be working perfectly fine my account is just not capable of posting within it. (I figured I'd answer incase anyone else comes up with this problem.)

Want to put a button on a sharepoint page to sign document. I don't want users to go to the library

Just downloaded the docusign app for Sharepoint online. It's on an HR publishing site and the page is for all new hire documentation. I want to put a button on the page to associate with the specific document that needs to be signed. I don't want users to have to go into the library and use the docusign tab. Is there a way to do this?
I can't quite see how this will work.
The ribbon command will have some code behind it. Presumably it uses the Docusign API so if you can find the code, you will be able to see what to do. Or review the API docs.
On your page, you would need to trigger the same code on each icon but I assume that the icon already triggers an action (e.g. downloading the file or something), so you would likely need a second icon or link to trigger the docusign action instead.
Not trivial. And I couldn't find another similar issue on Google.

SharePoint 2010, Upload Document Redirect to Page

I have a document library in SharePoint 2010 that several different teams are using for the same purpose. Each team has their own page that has a filtered view of the document library on it. The document library also has custom columns.
The issue I am running into is when a team member uploads a document from their page. They click "Add document" from their page, and then they browse to the document they want to upload. This part works perfectly - and the URL specifies the source as the team's page. However, after a user selects the document and clicks "OK", it takes them to the EditForm.aspx page that allows the user to fill in the meta data for the document. This is fine, but now the source URL specifies a view from inside of the document library, and no longer points to the team's page (where they came from).
Does anyone know how I can change this source URL to point to the team's page instead of the document library? Or, does anyone know a workaround for this issue so that a user can upload a document from a page (with document library web part on it) so that it returns to the page?
Thanks!!
SharePoint 2010 should work the way you want out-of-the-box. I tried to reproduce your situation, but was unable to. What I did was set up a library with one custom column and two custom views. I then created two pages, one with a list form web part using one view and one with a list form web part with the other view.
When I click on the Add Document from either page, a modal dialog window opens to the Upload page. I first select the file (Upload.aspx) and then am redirected to the metadata properties (EditForm.aspx). After filling out the metadata, the dialog window closes, and the page behind it (the page we were originally on) refreshes to show the new document in the web part. So the user experience is that they stay on the page they want while adding the document as desired.
If you edit your question or provide comments with more details on your situation we can try to reproduce it, but the functionality you describe is exactly how it is supposed to work out-of-the-box.
Peter's correct - SharePoint's being SharePoint.
If I am reading this right, it may be that you should simply check out in-line editing. Using a view, you and edit the properties dynamically without leaving the page (each team getting their own view).
Alternately, I see many who simply want to redirect users back to the page they came from either edit or view of an item regardless of where that was (a link, etc.). Simplest way to do that is a little programming by adding a button to the forms replacing the OK/Cancel with your own code. Simply edit the forms using InfoPath to add the new buttons - you have the user context if you need to custom redirect to a team home page or some such.

SharePoint 2010 site template with a form library - the form template contains site URL

I am working on a site template that will be used to create hundreds of sites for different org units. The site should contain a form library, with an InfoPath form template.
My question is - is it possible to create a template and let power users create sites, without any administrator or developer involvement? If not - what's the easiest alternative?
The problem is that the form template contains the site URL and I don't know if this can be avoided. As a consequence, when a site is created and a form submitted - it ends up in the library of the original site.
I have created a handful of sites for the pilot project and what I've been doing so far is to uncab the XSN file, edit the URL manually, repackage into XSN and publish to the new library. This works, but involves a manual step in the site creation process that I wish to avoid. Here are the lines I'm editing:
<xsf:submit caption="Submit" disableMenuItem="no" onAfterSubmit="close" showStatusDialog="no">
<xsf:davAdapter name="SharePoint Library Submit" submitAllowed="yes" overwriteAllowed="no">
<xsf:folderURL value="http://my_farm_url/subsite1/form_lib"
Also here:
<xsf2:solutionPropertiesExtension branch="wss">
<xsf2:wss path="http://my_farm_url/subsite1/form_lib"
I'm changing subsite1 to subsite2.
I tried to set a relative URL, first to the submit element, then to both, to no avail. The form was being rendered (in browser), the submit worked (no errors) but then the submitted form was not in the library. Looking further into this, the forms ended up being submitted to a form library on the root site - http://my_farm_url/form_lib! It makes sense when you think about it, that's where a relative url of form_lib takes you to, from the site, from the root site perspective.
For the moment the only solution I envision is to create a tool that will help users create sites based on the template, fixing the XSN behind the curtains. I don't know how to publish a form template programmatically but it should be possible. Apart from this unknown, it's also not very automated and I'll be very happy if a proper solution is possible that will work with SharePoint/InfoPath tools only.
You need to schedule a EventReceiver there is no way to do it for configuration.
In EventReceiver you have to read the file "Manifest.xsf", update the XML node is defined where the url and save the file "Manifest.xsf".
To read the XML node is necessary to use System.Xml.dll

Communicate with Document Library Browser Web Part

Background
My task is to, in SharePoint, show an image of a process map which should be clickable. Think of an imagemap in html. Some areas take you to other process map images and other brings up a pop-up window.
"Connected" to each process map is a set of documents. These documents are stored in a document library. There are one process map for each folder in the document library. The documents should be shown next to the image. The person clicking either the image or a folder to navigate in the hierarchy should also be able to upload, download and delete the documents.
Question
What would be the easiest solution for this?
My thoughts
... so far is to create a custom web part which I add above the document library browser (the default one in MOSS 2007). This web part reads some xml file pointing out the image to show and the areas which is to be clickable. It listens for some kind of events from the document library, like clicks on folders in the browser or it reads the current URL to know where in the folder hierarchy we are currently, and from that show the correct process map image. When the image is clicked, the web part updates the image and tells the document library to update accordingly.
Is this feasible? Am I on the wrong track? How do I communicate with a document library?
Thanks, Martin
My thoughts are that you create a web part that displays your image map and outputs(provider) the appropriate criteria to a another web part that consumes it and displays the files in a document library.
You can achieve this by creating your own custom webpart that displays a document library based on a CAML query. Each Images sends a different CAML query to the document library webpart.
I hope this helps. Please provide information on how you solved this problem if you have already done so.
Thanks
Long since I've been here... Actually solved this one.
We created two web parts, one for process navigation and one for filtering documents in the document library.
The web part for process navigation is actually just a web part that looks for a specific query parameter in the URL and adds ".html" to it. Then looks for that document in a document library. If found then this document is shown inside an iframe. Simple!
The html documents are produced by Visio and exported to html, then uploaded to SharePoint. The links in the Visio document drives the application with queries.
The web part that shows the corresponding documents also looks for a specific query in the URL then sends filterparameters to the document library through the IfilterProvider interface. I snatched this example IFilterProvider at MSDN and made it look in the URL for parameters and then made the controls invisible to the user.
Really simple solution, though the customer needs to put in a lot of work to incorporate their company processes into it. And it is somewhat error prone and probably a sucker to make changes to data-wise.

Resources