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).
Steps Involved
- 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).
- Go to Site Actions, click on Edit Page.
3. Click on Insert tab in the ribbon interface and then click on Web Part button.
4. Select Media and Content in the Categories section and then click on Content Editor.
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.
8. Click on "Click here to add new content".
9. Click on Format Text tab in the ribbon interface and then click on HTML drop down.
10. Click on Edit HTML source.
11. HTML source window will pop up.
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.
15. In the content editor web part you could find a button named "Content Type – Read Only", click on that button.
16. Alert will pop up which displays the Boolean value.
Reference:
- SP.ContentType.update(updateChildren) Method -http://msdn.microsoft.com/en-us/library/ee659181.aspx
- 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.