Pull to refresh

Проверка имени вложения в Sharepoint Foundation 2010

Есть одна очень неприятная особенность в работе SP 2010, не знаю как в других версиях. При попытке загрузить файл с именем, содержащим "%" как вложение в элемент списка, получаем неожиданную ошибку и элемент сохраняется без вложения. К сожалению так и не нашел готового решения, посему сделал вот так:

function CheckFiles() 
 { 
if(document.getElementById('idAttachmentsRow').style.display!='none') //Если есть вложения. Можно вставить return false в else, если вложения обязательны.
            { 
var idx;
for (idx = 0; idx < document.getElementById('idAttachmentsTable').rows.length; ++idx)
{
    
    var str = document.getElementById('idAttachmentsTable').rows[idx].cells[0].innerHTML;
    
    str = str.split(">")[1];
    var attachname = str.split("<")[0];
    
   if (attachname.indexOf("%")!=-1) {
        alert("Недопустимое имя вложения! Символ % запрещен!");
        return false;
    }
    
    if (attachname.indexOf("=")!=-1) {
        alert("Недопустимое имя вложения! Символ = запрещен!");
        return false;
    }
    
    if (attachname.indexOf("'")!=-1) {
        alert("Недопустимое имя вложения! Символ ' запрещен!");
        return false;
    }

    if (attachname.indexOf("№")!=-1) {
        alert("Недопустимое имя вложения! Символ № запрещен!");
        return false;
    }

    if (attachname.indexOf("#")!=-1) {
        alert("Недопустимое имя вложения! Символ # запрещен!");
        return false;
    }
}
 return true;
} 

Списка неподдерживаемых символов пока у меня нету, добавляю по одному. Функцию вызывать из presaveitem или presaveaction

  function PreSaveItem() 
        { 
 return CheckFiles(); 
        }

Чтобы вставить код в форму создания элемента, можно использовать веб-часть «Редактор контента» из раздела «Среда и контент», нажать html, изменить исходный тест html и туда вписать код. Я себе сделал специальную веб часть, в которой реализован наиболее частый функционал JS, например скрытие полей.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.