Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.25 KB | None | 0 0
  1. var excludedLibraries = ["List Template Gallery", "Test"];
  2. var clientContext;
  3. var docLibNames = [];
  4. var docLibCounter = 0;
  5. var contentTypeNames = [];
  6. var contentTypeCounter = 0;
  7. var field = {displayName: '', staticName: '', type: '', readOnly: '', hidden: ''};
  8. var contentType = {name: '', id: '', readOnly: '', fields: []};
  9. var docLib = {name: '', contentTypes: []};
  10. var docLibs = [];
  11. var docLibColl;
  12. var cntTypeColl;
  13. var fields;
  14.  
  15. function getdocLibs() {
  16. var siteUrl = 'RelativeSiteURl';
  17. clientContext = new SP.ClientContext(siteUrl);
  18. docLibColl = clientContext.get_web().get_lists();
  19. clientContext.load(docLibColl, 'Include(Title, BaseType, ContentTypes)');
  20. clientContext.executeQueryAsync(Function.createDelegate(this, this.onDocLibQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
  21.  
  22. }
  23.  
  24. function onDocLibQuerySucceeded() {
  25. var listEnumerator = docLibColl.getEnumerator();
  26. while(listEnumerator.moveNext()) {
  27. var list = listEnumerator.get_current();
  28. if(list.get_baseType() == 1){
  29. var docLibName = list.get_title();
  30. if($.inArray(docLibName, excludedLibraries) == -1)
  31. docLibNames.push(docLibName);
  32. }
  33. }
  34. getContentTypes();
  35. }
  36.  
  37. function getContentTypes()
  38. {
  39. if(docLibCounter < docLibNames.length) {
  40. var list = docLibColl.getByTitle(docLibNames[docLibCounter]);
  41. cntTypeColl = list.get_contentTypes();
  42. clientContext.load(cntTypeColl, 'Include(Name, Id, ReadOnly, Fields)');
  43. clientContext.executeQueryAsync(Function.createDelegate(this, this.onCntTypeQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
  44. }
  45. else
  46. {
  47. var firstUl = $('<ul>');
  48. $('#DisplayData').append(firstUl);
  49. for(var i = 0; i < docLibs.length; i++) {
  50. var firstLi = $('<li>');
  51. firstUl.append(firstLi.text('Document Library Name: ' + docLibs[i].name));
  52. for(var j = 0; j < docLibs[i].contentTypes.length; j++) {
  53. var secondUl = $('<ul>');
  54. firstLi.append(secondUl);
  55. var secondLi = $('<li>');
  56. secondUl.append(secondLi.text('Content Type Name: ' + docLibs[i].contentTypes[j].name));
  57. var thirdUl = $('<ul>');
  58. secondLi.append(thirdUl);
  59. var thirdLi = $('<li>');
  60. thirdUl.append(thirdLi.text('Properties'));
  61. var fourthUl = $('<ul>');
  62. thirdLi.append(fourthUl);
  63. var fourthLi = $('<li>');
  64. fourthUl.append(fourthLi.text('Id: ' + docLibs[i].contentTypes[j].id));
  65. var fifthLi = $('<li>');
  66. fourthUl.append(fifthLi.text('Read Only: ' + docLibs[i].contentTypes[j].readOnly));
  67.  
  68. for(var k = 0; k < docLibs[i].contentTypes[j].fields.length; k++) {
  69. var thirdUl = $('<ul>');
  70. secondLi.append(thirdUl);
  71. var thirdLi = $('<li>');
  72. thirdUl.append(thirdLi.text('Field Name: ' + docLibs[i].contentTypes[j].fields[k].displayName));
  73. var fourthUl = $('<ul>');
  74. thirdLi.append(fourthUl);
  75. var fourthLi = $('<li>');
  76. fourthUl.append(fourthLi.text('Static Name: ' + docLibs[i].contentTypes[j].fields[k].staticName));
  77. var fifthLi = $('<li>');
  78. fourthUl.append(fifthLi.text('Type: ' + docLibs[i].contentTypes[j].fields[k].type));
  79. var sixthLi = $('<li>');
  80. fourthUl.append(sixthLi.text('Read Only: ' + docLibs[i].contentTypes[j].fields[k].readOnly));
  81. var seventhLi = $('<li>');
  82. fourthUl.append(seventhLi.text('Hidden: ' + docLibs[i].contentTypes[j].fields[k].hidden));
  83.  
  84. }
  85. }
  86. }
  87. $('#Status').text('Data fetching complete.');
  88. }
  89. }
  90.  
  91. function onCntTypeQuerySucceeded() {
  92. var cntTypeEnumerator = cntTypeColl.getEnumerator();
  93. contentTypeNames = [];
  94. contentTypeCounter = 0;
  95. while(cntTypeEnumerator.moveNext()) {
  96. var cntType = cntTypeEnumerator.get_current();
  97. var cntTypeName = cntType.get_name();
  98. contentTypeNames.push(cntTypeName);
  99. }
  100. getFields();
  101. }
  102.  
  103. function getFields()
  104. {
  105. if(contentTypeCounter < contentTypeNames.length)
  106. {
  107. var cntType = cntTypeColl.getItemAtIndex(contentTypeCounter);
  108. var cntTypeName = cntType.get_name();
  109. var cntTypeId = cntType.get_id().toString();
  110. var cntTypeReadOnly = cntType.get_readOnly();
  111. contentType = {name: cntTypeName, id: cntTypeId, readOnly: cntTypeReadOnly, fields: []};
  112.  
  113. fields = cntType.get_fields();
  114. clientContext.load(fields, 'Include(Title, StaticName, FieldTypeKind, ReadOnlyField, Hidden)');
  115. clientContext.executeQueryAsync(Function.createDelegate(this, this.onFieldsQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
  116. }
  117. else
  118. {
  119. docLib.name = docLibNames[docLibCounter]
  120. docLibs.push(jQuery.extend(true, {}, docLib));
  121. docLib = {name: '', contentTypes: []};
  122. docLibCounter++;
  123. $('#Percent').text(Math.round(100*docLibCounter/docLibNames.length));
  124. getContentTypes();
  125. }
  126. }
  127.  
  128. function onFieldsQuerySucceeded() {
  129. var fieldEnumerator = fields.getEnumerator();
  130. while(fieldEnumerator.moveNext()) {
  131. var field = fieldEnumerator.get_current();
  132. var fieldDisplayName = field.get_title();
  133. var fieldStaticName = field.get_staticName();
  134. var fieldType = field.get_fieldTypeKind();
  135. var fieldReadOnly = field.get_readOnlyField();
  136. var fieldHidden = field.get_hidden();
  137. var field = {displayName: fieldDisplayName, staticName: fieldStaticName, type: fieldType, readOnly: fieldReadOnly, hidden: fieldHidden};
  138. contentType.fields.push(field);
  139. }
  140. docLib.contentTypes.push(jQuery.extend(true, {}, contentType));
  141. contentType = {name: '', id: '', readOnly: '', fields: []};
  142. contentTypeCounter++;
  143. getFields();
  144. }
  145.  
  146. function onQueryFailed(sender, args) {
  147. alert('request Failed. ' + args.get_message() + 'n' + args.get_stackTrace());
  148. }
  149.  
  150. $(document).ready(function() {
  151. ExecuteOrDelayUntilScriptLoaded(getdocLibs, "sp.js");
  152. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement