zondag 11 januari 2015

Check or Get People Picker value.


New function to check if a people picker field is empty or to get the value of a people picker field.
Functions that may be usefull to use in presave actions when editing or creating new list items. 

The function IsPeoplePickerEmpty must be called with a parameter that contains the title of your field. Or with the value of the text that stands on the left side of your people picker field. 

The function  GetPeoplePickerValue must be called with a parameter that contains the title of your field. Or with the value of the text that stands on the left side of your people picker field. It returns a string containing the key of your people picker field. This is the domain and userid of the inserted value. 

Remark. The GetPeoploePickerValue only works with a single user People Picker field. 

 
function IsPeoplePickerEmpty( titel )
{
  if (( $('nobr:contains("'+ titel +'")').closest("td").next("td").find('input')[1].value  == " ") || ( $('nobr:contains("'+ titel +'")').closest("td").next("td").find('input')[1].value  == "") )
         return true;
  else
         return false;
}
function GetPeoplePickerValue(titel)
{
    var result = "";
        if (!IsPeoplePickerEmpty(titel))
        {
                result = $('nobr:contains("'+ titel +'")').closest("td").next("td").find('input')[1].value;
                result = result.substring(result.indexOf("key=") + 5 );
                result = result.substring(0,result.indexOf("'"));
        }
    return result;
}

Set a PeoplePicker Field without a GUID !


A new function that lot's of people may help if they want to set a value of a People Picker field. 
There are examples to find on the internet how you may do it by using the GUID of the field. This because the People Picker field is made of different html parts. You can't set a value in the field directly by calling his Title property like most of the other SharePoint Fields.
But next function by calling the label of the field (the text you have giving on the screen), and a value (Full name of a person or the userid of a person)


Enjoy the new function !! 

Remark, the function only works for setting one value to the people picker field. 
test
// call the new function Set PeoplePicker.
//
SetPeoplePicker (title, userid);

function SetPeoplePicker(My_Title, userid)
{
        try{
                 var ppID = $($('nobr:contains("' + My_Title + '")').closest("td").next("td").find('div')[0]).attr('id');
                 var ppID_userfield = ppID.substring(0,ppID.indexOf("_upLevelDiv"));
                 var a_ppID = ppID_userfield.split('_');
                 var a_ppID_Length = a_ppID.length;
                 var ppID_userfield2 = a_ppID[0] + '$' +  a_ppID[1] + '$' +  a_ppID[2] ;
                 for ( i = 3; i < a_ppID_Length - 4; i++)
                 {
                       ppID_userfield2 = ppID_userfield2 + '_' + a_ppID[i];
                 }
                 ppID_userfield2 = ppID_userfield2 + '$' +   a_ppID[a_ppID_Length - 4] + '$' +   a_ppID[a_ppID_Length - 3] + '$' +   a_ppID[a_ppID_Length - 2] + '$' +   a_ppID[a_ppID_Length - 1] ;
        
                $('#' + ppID ).text(userid);
                //recognize the people picker driver name
                if(!ValidatePickerControl(ppID_userfield )){
                        ShowValidationError();
                        return false;
                }
                var arg=getUplevel(ppID_userfield );
                var ctx = ppID_userfield ;
                EntityEditorSetWaitCursor(ctx);
                WebForm_DoCallback(ppID_userfield2 ,arg,EntityEditorHandleCheckNameResult,ctx,EntityEditorHandleCheckNameError,true);
        }catch(err){
                $('#' + ppID).text("");
        }
}


zaterdag 13 september 2014

Create a Sharepoint Group and add a PermissionLevel to that new Sharepoint Group


In a previous blogpost you saw how to break the inheritance of a site. Well by completing the request
of my customer, I wrote some code for also creating a own Sharepoint Group and give it 
a specific permission level. 

Enjoy my next custom code for creating a group and adding a permission level to it. 

  

      
 

 

function addGroup( )
{
   var groupsname = "FILL IN HERE THE NAME OF YOUR SHAREPOINT GROUP";
   var groupsOwner = "DOMAIN/USERID";
   var groupsDesc = "FILL IN HERE THE DESCRIPTION FOR YOUR SHAREPOINT GROUP"; 
   var soapEnv ="";
   soapEnv =            '';
   soapEnv = soapEnv  + '';
   soapEnv = soapEnv  + '';
   soapEnv = soapEnv  + '';
   soapEnv = soapEnv  + ''+ groupsname + '';
   soapEnv = soapEnv  + '' + groupsOwner + '';
   soapEnv = soapEnv  + 'user';
   soapEnv = soapEnv  + '' + groupsOwner + '';
   soapEnv = soapEnv  + '' + groupsDesc + '';
   soapEnv = soapEnv  + '  ';
   soapEnv = soapEnv  + '';
 
  $.ajax({
        url: "URL OF YOUR SITE BY STARTING HTTP /_vti_bin/UserGroup.asmx",
        type: "POST",
 async : false,
        dataType: "xml",
        beforeSend: function(xhr) {
           xhr.setRequestHeader("SOAPAction",
               "http://schemas.microsoft.com/sharepoint/soap/directory/AddGroup");
           },
        data: soapEnv,
        error: processMyError,
        complete: processResultAddGroep,
        contentType: "text/xml; charset=\"utf-8\""
  }); 

}


function processMyError(xhr, error)
{
  alert(xhr);
  alert("dd "+error);
}


