Как получить идентификатор типа контента AllowedContentTypes документа, установленного в sharepoint JSOM - PullRequest
0 голосов
/ 30 мая 2020

Как получить AllowedContentTypes набора документов в JSOM sharepoint с полным идентификатором, а не родительским. в этом случае мы получим разрешенный тип содержимого внутри do c set, но идентификатор родителя мы получим не реальный. мы получим идентификатор типа контента, например '0x01010A', а не полный с guid и шестнадцатеричным, что я хотел сказать, когда мы используем код ниже:

<script type="text/javascript">
  // ExecuteOrDelayUntilScriptLoaded(getCT, "sp.js");


SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function() {
    SP.SOD.executeFunc('sp.documentmanagement.js', 'SP.DocumentSet.DocumentSet', function() {

        var docSetUrl = getQueryStringValue("RootFolder");  //<- Doc Set Url
        getDocumentSetContentTypes(docSetUrl,
           function(ctIds)
           {
               //print content type ids
               ctIds.get_data().forEach(function(ctId){
                    console.log(ctId.get_stringValue());
                    alert(ctId.get_stringValue());
               });
           },
           logError);
    });   
});


function logError(sender,args){
   console.log(args.get_message());
}

function getFolder(url,success,error)
{
    var ctx = SP.ClientContext.get_current();
    var folder = ctx.get_web().getFolderByServerRelativeUrl(url);
    ctx.load(folder,'ListItemAllFields');
    ctx.executeQueryAsync(
       function(){
          success(folder);
       },
       error);
}

function getDocumentSetContentTypes(folderUrl,success,error)
{
      getFolder(folderUrl,
           function(folder)
           {
               var folderItem = folder.get_listItemAllFields();
               var ct = folderItem.get_contentType();
               var ctx = folder.get_context(); 
               var template = SP.DocumentSet.DocumentSetTemplate.getDocumentSetTemplate(ct);
               var ctIds = template.get_allowedContentTypes();
               ctx.load(ctIds);
               ctx.executeQueryAsync(
                 function(){
                    success(ctIds);
                 },
                 error);  
           },
           error);
}


    function getQueryStringValue (key) {  
  return unescape(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + escape(key).replace

(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));  
} 


</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...