User Guide – netDocShare app for Microsoft 365 SharePoint Online / SharePoint Server 2019 / SharePoint Server 2016- Webparts

Step-By-step instructions for how to update an existing Web Part:

  1. From the Home page in your SharePoint account, navigate to Site Contents on the left-hand side menu.
  2. Click Site Pages .
  3. Select the page in which you wish to edit the netDocShare Document Viewer Web Part. In the example below, we are selecting a “Test” page.
  4. Click Page in the upper left-hand corner.
  5. Click Edit Page on the far left.
  6. Click the Web Part menu (small arrow in the upper right-hand corner) and then select Edit Web Part.
  7. Select Extended Settings at the bottom, and then select the ellipsis button to the right of the Config Settings field. Note: this feature only works in Internet Explorer browser. If you are using a different browser, you can simply click inside the
    Config Settings field and paste the App-Configuration JSON Object directly.

  8. Edit the App-Configuration Document Viewer JSON Object within the Text Editor – Webpage Dialog window, then click OK.
  9. Lastly click Apply.

Update

Starting from version 2.4.2, users no longer have to visit a specific page set up for the Config Builder in order to use it. If deciding to modify an existing page, then click on “edit” button, and click on the NetDocViewer webpart. After right panel pops up, Users can also click the “Open Config Builder” button to use our config Builder directly to edit the view. This is the most convenient way to edit or create a new view.

Once you are satisfied with the view and configuration, click ‘Publish’ to publish the page.

Additional Feature: Compact Mode

You can also enable compact mode from the Config Builder. This feature will enable the simplest form of netDocShare by only showing the list of files. This can be very useful when working with a page that has several different webparts on it.

Users can choose to show / hide the breadcrumb trail and can also modify the length and height of this view on Config Builder to precisely control the real estate of the page.

Additional Feature (Optional) – If you wish to automatically filter your documents to be shown on NetDocuments, please use Search Criteria feature.

Simply toggle the search criteria

As we see on the above, document type of AGREE and extension of pdf is being selected. This will filter through files and only display documents with matching criteria.

Classic vs Modern

Add a page by navigating to Pages, which should be a tab link in the homepage of the site collection.

Note: Make sure that the page created for the webpart is specifically a “webpart page” instead of “wiki page,” which is the default option. Clicking “new” to create a new page will default to wiki page. Working with webparts on a wiki page is possible, however, may cause unexpected issues.

From here you can simply create a new page and use the edit buttons that you see on the page instead of the ribbon. In edit mode, press the + button to add a new WebPart.

The WebPart should be available in this list if you have deployed correctly:

Once you have added the WebPart, click on the edit (pencil button) on the top left to bring up the properties pane and enter your configuration. The WebPart should respond and begin its document retrieval process immediately upon entering the config.

Instructions for how to update an existing Web Part:

Much like the update process for Document Viewer, Recent Doc, and Saved Search Web Parts, you will edit your netDocShare TreeView Webpart by navigating to the page, clicking on the Web Part Menu (small arrow in upper right-hand corner of Web Part), clicking Edit Web Part, click Extended Settings, and depending on whether you are using Internet Explorer browser, click the Ellipsis to the right of the Config Settings field, or if you are using any other browser, click within the Config Settings From there, you can directly edit the App-Configuration TreeView JSON Object. Don’t forget to click Apply when you’re done!

Classic vs Modern

Add a page by navigating to Pages, which should be a tab link in the homepage of the site collection.

Note: Make sure that the page created for the webpart is specifically a “webpart page” instead of “wiki page,” which is the default option. Clicking “new” to create a new page will default to wiki page.

From here you can simply create a new page and use the edit buttons that you see on the page instead of the ribbon. In edit mode, press the + button to add a new WebPart.

The WebPart should be available in this list if you have deployed correctly:

Once you have added the WebPart, click on the edit (pencil button) on the top left to bring up the properties pane and enter your configuration. The WebPart should respond and begin its document retrieval process immediately upon entering the config.

CollabSpaces: Sharing Content with External Users

