Get Random values from SharePoint list using PowerShell

In this article we are going to learn how to Get Random SharePoint items using PowerShell.
PowerShell is a Powerful scripting language, we can do our work/tasks easily, having so many built-in commands are available in PowerShell. In that we are using Get-Random command to get the random SharePoint list items.




add-pssnapin microsoft.sharepoint.powershell
$web = get-spweb -identity "http://dotnetsharepoint.com /sites/sharepoint/getrandom "
$Employeelist = $web.lists["Employee"];
$listitemsTotal = $Employeelist.Items.Count
$getvalues = $Employeelist.Items
if($listitemsTotal -gt 0)
{
$Random=Get-Random -Count $listitemsTotal -InputObject(1..$listitemsTotal)
}
for($j=0;$j -lt $listitemsTotal;$j++){
$RandomVal=$Random[$j]
$EmpNameName=$getvalues[$RandomVal]["EmployeeId"];
Write-host $RandomVal
write-host $EmpNameName

}

Hide “Edit Links” in quick launch SharePoint 2013

Here you can see how to hide “Edit links” in quick launch left navigation in SharePoint 2013.
This option is useful to drag and drop links in the quick launch, but how ever having access to create a new item they can able to see this option and can also modify these options , we are hiding the Edit Links to restrict all the users, using the CSS  as shown below.
Add the Content Editor or Script Editor in the home page or in any page that you want to hide the “Edit Links”

<style>
.ms-displayInlineBlock
{
display: none;
}
</style>


Move site collection from one content database to another content database

In this article we can able to see how to move site collection from one content database to another content database using PowerShell.
 Using Move-SPSite , this is used to move a site collection from one content database to another content database.
We have to execute the below command.

 Move-SPSite -Identity "http://dotnetsgharepoint.com/sites/movesitecollection"-DestinationDatabase "WSS_AnotherDBName"
-Identity is used to identify the site collection

Once Move-SPSite command executed, have to restart the IIS, run the iisreset command on all the servers in the farm to reflect changes in the IIS.

Create SharePoint sub site using Rest API

In this article you are able to see how to create sub site using Rest API.
We created a custom page and designed UI as per the below, Add this code in the script editor web part.
Create SharePoint Sub site using Client object model

<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.0.min.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"></script>
<script type="text/javascript">
$(document).ready(function () {
               bindButtonClick(); 
 });
 function bindButtonClick() {  
            alert('startbtnclick');
            $("#register").on("click", function() {  
                var name = $("#txtSiteTitle").val();  
                var id = $("#txtSiteDescription").val();  
                var URL = $("#txtSiteURL").val();
                if (name == '' || id == '' || URL == '') {  
                    alert("Please fill all fields...!!!!!!");  
                } else {  
                    createSite();  
                }  
            });  
        } 
function createSite()
{
      var siteTitle = $("#txtSiteTitle").val();  
            var siteDesc = $("#txtSiteDescription").val();  
            var siteUrl =  $("#txtSiteURL").val();
  $.ajax({
   url: "https://dotnetsharepoint.com/Test/_api/web/webinfos/add",
   type: "POST",
   headers: {
    "accept": "application/json;odata=verbose",
    "content-type": "application/json;odata=verbose",
    "X-RequestDigest": $("#__REQUESTDIGEST").val()
   },
   data: JSON.stringify({
    'parameters': {
     '__metadata': {
      'type': 'SP.WebInfoCreationInformation'
     },
     'Url': siteUrl ,
     'Title': siteTitle ,
     'Description': siteDesc ,
     'Language': 1033,
     'WebTemplate': 'sts',
     'UseUniquePermissions': false
    }
   })           
  });
 }
</script>


</head>

<body>  
    <div class="container">  
        <div class="main">  
            <form class="form" method="post" action="#">  
                <h2>Create Client sub Site</h2>
                 <label>Client Site Name :</label> <input type="text" name="dname" id="txtSiteTitle"> 
                 <label>Client Site Description:</label> <input type="text" name="demail" id="txtSiteDescription"> 
                 <label>Client Site URL: </label> <input type="text" name="durl" id="txtSiteURL">
                 <input type="button" name="register" id="register" value="Submit"> </form>  
       </div>  
</body>
  
</html>




Create SharePoint Sub site using Client object model

In this article we can able to see how to create a sub site in SharePoint using Client object model.
Create a custom page and add the below code in the Script Editor Web part.


