Для начачала нужно скачать Bootstrap и jQuery и сохранить в библиотеке SharePoint, я сохранил в SiteAssets.
Далее открываем форму элемента и добавляем вебчасть «Редактор сценариев» и добавляем следующий код:
После этого наша форма не изменится (немного поедет общая разметка, но об этом позже)
Для того, что бы форма изменилась, нужно к элементам добавлять классы Bootstrap и для этого прибегнем к javascript.
NewForm и EditForm
// изменение класса кнопок
$("[id*='diidIOSaveItem']").attr("class", "btn btn-success ms-ButtonHeightWidth");
$("[id*='diidIOGoBack']").attr("class", "btn btn-primary ms-ButtonHeightWidth");
Уже что-то, но не совсем то, что нужно, все дело в том, что SharePoint перекрывает часть стилей Bootstrap и нужно их переопределить.
.btn
{
font-size:14px !important;
}
.btn-primary
{
color:#fff !important;
background-color: #337ab7 !important;
border-color: #2e6da4 !important;
}
.btn-success
{
color:#fff !important;
background-color:#5cb85c !important;
border-color: #4cae4c !important;
}
Далее добавим стиль к полям
>//Меняем стиль полей
$("[id$='TextField']").attr("class", "ms-long ms-spellcheck-true form-control");
Поправляем CSS
.form-control{
line-height: normal!important;
display: inline-block !important;
height: inherit !important;
padding: 5px 5px 5px 5px !important;
}
.ms-long{
width: 384px!important;
}
Добавляем проверку поля и Alert
function PreSaveAction()
{
if ($("input[id^='Field']").val() == '') // поле пусто
{
$("[id^='Field']").closest('span').append('
Error:Внимание! Нужно заполенить это поле
')
return false;
}
else
{
$("[id^='AlertField']").alert('close')
return true;
}
}
так же нужно поправить CSS
.alert
{
margin-bottom:5px;
width: 345px !Important;
}
.close
{
min-width:0px;
}
Теперь об косяках в общем макете SharePoint
это можно поправить
это можно поправить
*{
box-sizing: content-box;
}
Я сохранил все это в два файла js и CSS и добавил ссылки в форме.
вот итоговый код js
$(document).ready(function() {
// изменение класса кнопок
$("[id*='diidIOSaveItem']").attr("class", "btn btn-success ms-ButtonHeightWidth");
$("[id*='diidIOGoBack']").attr("class", "btn btn-primary ms-ButtonHeightWidth");
// добавляем текст в поле
$("[id^='Field']").attr("placeholder", "Введите текст…");
//изменение названия
$("input[id^='Title']").val("Новый элемент");
//только чтение
$("[id^='Title']").attr("disabled", "disabled");
//Меняем стиль полей
$("[id$='TextField']").attr("class", "ms-long ms-spellcheck-true form-control");
});
function PreSaveAction()
{
$("[id^='AlertField']").alert('close')
if ($("input[id^='Field']").val() == '')
{
$("[id^='Field']").closest('span').append('
Error:Внимание! Нужно заполенить это поле
')
return false;
}
else
{
$("[id^='AlertField']").alert('close')
return true;
}
}
Вот файл CSS
.alert
{
margin-bottom:5px;
width: 345px !Important;
}
.close
{
min-width:0px;
}
.btn
{
font-size:14px !important;
}
.btn-primary
{
color:#fff !important;
background-color: #337ab7 !important;
border-color: #2e6da4 !important;
}
.btn-success
{
color:#fff !important;
background-color:#5cb85c !important;
border-color: #4cae4c !important;
}
*{
box-sizing: content-box;
}
.form-control{
line-height: normal!important;
display: inline-block !important;
height: inherit !important;
padding: 5px 5px 5px 5px !important;
}
.ms-long{
width: 384px!important;
}
DispForm
там все аналогично










Комментариев нет:
Отправить комментарий