(function () { var stc = STC(); var http = stc.http; ///////////////////////////// // // COMMON UTILITY FUNCTIONS // ///////////////////////////// var createNavigation = function (urlTemplates, urlTemplateName, idRequired) { // Це - допоміжна функція, яка використовується для створення // навігаційних функцій index та show модів // В першому випадку вона використовується безпосередньо, // а в другому - викликається ще однією специфічною для show моду допоміжною функцією var urlTemplate = urlTemplates[urlTemplateName]; if (!urlTemplate) { throw "Не знайдено url-шаблон з іменем " + urlTemplateName; } if (idRequired) { return function (id) { var url = http.detemplate(urlTemplate, { id: id }); return stc.http.url(url); } } else { return function () { var url = http.detemplate(urlTemplate); return http.url(url); } } } var _loadCaption = function (element) { if (element) { var captionUrlTemplate = $(element).attr("captionUrlTemplate"); //var entityId = entityId || $(element).children(".entityid").attr("value"); var entityId = $(element).children(".entityId").html(); var classTitle = $(element).children(".entityClassTitle").html(); // воно нам не треба, але просто з цікавості і для уніфікації _selectSingle з подивимось... var url = http.detemplate(captionUrlTemplate, { id: entityId }); $(element).children(".entityCaption").load(stc.http.url(url)); } } var outerHtml = function (element) { return $($('
').html($(element).clone())).html(); } function _selectSingle(element, routePrefix, restTag, searchKeyTag, entityId, title) { if (!element) { return; } //var anchorElement = $(element).children("a") var classTitle = $(element).children(".entityClassTitle").html(); //routePrefix = routePrefix || options.RoutePrefix; restTag = restTag || $(element).attr("restTag"); searchKeyTag = searchKeyTag || $(element).attr("searchKeyTag"); entityId = entityId || $(element).children(".entityId").attr("value"); title = title || "Виберіть об'єкт класу " + classTitle + ""; stc.singleBySelector.selectBy( title // title , routePrefix // routePrefix , restTag // restTag , searchKeyTag // searchKeyTag , "id" // dataToReturn , entityId // entityId , function (result) // onFound { $(element).children(".entityId").attr("value", result); _loadCaption(element); } , http.defaultErrorHandler // onNotFound ); }; var goByPseudoKey = function (element) { if (!element) { return; } var foreignEntityLabel = $(element).children(".foreignEntityLabel").html(); var foreignEntityShowUrlTemplate = $(element).children(".foreignEntityShowUrlTemplate").html(); var hiddenBox = $(element).children("input"); var id = $(hiddenBox).val(); if (!id || "" == id) { stc.messages.errorBox("Реквізит " + foreignEntityLabel + " має невизначене значення"); return; } var url = http.url(http.detemplate(foreignEntityShowUrlTemplate, { id: id })); window.open(url); } var selectPseudoKey = function (element) { if (!element) { return; } var foreignEntityLabel = $(element).children(".foreignEntityLabel").html(); var scalarSelectorLabel = $(element).children(".scalarSelectorLabel").html(); var scalarSelector = $(element).children(".scalarSelector").html(); var scalarSelectorUrlTemplate = $(element).children(".scalarSelectorUrlTemplate").html(); var foreignEntityData = $(element).children(".foreignEntityData"); var foreignEntityScalar = $(foreignEntityData).children(".foreignEntityScalar").html(); var hiddenBox = $(element).children("input"); var formId = stc.utils.getNewId(); var dlg = stc.dialogs.okCancelDialog( "Введіть " + scalarSelectorLabel + " для визначення реквізиту " + foreignEntityLabel + "" , "