#StackBounty: #2013 #form #mobile #digital-signature #tablet Electronic Signature for forms 2013

Bounty: 50

Is it possible to integrate a signature element in to a custom form?

I’m using Sharepoint 2013 on premises. I’m using a List for training forms and am researching the viability of using signatures written on to a tablet screen. The purpose is to sign-off training records while on the factory floor, immediately after the training has been given.

How is the signature verified? Is it compared to a stored signature elsewhere in Sharepoint? Can a tablet be used for the signature sign-off or is a ‘plug-in’ device needed?

Please note – using InfoPath or Nintex forms is not an option for me.

I’ve found lots of free software on .cnet, but a recommendation from someone who has successfully some free software would be useful.

References:

Signature field for Sharepoint Lists – seems useful, though I’m not sure it covers the validation element I require.


Get this bounty!!!

#StackBounty: #2013 #sharepoint-foundation Why some users are missing "i:0#.w|"

Bounty: 250

When I run this script,

https://gallery.technet.microsoft.com/office/SharePoint-Get-list-of-all-c28c87f9

function GetSPAllSPUsers($SiteCollectionURL,$SPListName) 
{ 
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null 
    $site = new-object Microsoft.SharePoint.SPSite($SiteCollectionURL)     
    $web = $site.openweb() 
    $list = $web.Lists[$SPListName] 
    $siteCollUsers = $web.SiteUsers 

    foreach($user in $siteCollUsers) 
        { 
            Write-Host " ------------------------------------- " 
            Write-Host "Site Collection URL:", $SiteCollectionURL 
            if($list.DoesUserHavePermissions([Microsoft.SharePoint.SPBasePermissions]::ViewListItems,$user) -eq $true) 
                { 
                    Write-Host "User : ", $user.LoginName 
                    Write-Host "Assigned Permissions : ", $list.GetUserEffectivePermissions($user.LoginName) 
                }             
            Write-Host " ------------------------------------- "         
        } 

        $web.Dispose() 
        $site.Dispose() 
 } 

I get this output

ADMIN: i:0#.w|exampledomainmy.user

USER: EXAMPLEDOMAINmy.user

Any idea why ?


Get this bounty!!!

#StackBounty: #2013 #sharepoint-enterprise #navigation Add a node to the top navigation bar on site collection level with relative urls…

Bounty: 50

I have a farm where we create site collections programatically coming from SQL information via timer job.

We have a HOME site collection at http://ourcompany/, the top navigation bar ALL should point to the HOME site collection pages for all other site collections.

We want to change this from absolute to relative because when we move from PROD to QA or TEST for debugging, then we also get the absolute URLS which is a big deal, people that goes to QA can end up in PRODUCTION.

However it seems that its not possible? see my code below

  private static SPNavigationNode AddXXXDMSTopNavigationNode(PublishingWeb pubWeb, String nodeLinkFileName, String nodeTitle, SPNavigationNode rootNode = null)
        {
            try
            {
                PublishingPage p = null;
                String dmsPortalUrl = HelperFunctions.GetDMSApplicationSetting(Constants.ApplicationSettings.Keys.DMSPortalUrl);

                string webapplicationUrl = pubWeb.Web.Site.WebApplication.Sites.First<SPSite>().Url;

                if (!String.IsNullOrEmpty(dmsPortalUrl))
                {
                    using (SPSite portalSite = new SPSite(dmsPortalUrl))
                    {
                        PublishingWeb portalWeb = PublishingWeb.GetPublishingWeb(portalSite.RootWeb);

                        LoggingService.LogInfo(LoggingCategory.Feature, String.Format("Checking if the filename {0} can be found inside the Publishing Pages Library on the Portal site: {1}", nodeLinkFileName, portalSite.Url));
                        p = portalWeb.GetPublishingPages().ToList().Find(x => x.Name.Equals(nodeLinkFileName, StringComparison.InvariantCultureIgnoreCase));

                        if (p != null)
                        {
                            LoggingService.LogInfo(LoggingCategory.Feature, String.Format("File found at location: {0} ", p.Uri.ToString()));
                            if (rootNode == null)
                            {
                                webapplicationUrl = "/../..";
                                LoggingService.LogInfo(LoggingCategory.Feature, String.Format("Creating heading navigation: {0} with link: {1}", nodeTitle, p.Uri.ToString()));
                                return pubWeb.Navigation.GlobalNavigationNodes.AddAsLast(new SPNavigationNode(nodeTitle, String.Format("{0}/{1}", webapplicationUrl, p.Uri.AbsolutePath)));
                            }
                            else
                            {
                                webapplicationUrl = "/../..";
                                LoggingService.LogInfo(LoggingCategory.Feature, String.Format("Creating child navigation node: {0} with link: {1}", nodeTitle, p.Uri.ToString()));
                                rootNode.Children.AddAsLast(new SPNavigationNode(nodeTitle, String.Format("{0}/{1}", webapplicationUrl, p.Uri.AbsolutePath)));
                                return null;
                            }
                        }
                        else
                        {
                            LoggingService.LogWarning(LoggingCategory.Feature, String.Format("The filename {0} cannot be found inside the Publishing Pages Library, therefore we cannot create a navigation link.", nodeLinkFileName));
                        }
                    }
                }
                else
                {
                    LoggingService.LogWarning(LoggingCategory.Feature, "DMS portal URL is null or empty. Check applicationSettings.");
                }
            }
            catch (Exception ex)
            {
                LoggingService.LogError(LoggingCategory.Feature, ex);
            }

            return null;
        }

