src/pyams_skin/resources/js/myams-widgets.min.js
changeset 557 bca7a7e058a3
equal deleted inserted replaced
-1:000000000000 557:bca7a7e058a3
       
     1 !function(S,L){"use strict";var _=L.MyAMS;function d(e,t){this.widget=e,this.options=S.extend({},T.defaults,t),this.grid=this.widget.parents(this.options.grid),this.hasGrid=this.grid.exists(),this.gridId=this.grid.attr("id"),this.controls=this.options.controls,this.toggleClass=this.options.toggleClass.split("|"),this.editClass=this.options.editClass.split("|"),this.fullscreenClass=this.options.fullscreenClass.split("|"),this.customClass=this.options.customClass.split("|"),this.init()}d.prototype={init:function(){var e,a=this;if(!0===a.options.rtl&&S("body").addClass("rtl"),a.grid.each(function(){S(this).addClass("sortable-grid")}),a._getSettings(),a.hasGrid&&a.storage){var t;if(a.position){var i=JSON.parse(a.position);for(t in i.grid)if(i.grid.hasOwnProperty(t)){var s=a.grid.find(a.options.subgrid+".sortable-grid").eq(t);for(var n in i.grid[t].section)i.grid[t].section.hasOwnProperty(n)&&s.append(S("#"+i.grid[t].section[n].id))}}if(a.settings){var d=JSON.parse(a.settings);for(t in d.widget)if(d.widget.hasOwnProperty(t)&&(e=d.widget[t]).id){var o=S("#"+e.id);if(o.exists()){e.style&&o.removeClassPrefix("ams-widget-color-").addClass(e.style).attr("data-widget-attstyle",e.style),1===e.hidden?o.hide(1):o.show(1).removeAttr("data-widget-hidden"),1===e.collapsed&&o.addClass("ams-widget-collapsed").children("div").hide(1);var l=o.children("header").children("h2");l.text()!==e.title&&l.text(e.title)}}}}var r=(e=a.widget).data(),g={grid:r.amsWidgetGrid,subgrid:r.amsWudgetSubgrid,widgets:r.amsWidgetWidgets,controls:r.amsWidgetControls,storage:r.amsWidgetStorage,deleteSettingsKey:r.amsWidgetDeleteSettingsKey,deletePositionKey:r.amsWidgetDeletePositionKey,sortable:r.amsWidgetSortable,hiddenButtons:r.amsWidgetHiddenButtons,toggleButton:r.amsWidgetToggleButton,toggleClass:r.amsWidgetToggleClass,onToggle:_.getFunctionByName(r.amsWidgetToggleCallback),deleteButton:r.amsWidgetDeleteButton,deleteClass:r.amsWidgetDeleteClass,onDelete:_.getFunctionByName(r.amsWidgetDeleteCallback),editButton:r.amsWidgetEditButton,editPlaceholder:r.amsWidgetEditPlaceholder,editClass:r.amsWidgetEditClass,onEdit:_.getFunctionByName(r.amsWidgetEditCallback),fullscreenButton:r.amsWidgetFullscreenButton,fullscreenClass:r.amsWidgetFullscreenClass,fullscreenDiff:r.amsWidgetFullscreenDiff,onFullscreen:_.getFunctionByName(r.amsWidgetFullscreenCallback),customButton:r.amsWidgetCustomButton,customClass:r.amsWidgetCustomClass,customStart:_.getFunctionByName(r.amsWidgetCustomStartCallback),customEnd:_.getFunctionByName(r.amsWidgetCustomEndCallback),buttonsOrder:r.amsWidgetButtonsOrder,opacity:r.amsWidgetOpacity,dragHandle:r.amsWidgetDragHandle,placeholderClass:r.amsWidgetPlaceholderClass,indicator:r.amsWidgetIndicator,indicatorTime:r.amsWidgetIndicatorTime,ajax:r.amsWidgetAjax,timestampPlaceholder:r.amsWidgetTimestampPlaceholder,timestampFormat:r.amsWidgetTimestampFormat,refreshButton:r.amsWidgetRefreshButton,refreshClass:r.amsWidgetRefreshClass,errorLabel:r.amsWidgetErrorLabel,updatedLabel:r.amsWidgetUpdatedLabel,refreshLabel:r.amsWidgetRefreshLabel,deleteLabel:r.amsWidgetDeleteLabel,afterLoad:_.getFunctionByName(r.amsWidgetAfterLoadCallback),rtl:r.amsWidgetRtl,onChange:_.getFunctionByName(r.amsWidgetChangeCallback),onSave:_.getFunctionByName(r.amsWidgetSaveCallback),ajax_nav:_.ajax_nav},c=S.extend({},a.options,g),u=e.children("header");if(!u.parent().attr("role")){var m,h,f,p,v,C;if(!0===r.widgetHidden&&e.hide(),!0===r.widgetCollapsed&&e.addClass("ams-widget-collapsed").children("div").hide(),m=c.customButton&&void 0===r.widgetCustombutton&&0!==a.customClass[0].length?'<a href="#" class="button-icon ams-widget-custom-btn"><i class="'+a.customClass[0]+'"></i></a>':"",h=c.deleteButton&&void 0===r.widgetDeleteButton?'<a href="#" class="button-icon ams-widget-delete-btn hint" title="'+T.i18n.DELETE_BTN+'" data-ams-hint-gravity="se"><i class="'+c.deleteClass+'"></i></a>':"",c.editButton&&void 0===r.widgetEditButton){var w=c.editClass.split("|")[0];f='<a href="#" class="button-icon ams-widget-edit-btn hint" title="'+T.i18n.EDIT_BTN+'" data-ams-hint-gravity="se"><i class="'+w+'"></i></a>'}else f="";if(c.fullscreenButton&&void 0===r.widgetFullscreenButton){var W=c.fullscreenClass.split("|")[0];p='<a href="#" class="button-icon ams-widget-fullscreen-btn hint" title="'+T.i18n.FULLSCREEN_BTN+'" data-ams-hint-gravity="se"><i class="'+W+'"></i></a>'}else p="";if(c.toggleButton&&void 0===r.widgetToggleButton){var b,y=c.toggleClass.split("|");b=!0===e.dataWidgetCollapsed||e.hasClass("ams-widget-collapsed")?y[1]:y[0],v='<a href="#" class="button-icon ams-widget-toggle-btn hint" title="'+T.i18n.COLLAPSE_BTN+'" data-ams-hint-gravity="se"><i class="'+b+'"></i></a>'}else v="";C=c.refreshButton&&void 0===r.widgetRefreshButton&&r.widgetLoad?'<a href="#" class="button-icon ams-widget-refresh-btn hint" title="'+T.i18n.REFRESH_BTN+'" data-loading-text="&nbsp;&nbsp;'+T.i18n.LOADING_MSG+'&nbsp;" data-ams-hint-gravity="se"><i class="'+c.refreshClass+'"></i></a>':"";var B=c.buttonsOrder.replace(/%refresh%/,C).replace(/%custom%/,m).replace(/%edit%/,f).replace(/%toggle%/,v).replace(/%fullscreen%/,p).replace(/%delete%/,h);(C||m||f||v||p||h)&&u.prepend('<div class="ams-widget-ctrls">'+B+"</div>"),c.sortable&&void 0===r.widgetSortable&&e.addClass("ams-widget-sortable");var E=e.find(c.editPlaceholder);0<E.length&&E.find("input").val(S.trim(u.children("h2").text())),u.append('<span class="ams-widget-loader"><i class="fa fa-refresh fa-spin"></i></span>'),e.attr("role","widget").children("div").attr("role","content").prev("header").attr("role","heading").children("div").attr("role","menu"),_.plugins&&_.plugins.enabled.hint&&_.plugins.enabled.hint(u)}e.data("widget-options",c),a.options.hiddenButtons&&S(a.controls).hide(),e.find("[data-widget-load]").each(function(){var e=S(this),t=e.children(),i=e.data("widget-load"),s=1e3*e.data("widget-refresh");e.find(".ams-widget-ajax-placeholder").length<=0&&(e.children("widget-body").append('<div class="ams-widget-ajax-placeholder">'+a.options.loadingLabel+"</div>"),0<s?(a.loadAjaxFile(e,i,t),setInterval(function(){a._loadAjaxFile(e,i,t)},s)):a._loadAjaxFile(e,i,t))}),a.options.hiddenButtons&&a.widget.children("header").hover(function(){S(this).children(a.controls).stop(!0,!0).fadeTo(100,1)},function(){S(this).children(a.controls).stop(!0,!0).fadeTo(100,0)}),a._setClickEvents(),S(a.options.deleteSettingsKey).on(a.clickEvent,this,function(e){a.storage&&L.confirm&&(L.confirm(a.options.settingsKeyLabel)&&a.storage.removeItem(a.settingsKey));e.preventDefault()}),S(a.options.deletePositionKey).on(a.clickEvent,this,function(e){a.storage&&L.confirm&&(L.confirm(a.options.positionKeyLabel)&&a.storage.removeItem(a.positionKey));e.preventDefault()}),a.storage&&((null===a.settingsKey||a.settingsKey.length<1)&&a._saveWidgetSettings(),(null===a.positionKey||a.positionKey.length<1)&&a._saveWidgetPosition()),a.grid.data("ams-widgets-loaded",!0)},destroy:function(){var e=this;e.widgets.off("click",e._setClickEvents()),e.element.removeData("AMSWidget")},_getSettings:function(){var i=this;if(i.hasGrid&&i.gridId)switch(i.options.storage){case"local":i.storage=localStorage;break;case"session":i.storage=sessionStorage;break;default:i.storage=null}else i.storage=null;null!==i.storage&&function(){var e,t=+new Date;try{return i.storage.setItem(t,t),e=parseInt(i.storage.getItem(t))===t,i.storage.removeItem(t),e}catch(e){}}()&&(i.settingsKey="AMS_settings_"+location.pathname+location.hash+"_"+i.gridId,i.settings=i.storage.getItem(i.settingsKey),i.positionKey="AMS_position_"+location.pathname+location.hash+"_"+i.gridId,i.position=i.storage.getItem(i.positionKey)),"ontouchstart"in L||L.DocumentTouch&&L.document instanceof L.DocumentTouch?i.clickEvent="touchstart":i.clickEvent="click"},_runLoaderWidget:function(e){this.options.indicator&&e.find(".ams-widget-loader").stop(!0,!0).fadeIn(100).delay(this.options.indicatorTime).fadeOut(100)},_loadAjaxFile:function(e,t,i){_.skin&&_.skin.loadURL(e,t.find(".widget-body"))},_saveWidgetSettings:function(){var e=this;if(e._getSettings(),e.storage){var i=[];e.grid.find(e.options.widgets).each(function(){var e=S(this),t={};t.id=e.attr("id"),t.style=e.attr("data-widget-attstyle"),t.title=e.children("header").children("h2").text(),t.hidden=e.is(":hidden")?1:0,t.collapsed=e.hasClass("ams-widget-collapsed")?1:0,i.push(t)});var t=JSON.stringify({widget:i});e.settings!==t&&e.storage.setItem(e.settingsKey,t),"function"==typeof e.options.onSave&&e.options.onSave.call(this,null,i)}},_saveWidgetPosition:function(){var i=this;if(i._getSettings(),i.storage){var s=[];i.grid.find(i.options.subgrid+".sortable-grid").each(function(){var t=[];S(this).children(i.options.widgets).each(function(){var e={};e.id=S(this).attr("id"),t.push(e)});var e={section:t};s.push(e)});var e=JSON.stringify({grid:s});i.position!==e&&i.storage.setItem(i.positionKey,e),"function"==typeof i.options.onSave&&i.options.onSave.call(this,null,s)}},_setClickEvents:function(){function n(){var e=S("#ams-widget-fullscreen-mode");if(0<e.length){var t=e.find(d.options.widgets),i=S(window).height(),s=t.children("header").height();t.children("div").height(i-s-15)}}var d=this;d._getSettings(),d.widget.on(d.clickEvent,".ams-widget-toggle-btn",function(e){e.preventDefault();var t=S(this),i=t.parents(d.options.widgets).first(),s=i.data("widget-options"),a=s.toggleClass.split("|");d._runLoaderWidget(i);var n=!0;i.hasClass("ams-widget-collapsed")?(s.onToggle&&(n=s.onToggle.call(this,i,"expand")),!1!==n&&(t.children().removeClass(a[1]).addClass(a[0]),i.removeClass("ams-widget-collapsed").children("[role=content]").slideDown(s.toggleSpeed,function(){d._saveWidgetSettings()}))):(s.onToggle&&(n=s.onToggle.call(this,i,"collapse")),!1!==n&&(t.children().removeClass(a[0]).addClass(a[1]),i.addClass("ams-widget-collapsed").children("[role=content]").slideUp(s.toggleSpeed,function(){d._saveWidgetSettings()})))}),d.widget.on("dblclick","header",function(e){S(".ams-widget-toggle-btn",this).click()}),d.widget.on(d.clickEvent,".ams-widget-fullscreen-btn",function(e){e.preventDefault();var t=S(this).parents(d.options.widgets),i=t.data("widget-options"),s=i.fullscreenClass.split("|"),a=t.children("div");d._runLoaderWidget(t),0<S("#ams-widget-fullscreen-mode").length?(S(".nooverflow").removeClass("nooverflow"),t.unwrap("<div>").children("div").removeAttr("style").end().find(".ams-widget-fullscreen-btn").children().removeClass(s[1]).addClass(s[0]).parents(d.controls).children("a").show(),a.hasClass("ams-widget-visible")&&a.hide().removeClass("ams-widget-visible")):(S("body").addClass("nooverflow"),t.wrap('<div id="ams-widget-fullscreen-mode"></div>').parent().find(".ams-widget-fullscreen-btn").children().removeClass(s[0]).addClass(s[1]).parents(d.controls).children("a:not(.ams-widget-fullscreen-btn)").hide(),a.is(":hidden")&&a.show().addClass("ams-widget-visible")),n(),"function"==typeof i.onFullscreen&&i.onFullscreen.call(this,t)}),S(window).resize(function(){n()}),d.widget.on(d.clickEvent,".ams-widget-edit-btn",function(e){e.preventDefault();var t=S(this),i=t.parents(d.options.widgets),s=i.data("widget-options"),a=s.editClass.split("|");d._runLoaderWidget(i);var n=i.find(s.editPlaceholder);n.is(":visible")?(t.children().removeClass(a[1]).addClass(a[0]),n.slideUp(s.editSpeed,function(){d._saveWidgetSettings()})):(t.children().removeClass(a[0]).addClass(a[1]),n.slideDown(s.editSpeed)),"function"==typeof s.onEdit&&s.onEdit.call(this,i)}),S(d.options.editPlaceholder).find("input").keyup(function(){S(this).parents(d.options.widgets).children("header").children("h2").text(S(this).val())}),d.widget.on(d.clickEvent,".ams-widget-custom-btn",function(e){e.preventDefault();var t=S(this),i=t.parents(d.options.widgets),s=i.data("widget-options"),a=s.customClass.split("|");d._runLoaderWidget(i),0<t.children("."+a[0]).length?(t.children().removeClass(a[0]).addClass(a[1]),"function"==typeof s.customStart&&s.customStart.call(this,i)):(t.children("."+a[1]).addClass(a[0]),"function"==typeof s.customEnd&&s.customEnd.call(this,i)),d._saveWidgetSettings()}),d.widget.on(d.clickEvent,".ams-widget-delete-btn",function(e){e.preventDefault();var t=S(this),i=t.parents(d.options.widgets),s=i.data("widget-options"),a=i.attr("id"),n=i.children("header").children("h2").text();_.ajax&&_.ajax.check(MyAMS.notify,_.baseURL+"myams-notify"+(_.devmode?".js":".min.js"),function(){_.notify.messageBox({title:'<i class="fa fa-times" style="color: #ed1c24;"></i> '+s.deleteLabel+' "'+n+'"',content:T.i18n.DELETE_MSG,buttons:"["+_.i18n.BTN_OK+"]["+_.i18n.BTN_CANCEL+"]"},function(e){e===_.i18n.BTN_OK&&(d._runLoaderWidget(i),S("#"+a).fadeOut(s.deleteSpeed,function(){t.remove(),"function"==typeof s.onDelete&&s.onDelete.call(this,i)}))})})}),d.widget.on(d.clickEvent,".ams-widget-refresh-btn",function(e){e.preventDefault();var t=S(this),i=t.parents(d.options.widgets),s=i.data("widget-load"),a=i.children();t.button("loading"),a.addClass("widget-body-ajax-loading"),setTimeout(function(){t.button("reset"),a.removeClass("widget-body-ajax-loading"),d._loadAjaxFile(i,s,a)},1e3)})}};var T={i18n:S.extend({SETTINGS_KEY_LABEL:"Reset settings?",POSITION_KEY_LABEL:"Reset position?",TIMESTAMP_FORMAT:"Last update: %d%/%m%/%y% %h%:%i%:%s",ERROR_LABEL:"An error occured: ",UPDATED_LABEL:"Last update: ",REFRESH_LABEL:"Refresh",EDIT_BTN:"Edit title",DELETE_BTN:"Delete",DELETE_LABEL:"Remove component: ",DELETE_MSG:"WARNING: this action can't be undone!",FULLSCREEN_BTN:"Fullscreen",COLLAPSE_BTN:"Collapse",REFRESH_BTN:"Reload content",LOADING_MSG:"Loading..."},_.plugins.i18n.widgets),initWidgetsGrid:function(e){if(e.exists()){var s=S(".ams-widget:first",e).data("AMSWidget").options;if(s.sortable&&S.ui){var t=e.find(".sortable-grid").not("[data-widget-excludegrid]");t.sortable({items:t.find(".ams-widget-sortable"),connectWith:t,placeholder:s.placeholderClass,cursor:"move",revert:!0,opacity:s.opacity,delay:200,cancel:".button-icon, #ams-widget-fullscreen-mode >div",zIndex:1e4,handle:s.dragHandle,forcePlaceholderSize:!0,forceHelperSize:!0,update:function(e,t){var i=t.item.data("AMSWidget");i._runLoaderWidget(i.widget),i._saveWidgetPosition(),"function"==typeof s.onChange&&s.onChange.call(this,t.item)}})}}}};T.defaults={grid:".ams-widget-grid",subgrid:"section",widgets:".ams-widget",controls:".ams-widget-ctrls",storage:"local",deleteSettingsKey:"",settingsKeyLabel:T.i18n.SETTINGS_KEY_LABEL,deletePositionKey:"",positionKeyLabel:T.i18n.POSITION_KEY_LABEL,sortable:!1,hiddenButtons:!1,toggleButton:!1,toggleClass:"fa fa-minus|fa fa-plus",toggleSpeed:200,onToggle:null,deleteButton:!1,deleteClass:"fa fa-times",deleteSpeed:200,onDelete:null,editButton:!1,editPlaceholder:".ams-widget-editbox",editClass:"fa fa-cog|fa fa-save",editSpeed:200,onEdit:null,fullscreenButton:!1,fullscreenClass:"fa fa-expand|fa fa-compress",fullscreenDiff:3,onFullscreen:null,customButton:!1,customClass:"folder-10|next-10",customStart:null,customEnd:null,buttonsOrder:"%refresh% %custom% %edit% %toggle% %fullscreen% %delete%",opacity:1,dragHandle:"> header",placeholderClass:"ams-widget-placeholder",indicator:!0,indicatorTime:600,ajax:!0,timestampPlaceholder:".ams-widget-timestamp",timestampFormat:T.i18n.TIMESTAMP_FORMAT,refreshButton:!0,refreshButtonClass:"fa fa-refresh",errorLabel:T.i18n.ERROR_LABEL,updatedLabel:T.i18n.UPDATED_LABEL,refreshLabel:T.i18n.REFRESH_LABEL,deleteLabel:T.i18n.DELETE_LABEL,afterLoad:null,rtl:!1,onChange:null,onSave:null,ajax_nav:_.ajax_nav},L.MyAMSWidget=T,S.fn.extend({MyAMSWidget:function(n){return this.each(function(){var e=S(this);if(!e.data("AMSWidget")){var t=e.parents(n.grid||T.defaults.grid),i={};if(t.exists()){var s=t.data();i={grid:s.amsWidgetGrid,subgrid:s.amsWidgetSubgrid,controls:s.amsWidgetControls,storage:s.amsWidgetStorage,deleteSettingsKey:s.amsWidgetDeleteSettingsKey,deletePositionKey:s.amsWidgetDeletePositionKey,sortable:s.amsWidgetSortable,hiddenButtons:s.amsWidgetHiddenButtons,toggleButton:s.amsWidgetToggleButton,toggleClass:s.amsWidgetToggleClass,onToggle:_.getFunctionByName(s.amsWidgetToggleCallback),deleteButton:s.amsWidgetDeleteButton,deleteClass:s.amsWidgetDeleteClass,onDelete:_.getFunctionByName(s.amsWidgetDeleteCallback),editButton:s.amsWidgetEditButton,editPlaceholder:s.amsWidgetEditPlaceholder,editClass:s.amsWidgetEditClass,onEdit:_.getFunctionByName(s.amsWidgetEditCallback),fullscreenButton:s.amsWidgetFullscreenButton,fullscreenClass:s.amsWidgetFullscreenClass,fullscreenDiff:s.amsWidgetFullscreenDiff,onFullscreen:_.getFunctionByName(s.amsWidgetFullscreenCallback),customButton:s.amsWidgetCustomButton,customClass:s.amsWidgetCustomClass,customStart:_.getFunctionByName(s.amsWidgetCustomStartCallback),customEnd:_.getFunctionByName(s.amsWidgetCustomStartCallback),buttonsOrder:s.amsWidgetButtonsOrder,opacity:s.amsWidgetOpacity,dragHandle:s.amsWidgetDragHandle,placeholderClass:s.amsWidgetPlaceholderClass,indicator:s.amsWidgetIndicator,indicatorTime:s.amsWidgetIndicatorTime,ajax:s.amsWidgetAjax,timestampPlaceholder:s.amsWidgetTimestampPlaceholder,timestampFormat:s.amsWidgetTimestampFormat,refreshButton:s.amsWidgetRefreshButton,refreshClass:s.amsWidgetRefreshClass,errorLabel:s.amsWidgetErrorLabel,updatedLabel:s.amsWidgetUpdatedLabel,refreshLabel:s.amsWidgetRefreshLabel,deleteLabel:s.amsWidgetDeleteLabel,afterLoad:_.getFunctionByName(s.amsWidgetAfterLoadCallback),rtl:s.amsWidgetRtl,onChange:_.getFunctionByName(s.amsWidgetChangeCallback),onSave:_.getFunctionByName(s.amsWidgetSaveCallback),ajax_nav:_.ajax_nav}}var a=S.fn.extend({},i,e.data("ams-widget-options")||{},n);e.data("AMSWidget",new d(e,a))}})}})}(jQuery,this);