Submit a new idea! Ideas for #Office365 #SharePoint custom feedback using lists,CSS & scripts

Its a beautiful day outside. Drizzles with a sweet sweet rainbow. Looking out longingly I got an idea,

How about we work on a fun form exercise?! It’ll be pretty, it’ll be functional and it’ll be in #Office365 with simple controls and script. Sounds fun no?

I thought it was. I was also inspired by Netflix, Starbucks and all things good and great in this world including but not limited to W3CSS, Bootstrap, JS and oh wait! SHAREPOINT and FORMS!!!

Since the code part is pretty self explanatory, am not gonna delve(see what I did there wink wink) deep in it. Still, to recreate this pretty form, you need to
  •  Create a list (SubmitYourIdea in this sample and yep am pretty creative)
    • Structure of the list is pretty straightforward, a few custom columns depending on what you want to gather from contributors:
      liststruct.png

       

  • Create a script file in your Site Assets (or anywhere else you please) call it PutYourThoughts.js (cause… why not?) You are welcome to copy the script and edit to suite your taste. I just chose something fun to do as a proof of concept and share it with my interweb peeps.
  • Create a site page and include the script file reference in a Content Editor Web Part/Script Editor web part. Save and page and here you go, a  completely responsive form for your folks to submit ideas on new projects/categories/just badmouth how awful the current project sucks. Freedom of speech rules!ideaform.png

Where is the Netflix and Starbucks connection you ask? Well, the form theme is inspired from them. So thanks folks!

What are the other uses/ possible derivatives using this idea?

  1. You can collect feedbacks(on your sites, projects, etc.,)
  2. Use this as a way to gather ideas from your team/staff
  3. Connect this with a #flow and extend its usage more! 🙂

Enjoy your new incoming ideas! Keep learning and sharing. Almost forgot, here is the solution in action with a not so subtle hint of enhancement to the code.

 

Behind/Warning and New requests – empty list view footer text: #Office365 #SharePoint Online quick tip

Requirement:

When we have a list web part view with zero items in it, we want custom text to appear.

Empty? What?

In a list view filtered web part, when there are no records to show, a friendly standard message appears in the footer. “There are no items to show in this view of the list”

To replace that with custom message of your(your teams obviously!) choice use this script below:

You can find the id of the webpart using inspect element of your browser developer tools.

$(document).ready(function(){
$(“#empty-WPQ2”).html(“No BEHIND requests in queue!”);
$(“#empty-WPQ3”).html(“No WARNING requests in queue!”);
$(“#empty-WPQ4”).html(“No NEW requests in queue!”);
});

Moral of the story(?!huh!?): DOM/script rules!

 

Custom control scripts for Nintex Forms

Handy scripts to get custom display value in a field based on the value submitted by the user.


To get login id of the user in a label control without @organizationname.org

  • Set the control’s CSS style value to a custom style name. (.my-custom-label in this example)
  • Include an empty style in the Custom CSS section in form settings (.my-custom-lable{}; for this example)
  • Set controls
  • NWF$(document).ready(function(){
    var ppl= NWF$(‘#’ + varEmployeeName);
    ppl.change(function(){
    if(this.value == “”){
    NWF$(“.my-custom-label label”).text(”);
    }
    else{
    var name = this.value.split(‘|’)[2].split(‘@’)[0];
    NWF$(“.my-custom-label label”).text(name);
    alert(name);
    }
    });
    });

To get custom formatted telephone(or fax) number in a label.

  • Set the control’s CSS to a custom style
  • Include empty style in the Custom CSS section in form settingsCustom CSS section in form settings (.my-custom-phone in this sample)
  • NWF$(document).ready(function() {
    var tel=NWF$(‘#’+telephoneVar);
    tel.change(function() {
    var telephone = this.value.replace(/(\d\d\d)(\d\d\d)(\d\d\d\d)/, “Tel – ($1) $2-$3”);
    NWF$(“.my-custom-phone”).text(telephone);
    alert(telephone);
    tel.prop(‘maxlength’,10); 
    });
    telephone.png
    To set maxlength of telephone/fax you can set variable.prop(‘maxlength’,10)

Note: 
Store the client id of the control in a JavaScript variable. This is what you use to get the input value from the control prior to calculating the value for display purposes.

 

 

Office 365 -SharePoint Online Administration – How Tos – Part 1 (Connection, Site collection cmdlets)

So, sites, collections, apps and workflows galore. What now? Administration!

When there are a lot of workflows in a site associated with site contents(list/library) it becomes difficult to manage the site(collections). You as an administrator will NEED a quick and automated way to find out what is going on with your site contents. Check the status of your workflows without having to do the click, click, click and click some more! UI is great but not when you are handling a big collection and want to get results quickly on what list/library item workflows are successfully completed and which ones were suspended/terminated in your collection, PowerShell and SPOnline cmdlets is your friend.

You can definitely look at individual item > … > Workflows > Click on Status and if you are diligently logging help texts to your workflow history list upon completion of an action block in your workflow, you can troubleshoot there. But imagine a list with 100’s of items in it. Its a waste of resource and time to go through it all manually. In comes SP Online Management Shell and CSOM to rescue.

Intro to SP Online Management for Office 365:
There are around 42 windows PowerShell for SharePoint Online cmdlets. To get a list of ALL the SPOnline Powershell commands Select SharePoint Online Management  Shell(a tool that has Windows PowerShell Module to manage your SharePoint Online tenant. You MUST have SPOnline admin credentials to use the tool)

In addition to this tool to enable development against your SharePoint online sites you can get SharePoint Online Client Components SDK This installs a list of dlls to your C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI directory. You can use these to talk to your subsite contents and manage the sites via a combination of PowerShell and CSOM commands.

dlls

To export any of the outputs of the cmdlets to a .csv file simply add | Export-CSV –path MyReport.csv  to the command and result set will be exported to csv file. You can open the same in Excel.

Connection Cmdlets: Two commands that manage your connections to SharePoint Online tenant are
1. Connect-SPOService https://xyz-admin.sharepoint.com
    Enter your administrator login/password and sign in. This cmdlet stores Microsoft.SharePoint.Client.ClientContext object in an internal variable.
2. Disconnect-SPOService (disconnects previously created sharepoint online service connection)
Get-Command Module Microsoft.Online.SharePoint.Powershell (to retrieve list of ALL SPOnline cmdlets you have)

Note: Once in  your SPOnline management shell to change directory eg. c:\powershell\scripts type
Set-Location c:\powershell\scripts (this changes your location as desired. If your folder has blank spaces in between like C:\this or that then type Set-Location C:\this` or` that)
dir (shows all the files in the directory)

Site Collection cmdlets:
Noun: Site
Available Verbs: Get, New, Set, Test, Upgrade, Repair, Remove
3. Get-SPOSite -Limit ALL -Detailed (lists all site collections in your tenant. By default Get-SPOSite returns up to only 200 sites. Using -Limit All gets us all of them. -Detailed shows ALL values in properties)
4. New-SPOSite -Url https://xyz.sharepoint.com/sites/swenewsite0 -owner bblah@xyz.org -storagequota 100 -nowait – resourcequota 50 -template STS#0 -timezone 10 -compatibilitylevel 15(creates a new SharePoint online site collection with storage quota 100MB, resource quota 50MB without any delay. Time zone 10 stands for EST, compatibility level is set for SharePoint 2013(15),  If there is a deleted site with the same name in recycle bin, this command will fail)
Checkout list of all MS SharePoint available options for properties in links/lists below:
-timezone
ID Time Zone
2 (GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London
3 (GMT+01:00) Brussels, Copenhagen, Madrid, Paris
4 (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
5 (GMT+02:00) Athens, Bucharest, Istanbul
6 (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
7 (GMT+02:00) Minsk
8 (GMT-03:00) Brasilia
9 (GMT-04:00) Atlantic Time (Canada)
10 (GMT-05:00) Eastern Time (US and Canada)
11 (GMT-06:00) Central Time (US and Canada)
12 (GMT-07:00) Mountain Time (US and Canada)
13 (GMT-08:00) Pacific Time (US and Canada)
14 (GMT-09:00) Alaska
15 (GMT-10:00) Hawaii
16 (GMT-11:00) Midway Island, Samoa
17 (GMT+12:00) Auckland, Wellington
18 (GMT+10:00) Brisbane
19 (GMT+09:30) Adelaide
20 (GMT+09:00) Osaka, Sapporo, Tokyo
21 (GMT+08:00) Kuala Lumpur, Singapore
22 (GMT+07:00) Bangkok, Hanoi, Jakarta
23 (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi
24 (GMT+04:00) Abu Dhabi, Muscat
25 (GMT+03:30) Tehran
26 (GMT+03:00) Baghdad
27 (GMT+02:00) Jerusalem
28 (GMT-03:30) Newfoundland
29 (GMT-01:00) Azores
30 (GMT-02:00) Mid-Atlantic
31 (GMT) Casablanca, Monrovia, Reykjavik
32 (GMT-03:00) Buenos Aires, Georgetown
33 (GMT-04:00) Caracas, La Paz
34 (GMT-05:00) Indiana (East)
35 (GMT-05:00) Bogota, Lima, Quito, Rio Branco
36 (GMT-06:00) Saskatchewan
37 (GMT-06:00) Guadalajara, Mexico City, Monterrey
38 (GMT-07:00) Arizona
39 (GMT-12:00) International Date Line West
40 (GMT+12:00) Fiji Is., Kamchatka, Marshall Is.
41 (GMT+11:00) Magadan, Solomon Is., New Caledonia
42c(GMT+10:00) Hobart
43 (GMT+10:00) Guam, Port Moresby
44 (GMT+09:30) Darwin
45 (GMT+08:00) Beijing, Chongqing, Hong Kong S.A.R., Urumqi
46 (GMT+06:00) Almaty, Novosibirsk
47 (GMT+05:00) Islamabad, Karachi, Tashkent
48 (GMT+04:30) Kabul
49 (GMT+02:00) Cairo
50 (GMT+02:00) Harare, Pretoria
51 (GMT+03:00) Moscow, St. Petersburg, Volgograd
53 (GMT-01:00) Cape Verde Is.
54 (GMT+04:00) Baku
55 (GMT-06:00) Central America
56 (GMT+03:00) Nairobi
57 (GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb
58 (GMT+05:00) Ekaterinburg
59 (GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius
60 (GMT-03:00) Greenland
61 (GMT+06:30) Yangon (Rangoon)
62 (GMT+05:45) Kathmandu
63 (GMT+08:00) Irkutsk, Ulaan Bataar
64 (GMT+07:00) Krasnoyarsk
65 (GMT-04:00) Santiago
66 (GMT+05:30) Sri Jayawardenepura
67 (GMT+13:00) Nuku’alofa
68 (GMT+10:00) Vladivostok
69 (GMT+01:00) West Central Africa
70 (GMT+09:00) Yakutsk
71 (GMT+06:00) Astana, Dhaka
72 (GMT+09:00) Seoul
73 (GMT+08:00) Perth
74 (GMT+03:00) Kuwait, Riyadh
75 (GMT+08:00) Taipei
76 (GMT+10:00) Canberra, Melbourne, Sydney
77 (GMT-07:00) Chihuahua, La Paz, Mazatlan
78 (GMT-08:00) Tijuana, Baja California
79 (GMT+02:00) Amman
80 (GMT+02:00) Beirut
81 (GMT-04:00) Manaus
82 (GMT+03:00) Tbilisi
83 (GMT+02:00) Windhoek
84 (GMT+04:00) Yerevan
ID TimeZone

-templates 

  • STS#0   Team Site
  • STS#1   Blank Site
  • STS#2   Document Workspace
  • MPS#0   Basic Meeting Workspace
  • MPS#1   Blank Meeting Workspace
  • MPS#2   Decision Meeting Workspace
  • MPS#3   Social Meeting Workspace
  • MPS#4   Multipage Meeting Workspace
  • BLOG#0   Blog
  • SGS#0   Basic Group Work Site
  • SGS#1   Blank Group Work Site
  • WIKI#0   Wiki

5. Set-SPOsite -Identity https://xyz.sharepoint.com/sites/swenewsite0 -ResourceQuota 100 -StorageQuota 200 -DisableSharingForNonOwners
To update/set a site based on various properties use Set verb followed by required properties. The above command updates the resource, storage quotas and disables sharing by users who are NOT owners of the site acollection.

6. Test the site by using the command Test-sposite https://xyz.sharepoint.com/sites/Forms

TestSPOSite.png

7.Repair the site by using Repair -SPOSite https://xyz.sharepoint.com/sites/test

8. Remove-SPOSite https://xyz.sharepoint.com/sites/swenewsite0. Note, I was not the owner of the site, so this failed initially. Once I made admin account owner of the site collection, this command worked
9. Restore-SPODeletedSite https://xyz.sharepoint.com/sites/swenewsite0 restores deleted site from recyclebin.
10. Remove-SPODeletedSite https://xyz.sharepoint.com/sites/swenewsite0permanently‘ removes the deleted site from Recycle Bin.
11. Get-SPODeletedSite -IncludePersonalSite gets the list of all deleted sites including personal sites.
12. Request SPOPersonalSite requests personal site be created for user with given email ids. These are queued and will be created by timer job later. Limits: 1-200
$emails=”xyz@abc.org,cyz@abc.org” 
Request-SPOPersonalSite -UserEmails $emails -NoWait
12. Upgrade-SPOSite -Identity https://abc.sharepoint.com/sites/swenewsite0 -VersionUpgrade command upgrades the version of the SharePoint Online site collection to SP 2013
13. Request-SPOUpgradeEvaluationSite https://abc.sharepoint.com/sites/swenewsite0 requests that a SPOnline gloabal admin request a copy of the site collection for validation post upgrade.
Following posts in the make as part of this how-to series:
– Remaining cmdlets
– Workflow Status check scripts

SharePoint Fest and May the 4th be with you- THE FUTURE OF #SHAREPOINT #ONEDRIVE

What an amazing set of training sessions it was at SharePoint Fest DC 2016 at Walter E. Washington Convention Center from April 27-29th.

It wouldn’t be exaggerating to say that it was a training heaven of sorts for any Office 365/ SharePoint geek. Be it a curious user, an inquisitive beginner or a passionate proponent of Office 365 SharePoint, there were boat loads to learn from the various tracks offered in the conference.

Governance, Security, Development, Search and MUCH MUCH MORE taught by none other than the most respected MVP SMEs of Microsoft and Microsoft product leaders themselves.

What more could an attendee ask for? Wait…what? Training materials from the sessions, as well?
Oh! no worries…you got those too AND ALL of them sesssions, immaterial of which track you chose to attend. You get ’em all thanks to the smart planning and generosity of SharePoint Fest conference planners! WOOT! You guys rock!
I got them ALL, therefore, my team & organization gets them all as well. DOUBLE WOOT!

So much to adapt and implement and its all for the better.

BIGGEST TAKEAWAY for me personally were two things

  1. This line by Mr. Benjamin NiaulinMe/ We and WE+Process is OneDrive/Office365 Groups and Team Sites” This explanation, answered a lot of questions I had.
  2. Info about the upcoming webinar on “FUTURE OF SHAREPOINT & ONEDRIVE”.
    ANY organization public, private or in-between, that is doing ANYTHING, cloud(Office 365), Hybrid(On Prem & O365) or On-Premise SharePoint, MUST attend this FREE webinar on May 4th.
    May the 4th better be with you if you want to know what is coming your cloud way, so you can better plan and implement several features and support your end-users with their Office 365 and SharePoint implementations.

What if you can’t attend this session you ask?
No-worries, you can always watch the recorded video of the event later.

What if you refuse to watch the video too you ask?
Well, then you’ll just be left behind. 🙂 And no one wants that for oneself or their environments. Well all know that second and third hand news becomes diluted. Hearing for ourselves from the ones who ARE the masters of the topic is the best way to stay in the lead.

So, without further ado and after all that build up: Here is what Microsoft has to say about the event-

“Come celebrate SharePoint and see

Keynote speaker: Jeff Teper-CVP OneDrive, SharePoint
Keynote speaker: Jeff Teper-CVP OneDrive, SharePoint

unveil our new vision and roadmap for SharePoint and OneDrive for Business, both on-premises and in the cloud with Office 365.

Following the live keynote from San Francisco there will be a number of on-demand sessions detailing our upcoming innovations. Whether you’re a user, IT pro, or developer, we’ll have a lot to share as part of this historic moment.”

If this LANDING THE FUTURE OF SHAREPOINT keynote is anything like the keynotes from SharePoint Fest DC Conference, then we all are in for a treat. CLICK ON THE IMAGE BELOW TO REGISTER FOR THE SESSION- NOW

May 4th-FUTURE OF SHAREPOINT
May the 4th be with you!

@Nintex Workflow Professional Certificate

Today I took an exam and added Nintex Workflow Professional Certificate to my list of official certifications. Target audience for the certification are experienced forms and workflow creators. Questions covered designing, creating and debuggins Nintex workflows and forms concepts. #Excited to have taken the test as it was the high point of my day!

Nintex tells me I am skilled at creating Workflows and Forms! WOOT!!

NintexWorkflowProCertificate.PNG

Hyperlink to Edit item in SharePoint using Nintex for Office 365

Business case:

Users want direct link to Edit Item from their notification email body without having to go to the form ribbon and then clicking on Edit Item as seen below.

EditItemURL1.png

Solution:

Say you have ‘Send an Email’ action in the Nintex workflow with the text below.

U‍RL of the current item: {Workflow Context:Current item URL}‍

This would email selected user with the URL of the current item from Workflow Context. Clicking on that will then redirect users to

Actual URL of the Nintex form in DISPLAY mode:

https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite/FormsApp/NFLaunch.aspxSPAppWebUrl=https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite/FormsApp&SPHostUrl=https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite&remoteAppUrl=https://formso365.nintex.com&ctype=0x0100B52DC7B8A6EC4040BAB784010BB614F9&wtg
=/sites/Forms/Swetha/TestSite/Lists/EmployeePromotions/Item/&mode=2&List=6aa1b4ba-ca60-4434-93d6-f4146d026075&ID=6&Web=f8661cf5-7a18-430f-9f92-262850e0087d

 

URL of the Nintex form in EDIT mode:

https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite/FormsApp/NFLaunch.aspxSPAppWebUrl=https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite/FormsApp&SPHostUrl=https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite&remoteAppUrl=https://formso365.nintex.com&ctype=0x0100B52DC7B8A6EC4040BAB784010BB614F9&wtg=/sites/Forms/Swetha/TestSite/Lists/EmployeePromotions/Item/&mode=1&List=6aa1b4ba-ca60-4434-93d6-f4146d026075&ID=6&Web=f8661cf5-7a18-430f-9f92-262850e0087d

 

Splitting the URL string for EDIT item as seen below:

Line 1: https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite/FormsApp/NFLaunch.aspx?PAppWebUrl
Line 2: =https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite/FormsApp&SPHostUrl
Line 3: =https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite&remoteAppUrl
Line 4: =https://formso365.nintex.com&ctype=0x0100B52DC7B8A6EC4040BAB784010BB614F9&wtg
Line 5: =/sites/Forms/Swetha/TestSite/Lists/EmployeePromotions/Item/&mode=1&List=6aa1b4ba-ca60-4434-93d6-f4146d026075&ID=6
Line 6: &Web=f8661cf5-7a18-430f-9f92-262850e0087d

We can see that mode=1 opens the item in Edit Mode for that particular item ID which we can get dynamically from Current item ID.

To get dynamic link for Edit item in Nintex workflow for office:

Use Nintex Build String Action output to a single variable called varEditURLTxt

1) Open the item in EDIT mode and copy the URL of the item.

2) Get everything in the EDIT URL until ‘&ID=’

2) Insert reference to current item ID

3) Add the remaining portion of the EDIT URL(Line 6 above)

Now this string variable contains the dynamic URL which can inturn be included as hyperlink in email body of ‘Send an Email’ action. When the users click on the hyperlink generated, they will be redirected to ‘Edit item’ form instead of display.

Final URL:

https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite/FormsApp/NFLaunch.aspx?SPAppWebUrl=https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite/FormsApp&SPHostUrl=https://yourtenant.sharepoint.com/sites/Forms/Swetha/TestSite&remoteAppUrl=https://formso365.nintex.com&ctype=0x0100B52DC7B8A6EC4040BAB784010BB614F9&wtg=/sites/Forms/Swetha/TestSite/Lists/EmployeePromotions/Item/&mode=1&List=6aa1b4ba-ca60-4434-93d6-f4146d026075&ID=‍{Current Item:ID}‍&Web=f8661cf5-7a18-430f-9f92-262850e0087d

EditItemURL2.png

 

While this post talks about the SharePoint master list item and its link to edit form, you can do this same exact set of steps for allowing your users to open the Workflow Task items in Edit mode as well with a quick hyperlink.

Once again with dynamic ‘Build string’ action. Provided you have a ‘Assign a task’ action where you have managed to capture TaskID, and want to provide a quick edit link to the ‘next’ approver, to do the above

1) Get the ID of the task item (taskID – GUID variable value and ‘Advanced Lookup’ to ‘Workflow Task’ List to get the ID)

2) ‘Do Calculation’ to get  the task’s ID ‘plus’ 1

3) Build the string doing the same steps as above from the Edit workflow task Item link.

This logic for task item edit hyperlink will ONLY work if it is the second task in the sequential/ serial workflow…that was my requirement, if I have any others in future, will post another blog! In the meantime, feel free to share your workarounds!

Good luck!!!