| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- // @require variables:
- if ('undefined' === typeof JS_FUNCTION_NAME) throw "Missing JS_FUNCTION_NAME";
- if ('undefined' === typeof URL_GET_PROCES_INIT_FILTR) throw "Missing URL_GET_PROCES_INIT_FILTR";
- if ('undefined' === typeof ID_ZASOB) throw "Missing ID_ZASOB";
- function p5Utils__convertToHtml(tagName, attributes, childrens) { // ( string tagName, object attributes, array childrens )
- return '<' + tagName + ( attributes ? ' ' + p5Utils__convertAttrsToHtml(attributes) : '' ) + '>' + ( childrens || [] ).join("") + '</' + tagName + '>';
- }
- function p5Utils__convertAttrsToHtml(attributes) {
- return Object.keys(attributes).map(function (attrName) {
- var name = attrName;
- if ('className' === name) name = 'class';
- return '' + name + '="' + attributes[attrName] + '"'
- }).join(" ")
- }
- function _viewDropdown_item_infoLink(id, label) {
- var h = p5Utils__convertToHtml;
- var viewProcessLink = "procesy5.php?task=PROCES_VIEW_LIST&id_proces=" + id + "&HIDE_PANEL=0&show_big_img=1&group_stanowiska=1";
- return h('i', {
- className: "glyphicon glyphicon-info-sign",
- style: "color:#aaa; cursor:help; vertical-align:middle",
- title: "Przeglądaj proces {" + id + "} " + label,
- onclick: "window.open('" + viewProcessLink + "');return false;",
- onmouseover: "this.style.color = '#337AB7'", onmouseout: "this.style.color = '#aaa'"
- });
- }
- function _viewDropdown_item_setPermsLink(id, label, selected) {
- var h = p5Utils__convertToHtml;
- return h('button', {
- className: "btn btn-link" + (selected ? " disabled" : ""),
- style: "padding:0 3px",
- title: "Uruchom filtr procesu {" + id + "}"
- }, [
- " {" + id + "} " + label,
- ]);
- }
- function _viewDropdown_listItem(id, label, selected, deepLevel, showArrowIcon) { // showArrowIcon: if process type === goto_and_return
- var h = p5Utils__convertToHtml;
- var marginLeft = 20 * (deepLevel || 0);
- return h('li', {
- style: "white-space:nowrap; overflow:hidden; max-width:500px; /* text-overflow:ellipsis; */",
- onmouseover: "this.style.backgroundColor='#f5f5f5'", onmouseout: "this.style.backgroundColor='#fff'",
- }, [
- h('form', { className: "form-inline", method: "post", action: "", style: "padding:3px 20px; margin-left:" + marginLeft + "px" }, [
- h('input', { type: "hidden", name: "_rootPostTask", value: "SetPermsByProces" }),
- h('input', { type: "hidden", name: "id_proces", value: id }),
- (showArrowIcon)
- ? h('i', { className: "glyphicon glyphicon-arrow-right", style: "color:#aaa; vertical-align:middle; margin-right:2px" })
- : null,
- _viewDropdown_item_infoLink(id, label),
- _viewDropdown_item_setPermsLink(id, label, selected),
- ]),
- ]);
- }
- function toggleProcesInitFiltr(n) {
- var $n = jQuery(n);
- var $ul = $n.next();
- if ($n.data('fetched')) return false;
- function parseProcesInitData(pInitData) {
- return (!pInitData || !pInitData.mapTree)
- ? '<li><a href="#">' + "Brak danych" + '</a></li>'
- : Object.keys(pInitData.mapTree).map(function (vInitId) {
- var gotoIds = pInitData.mapTree[vInitId];
- var sel = (pInitData.pInitListSelected && pInitData.pInitListSelected == vInitId);
- return [
- _viewDropdown_listItem(vInitId, pInitData.pInitList[vInitId], sel, deepLvl = 0, showArrowIcon = false)
- ].concat(
- (!gotoIds) ? null : Object.keys(gotoIds).map(function (gotoId) {
- var gotoLvl2Ids = gotoIds[gotoId];
- var sel = (pInitData.pInitListSelected && pInitData.pInitListSelected == vInitId);
- return [
- _viewDropdown_listItem(gotoId, pInitData.pInitList[gotoId], sel, deepLvl = 1, showArrowIcon = true)
- ].concat(
- (!gotoLvl2Ids) ? null : Object.keys(gotoLvl2Ids).map(function (gotoLvl2Id) {
- // var vBool = gotoLvl2Ids[gotoLvl2Id];
- return _viewDropdown_listItem(gotoLvl2Id, pInitData.pInitList[gotoLvl2Id], sel, deepLvl = 2, showArrowIcon = true);
- }).join("\n")
- ).join("\n");
- }).join("\n")
- ).join("\n");
- }).join("\n")
- ;
- }
- jQuery.ajax({
- data: null,
- dataType: 'json',
- type: "GET",
- async: true,
- url: URL_GET_PROCES_INIT_FILTR
- })
- .always(function(data, textStatus, jqXHR) {
- var type = data.type || null,
- msg = data.msg || "Error",
- pInitData = data.pInitData || null;
- if (type) {
- if ('success' == type) {
- $ul.html(parseProcesInitData(pInitData));
- } else if ('error' == type) {
- $ul.html('<li><a href="#">' + msg + '</a></li>');
- } else {
- $ul.html('<li><a href="#">Wystapił błąd podczas pobierania listy procesów</a></li>');
- }
- } else {
- $ul.html('<li><a href="#">Wystapił błąd podczas pobierania listy procesów</a></li>');
- }
- $n.data('fetched', true);
- });
- return false;
- }
- global[JS_FUNCTION_NAME] = toggleProcesInitFiltr
|