function processResultAddGroep (xData, status)
{ 
// adding the Permissionlevel to your group. If you don't do this, the Sharepoint Group will be created, 
// but will not be visible in the list of Groups. 
  callAddRole();
}


function callAddRole ()
{
  var soapEnv ="";
  var groupsName = "FILL IN HERE THE NAME OF YOUR SHAREPOINT GROUP";
  var roleName = "FILL IN HERE THE NAME OF THE PERMISSION LEVEL, EX Contribute";

  soapEnv =            '';
  soapEnv = soapEnv  + '';
  soapEnv = soapEnv  + '';
  soapEnv = soapEnv  + '';
  soapEnv = soapEnv  + '' + groupsName  + '';
  soapEnv = soapEnv  + '' + roleName +  '';
  soapEnv = soapEnv  + '  ';
  soapEnv = soapEnv  + '';
  $.ajax({
         url: "FILL IN HERE THE URL OF YOUR SITE /_vti_bin/UserGroup.asmx",
         type: "POST",
         async: false, 
         dataType: "xml",
         beforeSend: function(xhr) {
                          xhr.setRequestHeader("SOAPAction",
                          "http://schemas.microsoft.com/sharepoint/soap/directory/AddGroupToRole");
                     },
         data: soapEnv,
         error: processMyError,
         complete: processResultAddRole,
         contentType: "text/xml; charset=\"utf-8\""
  });

}

function processResultAddRole(xData, status)
{ 
  alert("status: " + status);
  $('#error').val(status);
  alert("response: "+ xData.responseText);
  $('#errormessage').val(xData.responseText);

} 

woensdag 10 september 2014

Break site permission inheritance in code


Break site permission inheritance in code

Sometimes your want to allow your customer to create a site or a subsite with a simple click. 
And you want that same click to break the permission inheritance of its parent site.

Well, it has taken me some research but I have found a solution to do exactly that in code. 
Just put this code on a Sharepoint page. 
Or include the Sharepoint client object model into your custom page.

Enjoy the power of scripting ! 

  

      
 
function BreakRole()
{
   var copyRoleAssignments = true;
   var clearSubscopes = true;
   var clientContext = new SP.ClientContext.get_current();
   // or if your want to break another sites inheritance
   // var clientContext = new SP.ClientContext("/sites/YourSitecollection/yourSite");
   var oWebsite = clientContext.get_web();
   var $v_0 = new SP.ClientActionInvokeMethod(oWebsite, 'BreakRoleInheritance', [ copyRoleAssignments, clearSubscopes ]);
   clientContext.addQuery($v_0);
   clientContext.executeQueryAsync();
}
 

zondag 7 september 2014

Trigger click event in your aspx page


How to trigger easely an event on your Sharepoint ASPX page by using JQuery. 
Well, it doesn't need very mutch to trigger automatically by example the save event
by using your scripting language.For example if somebody fills all required fields in 
and you detected that is was filled in correctly... you can trigger the save event without asking
the user to click on the save button. And this saves time for your customer. 

A simple line of code that you can put in your javascript 
Don't forget that you have to import your JQuery library ! 
  

      $("input[value='Save']").trigger("click");
 

donderdag 28 november 2013

Set Focus on a sharepoint Field in scripting

To setting the focus of an input field in jquery, it was simple. But when you have a peoplepicker field
you think that you also are dealing with an input field, but less is true.
A sharepoint People Picker field isn't that easy made.
But we won't be a developer, if we could make a function that put's the focus also 
on a people picker field.
Below you find my function. It can be extended with other fields if necessary. 
You call it not by using the GUID, but by using the display name. Which is more flexible and easier, 
because you don't need to search for the GUID in the source code. 
 
You can call it by the next function. You only need the Field Display Name and the Type of field. 
The type can be at this moment, an Input field, a People Picker, or a  Select field. 

This you can use by example when you want to check values in the PreSaveAction function and 
you want to put the focus on a field that has to be changed.  
 
Have fun with it... and if you need an extention, don't hesitate to ask... 

 
function FirstfocusExtended(veldnaam, type)
{
                switch (type.toLowerCase())
                {
                               case "input" :
                                               $(":input[title='" + veldnaam + "']").focus();
                                               break;
                               case "peoplepicker" :
                                               $("nobr:contains('" + veldnaam + "')").closest("td").next("td").find("div").focus();
                                               break;
                               case "select" :
                                               $(":select[title='" + veldnaam + "']").focus();
                                               break;
                               default :
                                               break;
                }
}

dinsdag 26 november 2013

Set a check or more checkboxes of a choice field selected.


A nice new function is created today for my colleague. 
If you want to check a checkbox of a checkbox field or a multi choice field, 
you can use the next function. 
You can call it by not knowing the GUID of the checkbox you want to select. But you can call it with 
the Display Name (Title) of your field. 
If it only one checkbox, you call it like this :
SetChoiceFieldValue ("YOUR TITLE", 1, true);
 
If you have a choice field with more options, you can select specific entries 
by setting the index to the checkbox you want to select. 
You can use the same function also to uncheck the field. You only have to set the last param to false. 

It's a nice jquery function that makes your scripting more flexible. 


 
function SetChoiceFieldValue(titel, index, b_checked)
{
        var TD = $('nobr:contains("'+ titel + '")').closest("td").next("td").find('input');
        if (index <= TD.length + 1)
        {
                TD[index-1].checked = b_checked;
        }
}