I get this exception:

Cannot open “/sites/XYZ/../..///Pages/myclients.aspx”: no such file or
folder.

Is there a way to overcome this?


Get this bounty!!!

#StackBounty: #2013 #javascript #development #css #quick-launch Quick Launch selected item (which get bold font weight) is being wrongl…

Bounty: 50

I have a team site inside my SharePoint on-premises farm 2013, inside the team site i added a custom list which contain 3 content types.
Now when i create a new items inside the custom list, i will get different urls based on the content type, as follow:-

/Lists/Management/NewForm.aspx?ContentTypeId=111&RootFolder=/Management/Lists/Management

/Lists/Management/NewForm.aspx?ContentTypeId=222&RootFolder=/Management/Lists/Management

/Lists/Management/NewForm.aspx?ContentTypeId=333&RootFolder=/Management/Lists/Management

Then to ease the process on end users, i add 3 links inside my Quick Launch links, each link will have different ContentTypeIdinside its URL.
But the problem i am facing is that regardless of the link i click on , the last link will always get bold font weight, and this is confusing users .. For example, if they click to create an item which have ContentTypeId=111, the link which get selected will be the last one with ‘ContentTypeId=333’.. so i am not sure if there is a way i can fix this layout issue?

Here is how my quick launch links look like, where the last link is being selected (url = /Lists/Management/NewForm.aspx?ContentTypeId=333&RootFolder=/Management/Lists/Management) although i clicked on the first link (url = /Lists/Management/NewForm.aspx?ContentTypeId=111&RootFolder=/Management/Lists/Management)..

enter image description here


Get this bounty!!!

#StackBounty: #2013 #sharepoint-enterprise #webdav SharePoint 2013 & Windows 7 Clients WebDAV issue

Bounty: 50

Apologies if this is the wrong stack to post this in.