<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.12.3.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"></script>
 <script src="../_layouts/15/sp.runtime.js" type="text/javascript"> </script>
 <script type="text/javascript"> 
        $(function() { 
            bindButtonClick(); 
        }); 
        function bindButtonClick() { 
           $("#register").on("click", function() { 
                var name = $("#txtSiteTitle").val(); 
                var id = $("#txtSiteDescription").val(); 
                var URL = $("#txtSiteURL").val();
                if (name == '' || id == '' || URL == '') { 
                    alert("Please fill all fields...!!!!!!"); 
                } else { 
                    createSite(); 
                } 
            }); 
        } 

        function createSite() { 

            var siteTitle = $("#txtSiteTitle").val(); 
            var siteDesc = $("#txtSiteDescription").val(); 
            var siteUrl =  $("#txtSiteURL").val(); 
            var clientContext = new SP.ClientContext('https://rptj.sharepoint.com/Test/'); 
            var collWeb = clientContext.get_web().get_webs(); 
            var webCreationInfo = new SP.WebCreationInformation(); 
            webCreationInfo.set_title(siteTitle); 
            webCreationInfo.set_description(siteDesc); 
            webCreationInfo.set_language(1033); 
            webCreationInfo.set_url(siteUrl); 
           webCreationInfo.set_useSamePermissionsAsParentSite(true); 
            webCreationInfo.set_webTemplate('STS#0'); 
            var oNewWebsite = collWeb.add(webCreationInfo); 
            clientContext.executeQueryAsync(Function.createDelegate(this, onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed)); 
        } 
        function onQuerySucceeded() { 
            alert('Site successfully Created!'); 
        } 
       function onQueryFailed(sender, args) { 
            alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 
        } 
    </script> 
</head>



<body> 

    <div class="container"> 
        <div class="main"> 
            <form class="form" method="post" action="#"> 
                <h2>Create Client sub Site</h2> 
               <label>Client Site Name :</label> <input type="text" name="dname" id="txtSiteTitle">
                 <label>Client SIte Description:</label> <input type="text" name="demail" id="txtSiteDescription">
                 <label>Client SIte URL:</label> <input type="text" name="durl" id="txtSiteURL">
                 <input type="button" name="register" id="register" value="Submit"> </form> 
       </div> 
</body>
  </html>




Filtering & Sorting using SharePoint online List with Angular JS & Rest API

In this article we can learn how to do Filtering & Sorting in SharePoint List with Angular JS & Rest API
In a page added the script editor and place the below code.

<style>
        th {
            background-color: blue;
            color: white;
        }
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>

    <script>

    var myAngApp = angular.module('SharePointAngApp', []);
    myAngApp.controller('spCustomerController', function ($scope, $http) {
        $http({
            method: 'GET',
            url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getByTitle('InfoList')/items?$select=Title,Employee,Company",
            headers: { "Accept": "application/json;odata=verbose" }
        }).success(function (data, status, headers, config) {
            $scope.customers = data.d.results;
$scope.mySortFunction = function(customer) {//Sorting Iteam
                                    if(isNaN(customer[$scope.sortExpression]))
                                                return customer[$scope.sortExpression];
                                    return parseInt(customer[$scope.sortExpression]);
                        }
        }).error(function (data, status, headers, config) {

        });

    });

    </script>

    <h1> Filtering and sorting in SharePoint List using AngularJS-REST-API !!</h1>
    <br /><br />
    <div ng-app="SharePointAngApp" class="row">
        <div ng-controller="spCustomerController" class="span10">
            <div>
                Sort by:
                <select ng-model="sortExpression">
                    <option value="Title">Title</option>
                    <option value="Employee">Employee</option>
                    <option value="Company">Company</option>
                </select>
            </div>

            <br />
            Search By Any:
            <input type="text" ng-model="search.$" />
            <br />
            <br />
            <table class="table table-condensed table-hover">
                <tr>
                    <th>Title</th>
                    <th>Employee</th>
                    <th>Company</th>

                </tr>
                <tr ng-repeat="customer in customers  | orderBy:mySortFunction | filter:search">
                    <td>{{customer.Title}}</td>
                    <td>{{customer.Employee}}</td>
                    <td>{{customer.Company}}</td>
                </tr>
            </table>
        </div>
    </div>  


Get data from SharePoint Online list using Rest api & Angular JS


In this article you can see how to bind data from list using Rest API and Angular JS.
We are having a list with name "InfoList”, in the page we added the script editor and added the below code.
What is difference between AngularJS and Angular 2
<style>
table, td, th {
    border: 1px solid blue;
}

th {
    background-color: Green;
    color: white;
}
</style>
<script type="text/javascript"  src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
<script>
   
    var myAngApp = angular.module('SharePointAngApp', []);

    myAngApp.controller('spCustomerController', function ($scope, $http) {
        $http({
            method: 'GET',
            url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getByTitle('InfoList')/items?$select=Title,Employee,Company",
            headers: { "Accept": "application/json;odata=verbose" }
        }).success(function (data, status, headers, config) {
            $scope.customers = data.d.results;
        }).error(function (data, status, headers, config) {
      
        });
    });
   

</script>

<h1> Angular JS SharePoint REST API !!</h1>

<div ng-app="SharePointAngApp" class="row">
    <div ng-controller="spCustomerController" class="span10">
        <table class="table table-condensed table-hover">
            <tr>
                <th>Title</th>
                <th>Employee</th>
                <th>Company</th>
              
            </tr>
            <tr ng-repeat="customer in customers">
                <td>{{customer.Title}}</td>
                <td>{{customer.Employee}}</td>
                <td>{{customer.Company}}</td>
                </tr>
        </table>
    </div>
</div>

      
        });
    });
     
</script>




What is difference between AngularJS and Angular 2


AngularJS 1:


·         AngularJS is a structural Framework for dynamic web apps. It can be added to an HTML page with a <Script> tag.

·         It extends HTML attributes with directives & binds data to HTML with expressions.

·         It is fully open source & free to use.

AngularJS has different directives, provides various functionality in the application.

ng-app: This directive initializes an AngularJS application

Ex: <div ng-app = ""></div>

ng-model: This directive is used to bind the values from AngularJS application to HTML input controls.

Ex: <input type = "text" ng-model = "name">

ng-bind: This directive bind AngularJS application data into HTML tags.

Ex: <span ng-bind = "name"></span>

 ng-repeat: This directive is used to repeat html element.

Angular 2:


·         Angular 2 implements unidirectional tree based change detection which again increases performance.

·         It implements web standards like components, and it provides better performance than AnguarJS 1.

·         In Angular 2, local variables are defined using hash (#) prefix.

Ex: <div *ngFor="# customer in customers” >


Difference between AngularJS 1.x & Angular 2:


AngularJS 1 .x
Angular 2
It was not built with mobile support.
Mobile oriented
Languages support: ES5, Es6, and Dart.
More choice for language.
Languages support:  Es5, ES6, Typescript or Dart.
Easy to setup, we need to add reference of the library.
It is not easy to setup.It is dependent of other libraries and it requires some efforts to set up it.
Controllers
Angular 1.x Controller:
var myApp = angular
.module("myModule", [])
.controller("productController", function($scope) {
         var prods = { name: "Prod1", quantity: 1 };
         $scope.products = prods;
});
Controllers are replaced with Components
Angular 2 Components using Typescript:
import { Component } from '@angular/core';
@Component({
    selector: 'prodsdata',
    template: '<h3>{{prods.name}}</h3>'
})
export class ProductComponent {
    prods = {name: 'Prod1', quantity: 1 };
}
Structural Directives
ng-repeat
Example:
<ul>
   <li ng-repeat="technology in technologies">
     {{technology.name}}
   </li>
</ul>
Structural Directives
*ngFor
Example:
<ul>
  <li *ngFor="#technology of technologies">
    {{technology.name}}
  </li>
</ul>
Asterisk (*) sign is used as prefix for structural directives & camel case syntax is used.
It is not used camel case syntax for built-in directives.
Example:
ng-class, ng-model
Uses camel case syntax for built-in directives.
Example:
ngClass , ngModel
Angular 1 not directly used valid HTML DOM element properties and events.
Example:
ng-href , ng-src, ng-show & ng-hide
Events:
ng-click, ng-blur
<button ng-click=”Showdata()”>
Directly uses the valid HTML DOM element properties and events.
Example:
href, src & hidden
Events:
click
<button (click) =”Showdata()”>
ng-bind is used for One-way data binding directive
Example:
<input ng-bind=”my.name”></input>
One-way data binding directive replaced with [Property]
Example:
<button (click) = “showdata()”>
ng-model is used for two-way data binding
Example:
<input ng-model=”my.name”></input>
Two way data binding is replaced with [(ngModel)]
Example:
<input [(ngModel)]=”my.name”></input>
AngularJS 1.x using ng-app for Bootstrapping.
Example:
<script>
   angular.element(document).ready(function() {
      angular.bootstrap(document, ['myApp']);
   });
</script>
Angular 2 using bootstrapping via code.
Example:
import { bootstrap } from 'angular2/platform/browser';
import { ProductComponent } from '-/product.component';
bootstrap(ProductComponent);

Get First release before public release in Office 365


We can get early updates before public release in Office 365, Office 365 team releasing the updates for two types of users.
Two types of User Releases:

1.       Standard Users
2.       First release Users
By default all users are selected under Standard user category. First release users will get the updates before the standard users.  We have to enable the first release feature. 


First Release Enable:

 Navigate to Office 365 Admin Center.

Click on “Settings” tab -> Organizational Profile. Admin only can view and manage the organization profile details.
 
By default it’s showing “Standard Release”  , click on “Edit” to change the Release track to “First release”
Here we can see two options for First release
First release for every one -> We can get updates for entire organization.
First release for selected users -> We have to pick people to preview the updates.
 Now am selecting “First release for selected users” then click “ Next”
 
\
 
Click “Yes” to update release for Select People.
          Click “Add People” to add people into Release preference.
 
 
We can add Multiple or single user here. Check the users and click Save.
                Click on Close to update list of Users.
 
 
Now, we can see First release on Release track.