How to Make The Content Type Read-Only in SharePoint 2010 Using ECMAScript



Introduction
 
In this article you will see how to make the content type read-only in SharePoint 2010 using ECMAScript. I have a content type named "Custom Content Type" that belongs to "Custom Content Types" group (Navigate to the site, click on Site Actions. Click on Site Settings. In the Galleries section, click on Site Content Types. Click on "Custom Content Type". Click on Advanced Settings in the Settings section. You could find an option to make the content type read only).

mg1.gif

Steps Involved

  1. Navigate to the SharePoint site (I have a site page created in my site where I am going to add the content editor web part).
  2. Go to Site Actions, click on Edit Page.

mg2.gif
 
   3.  Click on Insert tab in the ribbon interface and then click on Web Part button.
 
mg3.gif
 
   4.  Select Media and Content in the Categories section and then click on Content Editor.
 
mg4.gif

    5.  Click on Add.
    6.  Content editor web part will be added to the site page.
    7.  Click the down-arrow and then click on Edit Web Part.
 
mg5.gif
 
    8. Click on "Click here to add new content".
 
mg6.gif
 
    9. Click on Format Text tab in the ribbon interface and then click on HTML drop down.
 
mg7.gif
 
   10. Click on Edit HTML source.
   11. HTML source window will pop up.
 
mg8.gif
 
   12. Copy and paste the following script.

<script language="ecmascript" type="text/ecmascript">

 

        var contentTypeCollection;

        var contentType;

 

        function readOnlyContentType() {

            var clientContext = new SP.ClientContext.get_current();

            if (clientContext != undefined && clientContext != null) {

                var web = clientContext.get_web();

                this.contentTypeCollection = web.get_contentTypes();

                this.contentType = contentTypeCollection.getById("0x0100FFC434A461E47E4EB81D3FD76D42BFBF");

                this.contentType.set_readOnly(true);

                this.contentType.update(false);

                clientContext.load(this.contentType);

                clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));

            }

        }

 

        function onQuerySucceeded() {

            alert(this.contentType.get_readOnly())

        }

 

        function onQueryFailed(sender, args) {

            alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());

        }</script>

    <input id="btnreadOnlyContentType" onclick="readOnlyContentType()" type="button"

        value="Content Type - Read Only" />
    13. Click on Ok.
    14. In the ribbon interface click on Save & Close button.
 
mg9.gif
 
    15. In the content editor web part you could find a button named "Content Type – Read Only", click on that button.
 
mg10.gif
 
    16. Alert will pop up which displays the Boolean value.
 
Reference:

  1. SP.ContentType.update(updateChildren) Method -http://msdn.microsoft.com/en-us/library/ee659181.aspx
  2. SP.ContentTypeCollection.readOnly Property -http://msdn.microsoft.com/en-us/library/ee549436.aspx

Summary
 
Thus in this article you have seen how to make the content type read-only in SharePoint 2010 using ECMAScript.