Лучший отвечающий
Отображение в веб-части "Браузер организации" организационной диаграммы по заданому пользователю (SharePoint 2016)

Вопрос
-
В SharePoint 2013 для отображения в веб-части организационной диаграммы заданого пользователя использовался следующий скрипт:
function CreateHierarchyChartControl(parentId, profileId, type, persistControlId) { profileId="i:0#.w|DOMAIN\\user"; var i = profileId.indexOf("|"); var claimsmode = profileId.substr(i-1,1); if((i >=0 ) & (claimsmode=="w")) { profileId = profileId.substr(i+1,profileId.length-i-1); var initParam = profileId + ',' + type + ',' + persistControlId; var host = document.getElementById(parentId); host.setAttribute('width', '100%'); host.setAttribute('height', '100%'); Silverlight.createObject('/_layouts/ClientBin/hierarchychart.xap', host, 'ProfileBrowserSilverlightControl', { top: '30', width: '100%', height: '100%', version: '2.0', isWindowless: 'true', enableHtmlAccess: 'true' }, { onLoad: OnHierarchyChartLoaded }, initParam, null); } }
Обработка html-представления следующая:
SP.UI.Portal.SimpleProfileBrowser.prototype.$2S_0 = function ($p0, $p1, $p2) { $p0="i:0#.w|DOMAIN\\user"; var i = $p0.indexOf("|"); $p0 = $p0.substr(i+1,$p0.length-i-1); var $v_0 = $get($p1); if ($v_0) { $v_0.innerHTML = '<DIV></DIV><DIV></DIV><DIV></DIV>'; this.$h_0 = $v_0.firstChild; this.$16_0 = this.$h_0.nextSibling; this.$1e_0 = this.$16_0.nextSibling; } if ($p2) { this.$h_0.innerHTML = String.format(SpsClient.ScriptResources.silverlight_Install_Message, '<a href=\'javascript:Silverlight.getSilverlight(\"2.0\");\'>Silverlight</a>'); Sys.UI.DomElement.addCssClass(this.$h_0, 'ms-profileBrowserHeaderText'); Sys.UI.DomElement.addCssClass(this.$h_0.firstChild.nextSibling, 'ms-profileBrowserSilverlightLink'); } this.$2V_0($p0); }
После перехода на SharePoint Server 2016 представление Silverlight пустое, html-представление отображает текущего пользователя.
Почему даный скрипт перестал работать в новой системе? Возможно, есть какое-либо альтернативное решение задачи?
Заранее благодарю за ответ!
17 мая 2016 г. 5:54
Ответы
-
Нашел исходный код метода, который был переопределен для изменения представления Silverlight. Заработало с новым переопределением:
function CreateHierarchyChartControl(parentId, profileId, type, persistControlId, flowDirection, silverLightControlId) { //добавленная строка profileId = "DOMAIN\\user"; var initParam = profileId + ',' + type + ',' + persistControlId + ',' + flowDirection + ',' + silverLightControlId; var host = document.getElementById(parentId); host.setAttribute('width', '100%'); host.setAttribute('height', '100%'); Silverlight.createObject('/_layouts/ClientBin/hierarchychart.xap', host, silverLightControlId, { top: '30', width: '100%', height: '100%', version: '4.0.50401.0', isWindowless: 'true', enableHtmlAccess: 'true' }, { onLoad: OnHierarchyChartLoaded }, initParam, null); }
- Изменено Denys Saveliev 18 мая 2016 г. 6:46
- Предложено в качестве ответа Kaplin VladimirModerator 18 мая 2016 г. 6:47
- Помечено в качестве ответа Denys Saveliev 18 мая 2016 г. 8:01
18 мая 2016 г. 6:45
Все ответы
-
Добрый день,
на ваш вопрос трудно ответить, т.к. с SP 2016-м мало кто еще вплотную успел столкнуться, тем более что в производственных средах он не быстро займет свою нишу.
Необходимо сравнивать API SP2013 и SP2016, а так же DOM, CSS...
- Предложено в качестве ответа Mikhail Zhuikov 17 мая 2016 г. 7:20
- Помечено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 17 мая 2016 г. 10:52
- Снята пометка об ответе Denys Saveliev 17 мая 2016 г. 11:51
17 мая 2016 г. 6:44 -
Нашел исходный код метода, который был переопределен для изменения представления Silverlight. Заработало с новым переопределением:
function CreateHierarchyChartControl(parentId, profileId, type, persistControlId, flowDirection, silverLightControlId) { //добавленная строка profileId = "DOMAIN\\user"; var initParam = profileId + ',' + type + ',' + persistControlId + ',' + flowDirection + ',' + silverLightControlId; var host = document.getElementById(parentId); host.setAttribute('width', '100%'); host.setAttribute('height', '100%'); Silverlight.createObject('/_layouts/ClientBin/hierarchychart.xap', host, silverLightControlId, { top: '30', width: '100%', height: '100%', version: '4.0.50401.0', isWindowless: 'true', enableHtmlAccess: 'true' }, { onLoad: OnHierarchyChartLoaded }, initParam, null); }
- Изменено Denys Saveliev 18 мая 2016 г. 6:46
- Предложено в качестве ответа Kaplin VladimirModerator 18 мая 2016 г. 6:47
- Помечено в качестве ответа Denys Saveliev 18 мая 2016 г. 8:01
18 мая 2016 г. 6:45