Tips - Time Zone Collection

SharePoint Time Zone Collections from Regional Settings Page

Today I have something new in my plate, ie., explore new CSOM package release for Office 365. So I have downloaded the package as mentioned in that post and tried some coding stuff(will publish the detail post later).

From the release, they have mentioned some key updates as listed below,

  • Manage regional settings of a site
  • Manage language settings of a site
  • Manage auditing settings of a site
  • Control advance settings for document sets
  • Support for upcoming enhanced migration APIs
  • Control sandbox solution settings in site collection level
  • Secondary contact in site collection level
  • Sharing settings

Based on the updates, I got interested in Regional settings and that is the first one they have mentioned. So I started with that.

I always do some navigation stuff before start the coding. Same like that, today also I have navigated to Regional Settings page by navigating Site Settings > Regional Settings (under Site Administration ) and investigate how the SharePoint behaves in OOTB.

I have very much interested in manipulating the DOM element through browser developer tools and play with it. Same way today also I have opened the developer tool and explored the time zone dropdown control and start investigate that select element. wow.. it contains a lot of child elements with the timezone information (Id and Description).

Currently I have two trial accounts one from SharePoint Online and another one from Rackspace to validate weather the id and description are same for both the environments.

Both the environments has the same Id and description for the Time Zone Collections. So here comes the hack to get the ids for each timezone.

Explore TimeZone Collection

Explore TimeZone Collection

Get the Select element id and use the below javascript code to get the entire collection of time zones.

var timezones = document.getElementById("ctl00_PlaceHolderMain_ctl01_ctl01_DdlwebTimeZone").children;
var i;
for(i=0 ; i< timezones.length; i++){ console.log(timezones[i].getAttribute('Value') +" \t " + timezones[i].innerHTML ); }

Fetch Timezone Collections

Fetch Timezone Collections

The same way, we can do lot of tricks in sharepoint pages to get the different type of information. Start explore the SharePoint in different angle (Look for different angle – Dialogue from Big Hero 6 movie). :)

Azure Services Free Trial

Azure Services and my thoughts

Two weeks before, I got some interest in Azure Services after seeing lot of tweets (@ktskumar) my following list, videos from channel9.msdn.com and more blogs. Those things got my attention and so I thought to try out other than SharePoint and its related stuffs.

I got this link Microsoft Azure: Cloud Computing Platform and Services when I google “Azure Services” but for the same term I got this link in bing search Directory of Azure Cloud Services | Microsoft Azure as a first result item. This is not I want to talk about, so we continue on azure links,

I have no idea on which one to follow, so I opened the both of the links and got lot of information on both sites.
1. Directory of Azure Cloud Services | Microsoft Azure
This page lists out the various services available in Azure services with some information. As per site they have 3 popular services App Service, SQL Database, and Virtual Machines

2. Microsoft Azure: Cloud Computing Platform and Services
This site shows the solutions provided by Azure cloud platform with three video series links
Get Started – Redirect to the page has 3 mins video teach about how to quickly start with Azure
Free Webinars – Register and view the available webinar videos.
Azure Friday – 10 min weekly video series presented by Scott Hanselman

Now we come to the main picture, that to try out a Azure by clicking on Free Trial (this link is available in both sites). That link redirect us to http://azure.microsoft.com/en-us/pricing/free-trial/

Azure Services Free Trial

Azure Services Free Trial

Ofcourse as I am developer want to explore the Azure Services, so I clicked “Try it Now” instead of buy now option. That redirects me to sign in page, there I have given my Microsoft account details (I already have, if we didn’t have one, that page provides the option for user to signup).

Once I have given right credentials, we will be redirect to https://account.windowsazure.com/signup?offer=ms-azr-0044p. There we have asked to fill the
About You
Automatically populates user’s information and provides the option to change those information
Mobile Verification
Verified with my registered mobile
Payment Details
They are saying this is for verification purposes. As a beginner to Azure Services wants to explore it, why I have to share my Credit card information?. Still I haven’t fill the details and I couldn’t see anywhere in the page says its a mandatory.
Declaration with Sign Up button
Selected “I Agree” check box and clicked the Sign Up button.

Azure Services Sign Up

Azure Services Sign Up

During the button click event nothing happens like redirection, instead it asking us to fill the Payment information.

Here how could the beginner developer or fresh person came to explore or develop applications on Azure would provide the credit card details to start? This is like a barrier on starting Azure Services for the head start.

I am in the middle of the area, about to try this or not. Stay tuned on my blog to have more information.

Enable USB File Transfer on Android Lollipop

Use this tutorial to successfully connect the USB file transfer from Android device and Computer.

  1. Go to Settings > Storage
  2. In the Storage option, tab the three vertical dotsthreedots in top to have “USB Computer Connection” option
    Storage

    Storage

  3. Tab that “USB Computer Connection” fly-out menu

    USB computer connection

    USB computer connection

  4. From the connection view, check any of the below options to transfer files between the computer and android device.
    • Media Device (MTP) – Option used to enable files in computer
    • Camera (PTP) – Option used to enable transfer phots using camera software and also transfer the file with computers that don’t support MTP

    USB computer connection options

    USB computer connection options

