Библиотека документов Sharepoint — имя файла для заголовка с использованием javascript

Добрый вечер!

У меня была рабочая функциональность в библиотеке документов sharepoint. Его цель состояла в том, чтобы скопировать имя файла в столбец заголовка.

Он работал долгое время, но после обновления платформы sharepoint перестал работать, и я не могу понять, почему.

Код:

<input type="button" onclick="updateTitleFromName()" value="Update Title from Name" />

<script type="text/javascript" src="/Scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="/Scripts/spjs-utility/spjs-utility.js"></script>
<script type="text/javascript">

function updateTitleFromName(){
    var q, res, uRes, count;
    count = 0;
    q = "<Where><IsNull><FieldRef Name='Title' /></IsNull></Where>";
    res = spjs_QueryItems({"listName":_spPageContextInfo.pageListId,"query":q,"viewFields":["ID","FileLeafRef"]});
    if(res.count === 0){
        alert("No files without title found.");
        return;
    }
    if(!confirm("There are "+res.count+" files to update. The page will appear as frozen while the script is working.\n\nContinue?")){
        return;
    }
    $.each(res.items,function(i,item){
        uRes = spjs_updateItem({"listName":_spPageContextInfo.pageListId,"id":item.ID,"data":{"Title":item.FileLeafRef.split(";#")[1]}});
        if(!uRes.success){
            alert("Could not update the file: "+item.FileLeafRef+" due to the follwing error:\n\n"+uRes.errorText);
        }else{
            count += 1;
        }
    });
    alert("Updated "+count+" files.");
    location.href = location.href;
}
</script>

Ошибка: TypeError: $spjs имеет значение null. И это происходит внутри библиотеки spjs-utility по вызову spjs_QueryItems.

Возможно, это может быть связано с конфликтной библиотекой, добавленной во время обновления, но как я могу это отладить?

Кроме того, если это не сработает, не будет ли проще сделать то же самое с jQuery? Это то, что я пытаюсь сделать прямо сейчас, но я новичок, как вы, должно быть, поняли.

Заранее спасибо.

Лучший


person Community    schedule 22.03.2016    source источник


Ответы (1)


Я бы проверил, загружен ли JQuery или нет в вашей функции updateTitleFromName:

if (window.jQuery) {  
    alert('loaded');
} else {
    alert('not loaded');
}

если он не загружен, попробуйте сослаться на свои скрипты с абсолютными URL-адресами, чтобы узнать, сможете ли вы их загрузить:

<script type="text/javascript" src="http://myportal/Scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="http://myportal/Scripts/spjs-utility/spjs-utility.js"></script>
person Sylvain Gantois    schedule 23.03.2016