Version 5.0.13

This commit is contained in:
Neo committed 2025-12-19 19:04:57 -08:00
1 parent b89858b2ff
commit 5efe744c5f
1407 files changed
+69690 -30177

No files matched your search

+31 -25
View File
@@ -1,7 +1,5 @@
;(function($,_,undefined){"use strict";ips.createModule('ips.ui.controlStrip',function(){var respond=function(elem,options){if(!$(elem).data('_controlStrip')){$(elem).data('_controlStrip',controlStripObj(elem));}};ips.ui.registerWidget('controlStrip',ips.ui.controlStrip);return{respond:respond};});var controlStripObj=function(elem){var init=function(){var buttons=elem.find('.ipsControlStrip_button:not(.ipsJS_hide)');if(buttons.length>3){_buildMenu(buttons);}
elem.on('click','[data-replace], [data-remove], [data-bubble]',_remoteAction);},_remoteAction=function(e){e.preventDefault();var link=$(e.currentTarget);var url=link.attr('href');ips.getAjax()(url,{dataType:'json',showLoading:true}).done(function(response){if(link.is('[data-replace]')){_replaceButton(link,response);}else if(link.is('[data-remove]')){_removeButton(link,response);}else if(link.is('[data-bubble]')){_bubbleAction(link,response);}}).fail(function(){window.location=url;});},_bubbleAction=function(link,response){link.trigger('buttonAction',response);},_replaceButton=function(link,response){ips.ui.flashMsg.show(response);var item=link.closest('.ipsControlStrip_button, .ipsControlStrip_menuItem');var newItem=$('#'+link.attr('data-replacewith'));if(item.hasClass('ipsControlStrip_button')){item.hide();newItem.show();}else{if(!newItem.hasClass('ipsControlStrip_menuItem')){var newHTML=_getMenuItemFromButton(newItem);item.hide().after(newHTML);}else{item.hide();newItem.show();}}},_removeButton=function(link,response){ips.ui.flashMsg.show(response);var dropdown=$(elem).find('[data-dropdown]');if(link.attr('data-alsoremove')){var also=ips.utils.getIDsFromList(link.attr('data-alsoremove'));}
var toRemove=$(link).add(also||'').closest('.ipsControlStrip_button, .ipsControlStrip_menuItem');toRemove.remove();if(dropdown.length){var menu=$(dropdown.attr('id')+'_menu');if(!menu.find('.ipsControlStrip_menuItem').length){menu.remove();dropdown.remove();}}},_buildMenu=function(buttons){var buttonsToMove=buttons.slice(2);var menu=ips.templates.render('core.controlStrip.menu',{id:elem.identify().attr('id')+'_more',content:_moveButtonsToMenu(buttonsToMove)});$(elem).after(menu);buttonsToMove.remove();elem.find('.ipsControlStrip_button').last().after(ips.templates.render('core.controlStrip.dropdown',{id:elem.identify().attr('id')+'_more'}));elem.parent().wrapInner($('<div/>').css({position:'relative'})).find('[data-dropdown]').attr('aria-haspopup','true').ipsMenu({appendTo:'#'+elem.parent().identify().attr('id')});$(document).trigger('contentChange',[elem]);},_moveButtonsToMenu=function(buttons){var menuContent='';for(var i=0;i<buttons.length;i++){menuContent+=_getMenuItemFromButton(buttons[i]);}
return menuContent;},_getMenuItemFromButton=function(button){var buttonLink=$(button).find('> a');$(button).find('[data-ipsTooltip]').removeAttr('data-ipsTooltip');return ips.templates.render('core.controlStrip.menuItem',{id:$(button).attr('id')||'',item:$(button).html()});};init();return{};};}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.createModule('ips.ui.controlStrip',function(){var respond=function(elem,options){if(!$(elem).data('_controlStrip')){$(elem).data('_controlStrip',controlStripObj(elem));}};ips.ui.registerWidget('controlStrip',ips.ui.controlStrip);return{respond:respond};});var controlStripObj=function(elem){var init=function(){elem.on('click','[data-replace], [data-remove], [data-bubble]',_remoteAction);},_remoteAction=function(e){e.preventDefault();var link=$(e.currentTarget);var url=link.attr('href');ips.getAjax()(url,{dataType:'json',showLoading:true}).done(function(response){if(link.is('[data-replace]')){_replaceButton(link,response);}else if(link.is('[data-remove]')){_removeButton(link,response);}else if(link.is('[data-bubble]')){_bubbleAction(link,response);}}).fail(function(){window.location=url;});},_bubbleAction=function(link,response){link.trigger('buttonAction',response);},_replaceButton=function(link,response){ips.ui.flashMsg.show(response);var item=link.closest('.ipsControlStrip_button, .ipsControlStrip_menuItem');var newItem=$('#'+link.attr('data-replacewith'));if(item.hasClass('ipsControlStrip_button')){item.hide();newItem.show();}else{if(!newItem.hasClass('ipsControlStrip_menuItem')){var newHTML=_getMenuItemFromButton(newItem);item.hide().after(newHTML);}else{item.hide();newItem.show();}}},_removeButton=function(link,response){ips.ui.flashMsg.show(response);var dropdown=$(elem).find('[data-dropdown]');if(link.attr('data-alsoremove')){var also=ips.utils.getIDsFromList(link.attr('data-alsoremove'));}
var toRemove=$(link).add(also||'').closest('.ipsControlStrip_button, .ipsControlStrip_menuItem');toRemove.remove();if(dropdown.length){var menu=$(dropdown.attr('id')+'_menu');if(!menu.find('.ipsControlStrip_menuItem').length){menu.remove();dropdown.remove();}}},_getMenuItemFromButton=function(button){$(button).find('[data-ipsTooltip]').removeAttr('data-ipsTooltip');return ips.templates.render('core.controlStrip.menuItem',{id:$(button).attr('id')||'',item:$(button).html()});};init();return{};};}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('textarea.customtags',{initialize:function(){this.on('click','[data-textareacustomtag]',this.insertTag);},insertTag:function(e){console.log('Inserting custom tag: '+$(e.currentTarget).attr('data-textareacustomtag'));$('#'+this.scope.data('textareaid')).focus();$('#'+this.scope.data('textareaid')).insertText($(e.currentTarget).attr('data-textareacustomtag'),$('#'+this.scope.data('textareaid')).getSelection().start,"collapseToEnd");}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.createModule('ips.ui.matrix',function(){var defaults={manageable:true,sortable:false,squashFields:false};var respond=function(elem,options){var matrix=$(elem).data('_matrix');if(!matrix){$(elem).data('_matrix',matrixObj(elem,_.defaults(options,defaults)));}else{matrix.checkRows();}},refresh=function(elem){try{var obj=$(elem).data('_matrix');obj.checkRows();}catch(err){Debug.log("Couldn't refresh matrix "+$(elem).identify().attr('id'));}};ips.ui.registerWidget('matrix',ips.ui.matrix,['manageable','sortable','squashFields']);return{respond:respond,refresh:refresh};});var matrixObj=function(elem,options){var init=function(){_setUpEvent();if(options.manageable){_setUpManageable();}
if(options.sortable){ips.loader.get(['core/interface/jquery/jquery-ui.js']).then(function(){elem.find('tbody').sortable({handle:'.ipsTree_drag'});});}
@@ -30,16 +28,16 @@ if(row.hasClass('ipsTree_acceptsChildren')&&!subList.length){var newRow=$('<ol/>
outputArray.push('ajax_order['+id+']='+((dataArray[i].parent_id==null)?rootID:dataArray[i].parent_id));}
data=outputArray.join('&');}else{data=$(this).nestedSortable('serialize',{key:'ajax_order'});}
if(failed){window.location.reload();}
data=data+'&csrfKey='+ips.getSetting('csrfKey');ips.getAjax()(url,{data:data,method:'POST'}).fail(function(){window.location=url+"&"+data;});},toleranceElement:'> div',listType:'ol',isTree:true,isAllowed:function(placeholder,placeholderParent,currentItem){$('#ipsTooltip').hide();var parent=null;if(_.isUndefined(placeholderParent)||placeholderParent===null){parent=elem.find('> .ipsTree_root');}else{parent=placeholderParent.closest('[data-role="node"]').find('> .ipsTree_row');}
data=data+'&csrfKey='+ips.getSetting('csrfKey');ips.getAjax()(url,{data:data,method:'POST'}).fail(function(){window.location=url+"&"+data;});},toleranceElement:'> div',listType:'ol',isTree:true,isAllowed:function(placeholder,placeholderParent,currentItem){$('#ipsTooltip')[0].hidePopover();var parent=null;if(_.isUndefined(placeholderParent)||placeholderParent===null){parent=elem.find('> .ipsTree_root');}else{parent=placeholderParent.closest('[data-role="node"]').find('> .ipsTree_row');}
if(parent.hasClass('ipsTree_acceptsChildren')||(!parent.length&&!currentItem.find('> .ipsTree_row').hasClass('ipsTree_noRoot'))){placeholder.removeAttr('data-error');return true;}else{placeholder.attr('data-error',ips.getString('cannotDragInto'));return false;}},expand:function(event,ui){var row=$(this).find('.mjs-nestedSortable-hovering > .ipsTree_parent[data-nodeid]').first();if(!row.hasClass('ipsTree_open')){_openRow(row);}},change:function(event,ui){$(this).find('.ipsTree_draggingInto').removeClass('ipsTree_draggingInto');ui.placeholder.closest('[data-role="node"]').find('> .ipsTree_row').addClass('ipsTree_draggingInto');},start:function(event,ui){ui.placeholder.closest('[data-role="node"]').find('> .ipsTree_row').addClass('ipsTree_draggingInto');},stop:function(event,ui){$(this).find('.ipsTree_draggingInto').removeClass('ipsTree_draggingInto');}};if(options.lockParents){sortableOptions['disableParentChange']=true;}
if(options.protectRoots){sortableOptions['protectRoot']=true;}
elem.find('.ipsTree_rows > .ipsTree').nestedSortable(sortableOptions);};init();return{init:init};};}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.mixin('acpTable','core.global.core.table',true,function(){this._timer=null;this._searchField=null;this._curSearchValue='';this._currentValue='';this.after('initialize',function(){this.on('focus','[data-role="tableSearch"]',this.startLiveSearch);this.on('blur','[data-role="tableSearch"]',this.endLiveSearch);this.on('click','[data-action="tableSort"]',this.changeSorting);this.on('paginationClicked',this.adminPaginationClicked);this.on('menuItemSelected','#elSortMenu',this.sortByMenu);this.on('menuItemSelected','#elOrderMenu',this.orderByMenu);});this.before('setup',function(){this._searchField=this.scope.find('[data-role="tableSearch"]');this.scope.find('[data-role="tableSearch"]').removeClass('ipsHide').show();});this.around('_getUrlParams',function(origFn){return _.extend(origFn(),{quicksearch:this._getSearchValue()||''});});this.after('_updateSort',function(data){var directions='ipsTable_sortableAsc ipsTable_sortableDesc';this.scope.find('[data-role="table"] [data-action="tableSort"]').removeClass('ipsTable_sortableActive').removeAttr('aria-sort').end().find('[data-action="tableSort"][data-key="'+data.by+'"]').addClass('ipsTable_sortableActive').removeClass(directions).addClass('ipsTable_sortable'+data.order.charAt(0).toUpperCase()+data.order.slice(1)).attr('aria-sort',(data.order=='asc')?'ascending':'descending');$('#elSortMenu_menu, #elOrderMenu_menu').find('.ipsMenu_item').removeClass('ipsMenu_itemChecked').end().find('[data-ipsMenuValue="'+data.by+'"], [data-ipsMenuValue="'+data.order+'"]').addClass('ipsMenu_itemChecked');});this.after('_handleStateChanges',function(state){if(!_.isUndefined(state.data.quicksearch)&&state.data.quicksearch!=this._urlParams.quicksearch){this._updateSearch(state.data.quicksearch);}});this.adminPaginationClicked=function(){var wrappingDialog=this.scope.closest('.ipsDialog');var elemPosition=ips.utils.position.getElemPosition(wrappingDialog.length?wrappingDialog:this.scope);$('html, body').animate({scrollTop:(elemPosition.absPos.top-60)+'px'});};this.sortByMenu=function(e,data){data.originalEvent.preventDefault();this.updateURL({sortby:data.selectedItemID});};this.orderByMenu=function(e,data){data.originalEvent.preventDefault();this.updateURL({sortdirection:data.selectedItemID});};this.changeSorting=function(e){e.preventDefault();var cell=$(e.currentTarget);var order='';if(cell.hasClass('ipsTable_sortableActive')){order=(cell.hasClass('ipsTable_sortableDesc'))?'asc':'desc';}else{order=(cell.hasClass('ipsTable_sortableDesc'))?'desc':'asc';}
;(function($,_,undefined){"use strict";ips.controller.mixin('acpTable','core.global.core.table',true,function(){this._timer=null;this._searchField=null;this._curSearchValue='';this._currentValue='';this.after('initialize',function(){this.on('focus','[data-role="tableSearch"]',this.startLiveSearch);this.on('blur','[data-role="tableSearch"]',this.endLiveSearch);this.on('click','[data-action="tableSort"]',this.changeSorting);this.on('paginationClicked',this.adminPaginationClicked);this.on('menuItemSelected','#elSortMenu',this.sortByMenu);this.on('menuItemSelected','#elOrderMenu',this.orderByMenu);});this.before('setup',function(){this._searchField=this.scope.find('[data-role="tableSearch"]');this.scope.find('[data-role="tableSearch"]').removeClass('ipsHide').show();});this.around('_getUrlParams',function(origFn){return _.extend(origFn(),{quicksearch:this._getSearchValue()||''});});this.after('_updateSort',function(data){var directions='ipsTable_sortableAsc ipsTable_sortableDesc';this.scope.find('[data-role="table"] [data-action="tableSort"]').removeClass('ipsTable_sortableActive').removeAttr('aria-sort').end().find('[data-action="tableSort"][data-key="'+data.by+'"]').addClass('ipsTable_sortableActive').removeClass(directions).addClass('ipsTable_sortable'+data.order.charAt(0).toUpperCase()+data.order.slice(1)).attr('aria-sort',(data.order=='asc')?'ascending':'descending');$('#elSortMenu_menu, #elOrderMenu_menu').find('[aria-selected="true"]').removeAttr('aria-selected').end().find('[data-ipsMenuValue="'+data.by+'"], [data-ipsMenuValue="'+data.order+'"]').attr('aria-selected','true');});this.after('_handleStateChanges',function(state){if(!_.isUndefined(state.data.quicksearch)&&state.data.quicksearch!=this._urlParams.quicksearch){this._updateSearch(state.data.quicksearch);}});this.adminPaginationClicked=function(){var wrappingDialog=this.scope.closest('.ipsDialog');var elemPosition=ips.utils.position.getElemPosition(wrappingDialog.length?wrappingDialog:this.scope);$('html, body').animate({scrollTop:(elemPosition.absPos.top-60)+'px'});};this.sortByMenu=function(e,data=e.detail){data.originalEvent.preventDefault();this.updateURL({sortby:data.selectedItemID});};this.orderByMenu=function(e,data=e.detail){data.originalEvent.preventDefault();this.updateURL({sortdirection:data.selectedItemID});};this.changeSorting=function(e){e.preventDefault();var cell=$(e.currentTarget);var order='';if(cell.hasClass('ipsTable_sortableActive')){order=(cell.hasClass('ipsTable_sortableDesc'))?'asc':'desc';}else{order=(cell.hasClass('ipsTable_sortableDesc'))?'desc':'asc';}
this.updateURL({sortby:cell.attr('data-key'),sortdirection:order});};this.startLiveSearch=function(e){this._timer=setInterval(_.bind(this._checkSearchValue,this),500);};this.endLiveSearch=function(e){clearInterval(this._timer);};this._checkSearchValue=function(){var val=this._searchField.val();if(this._currentValue!=val){this.updateURL({quicksearch:val,page:1});this._currentValue=val;}};this._updateSearch=function(searchValue){this._searchField.val(searchValue);};this._updateFilter=function(newFilter){this.scope.find('[data-role="tableSortBar"] [data-action="tableFilter"] a').removeClass('ipsDataFilters__button--active').end().find('[data-action="tableFilter"][data-filter="'+newFilter+'"] a').addClass('ipsDataFilters__button--active');};this._getSortValue=function(){var sortBy=this.scope.find('[data-role="table"] thead .ipsTable_sortable.ipsTable_sortableActive');var sortOrder='desc';if(sortBy.hasClass('ipsTable_sortableAsc')){sortOrder='asc';}
return{by:sortBy.attr('data-key'),order:sortOrder};};this._getFilterValue=function(){var sortBar=this.scope.find('[data-role="tableSortBar"]');if(!sortBar.length){return'';}
return sortBar.find('.ipsDataFilters__button--active').closest('[data-filter]').attr('data-filter');};this._getSearchValue=function(){if(ips.utils.url.getParam('quicksearch')){return ips.utils.url.getParam('quicksearch');}
return this.scope.find('[data-role="tableSearch"]').val();};});}(jQuery,_));;
ips.templates.set('core.appMenu.reorder'," <span data-role='reorder' style='display: none'><i class='fa-solid fa-bars'></i></span>");ips.templates.set('core.controlStrip.menu'," <ul class='ipsMenu ipsMenu_auto' role='menu' id='{{id}}_menu' style='display: none'> {{{content}}} </ul>");ips.templates.set('core.controlStrip.menuItem'," <li class='ipsMenu_item ipsControlStrip_menuItem' role='menuitem' id='{{id}}'> {{{item}}} </li>");ips.templates.set('core.controlStrip.dropdown'," <li class='ipsControlStrip_button ipsControlStrip_dropdown' data-dropdown id='{{id}}'> <a href='#'> <i class='ipsControlStrip_icon fa-solid fa-angle-down'></i> </a> </li>");ips.templates.set('core.trees.childWrapper'," {{{content}}}");ips.templates.set('core.trees.loadingRow'," <ol class='ipsTree'><li class='ipsTree_loadingRow ipsLoading ipsLoading--tiny'>{{#lang}}loading{{/lang}}</li></ol>");ips.templates.set('core.trees.loadingPane'," <div class='ipsLoading' style='height: 150px'>&nbsp;</div>");ips.templates.set('core.trees.noRows'," <div class='i-text-align_center i-padding_3 i-color_soft'>{{#lang}}no_results{{/lang}}</div>");ips.templates.set('core.livesearch.noResults'," <li class='i-text-align_center i-padding_3 i-color_soft' data-role='result'> <br><br> </li>");ips.templates.set('languages.translateString'," <div class='cTranslateTable_field'> <textarea class='ipsInput'>{{value}}</textarea> <button type='button' href='#' data-action='saveWords' tabindex='-1' class='ipsButton ipsButton--positive ipsButton--tiny ipsButton--icon'><i class='fa-solid fa-check'></i> {{#lang}}languageSave{{/lang}}</button> </div>");ips.templates.set('support.guideSearch'," <li> <a href=\"{{link}}\" target='_blank' rel='noopener'>{{title}}</a> </li>");ips.templates.set('support.guideSearch.noResults'," <li class='i-color_soft'> {{#lang}}no_results{{/lang}} </li>");ips.templates.set('support.ticket.supportSummary'," <div class='i-padding-top_3'> {{#lang}}health_ticket_beforeproceeding{{/lang}} </div>");;
ips.templates.set('core.appMenu.reorder'," <span data-role='reorder' style='display: none'><i class='fa-solid fa-bars'></i></span>");ips.templates.set('core.controlStrip.menuItem'," <li class='ipsMenu_item ipsControlStrip_menuItem' role='menuitem' id='{{id}}'> {{{item}}} </li>");ips.templates.set('core.trees.childWrapper'," {{{content}}}");ips.templates.set('core.trees.loadingRow'," <ol class='ipsTree'><li class='ipsTree_loadingRow ipsLoading ipsLoading--tiny'>{{#lang}}loading{{/lang}}</li></ol>");ips.templates.set('core.trees.loadingPane'," <div class='ipsLoading' style='height: 150px'>&nbsp;</div>");ips.templates.set('core.trees.noRows'," <div class='i-text-align_center i-padding_3 i-color_soft'>{{#lang}}no_results{{/lang}}</div>");ips.templates.set('core.livesearch.noResults'," <li class='i-text-align_center i-padding_3 i-color_soft' data-role='result'> <br><br> </li>");ips.templates.set('languages.translateString'," <div class='cTranslateTable_field'> <textarea class='ipsInput'>{{value}}</textarea> <button type='button' href='#' data-action='saveWords' tabindex='-1' class='ipsButton ipsButton--positive ipsButton--tiny ipsButton--icon'><i class='fa-solid fa-check'></i> {{#lang}}languageSave{{/lang}}</button> </div>");ips.templates.set('support.guideSearch'," <li> <a href=\"{{link}}\" target='_blank' rel='noopener'>{{title}}</a> </li>");ips.templates.set('support.guideSearch.noResults'," <li class='i-color_soft'> {{#lang}}no_results{{/lang}} </li>");ips.templates.set('support.ticket.supportSummary'," <div class='i-padding-top_3'> {{#lang}}health_ticket_beforeproceeding{{/lang}} </div>");;
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.core.app',{initialize:function(){this.on('click','[data-clickshow]',this.clickShow);this.on('click','[data-clickhide]',this.clickHide);this.on('click','[data-clickempty]',this.clickEmpty);this.on('click','[data-delete]',this.deleteSomething);this.on('click','a[data-confirm]',this.confirmSomething);this.on('click','[data-doajax]',this.doAjaxAction);this.on(document,'contentChange',this._checkAndClearAutosave);this.setup();},setup:function(){if(ips.utils.serviceWorker.supported){ips.utils.serviceWorker.registerServiceWorker('admin',false);}
this._checkAndClearAutosave();if(!ips.getSetting('memberID')&&ips.utils.url.getParam('_fromLogout')){ips.utils.db.removeByType('editorSave');}},_checkAndClearAutosave:function(){if(ips.utils.cookie.get('clearAutosave')){var autoSaveKeysToClear=ips.utils.cookie.get('clearAutosave').split(',');for(var i=0;i<autoSaveKeysToClear.length;i++){ips.utils.db.remove('editorSave',autoSaveKeysToClear[i]);}
ips.utils.cookie.unset('clearAutosave');}},doAjaxAction:function(e){e.preventDefault();ips.getAjax()($(e.currentTarget).attr('href'),{dataType:'json'}).done(function(response){ips.ui.flashMsg.show(response);}).fail(function(jqXHR){if(Debug.isEnabled()){Debug.error(jqXHR.responseText);}else{window.location=$(e.currentTarget).attr('href');}});},deleteSomething:function(e){e.preventDefault();var elem=$(e.currentTarget);var deleteTitle=elem.attr('data-delete-message');var extraWarning=elem.attr('data-delete-warning');ips.ui.alert.show({type:'confirm',icon:'warn',message:deleteTitle||ips.getString('delete_confirm'),subText:extraWarning||'',focus:'cancel',callbacks:{ok:function(){if(elem.attr('data-noajax')!==undefined){window.location=elem.attr('href')+'&csrfKey='+ips.getSetting('csrfKey')+'&wasConfirmed=1';return;}
@@ -47,33 +45,41 @@ var row=null;if(elem.attr('data-deleterow')){row=$(elem.attr('data-deleterow'));
let bypassRedirect=!(elem.attr('data-accept-redirect'));ips.getAjax()(elem.attr('href'),{showLoading:true,bypassRedirect:bypassRedirect,data:{form_submitted:1,wasConfirmed:1}}).done(function(response){if(row.hasClass('parent')){row.next().remove();}
ips.utils.anim.go('fadeOut',row);}).fail(function(){window.location=elem.attr('href')+'&csrfKey='+ips.getSetting('csrfKey')+'&wasConfirmed=1';});}}});},confirmSomething:function(e){e.preventDefault();var elem=$(e.currentTarget);var customMessage=$(e.currentTarget).attr('data-confirmMessage');var customSubMessage=$(e.currentTarget).attr('data-confirmSubMessage');var type=$(e.currentTarget).attr('data-confirmType');var icon=$(e.currentTarget).attr('data-confirmIcon');var alert={type:(type)?type:'confirm',icon:(icon)?icon:'warn',message:(customMessage)?customMessage:ips.getString('generic_confirm'),subText:(customSubMessage)?customSubMessage:'',callbacks:{ok:function(){window.location=elem.attr('href')+'&wasConfirmed=1';},yes:function(){window.location=elem.attr('href')+'&prompt=1';},no:function(){window.location=elem.attr('href')+'&prompt=0';}}};if($(e.currentTarget).attr('data-confirmButtons')){alert.buttons=$.parseJSON($(e.currentTarget).attr('data-confirmButtons'));}
ips.ui.alert.show(alert);},clickShow:function(e){e.preventDefault();var elems=ips.utils.getIDsFromList($(e.currentTarget).attr('data-clickshow'));this.scope.find(elems).show().removeClass('ipsHide');},clickHide:function(e){e.preventDefault();var elems=ips.utils.getIDsFromList($(e.currentTarget).attr('data-clickhide'));this.scope.find(elems).hide().addClass('ipsHide');},clickEmpty:function(e){e.preventDefault();var elems=ips.utils.getIDsFromList($(e.currentTarget).attr('data-clickempty'));this.scope.find(elems).val('');}});}(jQuery,_));;
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.core.dynamicChart',{storedValues:{},identifier:'',type:'',initialize:function(){this.on('click','[data-timescale]',this.changeTimescale);this.on(document,'submit','[data-role="dateForm"]',this.changeDateRange);this.on(document,'click','[data-role="clearSearchTerm"]',this.resetSearch);this.on(document,'submit','[data-role="searchForm"]',this.changeSearch);this.scope.find('[data-role="clearSearchTerm"]').hide();this.on('menuItemSelected','[data-action="chartFilter"]',this.changeFilter);this.on('click','[data-type]',this.changeChartType);$('[data-role="filterMenu"] [data-role="selectAll"]').on('click',_.bind(this.selectAllFilters,this));$('[data-role="filterMenu"] [data-role="unselectAll"]').on('click',_.bind(this.unselectAllFilters,this));$('button[data-role="applyFilters"]').on('click',function(){$('[data-action="chartFilter"]').trigger('closeMenu');});this.on('click','[data-role="saveReport"]',_.bind(this.saveFilters,this));this.on('click','[data-role="renameChart"]',_.bind(this.renameFilters,this));this.setup();},selectAllFilters:function(e){$(e.currentTarget).closest('.ipsMenu').find('.ipsMenu_item:not(.ipsMenu_itemChecked) a:not(.ipsMenu_itemNonSelect)').trigger('click');$('button[data-role="applyFilters"]').prop('disabled',false);},unselectAllFilters:function(e){$(e.currentTarget).closest('.ipsMenu').find('.ipsMenu_item.ipsMenu_itemChecked a').trigger('click');$('button[data-role="applyFilters"]').prop('disabled',false);},setup:function(){var self=this;this.identifier=this.scope.attr('data-chart-identifier');this.storedValues.timescale=this.scope.find('[data-timescale][data-selected]').attr('data-timescale');this.storedValues.type=this.scope.find('[data-type][data-selected]').attr('data-type');if(this.scope.find('[data-role="searchForm"] input')){this.storedValues.term=null;}
this.storedValues.filters=[];this.storedValues.dates={start:'',end:''};this.type=this.scope.attr('data-chart-type');this.timescale=this.scope.attr('data-chart-timescale');$('#el'+this.identifier+'Filter_menu').find('.ipsMenu_itemChecked').each(function(){self.storedValues.filters.push($(this).attr('data-ipsMenuValue'));});this.checkType();},changeTimescale:function(e){this.timescale=$(e.currentTarget).attr('data-timescale');this._toggleButtonRow(e,'timescale');},changeChartType:function(e){this.type=$(e.currentTarget).attr('data-type');this._toggleButtonRow(e,'type');this.checkType();},checkType:function(){if(this.type=='Table'||this.type=='PieChart'||this.type=='GeoChart'){$(this.scope).find('[data-role="groupingButtons"] a.ipsButton').addClass('ipsButton--disabled');}else{$(this.scope).find('[data-role="groupingButtons"] a.ipsButton').removeClass('ipsButton--disabled');}},updateUrlBound:false,changeFilter:function(e,data){data.originalEvent.preventDefault();this._resetFilters();if(this.updateUrlBound===false){$('[data-action="chartFilter"]').one('menuClosed',_.bind(this.fetchNewResults,this));this.updateUrlBound=true;}
$('button[data-role="applyFilters"]').prop('disabled',false);},fetchNewResults:function(e){this._updateURL();this.updateUrlBound=false;},saveFilters:function(event){var identifier=this.scope.closest('.ipsTabs__panel').closest('section').attr('id');var self=this;var pieces=[];_.each(this.storedValues.filters,function(value,idx){pieces.push("chartFilters["+idx+"]="+value);});$('#el'+this.identifier+'CustomFiltersForm input[data-role="nodeValue"]').each(function(){pieces.push('customform_'+$(this).attr('name')+"="+$(this).val());});var newFilters=pieces.join('&');if(this.timescale){newFilters=newFilters+"&timescale="+this.timescale;}
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.core.dynamicChart',{storedValues:{},identifier:'',type:'',initialize:function(){this.on('click','[data-timescale]',this.changeTimescale);this.on(document,'submit','[data-role="dateForm"]',this.changeDateRange);document.addEventListener('ips:stats.setDateFilters',e=>this.globalDateRangeSet(e));this.on(document,'click','[data-role="clearSearchTerm"]',this.resetSearch);this.on(document,'submit','[data-role="searchForm"]',this.changeSearch);this.on('menuItemSelected','[data-action="chartFilter"]',this.changeFilter);this.on('click','[data-type]',this.changeChartType);this.on('click','[data-role="filterMenu"] [data-role="selectAll"]',this.selectAllFilters);this.on('click','[data-role="filterMenu"] [data-role="unselectAll"]',this.unselectAllFilters);this.on('click','[data-role="saveReport"]',_.bind(this.saveFilters,this));this.on('click','[data-role="renameChart"]',_.bind(this.renameFilters,this));this.setup();},selectAllFilters:function(e){$(e.currentTarget).closest('i-dropdown').find('[data-ipsMenuValue]:not([aria-selected="true"])').each(function(){this.click();});},unselectAllFilters:function(e){$(e.currentTarget).closest('i-dropdown').find('[data-ipsMenuValue][aria-selected="true"]').each(function(){this.click();});},setup:function(){var self=this;this.identifier=this.scope.attr('data-chart-identifier');this.storedValues.timescale=this.scope.find('[data-timescale][data-selected]').attr('data-timescale');this.storedValues.type=this.scope.find('[data-type][data-selected]').attr('data-type');if(this.scope.find('[data-role="searchForm"] input')){this.storedValues.term=null;}
this.storedValues.filters=[];this.storedValues.dates={start:'',end:''};this.type=this.scope.attr('data-chart-type');this.timescale=this.scope.attr('data-chart-timescale');$('#el'+this.identifier+'Filter_menu').find('[aria-selected="true"]').each(function(){self.storedValues.filters.push($(this).attr('data-ipsMenuValue'));});this.checkType();const url=new URL(window.location.href);const action=new URL(this.elem.dataset.chartUrl,window.location.href);if(parseInt(url.searchParams.get('highlight'))&&url.searchParams.get('highlight')===action.searchParams.get('chartId')){this.pulse();ips.utils.history.replaceState(window.history.state?._current?.[window.history.state?._lastKey]||{},window.history.state?._lastKey||"",url.updateSearchParams({params:{highlight:null}}).toString());}},pulse(){setTimeout(()=>{requestAnimationFrame(()=>{this.elem.animate([{boxShadow:"0 0 0px 0px color-mix(in srgb-linear, var(--i-primary) 50%, transparent)",offset:0},{boxShadow:"0 0 4px 4px color-mix(in srgb-linear, var(--i-primary) 50%, transparent)",offset:0.15},{boxShadow:"0 0 4px 4px color-mix(in srgb-linear, var(--i-primary) 50%, transparent)",offset:0.85},{boxShadow:"0 0 0px 0px color-mix(in srgb-linear, var(--i-primary) 50%, transparent)",offset:1},],4000);});},1000);},changeTimescale:function(e){this.timescale=$(e.currentTarget).attr('data-timescale');this._toggleButtonRow(e,'timescale');},changeChartType:function(e){this.type=$(e.currentTarget).attr('data-type');this._toggleButtonRow(e,'type');this.checkType();},checkType:function(){if(this.type=='Table'||this.type=='PieChart'||this.type=='GeoChart'){$(this.scope).find('[data-role="groupingButtons"] a.ipsButton').addClass('ipsButton--disabled');}else{$(this.scope).find('[data-role="groupingButtons"] a.ipsButton').removeClass('ipsButton--disabled');}},updateUrlBound:false,changeFilter:function(e,data=e.detail){data.originalEvent.preventDefault();this._resetFilters();if(this.updateUrlBound===false){$('[data-action="chartFilter"]').one('menuClosed',_.bind(this.fetchNewResults,this));this.updateUrlBound=true;}},fetchNewResults:function(e){this._updateURL();this.updateUrlBound=false;},saveFilters:function(event){var identifier=this.scope.closest('.ipsTabs__panel').closest('section').attr('id');var self=this;var pieces=[];_.each(this.storedValues.filters,function(value,idx){pieces.push("chartFilters["+idx+"]="+value);});$('#el'+this.identifier+'CustomFiltersForm input[data-role="nodeValue"]').each(function(){pieces.push('customform_'+$(this).attr('name')+"="+$(this).val());});$('#el'+this.identifier+'CustomFiltersForm select').each(function(){pieces.push('customform_'+$(this).attr('name')+'='+$(this).val());})
var newFilters=pieces.join('&');if(this.timescale){newFilters=newFilters+"&timescale="+this.timescale;}
if(!$(event.currentTarget).attr('data-chartId')){this._skipUpdate=true;$('#el'+this.identifier+'FilterSave_menu').one('submit','form',function(e){if($(this).attr('data-bypassValidation')){return false;}
$(this).trigger('closeMenu');var tabTitle=$(this).find('[name="custom_chart_title"]').val();e.preventDefault();ips.getAjax()($(this).attr('action'),{data:$(this).serialize()+'&'+newFilters,type:'post'}).done(function(response,status,jqXHR){$('[data-ipsTabBar-contentArea="#'+identifier+'"]').find('[role="tablist"]').append("<a href='"+response.tabHref+"' id='ipsTabs_"+response.tabId+"_"+response.chartId+"' class='ipsTabs__tab' title='"+tabTitle+"' role='tab' aria-controls='ipsTabs_"+response.tabId+"_"+response.chartId+"_panel' aria-selected='false'>"+tabTitle+"</a>");$('#'+identifier).append("<div id='ipsTabs_"+response.tabId+"_"+response.chartId+"_panel' class='ipsTabs__panel' role'tabpanel' aria-labelledby='ipsTabs_"+response.tabId+"_"+response.chartId+"' hidden></div>");self._skipUpdate=false;$(document).trigger('contentChange',[self.scope]);$('#el'+self.identifier+'FilterSave_menu').find('[name="custom_chart_title"]').val('');$('#'+response.tabId+"_"+response.chartId).click();ips.ui.flashMsg.show(ips.getString('saved'));}).fail(function(){$(this).attr('data-bypassValidation',true).submit();});});}
$(this)[0].closest("[popover]")?.hidePopover();var tabTitle=$(this).find('[name="custom_chart_title"]').val();e.preventDefault();ips.getAjax()($(this).attr('action'),{data:$(this).serialize()+'&'+newFilters,type:'post'}).done(function(response,status,jqXHR){if(response.reportURL){window.location.href=response.reportURL;return;}
$('[data-ipsTabBar-contentArea="#'+identifier+'"]').find('[role="tablist"]').append("<a href='"+response.tabHref+"' id='ipsTabs_"+response.tabId+"_"+response.chartId+"' class='ipsTabs__tab' title='"+tabTitle+"' role='tab' aria-controls='ipsTabs_"+response.tabId+"_"+response.chartId+"_panel' aria-selected='false'>"+tabTitle+"</a>");$('#'+identifier).append("<div id='ipsTabs_"+response.tabId+"_"+response.chartId+"_panel' class='ipsTabs__panel' role'tabpanel' aria-labelledby='ipsTabs_"+response.tabId+"_"+response.chartId+"' hidden></div>");self._skipUpdate=false;$(document).trigger('contentChange',[self.scope]);$('#el'+self.identifier+'FilterSave_menu').find('[name="custom_chart_title"]').val('');$('#'+response.tabId+"_"+response.chartId).click();ips.ui.flashMsg.show(ips.getString('saved'));}).fail(function(){$(this).attr('data-bypassValidation',true).submit();});});}
else
{ips.getAjax()(this.scope.attr('data-chart-url')+'&saveFilters=1&chartId='+$(event.currentTarget).attr('data-chartId'),{data:newFilters,type:'post'});this._updateURL();ips.ui.flashMsg.show(ips.getString('saved'));}},renameFilters(){const identifier=this.scope.closest('.ipsTabs__panel').closest('section').attr('id');const titlefield=()=>identifier?$(`[data-ipsTabBar-contentArea="#${identifier}"] [role="tablist"] [aria-selected="true"]`):this.scope.find('.ipsTitle');$('#el'+this.identifier+'FilterRename_menu').on('submit','form',async function(e){if($(this).attr('data-bypassValidation')){return false;}
$(this).trigger('closeMenu');e.preventDefault();try{const{title}=await ips.fetch($(this).attr('action'),{data:$(this).serialize(),type:'post'});titlefield().text(title);}catch(e){console.log(e)
$(this).attr('data-bypassValidation',true).submit();}});},changeSearch:function(e){e.preventDefault();var form=$('#el'+this.identifier+'Search_menu');this.storedValues.term=form.find('[name="search"]').val();this.scope.find('[data-role="searchSummary"]').text(this.storedValues.term);if(this.storedValues.term){Debug.log(this.scope.find('[data-role="clearSearchTerm"]'));form.find('[data-role="clearSearchTerm"]').show();}
else
{form.find('[data-role="clearSearchTerm"]').hide();}
form.trigger('closeMenu');this._updateURL();},resetSearch:function(e){$('#el'+this.identifier+'Search_menu').find('[name="search"]').val('');},changeDateRange:function(e){e.preventDefault();var form=$('#el'+this.identifier+'Date_menu');this.storedValues.dates.start=form.find('[name="start"]').val();this.storedValues.dates.end=form.find('[name="end"]').val();form.trigger('closeMenu');if(this.storedValues.dates.start&&this.storedValues.dates.end){this.scope.find('[data-role="dateSummary"]').text('('+ips.getString('betweenXandX',{start:ips.utils.time.localeDateString(ips.utils.time.removeTimezone(new Date(this.storedValues.dates.start))),end:ips.utils.time.localeDateString(ips.utils.time.removeTimezone(new Date(this.storedValues.dates.end)))})+')');}
e.preventDefault();$(this)[0].closest("[popover]")?.hidePopover();try{const{title}=await ips.fetch($(this).attr('action'),{data:$(this).serialize(),type:'post'});titlefield().text(title);}catch(e){Debug.error(e)
$(this).attr('data-bypassValidation',true).submit();}});},changeSearch:function(e){e.preventDefault();var form=$('#el'+this.identifier+'Search_menu');this.storedValues.term=form.find('[name="search"]').val();this.scope.find('[data-role="searchSummary"]').text(this.storedValues.term);form.find('[data-role="clearSearchTerm"]').prop('hidden',!this.storedValues.term);form[0].closest("[popover]")?.hidePopover();this._updateURL();},resetSearch:function(e){$('#el'+this.identifier+'Search_menu').find('[name="search"]').val('');},changeDateRange:function(e){const identifier=this.elem.querySelector('[data-action="chartDate"]')?.id;if(identifier&&!e.target?.closest(`#${identifier}_menu`)){return;}
e.preventDefault();var form=$('#el'+this.identifier+'Date_menu');this.storedValues.dates.start=form.find('[name="start"]').val();this.storedValues.dates.end=form.find('[name="end"]').val();form[0].closest("[popover]")?.hidePopover();if(this.storedValues.dates.start&&this.storedValues.dates.end){this.scope.find('[data-role="dateSummary"]').text('('+ips.getString('betweenXandX',{start:ips.utils.time.localeDateString(ips.utils.time.removeTimezone(new Date(this.storedValues.dates.start))),end:ips.utils.time.localeDateString(ips.utils.time.removeTimezone(new Date(this.storedValues.dates.end)))})+')');}
else if(this.storedValues.dates.start){this.scope.find('[data-role="dateSummary"]').text('('+ips.getString('afterX',{start:ips.utils.time.localeDateString(ips.utils.time.removeTimezone(new Date(this.storedValues.dates.start)))})+')');}
else if(this.storedValues.dates.end){this.scope.find('[data-role="dateSummary"]').text('('+ips.getString('beforeX',{end:ips.utils.time.localeDateString(ips.utils.time.removeTimezone(new Date(this.storedValues.dates.end)))})+')');}
else
{this.scope.find('[data-role="dateSummary"]').text('');}
this._updateURL();},_toggleButtonRow:function(e,type){e.preventDefault();var val=$(e.currentTarget).attr('data-'+type);this.scope.find('[data-'+type+']').removeClass('ipsButton--active').removeAttr('data-selected').filter('[data-'+type+'="'+val+'"]').addClass('ipsButton--active').attr('data-selected',true);this.storedValues[type]=val;this._resetFilters();this._updateURL();},_resetFilters:function(){var self=this;this.storedValues.filters=[];$('#el'+this.identifier+'Filter_menu').find('.ipsMenu_itemChecked').each(function(){self.storedValues.filters.push($(this).attr('data-ipsMenuValue'));});},_skipUpdate:false,_updateURL:function(){if(this._skipUpdate===true){this._skipUpdate=false;return;}
var url=this._buildURL();var chartArea=this.scope.find('[data-role="chart"]');chartArea.css('height',chartArea.height()).html('').addClass('ipsLoading');ips.getAjax()(this.scope.attr('data-chart-url'),{data:url,type:'post'}).done(function(response){chartArea.css('height','auto').html(response);$(document).trigger('contentChange',[chartArea]);}).always(function(){chartArea.removeClass('ipsLoading');});$('button[data-role="applyFilters"]').prop('disabled',true);this.scope.find('[data-role="downloadChart"]').attr('href',this.scope.attr('data-chart-url')+'&'+url+'&download=1');},_buildURL:function(){var pieces=[];var self=this;pieces.push("noheader=1");pieces.push("timescale["+this.identifier+"]="+this.storedValues.timescale);if(!_.isUndefined(this.storedValues.type)){pieces.push("type["+this.identifier+"]="+this.storedValues.type);}
if(!_.isUndefined(this.storedValues.term)&&!_.isNull(this.storedValues.term)){pieces.push("search["+this.identifier+"]="+this.storedValues.term);}
_.each(this.storedValues.filters,function(value,idx){pieces.push("filters["+self.identifier+"]["+idx+"]="+value);});if(this.storedValues.dates.start||this.storedValues.dates.end){pieces.push("start["+this.identifier+"]="+this.storedValues.dates.start);pieces.push("end["+this.identifier+"]="+this.storedValues.dates.end);}
$('#el'+this.identifier+'CustomFiltersForm input[data-role="nodeValue"]').each(function(){pieces.push('customform_'+$(this).attr('name')+"="+$(this).val());});return pieces.join('&');}});}(jQuery,_));;
;(function($,_){"use strict";ips.controller.register('core.admin.core.editorRestrictions',{_restrictions:[],initialize(){if(!this._getHeader()||!this._getTextarea()){return;}
this.hideRealElements();ips.ui.editorv5.getExtensionRestrictions().then(restrictions=>this.addFormElements(restrictions));this.elem.addEventListener('input',e=>this.updateTextarea(e));},hideRealElements(){this._getHeader()?.setAttribute('hidden','');this._getTextarea()?.closest('.ipsFieldRow')?.setAttribute('hidden','');},_getHeader(){return this.elem.querySelector("#form_header_editor_extensions");},_getTextarea(){return this.elem.querySelector("textarea#el_editor_extension_restrictions_input, #el_editor_extension_restrictions_input textarea");},async addFormElements(restrictions){this._restrictions=restrictions;if(!restrictions.length){return;}
try{const content=await ips.fetch("/admin/?app=core&module=settings&controller=posting&do=getRestrictionInput",{data:{restrictionKey:restrictions.join(','),restrictionLang:JSON.stringify(restrictions.map(restriction=>ips.getString(restriction))),restrictionDesc:JSON.stringify(restrictions.map(restriction=>ips.haveString(restriction+':description')?ips.getString(restriction+":description"):""))}});if(!content?.content||typeof content.content!=='string'){throw new TypeError(`content.content is not a string or is an empty string, so it cannot be added to the form`);}
this._updateURL();},globalDateRangeSet(e){let{start,end,range}=e?.detail?.dateFilters||{};if(!start&&!end&&!range){return;}
if(range){const days=parseInt(range);if(Number.isNaN(days)){throw new RangeError(`Expected range to be an integer representing a number of days`);}else if(days>=0){end=Math.round(Date.now()/1000);start=days>0?end-(86400*days):0;}}
if(typeof start==='string'){start=Math.round((new Date(start)).getTime()/1000);}
if(typeof end==='string'){end=Math.round((new Date(end)).getTime()/1000);}
if(Number.isNaN(start)||Number.isNaN(end)){throw new RangeError(`Could not determine either the start or end of the interval`);}
this.storedValues.dates.start=start;this.storedValues.dates.end=end;this.storedValues.dates.range=range;this._updateURL();},_toggleButtonRow:function(e,type){e.preventDefault();var val=$(e.currentTarget).attr('data-'+type);this.scope.find('[data-'+type+']').removeClass('ipsButton--active').removeAttr('data-selected').filter('[data-'+type+'="'+val+'"]').addClass('ipsButton--active').attr('data-selected',true);this.storedValues[type]=val;this._resetFilters();this._updateURL();},_resetFilters:function(){var self=this;this.storedValues.filters=[];$('#el'+this.identifier+'Filter_menu').find('[aria-selected="true"]').each(function(){self.storedValues.filters.push($(this).attr('data-ipsMenuValue'));});},_skipUpdate:false,_updateURL:function(){if(this._skipUpdate===true){this._skipUpdate=false;return;}
var url=this._buildURL();var chartArea=this.scope.find('[data-role="chart"]');chartArea.css('height',chartArea.height()).html('').addClass('ipsLoading');ips.getAjax()(this.scope.attr('data-chart-url'),{data:url,type:'post'}).done(function(response){chartArea.css('height','auto').html(response);$(document).trigger('contentChange',[chartArea]);}).always(function(){chartArea.removeClass('ipsLoading');});this.scope.find('[data-role="downloadChart"]').attr('href',this.scope.attr('data-chart-url')+'&'+url+'&download=1');},_buildURL:function(){const params=new URLSearchParams();params.set('noheader','1');params.set(`timescale[${this.identifier}]`,this.storedValues.timescale);if('type'in this.storedValues){params.set(`type[${this.identifier}]`,this.storedValues.type);}
if(this.storedValues.term!==undefined&&this.storedValues.term!==null){params.set(`search[${this.identifier}]`,this.storedValues.term);}
if(this.storedValues.filters&&Symbol.iterator in this.storedValues.filters){let idx=0;for(const value of this.storedValues.filters){params.set(`filters[${this.identifier}][${idx++}]`,value);}}
if(this.storedValues.dates.start||this.storedValues.dates.end){params.set(`start[${this.identifier}]`,this.storedValues.dates.start);params.set(`end[${this.identifier}]`,this.storedValues.dates.end);}
if(document.body.dataset.pagecontroller==='mycharts'&&document.body.dataset.pageapp==='core'&&document.body.dataset.pagemodule==='overview'){if(this.storedValues.dates.range){params.set('predate',this.storedValues.dates.range);}
if((!this.storedValues.dates.range||parseInt(this.storedValues.dates.range)===-1)&&(this.storedValues.dates.start||this.storedValues.dates.end)){params.delete('predate');params.set('date[start]',this.storedValues.dates.start||null);params.set('date[end]',this.storedValues.dates.end||null);}}
$('#el'+this.identifier+'CustomFiltersForm input[data-role="nodeValue"]').each(function(){params.set('customform_'+$(this).attr('name'),$(this).val());});$('#el'+this.identifier+'CustomFiltersForm select').each(function(){params.set('customform_'+$(this).attr('name'),$(this).val());});return params.toString();}});}(jQuery,_));;
;(function($,_){"use strict";ips.controller.register('core.admin.core.editorRestrictions',{_restrictions:[],_restrictionDefaults:{},initialize(){if(!this._getHeader()||!this._getTextarea()){return;}
this.hideRealElements();document.dispatchEvent(new CustomEvent('ips:editorBeforeInit',{detail:{textarea:null,elem:null,content:"",options:{}},bubbles:true,}));ips.ui.editorv5.getExtensionRestrictions(true).then(restrictions=>this.addFormElements(restrictions));this.elem.addEventListener('input',e=>this.updateTextarea(e));},hideRealElements(){this._getHeader()?.setAttribute('hidden','');this._getTextarea()?.closest('.ipsFieldRow')?.setAttribute('hidden','');},_getHeader(){return this.elem.querySelector("#form_header_editor_extensions");},_getTextarea(){return this.elem.querySelector("textarea#el_editor_extension_restrictions_input, #el_editor_extension_restrictions_input textarea");},async addFormElements(restrictions){this._restrictions=restrictions.map(r=>r[0]);this._restrictionDefaults=Object.fromEntries(restrictions);if(!restrictions.length){return;}
try{const content=await ips.fetch("/admin/?app=core&module=settings&controller=posting&do=getRestrictionInput",{data:{restrictionKey:this._restrictions.join(','),restrictionDefault:JSON.stringify(Object.fromEntries(restrictions)),restrictionLang:JSON.stringify(this._restrictions.map(restriction=>ips.getString(restriction))),restrictionDesc:JSON.stringify(this._restrictions.map(restriction=>ips.haveString(restriction+':description')?ips.getString(restriction+":description"):""))}});if(!content?.content||typeof content.content!=='string'){throw new TypeError(`content.content is not a string or is an empty string, so it cannot be added to the form`);}
this._getHeader().removeAttribute('hidden');const clean=(new DOMParser()).parseFromString(content.content,'text/html').body;let lastNode=this._getHeader();clean.querySelectorAll(':scope > *').forEach(node=>{lastNode.after(node);lastNode=node;})}catch(e){Debug.error(e);}},updateTextarea(e){const name=e.target.getAttribute('name');if(!name?.match(/^ipsCustom(?:Node|Mark|Extension)__/)){return}
const restrictionSetting=JSON.parse(this._getTextarea().innerText||'{}');restrictionSetting.removed=restrictionSetting.removed||[]
const value=parseInt(e.target.value);for(const level in restrictionSetting){if(level==='removed'){continue;}
let value=parseInt(e.target.value);if([-1,0,1,2].includes(this._restrictionDefaults[name])&&this._restrictionDefaults[name]===value){restrictionSetting.removed.push(name);value=Number.NaN;}else if([0,1,2,-1].includes(value)&&!(value.toString()in restrictionSetting)){restrictionSetting[value.toString()]=[name];}
for(const level in restrictionSetting){if(level==='removed'){continue;}
if(parseInt(level)===value&&!Number.isNaN(value)){if(!restrictionSetting[level].includes(name)){restrictionSetting[level].push(name)}}else if(restrictionSetting[level].includes(name)){restrictionSetting[level]=restrictionSetting[level].filter(restriction=>restriction!==name);}
restrictionSetting[level]=restrictionSetting[level].filter(restriction=>{if(restriction.match(/^ipsCustom(Node|Mark|Extension)__/)&&!this._restrictions.includes(restriction)){if(!restrictionSetting.removed.includes(restriction)){restrictionSetting.removed.push(restriction)}
return false;}