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.
Related
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!
I am beginning sharepoint development and have some quick questions concerning basic terms.
How do i find out whether a particular site is a site collection, or a site JUST BY THE URL? Is their a powershell command to do this?
I was creating some sites in sharepoint. Some sites were appended with /sites/sitename whereas others were just under the base url of sharepoint. What is the difference between the 2? AND, how do i recreate the ones under the sites node? For some reason, I cant find the option to create under the sites node again. Please explain this concept as all msdn tutorial are very confusion for beginners like me. Those are good once you get the hang of basics.
Please provide an analogy how to understand web app, site collection, site, web site, etc.
Is there a way to use NEWFORM.aspx for a document library instead of UPLOAD.aspx?
The Site collection is at the root level of your Web application.
So http://abc.com/ => Site collection
Using Powershell, open the Sharepoint Powershell prompt and run Get-SPSite to get all Site-Collections
the /sites/ is called as a managed path
It can be defined in the Central Administration for every web application.
The option to select the /sites will be available only when you create the second site collection under the Web Application (The first one take the / by default.)
Have a look at Technet Article
document library is for uploading file, not for storing user submitted data, for that you need to create a list
1) Document Set is used in cases where multiple documents have the same properties, its like putting all these documents in a folder and then providing attributes to that folder which are in turn applied for each document in that folder.
In your case, if all the files have the same values for the 8 fields then the document set is the correct way to go.
2)If there is additional metadata associated with the files then these can be added either to the content type (eg. document or document set content type) or to the columns in the library itself, you dont need to create a separate list for holding that data. Adding data to the content type ensures consistency across all the document libraries within that site collection, adding columns to the library affects only that library.
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.
I have a custom document library which is based on default document library. I'd like to disable Edit physical document for some of the documents depending on their property.
If you don't mind a client side solution then you can use either a single Content Editor Web Part to inject some JavaScript on a single page or execute the script on every page in the site collection using our free SharePoint Infuser.
Plenty of examples, although not your particular problem, can be found here.
Is it possible to create a SharePoint (wss3 or MOSS 2007) webpart, to allow files to be dragged and dropped onto it, which would then upload the files into a predefined document library ?
I imagine that this would require some form of client side scripting (Ajax ?), but my knowledge in ajax is a bit sketchy.
From my exploration so far, I'm thinking:
User drags file onto 'drop zone' Webpart.
This action triggers some code
This code Loads the file into a SharePoint library (like this : Uploading a File to SharePoint)
Any pointers would be gratefully recieved
Many thanks.
Nick
Well,
What I'd do is, like you said, a web part with javascript that allow the user to drag and drop some files into a zone inside the webpart. Once the user has finished I'll upload those files after click on a Button of the webpart. I think is better to work with SharePoint in an unique transaction and not upload and delete files using AJAX. So, the drag and drop functionality can be done using some kind of javascript like Scriptaculous and the other one like a classic postback.
You might also want to look at another way to perform this. If you do it in a webpart, you will need to add that webpart in every sites where you want this fonctionnality to work. You might want to try Sharegate (www.share-gate.com). It's a end user tool that allows you to drag and drop file from your computer (or any SharePoint list / library) to any SharePoint library. By dropping the document inside the library, you will be ask to select a property template where you can define all the properties attach to your document. Not only you will drag and drop documents, but you will structure the information at the same time. Hope this was helpful!
Perhaps my reply is little bit irrelevant to your post!
I think upload files to SharePoint is not a painstaking job, the build-in feature is enough for us to upload files.
The trouble, I think, lies in the check in process, may be that is what you should do!
Altought maybe not that important now, but there is a SharePoint addon on CodePlex now
that allows files to be uploaded by Drag & Drop into SharePoint document libraries.
Available here: http://dndupload.codeplex.com/
Works in Firefox & Chrome, uses FileApi from HTML5, supports both SharePoint 2007 & 2010.