This issue is WebDAV related, involving both SharePoint 2013, and Windows 7.
I will limit this topic to 3 Windows 7 Machines, and 2 SharePoint 2013 farms (although it affects a lot more machines).

  1. W7-1 (Windows 7 Client #1)
  2. W7-2 (Windows 7 Client #2)
  3. W7-3 (Windows 7 Client #3)
  4. SP-1 (SharePoint 2013 Farm #1)
  5. SP-2 (SharePoint 2013 Farm #2)

I have noticed inconsistent behaviour involving WebDAV, which can be summed up like this:

  1. W7-1 works on SP-1 but not SP-2
  2. W7-2 works on SP-2 but not SP-1
  3. W7-3 works on both SP-1 and SP-2

Further information about this set up:

  1. WebClient service is running on all machines
  2. SharePoint instances are root site collections (No managed paths with roots missing)
  3. Same user account used for all test, so not a permissions issue
  4. There is no firewall or proxy between client machines and SharePoint farms
  5. SharePoint sites are added to “trusted sites” in Internet Explorer
  6. Behaviour is the same for “open in explorer” view, or using a WebDAV UNC path in Windows Explorer
  7. I don’t think that this is a hotfixes issue, due to all clients working on at least one sharepoint box.
  8. All Windows 7 clients are 32 bit

I can’t figure out why the client machines can’t connect to all SharePoint boxes with WebDAV!

Can anyone help?

Edit :

Here are the errors from one of the machines:

WebDAV errors


Get this bounty!!!

#StackBounty: #2013 #rest sharedWithUsersId not returning up to date user ids

Bounty: 100

I don’t understand the response for the API call:

/_api/web/getFileByServerRelativeURL('/docs/Test.docx')/ListItemAllFields/SharedWithUsersId

I upload a Test.docx document and share it with two users.

The above rest call returns something like

{
  "odata.metadata": "http://.../_api/$metadata#Collection(Edm.Int31)",
  "value": [
    6,
    15
  ]
}

I open the share dialog in the web interface and share the document with one more user. I then get a response like:

{
  "odata.metadata": "http://.../_api/$metadata#Collection(Edm.Int31)",
  "value": [
    6,
    15,
    25    <---- User just added
  ]
}

as expected.

I open the share dialog again and remove the user that I just added. After this the response is still:

{
  "odata.metadata": "http://.../_api/$metadata#Collection(Edm.Int31)",
  "value": [
    6,
    15,
    25    <---- User has been removed from share list
  ]
}

It looks like SharedWithUsersId contains all user ids that the document has ever been shared with.

Is this the expected behavior?! Is this particular endpoint documented somewhere?


Get this bounty!!!

#StackBounty: #2013 #development #powershell #custom-permission-level which SPRoleDefinition.BasePermissions responsible to mark discus…

Bounty: 50

I have the following inside my sharepoint on-premises 2013 farm:-

  1. Team site collection, which have the publishing featured enabled.
  2. Inside the Team site collection, i added a Discussion Board list.
  3. Now users with built-in Contribute permissions, can add,edit, delete discussion board items.
  4. But seems they can not mark their own or other users items as featured, where this option is only available to site admins:-
    enter image description here

so i am planning to create a custom permission level using power-shell, which have the exact permission as the built-in Contribute, but with the ability to mark Discussion Board items as featured. so i am not sure which SPRoleDefinition.BasePermissions is responsible to enable marking items as featured? now i find this link which list the available permissions, but i can not find the permission to allow “Mark as featured”??
https://blogs.msdn.microsoft.com/sridhara/2008/06/26/what-permissions-are-behind-the-permission-levels-roles-in-sharepoint/


Get this bounty!!!

#StackBounty: #2013 #sharepoint-enterprise #sharepoint-server #calendar #sharepoint-calendar SharePoint 2013 calendar in IOS Chrome ren…

Bounty: 50

Most of the time Sharepoint Calendar in IOS Chrome browser renders differently as shown in the below screenshot which causes problem in changing views between month/week/day view programmatically

For example :

 _MoveToDate(null,"week")

In rare cases, the Calendar webpart renders correctly as it would in safari browser. But am not sure what the causes the problem.

Did anyone faced a similar issue?

Any help would be greatly appreciated. 🙂

enter image description here


Get this bounty!!!

#StackBounty: #2013 #development #event-receivers #taxonomy #farm-solution unable to get all the term sets under a term group inside my…

Bounty: 50

I am developing an ItemUpdated event receiver inside my on-premises farm 2013. and inside my event receiver i want to get all the term sets under a term group. so i define the following :-

using (SPSite site = new SPSite(properties.SiteId))
       {
             string currenweburl = properties.RelativeWebUrl;
             using (SPWeb spCurrentSite = site.OpenWeb(currenweburl))
                     {

                       Term currenttermset = null;
                       TaxonomySession txSession = new TaxonomySession(site);
                       TermStore tc = txSession.TermStores[termstorename.Trim()];
                       Group g = tc.Groups[groupname.Trim()];
                       TermSet ts = g.TermSets[termsetname.Trim()];

now getting the TaxonomySession + TermStore + Group always work fine. But when it comes to the following code TermSet ts = g.TermSets[termsetname.Trim()]; i keeping getting the following exception:-

Specified argument was out of the range of valid values.

and when i check the term store count when debugging the code i found that the count will be equal to 0. while i already have one term set which is used to store the navigation terms. here is the count inside Visual Studio:-

enter image description here

also in one case i added a new term group, then i add a new term set, and i use this term set for site navigation. now i was able to retrieve the term set correctly inside the event receiver. but when i added another term set under the same group, the code raised the above exception, and the term set count will be equal to 0 again while debugging the code. so not sure how i can get all the term sets under my term group ? same as the term sets which will be shown inside the “Site Settings” >> “Term Store Management” page?? in all ways not sure why my code was not able to achieve this ?


Get this bounty!!!

#StackBounty: #2013 #publishing-site #managed-navigation #enterprise-wiki #term-set Why enterprise wiki sub site will not have any navi…

Bounty: 100

I am working on an on-premises enterprise wiki site collection 2013. now when i created a new site collection of type enterprise wiki, i have noted that inside the navigation there is already a term set named “Site Navigation” created as follow,to enable managed navigation & friendly urls:-

enter image description here

but when i create a new sub-site of type enterprise wiki, under the above root enterprise wiki site, i have noted that the navigation is NOT set to Managed Navigation,and if i manually select to have the “Current Navigation” = “Managed Navigation”, then for a reason or another the above term set “Site Navigation” seems to be hidden from the subsite:-

enter image description here

so can anyone adivce how i can enable friendly urls inside the sub-site? and why this is not the defualt as in the root site case?

second question. Generally speaking is there any harm if 2 enterprise wiki sites share the same term set for navigation? or each wiki site should have its own term set for managed navigation & friendly urls ?


Get this bounty!!!