Our webparts support the usage of CollabSpaces from NetDocuments.com. CollabSpaces are similar to workspaces and SharedSpaces; The major difference is that CollabSpaces can allow users external to NetDocuments to have access to the documents inside the CollabSpace.

CollabSpaces can be displayed in Normal or TreeView using the “primarySource” value in the configs and inputting the ID and using “collabspace” as type. It should look something like this upon successful retrieval:

To give access to external users, a few SharePoint-based permission tasks needs to be done as well as permission granting through NetDocuments.com.

  1. Firstly, the external user must be added to the group that the CollabSpace is shared with on netdocuments.com. This will send an email to the user and allow them access the NetDocuments website through a special external user login.
  2. In order to view the content on SharePoint, the user must first be added to the site collection where the webpart is located.
  3. Finally, the external user must ALSO be added to the App Catalog site collection where the App is deployed.

Upon giving the correct permissions, external users will have access to a specific webpart where they can see and interact with CollabSpace contents. The external users should be locked out of every other view except for the CollabSpace that we have allowed them to view. For more information about how to grant access to external users, please refer to the official NetDocuments documentation.

CollabSearch

Besides using the ID, collabspaces can also be retrieved by using client / matter ID in the URL. This can be achieved by setting up a normalView webpart as if you are aiming to create a cabinet view and setting the property “collabsearch” to true. This can be done in both normalView and Tree View. Please see the Config properties appendix for more info.

NetDocShare uses a JSON-formatted config object to customize views and webparts to suit a user’s needs. Below you will find a list of properties and their possible values. All properties list should be editable in a more user-friendly fashion by using the SharePoint Config Builder webpart, however, more technical users can also edit these properties manually in the JSON. In order to reduce clutter for non-technical users, many of these fields may be hidden in the config Builder and may only be editable in the JSON itself.

Base properties are fundamental requirements of each webpart. They often set baseline properties that are required for the webpart to work in the first place.

viewType is the property that tells SharePoint which netDocShare WebPart to load. The available values are: ‘normalView’, ‘Tree’, ‘recent’, ‘Favorite’ ‘createConfig’ and ‘Auth’.

netDocsClientId, netDocsClientSecret, and netDocsBaseUrl are needed to access the NetDocuments Rest Api. This can only be obtained by making a new app on https://netdocuments.force.com/. More info in the section entitled “Authenticating with NetDocuments”.

The NetDocsBaseUrl is the root URL used to retrieve API content from the API servers. For example. The US url is: https://api.vault.netvoyage.com/v2 and https://api.eu.netdocuments.com/v2 for our EU/UK clients. Please follow the EU format for other regions.

CDNBaseUrl should be the root url of your SharePoint Site Collection. This URL must end with a forward slash: ‘/’

AuthSuffix should be the relative path of the page where the netDocShare Auth WebPart exists. In the example above, the full webpage URL for the Auth WebPart would be:

https://{yourSharepointTenant}/SitePages/auth.aspx

NEW: Starting from version 2.4.1, users may input a Universal Authentication URL instead of one which leads to the auth page. Please see our Service-Based Authentication section for more info.

assetPath is the full path where static assets are stored and must be obtained during deploy. This config is mandatory as it is also used to determine licensing information.

If you are in SharePoint online (currently included in the config above) your asset path may look like the following:

https://{yourSharepointTenant}/sites/AppCatalog/ClientSideAssets/23dea53d-fbee-49c3-8b16-c6b586b0422f/

If you are on Share Point on Prem Your asset Path might look like the following:

https://{yourSharepointTenant}/SiteAssets/netDocShare/CDN/assets/images/folderIcons/

AuthPage is an optional, but very important property which will determine what type of Authorization process is preferred. The two available types are: iFrame and single-page redirect.

iFrame uses a popup window to display the login or Allow/Deny screen presented by NetDocuments.

The redirect option will change the current page url and navigate to the Auth page.

We recommend using iFrame as it tends to have a better user experience, however, we understand that many of our clients may work in environments which block iFrames by default.