maandag 14 oktober 2013

Filter inputfields on a Sharepoint Field for instantly filtering


Had a customer today that wanted a online filtering on a table. 
Found out next part of code in a previous project in Sharepoint 2007 of an old colleague. 
And like it or not, but it also works in Sharepoint 2010.
It is a simple script that adds input fields below each column of your Sharepoint View. 
When entering a text in a column filter field, it hides all rows of your View that not 
corresponds with the value that you have added. 

Have fun with it ! 

$(document).ready(function()
{
 jQuery.extend(jQuery.expr[':'], {
 containsIgnoreCase: function(a,i,m) {return (a.textContent||a.innerText||jQuery(a).text()||'').toLowerCase().indexOf((m[3]||'').toLowerCase())>=0}
});

$("table tr.ms-viewheadertr").each(function()
{
    if($("td.ms-vh-group", this).size() > 0)
    {
        return;
    }
    var tdset = "";
    var colIndex = 0;
    $(this).children("th,td").each(function()
    {
        if($(this).hasClass("ms-vh-icon"))
        {
            // attachment
            tdset += "";
        }
        else
        {
            // filterable
            tdset += ">input class="vossers-filterfield" filtercolindex="" + colIndex + "" type="text" />>br />
";                                                          
        }
        colIndex++;
    });
    var tr = "" + tdset + "";
    $(tr).insertAfter(this);
});          

$("input.vossers-filterfield")
    .css("border", "1px solid #7f9db9")
    .css("width", "100%")
    .css("margin", "2px")
    .css("padding", "2px")
    .keyup(function()
 {                                            
  var inputClosure = this;
  if(window.VossersFilterTimeoutHandle)
  {
   clearTimeout(window.VossersFilterTimeoutHandle);
  }
  window.VossersFilterTimeoutHandle = setTimeout(function()
  {
   var filterValues = new Array();
   $("input.vossers-filterfield", $(inputClosure).parents("tr:first")).each(function()
   {                                                            
    if($(this).val() != "")                                                     
    {
     filterValues[$(this).attr("filtercolindex")] = $(this).val();
    }
   });                          
   $(inputClosure).parents("tr.vossers-filterrow").nextAll("tr").each(function()
   {
    var mismatch = false;
    $(this).children("td").each(function(colIndex)
    {
     if(mismatch) return;
     if(filterValues[colIndex])
     {
      var val = filterValues[colIndex];
      // replace double quote character with 2 instances of itself
      val = val.replace(/"/g, String.fromCharCode(34) + String.fromCharCode(34));                                                                                                      
      if($(this).is(":not(:containsIgnoreCase('" + val + "'))"))
      {
       mismatch = true;
      }                                                                                           
     }
    });
    if(mismatch)
    {
     $(this).hide();
    }
    else
    {
     $(this).show();
    }                             
   });                                                         
  }, 250);
    });
});

 

zaterdag 12 oktober 2013

Check if a Multi Selectable Sharepoint Choice Field value is Checked.


I'm starting to write my own sharepoint helperclass with functions 
that can be called without knowing the ID's of the Sharepoint Fields, 
but by using the field Display Names. 

This function is to know if a certain value of a multi selectable 
choice field is checked or not.


// call the function
// CheckChoiceFieldValue ("DISPLAYNAME", 1) check of first value is checked
// CheckChoiceFieldValue ("DISPLAYNAME", 2) check of second value is checked
  
function CheckChoiceFieldValue(titel, index)
{
 var TD = $('nobr:contains("'+ titel + '")').closest("td").next("td").find('input');
    var bTD = false;
    if (index <= TD.length + 1)
    {
  return TD[index-1].checked;
 }
    return false;
}
 

vrijdag 11 oktober 2013

Disable a Hyperlink field without knowing the ID of your Sharepoint Field


I'm starting to write my own sharepoint helperclass with functions 
that can be called without knowing the ID's of the Sharepoint Fields, 
but by using the field Display Names. 

This function is to Disable or Enable a Sharepoint Hyperlink Field.


// call the function
// DisableHttpLink ("DISPLAYNAME", True) to disable the field
// DisableHttpLink ("DISPLAYNAME", False) to enable the field
  
function DisableHttpLink(titel, b_disable)
{
 var TD = $('nobr:contains("'+ titel + '")').closest("td").next("td").find('input');
    for(var i = 0; i < TD.length;i++)
    {
  $("#" + TD[i].id).attr("disabled",b_disable);
    }
}
 

donderdag 10 oktober 2013

Disable a Choice field without knowing the ID of your Sharepoint Field


I'm starting to write my own sharepoint helperclass with functions 
that can be called without knowing the ID's of the Sharepoint Fields, 
but by using the field Display Names. 

This function is to Disable or Enable a Sharepoint Choice Field.


// call the function
// DisableAChoiceField ("DISPLAYNAME", "input|select", True) to disable the field
// DisableAChoiceField ("DISPLAYNAME", "input|select", False) to enable the field
  
function DisableAChoiceField(titel, type, b_disable)
{
    if (type == "input")
  var TD = $('nobr:contains("'+ titel + '")').closest("td").next("td").find('input');
    if (type == "select")
  var TD = $('nobr:contains("'+ titel + '")').closest("td").next("td").find('select');
    for(var i = 0; i < TD.length;i++)
    {
  $("#" + TD[i].id).attr("disabled",b_disable);
    }
}
 

woensdag 9 oktober 2013

Disable a PeoplePicker Field without knowing the ID of your Sharepoint Field


I'm starting to write my own sharepoint helperclass with functions 
that can be called without knowing the ID's of the Sharepoint Fields, 
but by using the field Display Names. 

This function is to Disable or Enable a Sharepoint PeoplePicker Field.


// call the function
// DisablePeoplePicker ("DISPLAYNAME", True) to disable the field
// DisablePeoplePicker ("DISPLAYNAME", False) to enable the field
  
function DisablePeoplePicker( titel, b_disable)
{
    $('nobr:contains("'+titel+'")').closest("td").next("td").find("div").attr("contentEditable",false);
    if (b_disable)
    {
        $('nobr:contains("'+titel+'")').closest("td").next("td").find("div").css("backgroundColor","silver");
        $('nobr:contains("'+titel+'")').closest("td").next("td").find("img").hide();
    }
    else
    {
        $('nobr:contains("'+titel+'")').closest("td").next("td").find("div").css("backgroundColor","white");
        $('nobr:contains("'+titel+'")').closest("td").next("td").find("img").show();
    }
}
 

dinsdag 8 oktober 2013

Disable a Date field without knowing the ID of your Sharepoint Field


I'm starting to write my own sharepoint helperclass with functions 
that can be called without knowing the ID's of the Sharepoint Fields, 
but by using the field Display Names. 

My first function isn't complete yet.
Disable or Enable a Date Field.
It will be completed very soon with the type "DateTime". 


// call the function
// DisableDateField ("DISPLAYNAME", "Date", True) to disable the field
// DisableDateField ("DISPLAYNAME", "Date", False) to enable the field
  
function DisableDateField (titel, type, b_disable)
{
    if (type == "Date")
 {
        $(':input[title="'+titel+'"]').attr("disabled",b_disable);
        if (b_disable)
            $(':input[title="'+titel+'"]').closest("td").next("td").hide();       
        else
   $(':input[title="'+titel+'"]').closest("td").next("td").show();
 }
}
 

zondag 4 augustus 2013

Disable Save button on an Edit Form and the Ribbon Save Button


If you want to play with the Save button of Sharepoint, and also the save buttons in the ribbon,
you can use the next script in a Content Editor webpart. 
I have written my own custom Function for this nice functionality that I use all the time since I wrote it.
It let me help to prevent the Save action for users when your Item has a certain status. 
But not with playing with the security! 

I use a Status field that has the type Choise Field. 
Here I put the different steps that my form can have. For example a step for Acceptation,
or a step for Refusing, Canceling, etc. 
When for example a form has the step Refused, nobody my edit the item anymore. 
You can do this by playing with 
security settings in a workflow, but you risk that the workflow isn't executed directly. 
At that moment somebody can still change the item!
And Item Level Security on big lists aren't supported! 

With this method, you prevent that nobody save changes in your custom Edit form 
when the Item field Status has a certain value. 
And you can specify some administators, or a second EditForm where you can allow to edit 
the Item for an intervention. 

If you have remarks, please let me know... 
  

$(document).ready( function() {
            checkStatusForSave();
});

  

function checkStatusForSave()

{
// I use a custom Status Choise field for workflow actions. 
   var fieldStatusRef = $(':select[title="Status"]');
   var StatusRef = $(':select[title="Status"]').val();
   switch (StatusRef)
        {
            case 'Waiting for action A':
// the Item may be saved.
                        disableSave(false);
            break;
            case 'Refused':
// you may not save any changes to the Item.
                        disableSave(true);

            break;
            default:
        }
}

function disableSave(bAlways)
{

 if($(':span[title="Open Menu"]').text().indexOf('FILL IN YOUR NAME SO YOU CAN SAVE ITEMS') == -1)
 { // not an administrator
      if (bAlways)
      {
          $(':input[value="Save"]').attr("disabled",true);
          $("span.ms-cui-ctl-largelabel:contains('Save')").parent("a").hide();
      }
      else
      {
          if ($(':span[title="Open Menu"]').text().indexOf($(':input[title="Title"]').val()) != -1)
          {
              $(':input[value="Save"]').attr("disabled",true);
              $("span.ms-cui-ctl-largelabel:contains('Save')").parent("a").hide();
          }
          else
          {
              $(':input[value="Save"]').attr("disabled",false);
              $("span.ms-cui-ctl-largelabel:contains('Save')").parent("a").show();
          }
      }
 }
}
 

Sharepoint Images and Icons of the Sharepoint Layouts folder


Found a nice blog where you can find a list of all the sharepoint images 
that are used in sharepoint.
So if you want to create your own links, you can use these images in your pages.  


SharePointLayoutImages

Thanks to Peter for this wonderfull site. 
  

donderdag 17 januari 2013

Replace Point keystroke with a Comma


Sometimes you need to prevent your user to use some key characters in your Input Fields.
Like my customer wanted also to use the Comma [,] as the Point [.] as decimal seperator. 
If you use for example Dutch regional settings the decimal seperator is the [,] and the Point is used
as thousant seperator. So my customer wanted to use as Point as Comma as seperator. 
What to do about it? 
Simple answer. Catch the keystroke of the Point and replace it by a Comma. 
My solution below is not perfect if they put a Point between the numbers. 
If someone knows what I have to add in place of the fill up of the ","
please don't hesitate to let me know.
 

$(document).ready(function() {
 if ($(":input[title='MyField']").val() != "")
  $("nobr:contains('MyField')").closest('tr').hide();
 ReplacePointbyComma();
});

function ReplacePointbyComma(){
    $(":input[title='MyNumericField']").keydown(function(e) {
  var keycode = (e.keyCode ? e.keyCode : e.which);
  /// 110 Point on numeric keyblock
  /// 190 Shift Point in alfanumeric keyblock
  if (keycode == 110 || keycode == 190 )
  {
   e.preventDefault();
   $(":input[title='MyNumericField']").val($(":input[title='MyNumericField']").val() + ",");
  }
 });
}
 

maandag 7 januari 2013

List of available Sharepoint Services

List of available Sharepoint Services
SharePoint Object Model is a .Net based Application Programming Interface to interact with SharePoint components. But all the applications written using SharePoint Object Model require to be run on the SharePoint Server itself. It is not possible to use it to work remotely with a SharePoint Server.

SharePoint Web Services provides the capability to work with SharePoint server remotely. But SharePoint Web Services are not as much as rich as SharePoint Object Model and all SharePoint features and components are not accessible through Web Services. But it includes Web Services to interact with most commonly used SharePoint features and components. If out-of-the-box SharePoint Web Services doesn’t fit on our requirements, we can also build custom web service on top of SharePoint leveraging the SharePoint Object Model API.
I had prepared a concise list of SharePoint Web Services for my own reference which I am sharing with you:  

1) Administration Web Service (http://<site>/_vti_bin/Admin.asmx): The Administration Web service provides methods that can beused to manage Windows SharePoint Services such as creating or deleting site collections. 
Following are the main methods provided by this service:
  • CreateSite
  • DeleteSite
  • GetLanguages
  • RefreshConfigCache
2) Alerts Web Service (http://<Site>/_vti_bin/Alerts.asmx):
The alerts web service provides methods for working with alert subscriptions
for the listitems in a SharePoint site remotely. Alert subscriptions specify when and how notifications are sent to users when changes are made to content stored on the server. Following are the two main methods provided by this service:
  • GetAlerts
  • DeleteAlerts
3) Copy Web Service (http://<Site>/_vti_bin/Copy.asmx):

This web service provides capability to move files from one list to another within a SharePoint site or between different SharePoint sites. Following are the main methods provided by this service:

  • GetItem
  • CopyIntoItems
  • CopyIntoItemsLocal
4) Document Workspace Web Service (http://<Site>/_vti_bin/Dws.asmx):

This web service provides methods for managing Document Workspace sites and the data they contain. Following are the main methods provided by this service:

a) Managing Document Workspace sites

  • CanCreateDwsUrl
  • CreateDws
  • RenameDws
  • DeleteDws