Now connect the Android device with the Computer using USB cable to transfer files.

Cheers :)

Restore deleted Top-Level Site or Site Collection

If the site collection user accidentally deletes the top level site, the site collection also gets deleted. This will restrict the user to access the top level site and even sub sites from the site collection.
SharePoint Recycle bin feature doesn’t available for restore the deleted site collection.
Bu SharePoint 2013 provides the another option to restore the deleted site collection,

Whenever the site collection was deleted, the object is removed from SPSite and able to access using SPDeletedSite.To get the site collection back, we have to give Site Collection Id as input.

PowerShell command to Get the deleted Site Collection:
Get-SPDeletedSite < Site Collection server relative URL >
Get-SPDeletedSite –Identity < Site Collection ID >

PowerShell command to restore the deleted Site Collection:
Restore-SPDeletedSite -Identity < Site Collection ID >

Get Permission Levels associated with all Groups in Site – 1

In this post, I will show you have to get the permission level for the Groups associated to the Web Site Level using the Managed Client Object Model.
Managed Client Object Model – Get Permission Levels associated with all Groups in Site

  1. I have my code which supports the Console Application, so create the Console Application in C# Section from Visual Studio.
  2. Then add the Microsoft.SharePoint.Client.dll and Microsoft.SharePoint.Client.Runtime.dll references. We can obtain those two dll’s from below methods,
    1. From 14 Hive / ISAPI Folder (If we installed SharePoint 2010 in your machine)
    2. If SharePoint 2010, not available on the machine; install “SharePoint Foundation 2010 Client Object Model Redistributable” to get those dll’s.
  3. Open the code page and add the following code,

The following code example displays in a console application, the Permission Levels associated to the Groups for the specified Site.

try
{
string siteURL = "http://SiteUrl";
string username = "username";
string password = "password";
string domain = "domain";

ClientContext ctx = new ClientContext(siteURL);
ctx.Credentials = new System.Net.NetworkCredential(username, password, domain);
Web webSite = ctx.Web;

//Following Load method loads,
//Line 2: Identify the website has Unique Perimission or Inherited Permission
//Line 3: Get the WebSite Title Property
//Line 4: Get the collection of RoleAssignment, associated to the Site
//Get the Member and (collection of RoleDefinition) RoleDefinitionBindingCollection property from RoleAssignment
//Line 5,6: Member Property retrives the Title and Id
//Line 7,8: RoleDefintion retrives the Title Property

//Start: Line 0
ctx.Load(webSite, oweb =>
oweb.HasUniqueRoleAssignments,
oweb => oweb.Title,
oweb => oweb.RoleAssignments.Include(
roleAssignment => roleAssignment.Member.Title,
roleAssignment => roleAssignment.Member.Id,
roleAssignment => roleAssignment.RoleDefinitionBindings.Include(
roleDefinition => roleDefinition.Name)));

//End: Line 9

ctx.ExecuteQuery();

//Code for Output Follows
RoleAssignmentCollection roleAssCollection = webSite.RoleAssignments;
Console.WriteLine("Site Title: " + webSite.Title);
Console.WriteLine("Site has Unique Permissions: " + webSite.HasUniqueRoleAssignments);
Console.WriteLine("Group Name \t Group ID \t Permission Level");
Console.WriteLine("******************************************");
foreach (RoleAssignment roleAss in roleAssCollection)
{
Principal roleMember = roleAss.Member;
Console.Write(roleMember.Title + " \t " + roleMember.Id + " \t ");
foreach (RoleDefinition roleDef in roleAss.RoleDefinitionBindings)
{
Console.Write(roleDef.Name + ";");
}
Console.WriteLine("");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

I have uploaded this Code and Executable file in CodePlex with a project named as SharePoint Permissions

File Upload Control Validation not working in firefox

I have tried to validate the File Upload Control to Upload only Video files. I have used the following validation expression in Regular Expression Control.

^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.wmv|.mov|.mp4|.avi)$

The above validation is working in IE and Chrome, but the Firefox not supported this expression.
So I googled for that, and I found a useful link http://forums.asp.net/t/1342216.aspx/1
By referring the above link, I have modified my expression as follows

(.*\.([wW][mM][vV]|[mM][oO][vV]|[mM][pP][4][aA]|[vV][iI])$)

After saving the page and I tested and got worked in all browsers.

After updating, the Regular expression control looks like as follows,

<asp:RegularExpressionValidator ID=”RegularExpressionValidator1″ runat=”server”
ErrorMessage=”Only video files are allowed.”
ValidationExpression=”(.*\.([wW][mM][vV]|[mM][oO][vV]|[mM][pP][4][aA]|[vV][iI])$)”
ControlToValidate=”fileUploadControl” >
Only Video files are allowed
</asp:RegularExpressionValidator>

SharePoint 2013 – New Features (Re-Index List)

SharePoint 2013 is the hot topic now in the SharePoint world. It was released with lot of new features and some of the features are extended and some of them are depreciated. Here I’ll come up with an idea to cover most of the features from SharePoint 2013 in my coming blog posts.

Today I will update the new feature introduced in the latest version to Index the List / Library.

ReIndex List / Library
Now the Latest version provides the facility to re indexing the List. This will be used to index all the contents in a specified List or Library.
We can achive this from following paths,
List -> List Settings -> Advanced Settings

  • Navigate to the List / Library in which you want to re-index the Contents.
  • From the Ribbon, click the List Settings button to navigate to the List Settings Page.
  • From this page, click on Advanced Settings Link
  • In Advanced Settings Page, go to Reindex List for Lists, Reindex Document Library for Libraries.
  • From that, click the Reindex List button (for List) or Reindex Document Library button(for Library) to intiate the indexing for the List.

    Reindex Document Library

  • It will ask for the confirmation, Click Reindex List or Reindex Document Library to re-crawl all the List Items.

    Confirmation for Reindexing Library

During the next crawl schedule, the search service will index all the contents from the List.

For List, the button value is Reindex List
For Library, the button value is Reindex Document Library

ERROR: The Resource Not Found

Every day I am answering lot of questions from colleagues, by coming with mostly the issues in SharePoint.

Today my colleague come with an issue, on getting Error on home page after activating a feature.

I asked him a URL and getting “The resource not found URL” error on browsing that page.

This kind of error arises, if the page couldn’t found the file that was refereed from the Page.

Then i opened the site from SharePoint Designer and tried to open that page,that was created based on page layout.
So i opened that appropriate Page Layout and get the “Master Page error” in Design Mode.
It mentions the master page file url cannot be found.
Then I have open the master page gallery to check that page is checked-out or available in that Gallery.
The specified master Page is not available in the Master Page Gallery.

I have asked him some questions to understand about the feature.

What type of feature that was?
What that will do and what kind of files it will deploy?

He replied, that was a branding feature, that will deploy some of the master pages and set the master pages for entire site collection after activating that feature.

I have asked him to share the Source of the Feature.
I have browsed through the Elements.xml in that feature and view the following lines,


<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="MasterPageGallery" Path="MasterPageGallery" Url="_catalogs/masterpage">
<File Url="myCompay.master" Path="MasterPageGallery" >
</File>
</Module>
</Elements>

And I find that 4th line gets the error, so I have replaced the Elements.xml as follows,

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="MasterPageGallery" Path="MasterPageGallery" Url="_catalogs/masterpage">
<File Url="myCompay.master" Type="GhostableInLibrary" >
<Property Name="UIVersion" Value="4" />
<Property Name="ContentTypeId" Value="0x010105" />
</File>
</Module>
</Elements>

Then I have asked him to build and deploy that feature. After couple of mins, he came back and told me about the successful of deployment and Home Page.

SOLUTION:
If the Page shows “The Resource not Found”, then the problem was some file or resource is missing in the Page or Page Layout or Master Page.

த (TA) – New Tamil Programming Language

Few days before, I got an idea on creating a new Programming Language for Tamil. Before starting, I google to search any other programming languages is already available in Tamil. On Search I have found two programming languages available for Tamil.
It’s great to know that tamil language already got a two programming languages. But I couldn’t get a Executable or Source files. So I have decided to mail them to request the source and executable files on those languages.
1) Ezhil – http://arxiv.org/ftp/arxiv/papers/0907/0907.4960.pdf
2) Swaram – http://www.infitt.org/ti2003/papers/15_ganesh.pdf