In that case, please be sure to include this “authPage” config in ALL webparts intending to use this system and set to ‘redirect’. If this config is NOT included, the webpart will default to ‘iFrame’ behavior.

Once again, if you are intending to use the ‘redirect’ option for Auth, please include “authPage”: “redirect” in ALL webparts, not just the Auth webpart. If you are intending to use iFrame, you may omit this property in all webparts.

Additionally, if you wish to auth page with redirect enabled, once the page has been created you will not be able to edit the page, due to the default behavior of the page, that redirects you to the netdocuments auth pages.

usingSSO is a property which determines whether your webpart / tab will be using Single-Sign-On authentication. This feature must be enabled client side by configuring it in Microsoft Active Directory Federation Services. Please do NOT turn on this property unless you have tested that Single-Sign-On is working outside the context of netDocShare. Please test this by accessing NetDocuments.com and checking if it will automatically sign in users instead of asking for username / password. Once this is confirmed, you can flip this property to true.

repoID: Once the above “usingSSO” option is turned on, there will be a second hidden filed revealed called “repoID”. Please fill this field with the main NetDocuments repository which your documents are a part of. You can find this property on NetDocuments.com or by contacting your NetDocuments Administrator. Once this property has been input, now, all webparts and tabs configured with SSO, should automatically sign in users instead of displaying the login screen.

Normal View can be configured to show a specific source container. TreeView can be configured to show several source containers. The ‘primarySource’ and ‘sources’ properties are used to control this. Following version 2.4.2, we have added a feature to automatically query all source and container values directly from the netDocuments API so that users no longer have to do the laborious task of finding and copying IDs. Please see the section entitled “Config Builder Update 2.4.2” to learn how to use this.

primarySource is the container object that you would like DocumentViewer to display. primarySource is always required, even if netcode is intended to override the primarySource. primarySource can be a cabinet, workspace, folder, saved search, or filter search. In the case of a workspace, primarySource can look like

``primarySource``: {``id``: ``4112-9032-1392``, ``type``: ``workspace``}

A saved search will look like ``primarySource``: {``id``: ``4132-9066-1392``, ``type``: ``savedsearch``}

A filter search will look like ``primarySource``: {``id``: ``4321-3901-9090``, ``type``: ``filtersearch``}.

A cabinet will display folders and workspaces contained within the specified cabinet. Workspaces that appear in this view may not exactly reflect what is shown in NetDocuments. This is because we are displaying workspaces that are associated with the cabinet as well as inside the cabinet.

Note: primarySource is always required, but the values for the ‘id’ and ‘type’ keys can be left as empty strings i.e. ‘’” if netcode is intended to override the primarySource.

Starting from v2.4.2 users are no longer required to paste in IDs retrieved from NetDocuments. Our config Builder will automatically be able to query and display source containers which the user can simply select from a dropdown menu

Note: While we do support the usage of Environment IDs in our configuration, we prefer using NetDocuments 12 digit IDs for clarity’s sake.

sources are always required in TreeView, even if netcode(s) are intended to be included. sources should be an array of key-value pairs, where “id” is the id of the folder, and “type” should tell whether the object is a folder, cabinet, or workspace. Note: if netcode(s) are intended to be included in TreeView, sources are still required, but can be an empty array i.e. `{``}`

Users may forgo the traditional usage of 12-digit IDs to identify source locations if they have unique identifiers already being used in SharePoint. In this case, we have set up a system in which the IDs can be stored in a separate SharePoint List which will translate the unique codes into the IDs that the webpart needs.

WorkspaceContentDisplay is an option that is exclusive to the workspace view. It will let users toggle between “All” and “Toggle” views. The “All” option will show all containers and documents on the same table. The “Toggle” Option lets users choose between “Summary View” and “List view” which are identical to the same workspace view options in the NetDocuments Web Platform. For more info, please see the normal view workspace section.

netcode is the lookup id associated with a certain grouping of documents. Set netcode to ‘true’ with MetaWebPartTitle to retrieve a document location. Note: primarySource is still required, but the values for the ‘id’ and ‘type’ keys can be left as empty strings i.e. ‘’”

