Альтернативные названия Sharepoint: Ballspoint -> Cojonespoint -> Urinetarget
"Ух, бля!"
Sharepoint + MySQL, это что-то новенькое.
JS и DOM это весело.
window.parent.window.SP.UI.ModalDialog.commonModalDialogClose(0);
Собрался тут немного разгрузить свой второй комп от БД Sharepoint 2013 Foundation. С этой целью собрался перенести эту самую БД на хостинг от databasemart. Интересно, поможет ли?..
Насколько же шустрее работает виртуалка в Azure, чем сервера на работе, где страницы Sharepoint грузятся секунд по 10, а rdp постоянно подвисает, иногда секунд на 20. Уж за 5 лет могли настроить.
"One example is how users circumvented the dangers of loops in workflows. In fact, I’ve even myself written about how to create loops in SharePoint Designer workflows (in SharePoint Designer 2007 Workflows, if you’re wondering), even though I know from decades of experience how dangerous loops are. More times than once have I received distress calls from people who have done it wrong and taken down entire farms of SharePoint servers."
Положить ферму серверов одним циклом - ок.
Вот так новости: React, Knockout и RequireJS будут в новом Sharepoint.
Это хорошо, например. А, и TypeScript ещё каким-то боком.
Мои лучи ненависти по поводу построителя строк в редакторе рабочих процессов внутри Sharepoint Designer 2013.
Уже начинаю ненавидеть Sharepoint и его "рабочие процессы" (workflow) всей душой. Программирование этих РП сделано не для программистов и выполнено просто отвратительно.
Типичный инпут в Sharepoint, тип поля "подстановка":
<div id="ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField_upLevelDiv"
tabindex="0" onfocus="StoreOldValue('ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField'); saveOldEntities('ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField');
Sys.UI.DomElement.addCssClass(this, 'ms-inputBoxActive');"
aria-multiline="true"
onblur="if(typeof(ExternalCustomControlCallback)=='function'){ if(ShouldCallCustomCallBack('ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField',event)){if(!ValidatePickerControl('ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField')){ShowValidationError();return false;}
else{ExternalCustomControlCallback('ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField');}}}
Sys.UI.DomElement.removeCssClass(this, 'ms-inputBoxActive');"
class="ms-inputuserfield ms-inputBox" onclick="onClickRw(true, true,event,'ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField');"
onchange="updateControlValue('ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField');"
onpaste="dopaste('ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField',event);"
prefercontenteditablediv="true" autopostback="0"
rows="1" ondragstart="canEvt(event);"
onkeyup="return onKeyUpRw('ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField');"
oncopy="docopy('ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField',event);" title="Выбор людей"
onkeydown="return onKeyDownRw('ctl00_ctl42_g_133595e1_1be7_4c4e_be3d_2f845840220f_ctl00_ctl05_ctl08_ctl00_ctl00_ctl04_ctl00_ctl00_UserField', 3, true, event);"
spellcheck="false"
contenteditable="true"
aria-haspopup="true"
style="word-wrap: break-word;overflow-x: hidden;"
name="upLevelDiv"
role="textbox"> </div>
В то время, как весь мир, даже мелкие веб-студии давно используют Ajax, монструозный Sharepoint (в дефолтной поставке) продолжает ползать со страницы на страницу так, как будто никакого Ajax вообще никогда не существовало. Кусок говна.