b) Managing data for the Document Workspace site

  • GetDwsData
  • GetDwsMetaData
  • UpdateDwsData
c) Managing folders in the Document Workspace site

  • CreateFolder
  • DeleteFolder
d) Managing documents in the Document Workspace site

  • FindDwsDoc
e) Managing site users for the Document Workspace site

  • RemoveDwsUser

5) Forms Web Service (http://<Site>/_vti_bin/Forms.asmx):

The Forms service provides methods for returning forms that are used in the user interface when working with the contents of a list. There are following two methods available:

  • GetForm 
  • GetFormCollection
6) Imaging Web Service (http://<Site>/_vti_bin/Imaging.asmx):

The Imaging service provides methods that enable you to create and manage picture libraries. There are following methods that can be utilized with the imaging web service:

  • CheckSubwebAndList
  • CreateNewFolder
  • Delete
  • Download
  • Edit
  • GetItemsByIds
  • GetItemsXMLData
  • GetListItems
  • ListPictureLibrary
  • Rename
  • Upload 

7) Lists Web Service (http://<site>/_vti_bin/Lists.asmx):

The Lists Web service provides methods for working with SharePoint lists, content types, list items, and files. There are following methods that can be utilized with the Lists web service:

  • AddAttachment
  • AddDiscussionBoardItem
  • AddList
  • AddListFromFeature
  • ApplyContentTypeToList
  • CheckInFile
  • CheckOutFile
  • CreateContentType
  • DeleteAttachment
  • DeleteContentType
  • DeleteContentTypeXmlDocument
  • DeleteList
  • GetAttachmentCollection
  • GetList
  • GetListAndView
  • GetListCollection
  • GetListContentType
  • GetListContentTypes
  • GetListItemChanges
  • GetListItemChangesSinceToken
  • GetListItems
  • GetVersionCollection
  • UndoCheckOut
  • UpdateContentType
  • UpdateContentTypeXmlDocument
  • UpdateList
  • UpdateListItems

8) Meetings Web Service (http://<Site>/_vti_bin/Meetings.asmx):

This web service enables you to create and manage Meeting Workspace sites. Following are the main methods available in the web service:

  • AddMeeting
  • AddMeetingFromICal
  • CreateWorkspace
  • DeleteWorkspace
  • GetMeetingWorkspaces
  • GetMeetingsInformation
  • RemoveMeeting
  • RestoreMeeting
  • SetAttendeeResponse
  • SetWorkspaceTitle
  • UpdateMeeting
  • UpdateMeetingFromICal

9) People Web Service (http://<Site>/_vti_bin/People.asmx):

This service provides methods that can be used to associate user identifiers (IDs) with security groups for SharePoint Web site permissions. It contains following methods:

  • GetPrincipalsInGroup
  • ResolvePrincipals
  • SearchPrincipals

10) Permissions Web Service (http://<site>/_vti_bin/Permissions.asmx):

Permissions Web service provides methods for working with SharePoint list and site permissions. Following are the various methods available in this service:

  • AddPermission
  • AddPermissionCollection
  • GetListItemPermissionsByUser
  • GetListPermissionsByUser
  • GetPermissionCollection
  • GetPermissionsByToken
  • GetPermissionsByUser
  • RemovePermission
  • RemovePermissionCollection
  • UpdatePermission

11) SharePoint Directory Management Service (http://<Site>/_vti_bin/sharepointemailws.asmx):

This service provides methods for managing Active Directory e-mail distribution groups and their membership. It provides following main methods:

  • CreateContact
  • DeleteContact
  • ModifyContact
  • CreateDistributionGroup
  • DeleteDistributionGroup
  • ModifyDistributionGroup
  • RenameDistributionGroup
  • ChangeContactsMembershipInDistributionGroup
  • ChangeUsersMembershipInDistributionGroup 

12) Site Data Web Service (http://<Site>/_vti_bin/SiteData.asmx):

The Site Data service provides methods that return metadata or list data from sites or lists in Microsoft Windows SharePoint Services. This web service is read only. Following are the main methods provided by this service:

  • GetList
  • GetListCollection
  • GetListItems 
  • EnumerateFolder
  • GetAttachments
  • GetChanges
  • GetContent
  • GetSite
  • GetWeb 
  • GetSiteAndWeb
  • GetSiteUrl
  • GetURLSegments 

13) Sites Web Service (http://<Site>/_vti_bin/Sites.asmx):

The Sites service provides a method for returning information about the collection of site templates on the virtual server. Following are the main methods provided by this service:

  • ExportWeb
  • ImportWeb
  • GetSiteTemplates
  • GetUpdatedFormDigest

14) Search Web Service (http://<site>/_vti_bin/search.asmx):

The QueryService can be used to query the search indexes in the same way that you would search from the home page of a SharePoint site. Main methods available in this service are as below:

  • Query
  • QueryEx
  • GetPortalSearchInfo
  • GetSearchMetadata
  • Registration
  • Status 

15) Users and Groups Web Service (http://<Site>/_vti_bin/usergroup.asmx):

The Users and Groups Web service provides methods for working with users, role definitions, and groups. It provides huge number of methods which are listed below:

  • AddGroup
  • AddGroupToRole
  • AddRole
  • AddRoleDef
  • AddUserCollectionToGroup
  • AddUserCollectionToRole
  • AddUserToGroup
  • AddUserToRole
  • GenerateXmlMappings 
  • GetAllUserCollectionFromWeb
  • GetGroupCollection
  • GetGroupCollectionFromRole
  • GetGroupCollectionFromSite
  • GetGroupCollectionFromUser
  • GetGroupCollectionFromWeb
  • GetGroupInfo
  • GetHashCode 
  • GetLifetimeService 
  • GetRoleCollection
  • GetRoleCollectionFromGroup
  • GetRoleCollectionFromUser
  • GetRoleCollectionFromWeb
  • GetRoleInfo
  • GetRolesAndPermissionsForCurrentUser
  • GetRolesAndPermissionsForSite
  • GetUserCollection
  • GetUserCollectionFromGroup
  • GetUserCollectionFromRole
  • GetUserCollectionFromSite
  • GetUserCollectionFromWeb
  • GetUserInfo
  • GetUserLoginFromEmail
  • RemoveGroup
  • RemoveGroupFromRole
  • RemoveRole
  • RemoveUserCollectionFromGroup
  • RemoveUserCollectionFromRole
  • RemoveUserCollectionFromSite
  • RemoveUserFromGroup
  • RemoveUserFromRole
  • RemoveUserFromSite
  • RemoveUserFromWeb
  • UpdateGroupInfo
  • UpdateRoleDefInfo
  • UpdateRoleInfo
  • UpdateUserInfo 

16) Versions Web Service (http://<site>/_vti_bin/Versions.asmx):

Versions Web service provides methods for working with file versions in SharePoint document libraries. Methods included in this service:

  • DeleteAllVersions 
  • DeleteVersion 
  • GetVersions 
  • RestoreVersion 

17) Views Web Service (http://<site>/_vti_bin/Views.asmx):

Views Web service provides methods for creating, deleting, or updating list views. Methods included in this service are as below:

  • AddView
  • DeleteView
  • GetView 
  • GetViewCollection 
  • GetViewHtml 
  • UpdateView 
  • UpdateViewHtml

18) Web Part Pages Web Service (http://<Site>/_vti_bin/WebPartPages.asmx):

Web Part Pages service provides methods for working with Web Parts. Following are the various methods provided by this service:

  • AddWebPart
  • AddWebPartToZone
  • AssociateWorkflowMarkup
  • ConvertWebPartFormat
  • DeleteWebPart
  • ExecuteProxyUpdates
  • FetchLegalWorkflowActions
  • GetCustomControlList
  • GetDataFromDataSourceControl
  • GetFormCapabilityFromDataSourceControl
  • GetWebPart
  • GetWebPart2
  • GetWebPartCrossPageCompatibility
  • GetWebPartPage
  • GetWebPartPageConnectionInfo
  • GetWebPartPageDocument
  • GetWebPartProperties
  • GetWebPartProperties2
  • GetXmlDataFromDataSource
  • RemoveWorkflowAssociation
  • RenderWebPartForEdit
  • SaveWebPart
  • SaveWebPart2
  • ValidateWorkflowMarkupAndCreateSupportObjects 

19) Webs Web Service (http://<Site>/_vti_bin/Webs.asmx):

Webs service provides methods for working with sites and subsites. Following are the various methods provided by this service:

  • CreateContentType
  • CustomizeCss
  • DeleteContentType
  • GetActivatedFeatures
  • GetAllSubWebCollection
  • GetColumns
  • GetContentType
  • GetContentTypes
  • GetCustomizedPageStatus
  • GetListTemplates
  • GetWeb
  • GetWebCollection
  • RemoveContentTypeXmlDocument
  • RevertAllFileContentStreams
  • RevertCss
  • RevertFileContentStream
  • UpdateColumns
  • UpdateContentType
  • UpdateContentTypeXmlDocument
  • WebUrlFromPageUrl 

To get the full details of above SharePoint Web Services and their respective Methods please visit SharePoint Web Services MSDN Page @ http://msdn.microsoft.com/en-us/library/ms479390.aspx.

 

 



Visit the Sharepoint Community site for all Sharepoint related info.

Belfius Bank

dinsdag 27 november 2012

How to give a Date field the correct format in a custom DispForm


I have one new trick to tell you today...

Imagine you have a Sharepoint list with a Date field that is only showing a date value and not the Time. If you create a Custom Display Form in Sharepoint Designer, you will see something incredible.

    - Date field shows Time value
    - Date field shows less 1 hour, which might lead to show one less day in date value

Just like this:


Check how I got the Date format...


1. Open your custom form in Sharepoint Designer and select the date value.


2. Click the Formule button and write the following Formule:

ddwrt:FormatDate(string(@Date), 1033, 1)

    Don't forget to use the string function!! Otherwise it will give you an error in XPath
    1033 is the locale code, check other locale codes here List of Locale Codes
    1 is the date format, the possible values are 1, 4, 5, 7,12, 13 or 15, each represent a different date format, pick the one that suites you better.

At least save your form and you will see a splendid result.

Enjoy my little trick... 

LCID Dec values for the XSLT FormatDate function

Use the LCID Dec values for the FormatDate function.
ddwrt:FormatDate(string(@Date), 1033, 1)
Language - Country/RegionLCID HexLCID Dec
Afrikaans - South Africa04361078
Albanian - Albania041c1052
Alsatian04841156
Amharic - Ethiopia045e1118
Arabic - Saudi Arabia04011025
Arabic - Algeria14015121
Arabic - Bahrain3c0115361
Arabic - Egypt0c013073
Arabic - Iraq08012049
Arabic - Jordan2c0111265
Arabic - Kuwait340113313
Arabic - Lebanon300112289
Arabic - Libya10014097
Arabic - Morocco18016145
Arabic - Oman20018193
Arabic - Qatar400116385
Arabic - Syria280110241
Arabic - Tunisia1c017169
Arabic - U.A.E.380114337
Arabic - Yemen24019217
Armenian - Armenia042b1067
Assamese044d1101
Azeri (Cyrillic)082c2092
Azeri (Latin)042c1068
Bashkir046d1133
Basque042d1069
Belarusian04231059
Bengali (India)04451093
Bengali (Bangladesh)08452117
Bosnian (Bosnia/Herzegovina)141A5146
Breton047e1150
Bulgarian04021026
Burmese04551109
Catalan04031027
Cherokee - United States045c1116
Chinese - People's Republic of China08042052
Chinese - Singapore10044100
Chinese - Taiwan04041028
Chinese - Hong Kong SAR0c043076
Chinese - Macao SAR14045124
Corsican04831155
Croatian041a1050
Croatian (Bosnia/Herzegovina)101a4122
Czech04051029
Danish04061030
Dari048c1164
Divehi04651125
Dutch - Netherlands04131043
Dutch - Belgium08132067
Edo04661126
English - United States04091033
English - United Kingdom08092057
English - Australia0c093081
English - Belize280910249
English - Canada10094105
English - Caribbean24099225
English - Hong Kong SAR3c0915369
English - India400916393
English - Indonesia380914345
English - Ireland18096153
English - Jamaica20098201
English - Malaysia440917417
English - New Zealand14095129
English - Philippines340913321
English - Singapore480918441
English - South Africa1c097177
English - Trinidad2c0911273
English - Zimbabwe300912297
Estonian04251061
Faroese04381080
Farsi04291065
Filipino04641124
Finnish040b1035
French - France040c1036
French - Belgium080c2060
French - Cameroon2c0c11276
French - Canada0c0c3084
French - Democratic Rep. of Congo240c9228
French - Cote d'Ivoire300c12300
French - Haiti3c0c15372
French - Luxembourg140c5132
French - Mali340c13324
French - Monaco180c6156
French - Morocco380c14348
French - North Africae40c58380
French - Reunion200c8204
French - Senegal280c10252
French - Switzerland100c4108
French - West Indies1c0c7180
Frisian - Netherlands04621122
Fulfulde - Nigeria04671127
FYRO Macedonian042f1071
Galician04561110
Georgian04371079
German - Germany04071031
German - Austria0c073079
German - Liechtenstein14075127
German - Luxembourg10074103
German - Switzerland08072055
Greek04081032
Greenlandic046f1135
Guarani - Paraguay04741140
Gujarati04471095
Hausa - Nigeria04681128
Hawaiian - United States04751141
Hebrew040d1037
Hindi04391081
Hungarian040e1038
Ibibio - Nigeria04691129
Icelandic040f1039
Igbo - Nigeria04701136
Indonesian04211057
Inuktitut045d1117
Irish083c2108
Italian - Italy04101040
Italian - Switzerland08102064
Japanese04111041
K'iche04861158
Kannada044b1099
Kanuri - Nigeria04711137
Kashmiri08602144
Kashmiri (Arabic)04601120
Kazakh043f1087
Khmer04531107
Kinyarwanda04871159
Konkani04571111
Korean04121042
Kyrgyz (Cyrillic)04401088
Lao04541108
Latin04761142
Latvian04261062
Lithuanian04271063
Luxembourgish046e1134
Malay - Malaysia043e1086
Malay - Brunei Darussalam083e2110
Malayalam044c1100
Maltese043a1082
Manipuri04581112
Maori - New Zealand04811153
Mapudungun04711146
Marathi044e1102
Mohawk047c1148
Mongolian (Cyrillic)04501104
Mongolian (Mongolian)08502128
Nepali04611121
Nepali - India08612145
Norwegian (Bokmål)04141044
Norwegian (Nynorsk)08142068
Occitan04821154
Oriya04481096
Oromo04721138
Papiamentu04791145
Pashto04631123
Polish04151045
Portuguese - Brazil04161046
Portuguese - Portugal08162070
Punjabi04461094
Punjabi (Pakistan)08462118
Quecha - Bolivia046B1131
Quecha - Ecuador086B2155
Quecha - Peru0C6B3179
Rhaeto-Romanic04171047
Romanian04181048
Romanian - Moldava08182072
Russian04191049
Russian - Moldava08192073
Sami (Lappish)043b1083
Sanskrit044f1103
Scottish Gaelic043c1084
Sepedi046c1132
Serbian (Cyrillic)0c1a3098
Serbian (Latin)081a2074
Sindhi - India04591113
Sindhi - Pakistan08592137
Sinhalese - Sri Lanka045b1115
Slovak041b1051
Slovenian04241060
Somali04771143
Sorbian042e1070
Spanish - Spain (Modern Sort)0c0a3082
Spanish - Spain (Traditional Sort)040a1034
Spanish - Argentina2c0a11274
Spanish - Bolivia400a16394
Spanish - Chile340a13322
Spanish - Colombia240a9226
Spanish - Costa Rica140a5130
Spanish - Dominican Republic1c0a7178
Spanish - Ecuador300a12298
Spanish - El Salvador440a17418
Spanish - Guatemala100a4106
Spanish - Honduras480a18442
Spanish - Latin America580a22538
Spanish - Mexico080a2058
Spanish - Nicaragua4c0a19466
Spanish - Panama180a6154
Spanish - Paraguay3c0a15370
Spanish - Peru280a10250
Spanish - Puerto Rico500a20490
Spanish - United States540a21514
Spanish - Uruguay380a14346
Spanish - Venezuela200a8202
Sutu04301072
Swahili04411089
Swedish041d1053
Swedish - Finland081d2077
Syriac045a1114
Tajik04281064
Tamazight (Arabic)045f1119
Tamazight (Latin)085f2143
Tamil04491097
Tatar04441092
Telugu044a1098
Thai041e1054
Tibetan - Bhutan08512129
Tibetan - People's Republic of China04511105
Tigrigna - Eritrea08732163
Tigrigna - Ethiopia04731139
Tsonga04311073
Tswana04321074
Turkish041f1055
Turkmen04421090
Uighur - China04801152
Ukrainian04221058
Urdu04201056
Urdu - India08202080
Uzbek (Cyrillic)08432115
Uzbek (Latin)04431091
Venda04331075
Vietnamese042a1066
Welsh04521106
Wolof04881160
Xhosa04341076
Yakut04851157
Yi04781144
Yiddish043d1085
Yoruba046a1130
Zulu04351077
HID (Human Interface Device)04ff1279
List copied from http://msdn.microsoft.com/en-us/goglobal/bb964664

dinsdag 6 november 2012

Horizontal alignment of Choise Fields


This week I found a way to change the alignment of a Choice Field.
Nice to know if you have list of questions where somebody has to choose
between for example three answers. 

You only have to make a custom New/Edit page in Sharepoint Designer
and add the next line
<xsl:comment>FieldName="Display Name"</xsl:comment>                                                          
just before the sharepoint Formfield definition <SharePoint:FormField …

Change the "Display Name" by the display name of your Sharepoint Field.

Add a Content Editor webpart to your page and 
put the next Jquery script in this webpart.


<script>
$( document ).ready( function() {
// columnName = Field Display Name
// perRow = how many choices you want to see in one row.
            $().SPServices.SPArrangeChoices({
                        columnName : "Display Name",
                        perRow: 3
                        });
});
</script>