MetaWebPartListLocation is required for using netcode. It is the relative path of the list where you would like to lookup a location that is based on netcode and metaWebPartTitle.

MetaWebPartTitle (MetaWebPartTitles for Treeview) is required for using netcode. It is the name of the title which you would like to associate with a netcode to retrieve a document location.

collabSearch is unrelated to netcode but it offers an additional way to retrieve a collabspace source. It is an optional property meant to be used for retrieving collabspaces in normal view or treeview using client / matter IDs in the URL. Turn this on if you would like to retrieve collabspaces within a cabinet that are tagged with a certain client and/or matter ID. To use it, simply set up the configuration similar to setting up a cabinet source but include this property set to true.

MSClientId is a hidden property which is used by our “Co-authoring” feature to access an azure service which is used to power our co-Authoring feature. If Co-Authoring is enabled, this value will be filled in automatically.

columnProperties are a collection of NetDocuments properties by which you would like to see and sort your documents. The Document Viewer WebPart displays “name” as the first default document property to display, and in this example, ``Ext``, ``id``, ``createdBy``, ``modified`` are the next four customizable document properties to display. ‘Ext’ or extension translates to “Document type,” “DocId” to “Document Id,” “createdBy” to “KLST author,” and “modified” to “Date modified” as seen below:

Note: Column Properties are derived from the document’s Attributes that come with each NetDocuments entity. A complete list of NetDocuments properties that could be inserted into columnProperties include:

  • DocId
  • DocNum
  • EnvId
  • Created
  • CreatedBy
  • CreatedByGuid
  • Ext
  • Modified
  • ModifiedBy
  • ModifiedByGuid
  • Name

If you omit the values for ``columnProperties``, our webpart will use the default properties: id, extension, createdBy and modified. This can be changed by editing the JSON manually or picking the values from the corresponding dropdown menus in the config Builder.

NetDocShare also supports the insertion of custom column properties. In order to use custom properties, please visit your NetDocuments cabinet admin page, and make sure that the properties are enabled in the cabinet. When inserting the property into the NetDocShare config, the spelling and capitalization must match exactly to the attribute that you have defined in the profile Attributes section of NetDocuments Admin.

Starting from v2.4.2, users can also automatically query for the custom columns when using the Config Builder. Simply select a valid primary source and a button that displays “Get All Columns” should appear beside the “Column Properties” field. Clicking this button will automatically retrieve column info from your source and fill the column properties list with the newly available columns.

Note: If you are creating a brand-new column, it may take some time for the data to populate properly. Please wait a few minutes after creating the Profile Attribute for the data to be correctly associated in the NetDocuments API.

In the figure below, you can see the custom column “Testing” has been implemented.

contextMenu determines what options will appear in the dropdown context menu that is opened from clicking the “…” button beside each document. The contextMenu can be disabled by completely removing the key and value from the config object. Users can add other options indicated in the list below:

“checkin”,”checkout”,”rename”,”view”,”viewNetDoc”,”delete”,”lockVersion”,”secureLink”,”follow”, “checkinNew”,”changeVersion”

If you omit the values for ``contextMenu``, our webpart will select the default options of “open” and “preview”. This can be changed by editing the JSON manually or picking the values from the corresponding dropdown menus in the config Builder. Please see an example of the context menu with all options turned on below:

ndThread is a property used to hide or show a second tab which will connect to the ndThread instance that is associated with the current container on the NetDocuments ndThread site. Setting it to true will show the tab, setting it to false will hide it.

ndTasks is a property used to hide or show a third tab which will connect to the ndTasks instance that is associated with the current container on the NetDocuments ndTasks site. Setting it to true will show the tab, setting it to false will hide it. Note: NdTasks integration is only available with our Enterprise license package.

menuSize property controls the size of the context menu mentioned in the above section. There are 3 sizes available: Small, Medium and Large, denoted by the letters ‘s’, ‘m’ and ‘l’. The default is small and omitting this property will set the webpart to use the default option.

showLogout, showLogo and showSearchBox are a properties which control whether or not the corresponding components appear in the view.

