Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var excludedLibraries = ["List Template Gallery", "Test"];
- var clientContext;
- var docLibNames = [];
- var docLibCounter = 0;
- var contentTypeNames = [];
- var contentTypeCounter = 0;
- var field = {displayName: '', staticName: '', type: '', readOnly: '', hidden: ''};
- var contentType = {name: '', id: '', readOnly: '', fields: []};
- var docLib = {name: '', contentTypes: []};
- var docLibs = [];
- var docLibColl;
- var cntTypeColl;
- var fields;
- function getdocLibs() {
- var siteUrl = 'RelativeSiteURl';
- clientContext = new SP.ClientContext(siteUrl);
- docLibColl = clientContext.get_web().get_lists();
- clientContext.load(docLibColl, 'Include(Title, BaseType, ContentTypes)');
- clientContext.executeQueryAsync(Function.createDelegate(this, this.onDocLibQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
- }
- function onDocLibQuerySucceeded() {
- var listEnumerator = docLibColl.getEnumerator();
- while(listEnumerator.moveNext()) {
- var list = listEnumerator.get_current();
- if(list.get_baseType() == 1){
- var docLibName = list.get_title();
- if($.inArray(docLibName, excludedLibraries) == -1)
- docLibNames.push(docLibName);
- }
- }
- getContentTypes();
- }
- function getContentTypes()
- {
- if(docLibCounter < docLibNames.length) {
- var list = docLibColl.getByTitle(docLibNames[docLibCounter]);
- cntTypeColl = list.get_contentTypes();
- clientContext.load(cntTypeColl, 'Include(Name, Id, ReadOnly, Fields)');
- clientContext.executeQueryAsync(Function.createDelegate(this, this.onCntTypeQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
- }
- else
- {
- var firstUl = $('<ul>');
- $('#DisplayData').append(firstUl);
- for(var i = 0; i < docLibs.length; i++) {
- var firstLi = $('<li>');
- firstUl.append(firstLi.text('Document Library Name: ' + docLibs[i].name));
- for(var j = 0; j < docLibs[i].contentTypes.length; j++) {
- var secondUl = $('<ul>');
- firstLi.append(secondUl);
- var secondLi = $('<li>');
- secondUl.append(secondLi.text('Content Type Name: ' + docLibs[i].contentTypes[j].name));
- var thirdUl = $('<ul>');
- secondLi.append(thirdUl);
- var thirdLi = $('<li>');
- thirdUl.append(thirdLi.text('Properties'));
- var fourthUl = $('<ul>');
- thirdLi.append(fourthUl);
- var fourthLi = $('<li>');
- fourthUl.append(fourthLi.text('Id: ' + docLibs[i].contentTypes[j].id));
- var fifthLi = $('<li>');
- fourthUl.append(fifthLi.text('Read Only: ' + docLibs[i].contentTypes[j].readOnly));
- for(var k = 0; k < docLibs[i].contentTypes[j].fields.length; k++) {
- var thirdUl = $('<ul>');
- secondLi.append(thirdUl);
- var thirdLi = $('<li>');
- thirdUl.append(thirdLi.text('Field Name: ' + docLibs[i].contentTypes[j].fields[k].displayName));
- var fourthUl = $('<ul>');
- thirdLi.append(fourthUl);
- var fourthLi = $('<li>');
- fourthUl.append(fourthLi.text('Static Name: ' + docLibs[i].contentTypes[j].fields[k].staticName));
- var fifthLi = $('<li>');
- fourthUl.append(fifthLi.text('Type: ' + docLibs[i].contentTypes[j].fields[k].type));
- var sixthLi = $('<li>');
- fourthUl.append(sixthLi.text('Read Only: ' + docLibs[i].contentTypes[j].fields[k].readOnly));
- var seventhLi = $('<li>');
- fourthUl.append(seventhLi.text('Hidden: ' + docLibs[i].contentTypes[j].fields[k].hidden));
- }
- }
- }
- $('#Status').text('Data fetching complete.');
- }
- }
- function onCntTypeQuerySucceeded() {
- var cntTypeEnumerator = cntTypeColl.getEnumerator();
- contentTypeNames = [];
- contentTypeCounter = 0;
- while(cntTypeEnumerator.moveNext()) {
- var cntType = cntTypeEnumerator.get_current();
- var cntTypeName = cntType.get_name();
- contentTypeNames.push(cntTypeName);
- }
- getFields();
- }
- function getFields()
- {
- if(contentTypeCounter < contentTypeNames.length)
- {
- var cntType = cntTypeColl.getItemAtIndex(contentTypeCounter);
- var cntTypeName = cntType.get_name();
- var cntTypeId = cntType.get_id().toString();
- var cntTypeReadOnly = cntType.get_readOnly();
- contentType = {name: cntTypeName, id: cntTypeId, readOnly: cntTypeReadOnly, fields: []};
- fields = cntType.get_fields();
- clientContext.load(fields, 'Include(Title, StaticName, FieldTypeKind, ReadOnlyField, Hidden)');
- clientContext.executeQueryAsync(Function.createDelegate(this, this.onFieldsQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
- }
- else
- {
- docLib.name = docLibNames[docLibCounter]
- docLibs.push(jQuery.extend(true, {}, docLib));
- docLib = {name: '', contentTypes: []};
- docLibCounter++;
- $('#Percent').text(Math.round(100*docLibCounter/docLibNames.length));
- getContentTypes();
- }
- }
- function onFieldsQuerySucceeded() {
- var fieldEnumerator = fields.getEnumerator();
- while(fieldEnumerator.moveNext()) {
- var field = fieldEnumerator.get_current();
- var fieldDisplayName = field.get_title();
- var fieldStaticName = field.get_staticName();
- var fieldType = field.get_fieldTypeKind();
- var fieldReadOnly = field.get_readOnlyField();
- var fieldHidden = field.get_hidden();
- var field = {displayName: fieldDisplayName, staticName: fieldStaticName, type: fieldType, readOnly: fieldReadOnly, hidden: fieldHidden};
- contentType.fields.push(field);
- }
- docLib.contentTypes.push(jQuery.extend(true, {}, contentType));
- contentType = {name: '', id: '', readOnly: '', fields: []};
- contentTypeCounter++;
- getFields();
- }
- function onQueryFailed(sender, args) {
- alert('request Failed. ' + args.get_message() + 'n' + args.get_stackTrace());
- }
- $(document).ready(function() {
- ExecuteOrDelayUntilScriptLoaded(getdocLibs, "sp.js");
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement