none
Связанные элементы в списке задач SharePoint

    Вопрос

  • Добрый день.

    Есть SharePoint 2016. Там есть список задач, в котором у каждой задачи есть один связанный элемент.

    Проблема в том, что я не могу просмотреть его. Т.е. посмотреть что это за элемент такой связан с задачей.

    Возможно список задач кастомизировал предыдущий разработчик, но он уволился, и спросить не у кого.

    Поэтому приходится обращаться сюда на форум.

    Чего я успел сделать:

    Открыл список задач в режиме редактирования страницы. Далее "Изменить web-часть" \ "Разное"

    В самом низу:

    JS-ссылка: SP.UI.RelatedItems.js | ~sitecollection/_catalogs/masterpage/FinTemplates/RelatedItems.js

    Нахожу RelatedItems.js

    там код:

    NotifyScriptLoadedAndExecuteWaitingJobs("SP.UI.RelatedItems.js");
    (function () { 
            
        function registerRenderer()
        {
            var filedContext = {};
            filedContext.Templates = {};
            filedContext.Templates.Fields = {
                "LinkTitle": {
                    "View": titleViewTemplate
                }
            };
            SPClientTemplates.TemplateManager.RegisterTemplateOverrides(filedContext);
        }
    
        function titleViewTemplate(ctx) {
            
            var title = ctx.CurrentItem.Title;				
            var context = SP.ClientContext.get_current();
            var relItems = SP.RelatedItemManager.getRelatedItems(context, ctx.listName, ctx.CurrentItem.ID);
    						
            context.executeQueryAsync(
                function () {
                    //return relItems[0].$2_1;
                    $('a').filter(function (index) { return $(this).text() === title }).attr('href', relItems[0].$2_1);
                },
                function (sender, args) {
                    console.log(args.get_message());
                }
            );
    
            return '<a>' + ctx.CurrentItem.Title + '</a>'
        }
        
        ExecuteOrDelayUntilScriptLoaded(registerRenderer, 'clienttemplates.js');
        //ExecuteOrDelayUntilScriptLoaded(registerRenderer, 'SP.UI.RelatedItems.js');
    
    })();
    

    Посмотрел значения 

    context, ctx.listName, ctx.CurrentItem.ID

    через console.log()...

    В результате:

    context = {Object}

    ctx.listName = {F79F1DE9-9CB7-40F8-A0F5-9B2FB33AC3C8}

    ctx.CurrentItem.ID = 6698

    Но функция SP.RelatedItemManager.getRelatedItems(context, ctx.listName, ctx.CurrentItem.ID);

    (Смотрю в консоль Google Chrome) Возвращает:

    []

    0: SP.RelatedItem

    length: 1

    __proto__:Array(0)

    т.е. почему то массив с нулём элементов.

    Народ, подскажите? Может быть NotifyScriptLoadedAndExecuteWaitingJobs("SP.UI.RelatedItems.js");

    не выполняется корректно?

    • Изменено VARD32 19 мая 2017 г. 9:20