Note: On the Microsoft Teams implementation of our app, logout is required on every page, therefore this property is set to true and will not be editable by users

DefaultSortProperty is the default NetDocuments property you would like to sort your documents, folders, saved searches, and filter searches by. Leaving this field empty means that the WebPart will default sort by the ‘name’ property, unless you are looking at a workspace, in which case the default sort property will be ‘Ext’ or extension.

Note: NetDocuments Document Properties are case-sensitive, follow the official NetDocuments spelling and character case as shown near the top of this user-guide.

filters are an array of key-value pairs, denoting specific NetDocuments property filters you wish to place on the Web Part. The example above includes two filters for the document “property”: “Ext,” and the specific extension “value(s)”: “doc” and “pdf”. The filters array can take any specific filter-key-value-pair in relation to the list of NetDocuments properties noted previously, and desired values for those properties.

removeSort is a feature where user insert single or multiple column properties to turn off input column’s sorting and filtering capabilities by disabling and removing. The empty configs “removeSort”:`{``}` is default.

Example: “removeSort”: [‘name’, ‘versions’] will disable both the name and versions column sorting and filtering. User can disable sorting and filtering from the following list of column properties dependent on the property’s user had added to columnProperties:

“extension”, // Extension

“id”,// Document Id

“createdBy”,// Created by

“modified”,// Date modified

“aclStatus”,// Acl status

“created”,// Date created

“createdByGuid”,// created by GUID

“envId”,// Environment Id

“modifiedBy”,// Modified by

“modifiedByGuid”,// modifiedByGuid

“officialVer”,// Official version

“size”,// Size

“syncMod”,// syncMod

“url”,// URL

“versions”,// Versions

“client”,// Client Id

“matter”,// Matter Id

“filterColumn” // Document Type

If you omit the values for ``columnProperties``, our webpart will use the default properties: id, extension, createdBy and modified. This can be changed by editing the JSON manually or picking the values from the corresponding dropdown menus in the config Builder.

showSearchBox is to show or hide the search box to execute filtering on the container contents or execute a full API search to the parent container.

Example: “showSearchBox” : true, //Accepts Boolean

showLogo is to show or hide the netDocShare logo image at the top left. Note: Image can be customized by replacing the file in the static images' library.

Example: “showLogo” : true //Accepts Boolean

For Normalview: showBreadCrumb is a property which hides or shows the bread crumb trail. A Breadcrumb trail allows you to navigate through multiple levels of nested folders.

Click on any part of the breadcrumb trail to go back to that location.

For Treeview: TableDisplayDocsOnly is a property which determines what types of objects will appear in the right-side display table as opposed to the left-side navigation tree in Treeview. Setting this value to true will display ONLY documents in the display table. Setting this value to false will display BOTH documents AND subfolders in the display table. Regardless of this setting, subfolders will display on the left-side navigation tree.

  • ShowAll : Same type of view as other containers like folders. This view will show both containers and documents in the source
  • ShowSummaryOrListView: This new view is aiming to mimic the workspace view that users can see on the NetDocuments website.
    • Summary view will show only containers
    • Users can expand/collapse the contents of any or all containers
    • Clicking the container will navigate into it.
    • List view will show only documents
    • Documents that exist in all containers and sub-containers within the source workspace can appear on the list

For Normal View:, Workspace: workSpaceContentDisplay is a property which controls how the user sees the workspace view. It can have 2 possible values with one of them giving the user the ability to toggle 2 different views:

searchCriteria is search file files by criteria. The search criteria can filter files using extension, version, client, matter and doc type.

Example:

“searchCriteria” : {

“docType”: [“AGREE”, “CLOSING BINDER”], //Accepts string

“version”: [1], //Accepts int

“extension”: [“pdf”, “msg”], //Accepts string

“client”:[“1004”], //Accepts string

“matter”:[] //Accepts string

}

autoRefreshTimer will refresh the WebPart every 15+ seconds

Example: “autoRefreshTimer”: 15 //Accepts int that is bigger than 1

