Category Archives: sharepoint 2013

How to find restore option for classic SharePoint libraries in Office 365

Have you heard about the new “Restore this Library” feature for modern libraries?

It’s a really cool feature for libraries and it’s pretty straightforward to get there.

To get the Restore page in a library with modern experience

If you are in the library and click on the “gear” menu, you can easily find an extra link that says “Restore this library” – support article for the feature.


To get the Restore page in a library with the classic experience

But what if you want the same for a classic library of yours. Just add “?p=18” to the end of your library hyperlink.

In short, if your library link is:


Add the magic query string and convert that to:


Pretty easy right? 🙂




Tips for Microsoft Flow expressions

Expressions are an easy way of modifying and formulating the data that we would want to capture in Microsoft Flow.

Expressions that I used recently

Adding 90 Days as an expression –

formatDateTime(addDays(utcnow(), 90), ‘yyyy-MM-dd’)
To calculate first day of the current month –
formatDateTime(startOfMonth(utcNow()), ‘dd-MM-yyyy’)
Calculating 3 days before the first day of the current month –
formatDateTime(addDays(addToTime(startOfMonth(utcNow()), 1, ‘Month’), -3), ‘dd-MM-yyyy’)

Joining conditions like ‘And’, ‘Or’ in conditional statements –

In order to join conditions, use the “basic mode” to create all the conditions needed and copy them.
Then remove the “@” symbol from the beginning, join them with commas and add the @AND or @OR condition required.
For eg. – The below condition checks if the Title or the “Email Contact” field has the text “mailto” in it.

@OR(contains(items(‘Apply_to_each’)?[‘Title’], ‘mailto’),
contains(items(‘Apply_to_each’)?[‘Email_x0020_Contact’], ‘mailto’))

To get this first I created a condition for checking if the Title contains the “mailto” text, which gets transcribed as:
@contains(items(‘Apply_to_each’)?[‘Title’], ‘mailto’)
Similarly, for the Email Contact column, the code gets created as:
@contains(items(‘Apply_to_each’)?[‘Email_x0020_Contact’], ‘mailto’)
In order to create an OR statement between them I had to remove the “@” symbol from the beginning, join them with commas and add the @OR condition required and finally it becomes –
@OR(contains(items(‘Apply_to_each’)?[‘Title’], ‘mailto’),
contains(items(‘Apply_to_each’)?[‘Email_x0020_Contact’], ‘mailto’))

Get SharePoint list items more than the default 100 items

The Get SharePoint list items method will only retrieve the first 100 records by default.
To expand that to the desired amount of records, we will have to edit the settings of the “Get Items” property




That’s all for now 🙂

Accordion menu for SharePoint modern pages

The goal of the article is to create something like this:


and the accordion menu expands to more text details.


To accomplish this, I have used the React script editor webpart that I found on GitHub combining with some good old jquery.

  • Follow the instructions to git clone and install the script editor webpart from GitHub.
  • Make sure to change the default setting to the following in the ScriptEditorWebPart.manifest.json file before deploying the app.
"requiresCustomScript": false
  • After the webpart is added to the site, add the app to the required page and insert the following text in the webpart:

<script src="Refer-Jquery-path/jquery-1.11.2.min.js"></script>
<script type="text/javascript">


$(".ControlZone-control :header").css("line-height", "7%");
$(".ControlZone-control :header").css("border-top", "8px solid transparent");
$(".ControlZone-control :header").css("border-bottom", "8px solid transparent");
$(".ControlZone-control :header").css("border-left", "10px solid black");
$(".ControlZone-control :header").css("padding-left", "13px");
$(".ControlZone-control :header").css("margin-bottom", "30px");
$(".ControlZone-control :header").css("cursor", "pointer");
$(".CanvasSection-xl12 .ControlZone-control .cke_editable p").css("display", "none");
$(".CanvasSection-xl12 .ControlZone-control .cke_editable p").css("margin-bottom", "30px");

$(".ControlZone-control :header").click(function(){
$(this).nextUntil(".ControlZone-control :header").toggle();


You can also customize it further to have images or videos in each menu item.

However, you will have to add them as separate image webpart below the text webpart and tweak the jquery to combine the accordion effect on both the text and image webparts.

Convert a SharePoint designer document notification workflow to Microsoft Flow

During the migration phase of our projects from SharePoint on-premise to O365, we had to convert a couple of good old SPD workflows to Microsoft Flow.


Whenever a document in a library is due for review, i.e, 30 days before the “Next Review” date, fire a notification to the document “Owner” based on a defined template.

SPD Workflow way

When a document is created or modified, check whether the current date matches the “Next Review” date minus 30. If it doesn’t, pause the workflow until that date is reached and fire an email notification.

Microsoft Flow way


Create a Recurrence action that checks every day for each item in the library whether the condition, “Next Review” date minus 30, has reached.

It will fire emails for any document that has the condition satisfied.

The action items used here – “Recurrence” for repetition, “Get Items” for getting all items in a SharePoint library, “Apply to each” for checking the condition on each list item, “Send an email” to alert the users.

I simply love Flow, just because:

  • it’s too easy to change the email template.
  • on a flick of a button, you can switch on or off the necessary flows on a site.
  • and the best part, I can run through the executed flow on an item to item basis.

Simply easy !!!


SharePoint Framework Developer Preview released

Microsoft released the developer preview for SharePoint Framework.

It’s all in Github now –

If you are new to this, watch the official Microsoft statement to get some heads up  –

Also note that SharePoint Framework web parts are not supported for production use yet.

So just be ready guys !!!

Microsoft joins IFTTT like automation

Microsoft has introduced an exciting automation procedure called Microsoft Flow –

You can relate this to IFTTT where you can connect all of your best apps to achieve amazing things. Who wouldn’t like to light up their house during sunset 🙂

Microsoft Flow allows you to connect your Office 365 accounts with services like Dropbox, Trello, Slack or Google Drive.

There are plenty of free templates which can get you started or you can create automation from blank.

Create your own recipes and enjoy 🙂