Sharepoint JS CSR Render Field As HTML

Часто в проектах приходится заполнять шаблоны писем в виде HTML, смотреть логи отправленных почтовых сообщений. Для удобства просмотра написал CSR скрипт.


Было



Стало


[Ещё]

SharePoint Farm Administrators Secure

Недавно узнал, что Эдвард Сноуден (Mr. Snowden) который слил очень важную информацию в сеть, получил ее (не законно) именно из портала SharePoint. Да, да в АНБ используют SharePoint. Но это была не хакерская атака Сноудена и не уязвимость SharePoint, а плохая настройка портала администраторами.

https://www.nytimes.com/2014/02/09/us/snowden-used-low-cost-tool-to-best-nsa.html?ref=technology&_r=0
Edward Snowden is responsible probably for one of the most famous information leaks of all time right now. It's pretty well documented as well but a good portion of the information that was leaked by Snowden came from SharePoint.
.....
Mr. Snowden provided what were later described to investigators as legitimate-sounding explanations for his activities: As a systems administrator he was responsible for conducting routine network maintenance. That could include backing up the computer systems and moving information to local servers, investigators were told.
.... [Ещё]

d.SPTextBuilder

Заполнение шаблонов писем из элемента списка Sharepoint.

 


Создаем парсер:

TextBuilder textBuilder = 
new TextBuilder(new SampleListItemProvider(item));

string mailTemplate =
"ItemTitle: {%Field(Title)%}" + Environment.NewLine +
"NoteFld: {%Field(NoteFld)%}" + Environment.NewLine +
"ChoiceFld: {%Field(ChoiceFld)%}" + Environment.NewLine +
"NumberFld: {%Field(NumberFld)%}" + Environment.NewLine +
"CurrencyFld: {%Field(CurrencyFld)%}" + Environment.NewLine +
"DateTimeFld: {%Field(DateTimeFld)%}" + Environment.NewLine +
"LookupFld: {%Field(LookupFld)%}" + Environment.NewLine +
"BooleanFld: {%Field(BooleanFld)%}" + Environment.NewLine +
"UserFld: {%Field(UserFld)%}" + Environment.NewLine +
"URLFld: {%Field(URLFld)%}" + Environment.NewLine +
"CustomProperty: {%CustomProperty%}" + Environment.NewLine +
"CustomMethodNoParams: {%CustomMethodNoParams%}" + Environment.NewLine +
"CustomMethodWithParams: {%CustomMethodWithParams(6,9)%}" + Environment.NewLine +
"CustomFormatProperty: {%CustomFormatProperty:dd/MM/yyyy%}";

string output = textBuilder.Parse(mailTemplate);

 


Результат:

ItemTitle: Hello world!
NoteFld: <div class="ExternalClass27392DF017794231B6A661BFB1A566E1"><p>​Big Text<br></p><p>Note Input<br></p></div>
ChoiceFld: Вариант 2
NumberFld: 999
CurrencyFld: 123,00 ₽
DateTimeFld: 09.08.2017
LookupFld: <a href="http://***/_layouts/15/listform.aspx?PageType=4&ListId={d23e63e7-94d2-4a0a-b569-8969eeed2a25}&ID=4&RootFolder=*">Гибкость в принятии решений</a>
BooleanFld: Yes
UserFld: <span class="ms-noWrap"><span class='ms-imnSpan'><a href='#' onclick='IMNImageOnClick(event);return false;' class='ms-imnlink ms-spimn-presenceLink' ><span class='ms-spimn-presenceWrapper ms-imnImg ms-spimn-imgSize-10x10'><img name='imnmark' class='ms-spimn-img ms-spimn-presence-disconnected-10x10x32' title='' ShowOfflinePawn='1' src='/_layouts/15/images/spimn.png?rev=23' alt='No presence information' sip='a@a.ru' id='imn_1,type=smtp'/></span></a></span><span class="ms-noWrap ms-imnSpan"><a href='#' onclick='IMNImageOnClick(event);return false;' class='ms-imnlink' tabIndex='-1'><img name='imnmark' class='ms-hide' title='' ShowOfflinePawn='1' src='/_layouts/15/images/blank.gif?rev=23' alt='' sip='a@a.ru' id='imn_2,type=smtp'/></a><a class="ms-subtleLink" onclick="GoToLinkOrDialogNewWindow(this);return false;" href="/MatrixPoll/_layouts/15/userdisp.aspx?ID=59">Дмитрий </a></span></span>
URLFld: <a href="http://****/Lists/test/EditForm.aspx">HyperLinkSample</a>
CustomProperty: 45
CustomMethodNoParams: 1
CustomMethodWithParams: 15


Ссылка:


https://github.com/dzsoft-ru/d.SPTextBuilder


 

[Ещё]

FluentRibbon CommandJavaScript

FluentRibbon CommandJavaScript

CommandJavaScript = ""
+ "function getAllSelectedItems() {"
+ "var ctx = SP.ClientContext.get_current();"
+ "var items = SP.ListOperation.Selection.getSelectedItems(ctx);"
+ "var ids = '';"
+ "var i;"
+ "for (i in items)"
+ "{"
+ "ids += items[i].id + '|';"
+ "}"
+ "return ids;"
+ "};"
+ "SP.UI.ModalDialog.showModalDialog({title: 'Настройка выгружаемого файла', width: 800,height:800,url: '" + SPUrlUtility.CombineUrl(web.Url, "/_layouts/Report.aspx") + "?SiteUrl={SiteUrl}&SPListId={ListId}&Ids=' + getAllSelectedItems() });"
[Ещё]

SharePoint Server Rename

Например, необходимо переименовать сервер msvo-spapp2 > msvo-spwfe2


Открыть на сервере msvo-spwfe2 powershell от имени администратора.


Выполнить: 




1.


Add-PSSnapinMicrosoft.Sharepoint.Powershell -ErrorAction SilentlyContinue


try{      Remove-SPDistributedCacheServiceInstance}catch{}


Rename-SPServer -Identity "msvo-spwfe2" -Name "msvo-spapp2" 


2.       Отключить сервер от сети и исключить из домена.


3.       Перезапустить сервер.


4.       Зайти под локальным администратором


5.       Переименовать сервер через панель управления.


6.       Перезапустить сервер.


7.       Войти под локальным администратором. Присоединить сервер к сети и к домену.


8.       Перезапустить сервер


9.       Провести настройку служб через центр администрирования согласно пожеланиям.


10.   Открыть на любом сервере фермы powershell от имени администратора


11.   Выполнить:


Add-PSSnapinMicrosoft.Sharepoint.Powershell -ErrorAction SilentlyContinue


$webApp = Get-SPWebApplication http://url


$webApp.UpdateWorkflowConfigurationSettings()


12. Далее на всех серверах фермы необходимо запустить ipconfig /flushdns

[Ещё]