authMsg is an optional value that is used to display an optional message that will be displayed when users authenticate with NetDocuments. Administrators tend to use this feature to reassure users that the login popup is part of the document retrieval process. Please see the image below for an example:

If you are editing JSON manually, you may insert html and css elements as a string in order to display a customized message. For users editing using the JSON config Builder, we have provided a rich-text editor as seen below:

Note: NetDocuments Configuration Properties are case-sensitive, follow the official spelling and character case as shown above.

This section contains properties that are used specifically in the new integrated Search view. This view comes with its own configuration builder view. Here is a breakdown of all the different properties you may use in this webpart view.

viewType, assetPath, netDocsClientId, netDocsClientSecret, netDocsBaseUrl, CDNBaseUrl, AuthSuffix, authMsg are base values that should be the same as other webparts. Please consult the base properties section for a more detailed explanation of each

altAssetPath is an optional value used to specify a second asset path to use if the original path does not find assets. This is only used in limited cases in which the same webpart page can be accessed (internally and externally) through different URLs.

mode is a required value to choose between two current view modes. The options are ‘accordian’ and ‘tabs’. Examples of each can be seen in screenshots inside the ViewType: Integrated Search section.

filtersOn, resultsOn and SearchBoxOn are three values that control which components appear on the page. For the full results page, all should be turned to true. If you are aiming to create a search box only implementation, turn filtersOn and resultsOn to false. For a filters only implementation, turn SearchBoxOn and resultsOn to false. If All 3 values are turned false, the user will see an error suggesting that at least one of these values should be on.

resultPageUrl is an optional value used only for the compact search box only or filters only implementation. This will automatically redirect the page to the results url and send the querystring to execute a search immediately on loading the results page.

SPResultConfigs is a set of config values that are relevant to SharePoint search

listName is a value that specifies the name of the list that is being queried to search or filter

subsite is a value that indicates the full location of the list. This can be left blank if there is no subsite. In general, the list is queried through a URL with the following structure:

CdnBaseUrl + subsite + “_api/web/lists/GetByTitle(listName)”

columnProperties specifies an array of strings that should exactly match the names of columns contained in the SharePoint list that the data comes from

NDResultConfigs are a set of values relevant to NetDocuments search

netDocsBaseUrl is a value that should indicate the source location of your repository. This should be the same as the base property with the same name

cabinetId is a value that specifies the source cabinet ID for the documents that you are searching and filtering

clickBehavior is a value that specifies the action that will be executed when a search result document is clicked. This should be the same as the base property with the same name

columnProperties specifies an array of strings that should exactly match the names of Cabinet profile attributes that form the columns in NetDocuments

contextMenu is an array of strings that specify what options are available for users in the content menu. This should be the same as the base property with the same name.

defaultFilter is a hidden filter that will be applied to all NetDocuments searches in the background.

Example:
{“ParentClient”:”91597″}}

filterAssociations is a set of values used to consolidate the search filters between SharePoint and NetDocuments search. Users can specify columns from SharePoint and NetDocuments to associate with each other under a common filter name.

For example, your client column in SharePoint may be named ‘clientNumber’ and in NetDocuments, the same data column might be named “Client”. With filterAssociations, you can name a common filter, “clientNum” that refers to and will filter on both of these columns. You can also specify disconnected columns that will filter results only from one list or the other. Users can create these associations in the searchConfig view or manually create them.

Example:

“filterAssociations”: [{

“Client”: [“ClientNumber”, “Client”]

}, {

“Matter”: [“MatterNumber”, “Matter”]

}, {

“Document Type”: [“”, “DocType”]

}, {

“Application Number”: [“ApplicationNumber”, “”]

}, {

“Previous File Ref”: [“PreviousFileRef”, “”]

}]

Using the filterAssociations array above will yield the following results:

Client and matter columns from SharePoint and NetDocuments will be consolidated into the common filters named “Client” and “Matter”. Generally they would not be associated because the names mismatch.

Document Type is an example of a NetDocuments-specific filter. Using this filter will further filter NetDocuments results without affecting SharePoint results

Application Number and Previous File Ref are examples of SharePoint-only filters.