I looked their specifications, from that I have got some idea about how the structure and what are words we can use in our new Programming languages.

Today I am just thinking about a new name for Programming Language, TA – த (The First Letter from Tamil word) – Tamil Programming Language. I think everybody likes this name.

Now I got the name, then what are the other things I have to do,
Language to be used to create a new Programming Language. I’d prefer to use ‘C’ and ‘C#’.
To identify the suitable pure Tamil words for semantics.
How the Programming structure looks like.
Editor

First I have thought about using C & C++ also C#. Now I have decided to start with C# to get advanced facilities from that, in meanwhile I’ll also update in C++ to support all other environments.

What about Editor?
First we have to create a editor for programming, compiling. Before that we must know about the Unicode codes for Tamil letters. We can view that for
UNICODE here
TSCII here
TSCII to UNICODE Conversion here
Then I have searched, is there any Tamil editors available as Open Source. The I have thought we can create our own editor for this, that will give flexible in typing and compiling.

And then we have to plan for how the programming structure will look and about the semantics. And what are features we can incorporate in first edition.
I have decided to use the tamil words which easily understood by all. So that developers who’s going to use our language will easily understand.

I need all your help on developing the new Programming Language for Tamil. So that I have started a new separated blog in Tamil and English to update the regular news about the development of TA Language. So we can jointly develop this language, which will be a start for Tamil Language to go on another step.

I have also created a account in Facebook and Twitter. I would like who ever knows, Tamil can help us to develop the TA – Language.

Facebook – http://www.facebook.com/ta.tamilnirali
Twitter – https://twitter.com/ta_tamilnirali

Blog in Tamil – http://tamilniralita.wordpress.com/
Blog in English – http://tamilprogrammingta.wordpress.com/

Contact Mail – tamilniralita@gmail.com , tamilniral@gmail.com