Version 5.0.0 beta 1
This commit is contained in:
1 parent
25ddeb65d6
commit
15c7beabc5
6736 files changed
+627902
-497943
No files matched your search
@@ -0,0 +1,14 @@
|
||||
;(function($,_){"use strict";ips.controller.register('ips.core.badgepreview',{preview:undefined,badgetype:'badge',initialize(){this.preview=this.elem.querySelector('[data-role="preview"]')
|
||||
if('badgetype'in this.elem.dataset){this.badgetype=this.elem.dataset.badgetype;}
|
||||
const _debounced=_.throttle(async()=>{await this.updateImage();},200,{trailing:true});for(const id of['icon','shape','foreground','background','border','sides','rotation','number_overlay'].map(i=>`${this.badgetype}_${i}`)){const config={attributes:true,childList:false,subtree:false}
|
||||
this.getForm().querySelectorAll(`#${id} input`).forEach(element=>{if(id.endsWith('rotation')){element.oninput=()=>this.updateRotation();}else if(id.match(/_number_overlay$/)){element.oninput=()=>this.updateNumberOverlay();}else if(!id.match(/_(foreground|border|background)$/)){element.oninput=_debounced;}
|
||||
const observer=new MutationObserver(mutationList=>{for(const mutationRecord of mutationList){if(mutationRecord.type==='attributes'&&['value','style'].includes(mutationRecord.attributeName)){if(id.endsWith('rotation')){this.updateRotation();}else if(id.match(/_(foreground|background|border)$/)){this.updateColor();}else if(id.match(/_number_overlay$/)){this.updateNumberOverlay();}else{_debounced();}
|
||||
break}}})
|
||||
observer.observe(element,config)})}},async updateImage(){let url=ipsSettings.baseURL+`/admin/?app=core&module=achievements&controller=badges&do=badgePreview`;const contents=await ips.fetch(url,{method:"POST",data:{shape:this.getShape(),icon:JSON.stringify(this.getIcon()),foreground:this.getForeground(),background:this.getBackground(),border:this.getBorder(),rotation:this.getRotation(),sides:this.getSides(),numberoverlay:this.getNumberOverlay()}});if(contents.querySelector('svg')){this.preview.innerHTML='';this.preview.appendChild(contents.querySelector('svg'));}},updateColor(){const foreground=this.getForeground();const background=this.getBackground();const border=this.getBorder();const svgElement=this.preview.querySelector('svg');const attrMap={foreground:['fgcolor',foreground],background:['bgcolor',background],border:['bordercolor',border]}
|
||||
for(const colorField in attrMap){svgElement.querySelectorAll(`[data-${attrMap[colorField][0]}-placeholder]`).forEach(el=>{el.dataset[attrMap[colorField][0]+"Placeholder"].split(',').forEach(attr=>{el.setAttribute(attr,attrMap[colorField][1]);});})}
|
||||
svgElement?.querySelectorAll('[data-embedded-fg-color][href]').forEach(img=>{const href=img.getAttribute('href');const url=new URL(href);if(url.protocol.toLowerCase()==='data:'&&url.pathname.startsWith('image/svg+xml,')){const data=decodeURIComponent(url.pathname.split(',',2)[1]);const embeddedXML=(new DOMParser()).parseFromString(data,'text/xml');let changed=false;for(const colorField in attrMap){embeddedXML.querySelectorAll(`[data-${attrMap[colorField][0]}-placeholder]`).forEach(el=>{el.getAttribute(`data-${attrMap[colorField][0]}-placeholder`).split(",").forEach(attr=>{changed=true;el.setAttribute(attr,attrMap[colorField][1]);})});}
|
||||
if(changed){const encoded=`data:image/svg+xml,${encodeURIComponent(embeddedXML.documentElement.outerHTML)}`
|
||||
img.setAttribute('href',encoded);}}})},updateNumberOverlay(){const svgElement=this.preview.querySelector('svg');const numberInput=this.getNumberOverlay();if(svgElement){if(numberInput){svgElement.querySelectorAll('.svg__text_overlay').forEach(overlay=>{overlay.innerHTML=`${numberInput}`});svgElement.querySelectorAll('[data-number-overlay]').forEach(overlay=>{overlay.style.display=''})}else{svgElement.querySelectorAll('[data-number-overlay]').forEach(overlay=>{overlay.style.display='none'})}}},isSquare:false,updateRotation(){const rotation=this.getRotation();const shape=this.getShape();if(shape==='ngon'&&rotation===45&&this.getSides()===4){this.updateImage();this.isSquare=true;}else if(this.isSquare){this.updateImage();this.isSquare=false;}else{if(['ngon','star','flower'].includes(shape)){this.preview.querySelectorAll('[transform]').forEach(node=>{if(node.getAttribute('transform').includes('rotate')){node.setAttribute('transform',`rotate(${rotation})`)}})}}},getForm(){return this.elem.closest('form')},getShape(){for(const input of this.getForm().querySelectorAll(`#${this.badgetype}_shape input[type="radio"][name="${this.badgetype}_shape"]`)){if(input.checked){return input.value}}
|
||||
return'circle'},getIcon(){const value=JSON.parse(this.getForm().querySelector(`input[name="${this.badgetype}_icon"]`)?.value||'null')||null;if(Array.isArray(value)&&value.length){return value[0]}
|
||||
return null},getForeground(){return this.getForm().querySelector(`input[name="${this.badgetype}_foreground"]`)?.value||"#ffffff";},getBackground(){return this.getForm().querySelector(`input[name="${this.badgetype}_background"]`)?.value||"#eeb95f";},getBorder(){return this.getForm().querySelector(`input[name="${this.badgetype}_border"]`)?.value||"#f7d36f";},getSides(){return parseInt(this.getForm().querySelector(`input[name="${this.badgetype}_sides"]`)?.value||"5");},getRotation(){return parseInt(this.getForm().querySelector(`input[name="${this.badgetype}_rotation"]`)?.value||"0");},getNumberOverlay(){if(this.getForm().querySelector(`input[type="checkbox"][name="${this.badgetype}_number_overlay"][data-control="unlimited"]`)?.checked){return 0;}
|
||||
const value=parseInt(this.getForm().querySelector(`input[type="number"][name="${this.badgetype}_number_overlay"]`)?.value||this.getForm().querySelector(`input[type="number"][name="${this.badgetype}_number_overlay"]`)?.dataset.previousvalue||"0");return Math.min(Math.max(0,value),999)}})}(jQuery,_));
|
||||
@@ -0,0 +1,23 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.core.editable',{_editTimeout:null,_editing:false,initialize:function(){this.on('mousedown',this.editMousedown);this.on('mouseup mouseleave',this.editMouseup);this.on('click',this.editMouseclick);this.on('click','[data-role="edit"]',this.clickEdit);this.setup();},setup:function(){var defaultFill=this.scope.attr('data-default');if(ips.utils.events.isTouchDevice()||(!_.isUndefined(defaultFill)&&defaultFill=='empty')){this.scope.removeClass('ipsType_editable').find('[data-role="edit"]').show();}},clickEdit:function(e){e.preventDefault();this._triggerEdit();},editMousedown:function(e){var self=this;if(e.which!==1){return;}
|
||||
this._editTimeout=setTimeout(_.bind(this._triggerEdit,this),1000);},editMouseup:function(e){clearTimeout(this._editTimeout);},editMouseclick:function(e){if(this._editing){e.preventDefault();}},_triggerEdit:function(){var self=this;this._editing=true;clearTimeout(this._editTimeout);var span=this.scope;var url=span.attr('data-url');var textField=span.find('[data-role="text"]');var fieldName=span.find('[data-name]').attr('data-name');var defaultFill=span.attr('data-default');span.hide();var defaultText=(_.isUndefined(defaultFill)||defaultFill!='empty')?textField.text().trim():'';var inputNode=$('<input/>').attr({type:'text'}).attr('data-role','editField').val(defaultText);span.after(inputNode);inputNode.focus();inputNode.on('blur',function(){inputNode.addClass('ipsField_loading');if(inputNode.val()==''){inputNode.remove();span.show();self._editing=false;}else{var dataToSend={};dataToSend[fieldName]=inputNode.val();ips.getAjax()(url,{method:'post',data:dataToSend}).done(function(response){textField.text(inputNode.val());}).fail(function(response){ips.ui.alert.show({type:'alert',icon:'warn',message:response.responseJSON,});}).always(function(){inputNode.remove();span.show();self._editing=false;});}});inputNode.on('keypress',function(e){if(e.keyCode==ips.ui.key.ENTER){e.stopPropagation();e.preventDefault();inputNode.blur();return false;}});inputNode.on('keydown',function(e){if(e.keyCode==ips.ui.key.ESCAPE){inputNode.remove();span.show();self._editing=false;return false;}});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.core.notificationMenu',{initialize:function(){this.on(document,'menuOpened',this.menuOpened);$('body').on('updateNotificationCount',this.updateNotificationCount);this.setup();},setup:function(){var notificationCount=parseInt(this.scope.find('[data-role="notificationCount"]').text());if(isNaN(notificationCount)){notificationCount=0;}
|
||||
var storedNotificationCount=parseInt(ips.utils.cookie.get('acpNotificationCount'));if(isNaN(storedNotificationCount)){storedNotificationCount=0;}
|
||||
if(notificationCount>storedNotificationCount){setTimeout(function(){$(this.scope).find('[data-role="notificationIcon"]').addClass('cAcpNotifications_animate');}.bind(this),800);}
|
||||
ips.utils.cookie.set('acpNotificationCount',notificationCount);},loaded:false,menuOpened:function(e,data){if(!this.loaded){var self=this;var ajaxObj=ips.getAjax();$('[data-role="notificationList"]').html('').css({height:'100px'}).addClass('ipsLoading');ajaxObj('?app=core&module=overview&controller=notifications',{dataType:'json'}).done(function(returnedData){$('[data-role="notificationList"]').css({height:'auto'}).removeClass('ipsLoading').html(returnedData.data);self.loaded=true;$(document).trigger('contentChange',[$('[data-role="notificationList"]')]);});}},updateNotificationCount:function(){ips.getAjax()('?app=core&module=overview&controller=notifications').done(function(response){var count=parseInt(response.count);if(count){$(this).find('[data-role="notificationCount"]').removeClass('ipsHide').text(count).closest('.cAcpNotifications').addClass('cAcpNotifications_active');}else{$(this).find('[data-role="notificationCount"]').addClass('ipsHide').closest('.cAcpNotifications').removeClass('cAcpNotifications_active');}}.bind(this));}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.core.acpSearchKeywords',{initialize:function(){this.on('click','[data-action="save"]',this.saveKeywords);},saveKeywords:function(e){e.preventDefault();var scope=this.scope;var data={url:scope.attr('data-url'),lang_key:scope.find("[data-role='lang_key']").val(),restriction:scope.find("[data-role='restriction']").val(),keywords:[]};scope.find("[data-role='keywords']").each(function(){if($(this).val()){data.keywords.push($(this).val());}});ips.getAjax()(scope.attr('data-action'),{data:data,type:'post',showLoading:true}).done(function(response){scope.trigger('closeMenu');ips.ui.flashMsg.show('Keywords saved');});},});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.core.changeTheme',{initialize:function(){$('#elAdminUser,#elThemeLangMenuMob').on('menuItemSelected',_.bind(this.themePreferenceSelected,this));this.setTheme();},setTheme:function(){if(_.isUndefined(ips.utils.cookie.get('acptheme'))||ips.utils.cookie.get('acptheme')=='undefined'){if(window.matchMedia&&window.matchMedia('(prefers-color-scheme: dark)').matches){$('html').attr('data-ips-scheme','dark');ips.utils.cookie.set('acpthemedefault','dark');}
|
||||
else
|
||||
{$('html').attr('data-ips-scheme','light');ips.utils.cookie.set('acpthemedefault','light');}}
|
||||
else
|
||||
{if(ips.utils.cookie.get('acptheme')==='dark'){$('html').attr('data-ips-scheme','dark');}else{$('html').attr('data-ips-scheme','light');}}},themePreferenceSelected:function(e,data){if(_.isUndefined(data.selectedItemID)){return;}
|
||||
e.preventDefault();if(data.selectedItemID=='os'){ips.utils.cookie.unset('acptheme');}
|
||||
else
|
||||
{var expires=new Date();expires.setFullYear(expires.getFullYear()+1);ips.utils.cookie.set('acptheme',data.selectedItemID,expires.toUTCString());}
|
||||
$('#elThemeMenu_menu, #elNavThemeMob_menu').find('.ipsMenu_itemChecked').removeClass('ipsMenu_itemChecked');$('#elThemeMenu_menu, #elNavThemeMob_menu').find('[data-ipsMenuValue="'+data.selectedItemID+'"]').addClass('ipsMenu_itemChecked');this.setTheme();}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.core.langString',{_url:null,_hideTimeout:null,_currentValue:'',initialize:function(){this.on('change','textarea',this.changeTextarea);this.on('focus','textarea',this.focusTextarea);this.on('blur','textarea',this.blurTextarea);this.on('click','[data-action="saveWords"]',this.saveWords);this.on('click','[data-action="revertWords"]',this.revertWords);this.setup();},setup:function(){this._url=this.scope.attr('data-saveURL');var contents=this.scope.find('a').html();var html=ips.templates.render('languages.translateString',{value:_.unescape(contents)});this._currentValue=_.unescape(contents);this.scope.html(html);},changeTextarea:function(){},focusTextarea:function(){this.scope.addClass('cTranslateTable_field_focus').find('textarea').removeClass('ipsField_success').end().find('[data-action]').show();},blurTextarea:function(){this._saveWords(true);},_hideButtons:function(e){this.scope.removeClass('cTranslateTable_field_focus');},saveWords:function(e){e.preventDefault();this._saveWords(false);},_saveWords:function(hideButtonsImmediately){var self=this;var url=this._url+'&form_submitted=1&csrfKey='+ips.getSetting('csrfKey');var textarea=this.scope.find('textarea');var value=textarea.val();if(this._currentValue==value){this._hideButtons();return;}
|
||||
if(this._hideTimeout){clearTimeout(this._hideTimeout);}
|
||||
this.scope.find('[data-action]').addClass('ipsButton--disabled');ips.getAjax()(url,{type:'post',data:{lang_word_custom:encodeURIComponent(value)}}).done(function(){textarea.removeClass('ipsField_loading').addClass('ipsField_success');ips.ui.flashMsg.show(ips.getString('saved'));if(!hideButtonsImmediately){self._hideTimeout=setTimeout(_.bind(self._hideButtons,self),300);}else{self._hideButtons();}
|
||||
self._currentValue=value;}).fail(function(){window.location=url;});},revertWords:function(e){}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.core.mobileNav',{initialize:function(){this.on('click','[data-action="mobileSearch"]',this.mobileSearch);this.on(document,'click','[data-role="clearCaches"]',this.clearCaches);},mobileSearch:function(e){e.preventDefault();if($('body').hasClass('acpSearchOpen')){$('body').find('.ipsModal').trigger('click');}
|
||||
$('body').toggleClass('acpSearchOpen');},clearCaches:function(e){e.preventDefault();var button=this.scope.find('[data-role="clearCaches"]');if(button.hasClass('ipsButton--disabled')){return;}
|
||||
var self=this;ips.getAjax()('?app=core&module=support&controller=support&do=clearCaches').done(function(response){ips.ui.flashMsg.show(ips.getString('health_caches_cleared'));}).always(function(){self.scope.find('[data-role="clearCaches"]').removeClass('ipsButton--disabled');});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,20 @@
|
||||
ips.templates.set('templates.customizationMedia.grid'," <ul class='cMedia_manager__items'> {{{contents}}} </ul>");ips.templates.set('templates.customizationMedia.noItems'," <div class='i-text-align_center i-font-size_2 i-color_soft i-padding_4'> {{#lang}}mediaEmptyFolder{{/lang}} </div>");ips.templates.set('templates.customizationMedia.noSearchResults'," <div class='i-text-align_center i-font-size_2 i-color_soft i-padding_4'> {{#lang}}mediaNoResults{{/lang}} </div>");;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.customization.designerCore',{_cmInstances:{},isSaving:false,initialize:function(){this.on('click','button[type="submit"]',this.save);this.on('tabChanged',this.changedTab);const debounce=_.debounce(_.bind(this._recalculatePanelWrapper,this),100);this.on(window,'resize',debounce);const disableSubmit=()=>{this.isSaving=true}
|
||||
const debouncedEnableSubmit=_.debounce(()=>{this.isSaving=false},500)
|
||||
this.elem.addEventListener('ips:codeboxAfterInit',e=>{if(e.detail?.instance){e.detail.instance.on('transaction',()=>{disableSubmit();debouncedEnableSubmit();});}})},changedTab:function(e,data){this._recalculatePanelWrapper();},async save(e){e.preventDefault();const form=this.scope.find('form[data-formid="form"]');if(this.isSaving){await new Promise(resolve=>setTimeout(resolve,500));}
|
||||
const save=Object.fromEntries(new FormData(form.get(0)).entries());Debug.log(save);this.scope.find('button[type="submit"]').addClass('ipsButton_disabled').removeClass('ipsButton_primary');try{await ips.fetch(form.attr('action'),{dataType:'json',data:save,type:'post'});ips.ui.flashMsg.show(ips.getString('saved'));}catch(jqXHR){let message=ips.getString('saveThemeError');try{message=JSON.parse(jqXHR.responseText);}
|
||||
catch(e){}
|
||||
ips.ui.alert.show({type:'alert',icon:'warn',message});}
|
||||
this.scope.find('button[type="submit"]').removeClass('ipsButton_disabled').addClass('ipsButton_primary');},_getContentHeight:function(){return $(window).height()-this.scope.find('#tabs_form').offset().top-250;},_recalculatePanelWrapper:function(){var self=this;_.each(this._cmInstances,function(key,cm){key.setSize(null,self._getContentHeight());});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.customization.emoticons',{initialize:function(){this.on('blur','[data-role="emoticonTyped"]',this.checkTypedValue);this.on('submit',this.submit);this.setup();},setup:function(){this.scope.find('[data-role="setList"]').sortable({update:_.bind(this._saveSetOrder,this)});this.scope.find('[data-role="emoticonsList"]').sortable({connectWith:this.scope.find('[data-role="emoticonsList"]'),handle:'[data-role="dragHandle"]',update:_.bind(this._saveOrder,this)});},submit:function(e){if(!window.JSON){return;}
|
||||
var formElements=this.scope.find(':input:enabled:not([name="csrfKey"])');var output=ips.utils.form.serializeAsObject(formElements);var newInput=$('<input />').attr('type','hidden').attr('name','emoticons_squashed');Debug.log("Before encoding, emoticon data is:");Debug.log(output);output=JSON.stringify(output);this.scope.prepend(newInput.val(output));formElements.prop('disabled',true);},checkTypedValue:function(e){var elem=$(e.currentTarget);var val=elem.val();elem.val(val.replace(/\s/g,''));if(val.match(/\s/)){ips.ui.alert.show({type:'alert',message:ips.getString('emoticon_no_spaces'),icon:'warn'});}},_saveSetOrder:function(){var setOrder=[];this.scope.find('[data-emoticonSet]').each(function(){setOrder.push($(this).attr('data-emoticonSet'));});ips.getAjax()(this.scope.attr('action'),{type:'post',data:{setOrder:setOrder}});},_saveOrder:function(e,ui){var output={};var item=ui.item;var group=ui.item.closest('[data-emoticonSet]').attr('data-emoticonSet');ui.item.find('.cEmoticons_input > input[type="hidden"]').val(group);this.scope.find('[data-emoticonGroup]').each(function(){var itemOrder=[];$(this).find('[data-emoticonID]').each(function(){itemOrder.push(parseInt($(this).attr('data-emoticonID')));});output[$(this).attr('data-emoticonGroup')]=itemOrder;});ips.getAjax()(this.scope.attr('action'),{type:'post',data:output});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.customization.media',{_fileListing:null,_sidebar:null,_cachedFileInfo:{},_searchTimer:null,_uploadURL:'',initialize:function(){this.on('click','[data-role="mediaItem"]',this.clickItem);this.on('click','[data-action="deleteSelected"]',this.deleteSelected);this.on('keyup','[data-role="mediaSearch"]',this.doSearch);this.on('submitDialog','[data-role="uploadButton"]',this.dialogSubmitted);this.on('submitDialog','[data-role="replaceFile"]',this.replaceDialogSubmitted);this.on('click','[data-role="replaceFile"]',this.uploadNewFile);this.setup();},setup:function(){this._fileListing=this.scope.find('[data-role="fileListing"]');this._searchResults=this.scope.find('[data-role="searchResults"]');this._sidebar=this.scope.find('[data-role="mediaSidebar"]');this._uploadURL=this.scope.find('[data-role="uploadButton"]').attr('href');this._searchStyleTag=this.scope.find('[data-role="searchStyleTag"]');this.scope.find('[data-role="uploadButton"]').attr('href',this._uploadURL);this._unselectAll();this._updatePreview();this._checkDeleteButton();},dialogSubmitted:function(e,data){var newHTML=[];_.each(data.response.rows,function(file,key){newHTML.push(file);});this._buildFileListing(newHTML);ips.ui.flashMsg.show(ips.pluralize(ips.getString('mediaUploadedCount'),data.response.count));},replaceDialogSubmitted:function(e,data){var newHTML=[];_.each(data.response.rows,function(file,key){newHTML.push(file);});this._buildFileListing(newHTML);delete this._cachedFileInfo[data.response.fileID];ips.ui.flashMsg.show(ips.getString('mediaUploadedReplace'));this._fileListing.find('[data-fileid="'+data.response.fileID+'"]').click();},deleteSelected:function(e){e.preventDefault();var self=this;var selected=this._getSelected().closest('[data-role="mediaItem"]');var selectedIDs=[];$.each(selected,function(){selectedIDs.push($(this).attr('data-fileid'));});ips.ui.alert.show({type:'confirm',message:ips.pluralize(ips.getString('mediaConfirmDelete'),selected.length),icon:'warn',callbacks:{ok:function(){selected.find('.cMedia_itemSelected').removeClass('cMedia_itemSelected')
|
||||
ips.utils.anim.go('fadeOutDown',selected).done(function(){selected.remove();self._updatePreview();self._checkDeleteButton();});ips.getAjax()('?app=core&module=customization&controller=media&do=deleteByFileIds&set_id='+self.scope.attr('data-theme-id'),{data:{fileIds:selectedIDs}}).fail(function(){ips.ui.alert.show({type:'alert',message:ips.pluralize(ips.getString('mediaErrorDeleting'),selected.length)});})}}});},clickItem:function(e){var item=$(e.currentTarget).find('> .cMedia_item');var metaPressed=e.metaKey;if(!metaPressed){this._unselectAll();item.addClass('cMedia_itemSelected');}else if(metaPressed){item.toggleClass('cMedia_itemSelected',(!item.hasClass('cMedia_itemSelected')));}
|
||||
this._updatePreview();this._checkDeleteButton();},uploadNewFile:function(e){if(e){e.preventDefault();}
|
||||
var itemId=this._getSelected().closest('[data-role="mediaItem"]').attr('data-fileid');$(e.currentTarget).ipsDialog({remoteSubmit:true,forceReload:true,url:$(e.currentTarget).attr('data-baseUrl')+itemId,destructOnClose:true,title:ips.getString('replaceMediaFile')});},_checkDeleteButton:function(){var selected=this._getSelected().closest('[data-role="mediaItem"]');if(selected.length==0){this.scope.find('[data-action="deleteSelected"]').addClass('ipsHide');}else{this.scope.find('[data-action="deleteSelected"]').removeClass('ipsHide');}},_buildFileListing:function(data){var output;if(!data.length){output=ips.templates.render('templates.customizationMedia.noItems');}else{output=ips.templates.render('templates.customizationMedia.grid',{contents:data.join('')});}
|
||||
console.log(output);this._fileListing.html(output);$(document).trigger('contentChange',[this._fileListing]);},_updatePreview:function(){var self=this;var selected=this._getSelected().closest('[data-role="mediaItem"]');if(selected.length==0||selected.length>1){var language=(selected.length==0)?ips.getString('mediaNoneSelected'):ips.pluralize(ips.getString('mediaMultipleSelected'),selected.length);this._sidebar.find('[data-role="multipleItemsMessage"]').html(language);this._sidebar.find('[data-role="itemInformation"]').hide().end().find('[data-role="multipleItems"]').show();this._sidebar.find('[data-role="replaceFile"]').hide();}else{var info={itemFilename:selected.attr('data-filename'),itemUploaded:selected.attr('data-uploaded'),itemTag:'{resource="'+selected.attr('data-path').replace(/^\/|\/$/g,'')+'/'+selected.attr('data-filename')+'" app="core" location="front"}',itemUrl:selected.attr('data-url'),itemID:selected.attr('data-fileid'),itemShowDimensions:selected.is('[data-filename$=".jpg"], [data-filename$=".png"], [data-filename$=".gif"], [data-filename$=".webp"], [data-filename$=".jpeg"], [data-filename$=".tiff"], [data-filename$=".avif"]'),itemFilesize:null,itemDimensions:null};var cache=this._cachedFileInfo[info.itemID];if(!_.isUndefined(cache)){info.itemFilesize=cache['itemFilesize'];info.itemDimensions=cache['itemDimensions'];}else{this._infoAjax=ips.getAjax()('?app=core&module=customization&controller=media&set_id='+this.scope.attr('data-theme-id')+'&do=getFileInfo&id='+info.itemID).done(function(response){self._cachedFileInfo[info.itemID]={itemFilesize:response.fileSize,itemDimensions:response.dimensions};self._sidebar.find('[data-role="itemFilesize"]').text(response.fileSize);self._sidebar.find('[data-role="itemDimensions"]').text(response.dimensions);});}
|
||||
_.each(info,function(value,key){var elem=self._sidebar.find('[data-role="'+key+'"]');if(elem.is('input')){elem.val(value);}else if(key=='itemPreview'){elem.html(value);}else if(key=='itemUrl'){elem.html($('<a/>').attr('href',value).text(value).attr('target','_blank'));}
|
||||
else if(value===null){elem.html($('<span/>').addClass('i-color_soft').text('Loading...'));}else{elem.text(value);}});this._sidebar.find('[data-role="itemDimensionsRow"]').toggle(info.itemShowDimensions);this._sidebar.find('[data-role="itemTag"]').get(0).select();this._sidebar.find('[data-role="itemInformation"]').show().end().find('[data-role="multipleItems"]').hide();this._sidebar.find('[data-role="replaceFile"]').show();$(document).trigger('contentChange',[this._sidebar]);}},doSearch:function(){var value=this.scope.find('[data-role="mediaSearch"]').val();if(!_.isEmpty(value)){this._searchStyleTag.html('[data-role="mediaItem"]:not([data-filename*="'+value.replace(/['"]+/g,'')+'" i]){ display: none; }');this._unselectAll();}else{this._searchStyleTag.html('');}
|
||||
this._updatePreview();this._checkDeleteButton();},_getSelected:function(){if(this._fileListing.is(':visible')){return this._fileListing.find('.cMedia_itemSelected');}else{return this._searchResults.find('.cMedia_itemSelected');}},_resetSearch:function(){this.scope.find('[data-role="mediaSearch"]').val('');this._searchResults.hide();this._fileListing.show();this._unselectAll();this._updatePreview();this._checkDeleteButton();},_unselectAll:function(){this._fileListing.find('.cMedia_item').removeClass('cMedia_itemSelected');this._searchResults.find('.cMedia_item').removeClass('cMedia_itemSelected');}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.customization.themeForm',{initialize:function(){this.headerFooterCssFieldSetUp();},headerFooterCssFieldSetUp:function(){$('#theme_header').addClass('ipsFieldRow--fullWidth');$('#theme_footer').addClass('ipsFieldRow--fullWidth');$('#theme_css').addClass('ipsFieldRow--fullWidth');}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.customization.customTemplatesForm',{currentHookPoint:null,initialize:function(){this.on('change','input[name=template_type]',this.typeChanged);this.on('change','select[name=template_hookapp]',this.hookAppChanged);this.on('change','select[name^=template_path_]',this.hookPathChanged);this.on('change','select[name^=template_hookpoint_]',this.hookPointChanged);this.on('click','[data-role=viewTemplate]',this.viewTemplate);this.setup();},setup:function(){$('li[id^=template_path_]').hide();$('#template_hookapp').hide();$('li[id^=template_hookpoint_]').hide();$('#template_hookpoint_type').hide();$('#template_key').hide();this.typeChanged();},viewTemplate:function(e){let currentApp=$('select[name=template_hookapp]').val();let currentPath=$('select[name=template_path_'+currentApp+']').val();let dialogRef=ips.ui.dialog.create({title:ips.getString('custom_theme_template_title'),url:'?app=core&module=customization&controller=customtemplates&do=ajaxGetTemplate&hookpoint='+currentApp+'/'+currentPath.replace(/_/g,'/',)+':'+this.currentHookPoint,forceReload:true,remoteSubmit:true});dialogRef.show();},typeChanged:function(e,data){if($('input[name="template_type"]:checked').val()==='hook'){$('#template_key').hide();$('#template_hookapp').show();this.hookAppChanged(e,data);}else{$('#template_hookapp').hide();$('li[id^=template_path_]').hide();$('li[id^=template_hookpoint_]').hide();$('#template_key').show();}},hookAppChanged:function(e,data){$('li[id^=template_path_]').hide();$('li[id^=template_hookpoint_]').hide();$('#template_path_'+$('select[name=template_hookapp]').val()).show();this.hookPathChanged(e,data);},hookPathChanged:function(e,data){let currentApp=$('select[name=template_hookapp]').val();$('li[id^=template_hookpoint_'+currentApp+'_]').hide();$('#template_hookpoint_'+currentApp+'_'+$('select[name=template_path_'+currentApp+']').val()).show();this.hookPointChanged(e,data);},hookPointChanged:function(e,data){let currentApp=$('select[name=template_hookapp]').val();let currentPath=$('select[name=template_path_'+currentApp+']').val();this.currentHookPoint=$('select[name=template_hookpoint_'+currentApp+'_'+currentPath+']').val();$('#template_hookpoint_type').show();this.getTemplateParams(e,data);},getTemplateParams:function(e,data){let currentApp=$('select[name=template_hookapp]').val();let currentPath=$('select[name=template_path_'+currentApp+']').val();ips.getAjax()('?app=core&module=customization&controller=customtemplates&do=ajaxGetAvailableParams',{data:{hookpoint:currentApp+'/'+currentPath.replace(/_/g,'/',)+':'+this.currentHookPoint,hookpoint_type:$('#template_hookpoint_type').val(),}}).done(function(response){$('span[data-template-params]').html(response);});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,30 @@
|
||||
ips.templates.set('dashboard.widget',`
|
||||
<li id='elWidget_{{key}}' data-widgetKey='{{key}}' data-widgetName='{{name}}' data-widgetBy='{{by}}' style='display: none'>
|
||||
<div class='ipsBox acpWidget_item' data-ips-template='dashboard'>
|
||||
<h2 class='ipsBox__header' data-widgetcollapse>
|
||||
<span>{{name}} {{#by}}<span class='i-color_soft i-font-size_1 i-font-weight_normal'>By {{by}}</span>{{/by}}</span>
|
||||
<ul class='acpWidget_tools'>
|
||||
<li>
|
||||
<a href='#' class='acpWidget_reorder ipsJS_show i-cursor_move' data-ipsTooltip title='Reorder widget'><i class='fa-solid fa-arrows-up-down-left-right'></i></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='#' class='acpWidget_close' data-ipsTooltip title='Close widget'><i class='fa-solid fa-xmark'></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</h2>
|
||||
<div class='' data-role='widgetContent'>
|
||||
{{content}}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
`);ips.templates.set('dashboard.menuItem',`
|
||||
<li class='ipsMenu_item' data-ipsMenuValue='{{key}}' data-widgetName='{{name}}' data-widgetBy='{{by}}'>
|
||||
<a href='#'>{{name}}</a>
|
||||
</li>
|
||||
`);;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.dashboard.adminNotes',{initialize:function(){this.on('submit','form',this.saveNotes);},saveNotes:function(e){e.preventDefault();var url=$(e.currentTarget).attr('action');var self=this;this.scope.find('[data-role="notesInfo"]').hide();this.scope.find('[data-role="notesLoading"]').removeClass('ipsHide');ips.getAjax()(url,{type:'post',data:$('#admin_notes').serialize()}).done(function(response){self.scope.find('[data-role="notesInfo"]').html(response);}).fail(function(){}).always(function(){self.scope.find('[data-role="notesInfo"]').show();self.scope.find('[data-role="notesLoading"]').addClass('ipsHide');});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.dashboard.main',{_managing:false,initialize:function(){this.on('click','.acpWidget_close',this.closeWidget);this.on('click','[data-widgetCollapse]',this.collapseWidget);this.on(document,'menuItemSelected','#elAddWidgets:not( .ipsButton--disabled )',this.addWidget);this.on('refreshWidget','[data-widgetKey]',this.refreshWidget);this.setup();},setup:function(){this.mainColumn=this.scope.find('[data-role="mainColumn"]');this.sideColumn=this.scope.find('[data-role="sideColumn"]');this.scope.find('[data-role="sideColumn"]').sortable({handle:'.acpWidget_reorder',forcePlaceholderSize:true,placeholder:'acpWidget_emptyHover',connectWith:'[data-role="mainColumn"]',tolerance:'pointer',start:this.startDrag,stop:_.bind(this.stopDrag,this),update:_.bind(this.update,this)});this.scope.find('[data-role="mainColumn"]').sortable({handle:'.acpWidget_reorder',forcePlaceholderSize:true,placeholder:'acpWidget_emptyHover',connectWith:'[data-role="sideColumn"]',tolerance:'pointer',start:this.startDrag,stop:_.bind(this.stopDrag,this),update:_.bind(this.update,this)});this.scope.find('[data-widgetCollapsed="true"][data-widgetCollapse-content]').hide();},startDrag:function(e,ui){$('body').attr('data-dragging',true).css({overflow:'scroll'});ui.item.css({zIndex:ips.ui.zIndex()});},stopDrag:function(e,ui){$('body').removeAttr('data-dragging').css({overflow:'auto'});$(ui.item).trigger('sorted.dashboard',{ui:ui});this._loadWidget($(ui.item).attr('data-widgetkey'));$('#ipsTooltip').hide();},update:function(){this._savePositions();},closeWidget:function(e){e.preventDefault();var self=this;var widget=$(e.currentTarget).closest('[data-widgetKey]');var key=widget.attr('data-widgetKey');var name=widget.attr('data-widgetName');widget.animationComplete(function(){widget.remove();self.mainColumn.sortable('refresh');self.sideColumn.sortable('refresh');self._savePositions();});widget.animate({height:"0"});ips.utils.anim.go('zoomOut fast',widget);$('#elAddWidgets_menu').find('[data-ipsMenuValue="'+key+'"]').removeClass('ipsHide');this.scope.find('#elAddWidgets_button').removeClass('ipsButton--disabled').removeAttr('data-disabled');},collapseWidget:function(e){e.preventDefault();if($(e.target).is('.acpWidget_tools *')){return;}
|
||||
var self=this;var widget=$(e.currentTarget).closest('[data-widgetKey]');var collapsed=widget.find('[data-role="widgetContent"]').attr('data-widgetCollapsed');widget.find('[data-role="widgetContent"]').attr('data-widgetCollapsed',(collapsed=='true')?'false':'true');widget.find('[data-widgetCollapse-content]').slideToggle();this._savePositions();},addWidget:function(e,data){data.originalEvent.preventDefault();var item=data.menuElem.find('[data-ipsMenuValue="'+data.selectedItemID+'"]');var key=item.attr('data-ipsMenuValue');var name=item.attr('data-widgetName');var newWidget=ips.templates.render('dashboard.widget',{key:key,name:name});this.mainColumn.prepend(newWidget);var newWidgetElem=this.mainColumn.find('#elWidget_'+key);ips.utils.anim.go('fadeIn',newWidgetElem);this._loadWidget(key);this._savePositions();setTimeout(function(){item.addClass('ipsHide');},500);if(!data.menuElem.find('[data-ipsMenuValue]:not( .ipsHide ):not( [data-ipsMenuValue="'+data.selectedItemID+'"] )').length){this.scope.find('#elAddWidgets_button').addClass('ipsButton--disabled').attr('data-disabled',true);}},_loadWidget:function(key){var widget=this.scope.find('[data-widgetKey="'+key+'"]');if(!widget.length){return;}
|
||||
widget.find('[data-role="widgetContent"]').css({height:widget.find('[data-role="widgetContent"]').outerHeight()+'px',}).html('').addClass('ipsLoading');ips.getAjax()('?app=core&module=overview&controller=dashboard&do=getBlock',{data:{appKey:key.substr(0,key.indexOf('_')),blockKey:key}}).done(function(response){widget.find('[data-role="widgetContent"]').css({height:'auto'}).html(response).removeClass('ipsLoading');$(document).trigger('contentChange',[widget]);});},refreshWidget:function(e){var key=$(e.currentTarget).attr('data-widgetKey');this._loadWidget(key);},_savePositions:function(){var main=this.mainColumn.sortable('toArray',{attribute:'data-widgetKey'});var side=this.sideColumn.sortable('toArray',{attribute:'data-widgetKey'});var collapsed=_.map(this.scope.find('[data-widgetCollapsed="true"]'),function(elem){return $(elem).closest('[data-widgetKey]').attr('data-widgetKey');});ips.getAjax()('?app=core&module=overview&controller=dashboard&do=update',{data:{blocks:{'main':main,'side':side,'collapsed':collapsed}}}).done(function(){}).fail(function(){ips.ui.alert.show({type:'alert',icon:'warn',message:ips.getString('dashboard_cant_save'),callbacks:{}});});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.dashboard.onboard',{initialize:function(){this.on('click','[data-role="sectionToggle"]',this.toggleSection);this.on('click','[data-action="nextStep"]',this.nextStep);this.on('click','[data-action="skipStep"]',this.skipStep);this.setup();},setup:function(){},toggleSection:function(e){e.preventDefault();this.scope.find('[data-role="sectionWrap"]').addClass('cOnboard__section--closed');$(e.currentTarget).closest('.cOnboard__section').toggleClass('cOnboard__section--closed');$(document).trigger('contentChange',[$(e.currentTarget).closest('.cOnboard__section')]);},nextStep:function(e){e.preventDefault();var wrap=$(e.currentTarget).closest('.cOnboard__section');var nextWrap=wrap.next('.cOnboard__section');if(nextWrap.length){$('html, body').animate({scrollTop:String(wrap.position().top-70)},function(){setTimeout(function(){wrap.addClass('cOnboard__section--closed cOnboard__section--done');nextWrap.removeClass('cOnboard__section--closed');$(document).trigger('contentChange',[nextWrap]);},200);});}else{wrap.addClass('cOnboard__section--closed cOnboard__section--done');}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.dashboard.validation',{initialize:function(){this.on('click','[data-action="approve"], [data-action="ban"]',this.validateUser);},validateUser:function(e){e.preventDefault();var self=this;var button=$(e.currentTarget);var url=button.attr('href');var type=button.attr('data-action');var row=button.closest('[data-role="validatingRow"]');var name=row.find('[data-role="userName"]').text();var toggles=button.closest('[data-role="validateToggles"]');ips.ui.alert.show({type:'confirm',callbacks:{'ok':function(){toggles.find('a').addClass('ipsButton--disabled');ips.getAjax()(url).done(function(response){ips.ui.flashMsg.show(ips.getString(type=='approve'?'userApproved':'userBanned',{name:name}));if(response){var newElement=$(response);$(self.scope).replaceWith(newElement);$(document).trigger('contentChange',[newElement]);}else{ips.utils.anim.go('fadeOut',$(self.scope).closest('.cNotification'));$('body').trigger('updateNotificationCount');}});}}});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,2 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.developer.details',{initialize:function(){this.setup();},setup:function(){var self=this;_.each($(this.scope).find('[data-role="devCenterIssues"]'),function(elem){$(elem).find('[data-role="devCenterIssues_content"]').html('').addClass('ipsLoading');$(elem).find('[data-iconType]').hide();$(elem).removeClass('elCritical');self.loadDevCenterIssues();});},loadDevCenterIssues:function(){var self=this;ips.getAjax()('?app=core&module=developer&controller=details&appKey='+ips.getSetting('devAppKey')+'&do=scan').done(function(response){self.scope.find('[data-role="devCenterIssues_content"]').html(response.html).removeClass('ipsLoading');$(document).trigger('contentChange',[self.scope.find('[data-role="devCenterIssues"]')]);self.scope.find('[data-role="devCenterIssues"] [data-iconType]').hide();if(parseInt(response.criticalIssues)){ips.utils.anim.go('fadeIn slow',self.scope.find('[data-role="devCenterIssues"] [data-iconType="critical"]'));self.scope.find('[data-role="devCenterIssues"]').addClass('elCritical');}
|
||||
else if(parseInt(response.recommendedIssues)){ips.utils.anim.go('fadeIn slow',self.scope.find('[data-role="devCenterIssues"] [data-iconType="recommended"]'));}}).fail(function(response){self.scope.find('[data-role="devCenterIssues_content"]').html(ips.getString("hookscanner_error")).removeClass("ipsLoading");self.scope.find('[data-role="devCenterIssues"]').addClass('elCritical');$(document).trigger('contentChange',[self.scope.find('[data-role="devCenterIssues"]')]);});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,5 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.files.form',{initialize:function(){if(this.scope.find('input[name=filestorage_move]')){$('#form_filestorage_move').hide();this.on('submit','form',this.submitForm);}},submitForm:function(e){var self=this;if($(e.currentTarget).attr('data-bypassValidation')){return true;}
|
||||
e.preventDefault();$(e.currentTarget).attr('data-bypassValidation',true);ips.getAjax()($(e.currentTarget).attr('action').replace('do=configurationForm','do=checkMoveNeeded'),{data:$(e.currentTarget).serialize(),type:'post'}).done(function(response){if(response.needsMoving){ips.ui.alert.show({type:'confirm',message:ips.getString('files_overview_move_desc'),icon:'fa-solid fa-triangle-exclamation',buttons:{ok:ips.getString('files_overview_move'),cancel:ips.getString('files_overview_leave')},callbacks:{ok:function(){$('input[name=filestorage_move_checkbox]').prop('checked',true);$(e.currentTarget).submit();},cancel:function(){$('input[name=filestorage_move_checkbox]').prop('checked',false);$(e.currentTarget).submit();}}});}
|
||||
else{$(e.currentTarget).submit();}});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('ips.admin.files.multimod',{initialize:function(){this.on('submit','[data-role="moderationTools"]',this.moderationSubmit);this.on('menuItemSelected',this.itemSelected);},moderationSubmit:function(e){var action=this.scope.find('[data-role="moderationAction"]').val();switch(action){case'delete':this._modActionDelete(e);break;default:$(document).trigger('moderationSubmitted');break;}},_modActionDelete:function(e){var self=this;var form=this.scope.find('[data-role="moderationTools"]');if(self._bypassDeleteCheck){return;}
|
||||
e.preventDefault();var count=parseInt(this.scope.find('[data-role="moderation"]:checked').length);ips.ui.alert.show({type:'confirm',icon:'warn',message:(count>1)?ips.pluralize(ips.getString('delete_confirm_many'),count):ips.getString('delete_confirm'),callbacks:{ok:function(){$(document).trigger('moderationSubmitted');self._bypassDeleteCheck=true;self.scope.find('[data-role="moderationTools"]').submit();}}});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,23 @@
|
||||
ips.templates.set('moderatorPermissions.checkUncheckAll'," <li class='ipsFieldRow'> <div class='ipsFieldRow__label'> </div> <div class='ipsFieldRow__content'> <ul class='ipsList ipsList--inline i-font-weight_500'> <li><a href='#' data-role='checkAll'>{{#lang}}check_all{{/lang}}</a></li> <li><a href='#' data-role='uncheckAll'>{{#lang}}uncheck_all{{/lang}}</a></li> </ul> </div> </li>");;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.members.listFlagSpammer',{initialize:function(){this.on('click',this.toggleFlagSpammer);},toggleFlagSpammer:function(e){e.preventDefault();var elem=$(e.currentTarget);var icon=elem.find('.fa-flag');ips.ui.alert.show({'type':'confirm','icon':'warn','message':icon.hasClass('ipsType_spammer')?ips.getString('confirmUnFlagAsSpammer'):ips.getString('confirmFlagAsSpammer'),'subText':icon.hasClass('ipsType_spammer')?ips.getString('confirmUnFlagAsSpammerDesc'):'',callbacks:{ok:function(){ips.getAjax()(elem.attr('href'),{dataType:'json'}).done(function(response){ips.ui.flashMsg.show(response);icon.toggleClass('ipsType_spammer');var newStatus=ips.utils.url.getParam('status',elem.attr('href'))==1?0:1;var newUrl=ips.utils.url.removeParam('status',elem.attr('href'));elem.attr('href',newUrl+'&status='+newStatus);elem.attr('_title',newStatus?ips.getString('flagAsSpammer'):ips.getString('unflagAsSpammer'));elem.attr('aria-label',newStatus?ips.getString('flagAsSpammer'):ips.getString('unflagAsSpammer'));}).fail(function(jqXHR){if(Debug.isEnabled()){Debug.error(jqXHR.responseText);}else{window.location=elem.attr('href');}});}}});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.members.restrictions',{initialize:function(){this.on('click','.acpRestrictions_subHeader h3',this.toggleSubHeader);this.on('change','.acpRestrictions_header input[type="checkbox"]',this.toggleHeader);this.on('change','.acpAppRestrictions_header input[type="checkbox"]',this.toggleAppHeader);this.on('click','[data-action="checkAll"]',this.checkAll);this.on('click','[data-action="checkNone"]',this.checkNone);this.on('click','[data-action="expandAll"], [data-action="collapseAll"]',this.toggleDisplay);this.setup();},toggleDisplay:function(e){e.preventDefault();var row=$(e.currentTarget).closest('.acpRestrictions_header');var subHeaders=row.next().find('.acpRestrictions_subHeader');var self=this;var action=($(e.currentTarget).attr('data-action')=='expandAll')?'expand':'collapse';subHeaders.each(function(){if(action=='expand'){self._expandSection($(this));}else{self._collapseSection($(this));}});},toggleAppHeader:function(e){var check=$(e.currentTarget);var row=check.closest('.acpAppRestrictions_header');if(!check.is(':checked')){row.siblings('.acpAppRestrictions_panel').find('.acpRestrictions_header input[type="checkbox"]').each(function(){$(this).prop('disabled',true).attr('data-originalState',$(this).is(':checked')).attr('checked',false).trigger('change');});}else{row.siblings('.acpAppRestrictions_panel').find('input[type="checkbox"]').each(function(){var thisCheck=$(this);thisCheck.prop('disabled',false);if(thisCheck.attr('data-originalState')=='true'){thisCheck.prop('checked',true).trigger('change');}});row.siblings('.acpAppRestrictions_panel').find('.acpRestrictions_panel input[type="checkbox"]').each(function(){var thisCheck=$(this);var checked=thisCheck.closest('.acpRestrictions_panel').siblings('.acpRestrictions_header').find('input[type="checkbox"]').is(':checked');if(!checked){thisCheck.prop('disabled',true);}else{thisCheck.prop('disabled',false);}
|
||||
if(thisCheck.attr('data-originalState')=='true'){thisCheck.prop('checked',true).trigger('change');}});}},toggleHeader:function(e){var check=$(e.currentTarget);var row=check.closest('.acpRestrictions_header');var unChecked=!check.is(':checked');row.next().find('input[type="checkbox"]').each(function(){var thisCheck=$(this);if(unChecked){thisCheck.attr('data-originalState',thisCheck.is(':checked')).prop('checked',false);}else if((thisCheck.attr('data-originalState')=='true')){thisCheck.prop('checked',true);}
|
||||
thisCheck.prop('disabled',unChecked).trigger('change');});},toggleSubHeader:function(e){var header=$(e.currentTarget).parent();if(header.hasClass('acpRestrictions_open')){this._collapseSection(header);}else{this._expandSection(header);}},_expandSection:function(section){var next=section.next('ul');section.addClass('acpRestrictions_open').removeClass('acpRestrictions_closed');ips.utils.anim.go('fadeInDown fast',next);},_collapseSection:function(section){section.removeClass('acpRestrictions_open').addClass('acpRestrictions_closed');},checkAll:function(e){e.preventDefault();var self=this;var header=$(e.currentTarget).parents('.acpRestrictions_subHeader');var next=header.next('ul');if(!next.is(':visible')){next.animationComplete(function(){self._togglePermissions(true,next);});this._expandSection(header);}else{this._togglePermissions(true,next);}},checkNone:function(e){e.preventDefault();var self=this;var header=$(e.currentTarget).parents('.acpRestrictions_subHeader');var next=header.next('ul');if(!next.is(':visible')){next.animationComplete(function(){self._togglePermissions(false,next);});this._expandSection(header);}else{this._togglePermissions(false,next);}},_togglePermissions:function(state,container){container.find('input[type="checkbox"]:not( [disabled] )').prop('checked',state).change();},setup:function(){this.scope.find('.acpRestrictions_open').removeClass('acpRestrictions_open').addClass('acpRestrictions_closed');}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.members.moderatorPermissions',{initialize:function(){this.on('change','#ipsTabs_tabs_form_form_tab_modperms__core_Content_panel input[type="checkbox"]',this.toggle);this.on('click','[data-role="checkAll"]',this.checkAll);this.on('click','[data-role="uncheckAll"]',this.checkAll);this.setup();},setup:function(){var mainPanel=this.scope.find('#ipsTabs_tabs_form_form_tab_modperms__core_Content_panel');var self=this;mainPanel.find('input[type="checkbox"]').each(function(){self._toggleChanged($(this));});$(this.scope).find('.ipsTabs__panel').each(function(){var controls=$(ips.templates.render('moderatorPermissions.checkUncheckAll'));controls.find('a').attr('data-scope',$(this).attr('id'));$(this).children('ul').prepend(controls);});this._checkEachTab();},checkAll:function(e){e.preventDefault();var check=$(e.currentTarget).attr('data-role')=='checkAll';if($(e.currentTarget).attr('data-scope')){var scope=$('#'+$(e.currentTarget).attr('data-scope'));}else{var scope=$(this.scope);}
|
||||
if(check&&!$(e.currentTarget).attr('data-scope')){$('input[name="mod_use_restrictions"][value="no"]').prop('checked',true).change();}
|
||||
var self=this;scope.find('input[type="checkbox"]').each(function(){if(check&&!$(this).is(':checked')){$(this).prop('checked',true).change();}else if(!check&&$(this).is(':checked')){$(this).prop('checked',false).change();}});},toggle:function(e){this._toggleChanged($(e.currentTarget));this._checkEachTab();},_toggleChanged:function(thisToggle){var id=thisToggle.closest('.ipsFieldRow').attr('id').replace('_content','');var panels=this.scope.find('.ipsTabs__panel:not( #ipsTabs_tabs_form_form_tab_modperms__core_Content_panel )');var otherToggles=panels.find('.ipsFieldRow[id^="'+id+'"]').not(thisToggle.closest('.ipsFieldRow'));if(thisToggle.is(':checked')){otherToggles.hide();otherToggles.find('input[type="checkbox"]').prop('disabled',true);}else{otherToggles.show();otherToggles.find('input[type="checkbox"]').prop('disabled',false);}},_checkEachTab:function(){var self=this;var panels=this.scope.find('.ipsTabs__panel:not( #ipsTabs_tabs_form_form_tab_modperms__core_Content_panel )');panels.each(function(){var count=$(this).find('input[type="checkbox"]:enabled:not( [data-role="zeroVal"] )').length;var id=$(this).attr('id').replace('ipsTabs_tabs_form_','').replace('_panel','');if(!count){self.scope.find('#'+id).closest('li').hide();}else{self.scope.find('#'+id).closest('li').show();}});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.members.lazyLoadingProfileBlock',{initialize:function(){var scope=$(this.scope);ips.getAjax()(scope.attr('data-url')).done(function(response){scope.html(response);$(document).trigger('contentChange',[scope]);});},});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.members.history',{initialize:function(){this.on('menuItemSelected',this.filterSelected);},filterSelected:function(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
if(data.triggerID=='memberHistoryFilters'){$(this.scope).find('[data-role="historyTitle"]').text(data.menuElem.find('[data-ipsMenuValue="'+data.selectedItemID+'"]').text());$(this.scope).find('[data-role="historyDisplay"]').addClass('ipsLoading').html('');ips.getAjax()(data.menuElem.find('[data-ipsMenuValue="'+data.selectedItemID+'"] a').attr('href')).done(function(response){$(this.scope).find('[data-role="historyDisplay"]').html(response).removeClass('ipsLoading');$(document).trigger('contentChange',[this.scope]);}.bind(this));}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.members.form',{initialize:function(){this.on('submit',this.submitForm);},submitForm:function(e){var self=this;if($(e.currentTarget).attr('data-bypassValidation')){return true;}
|
||||
e.preventDefault();e.stopPropagation();var isInAdminGroup=false;var mainGroup=this.scope.find('select[name=group]').val();var secondaryGroups=_.map(this.scope.find('select[name="secondary_groups[]"]').val(),function(val){return parseInt(val);});var adminGroups=$.parseJSON(this.scope.attr('data-adminGroups'));if(adminGroups.length){for(var i=0;i<adminGroups.length;i++){var testId=adminGroups[i];if(secondaryGroups!=null&&secondaryGroups.length&&_.indexOf(secondaryGroups,testId)!=-1){isInAdminGroup=true;}
|
||||
if(testId==mainGroup){isInAdminGroup=true;}
|
||||
if($("input#elCheckbox_secondary_groups_"+testId+":checked").length){isInAdminGroup=true;}}}
|
||||
if(isInAdminGroup){ips.ui.alert.show({type:'confirm',message:ips.getString('member_edit_is_admin'),icon:'fa-solid fa-triangle-exclamation',buttons:{ok:ips.getString('member_edit_ok'),cancel:ips.getString('member_edit_cancel')},callbacks:{ok:function(){$(e.currentTarget).attr('data-bypassValidation',true);$(e.currentTarget).submit();},cancel:function(){return false;}}});}else{$(e.currentTarget).attr('data-bypassValidation',true);$(e.currentTarget).submit();}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.members.allowedCharacters',{initialize:function(){this.on('click','[data-action="easy"]',this.showEasy);this.on('click','[data-action="regex"]',this.showRegex);this.setup();},showEasy:function(e){if(e){e.preventDefault();}
|
||||
this.scope.find('[data-role="easy"]').show();this.scope.find('[data-role="regex"]').hide();this.scope.find('[data-role="easyInput"]').val('1');},showRegex:function(e){if(e){e.preventDefault();}
|
||||
this.scope.find('[data-role="regex"]').show();this.scope.find('[data-role="easy"]').hide();this.scope.find('[data-role="easyInput"]').val('0');},setup:function(){this.scope.find('[data-action="easy"]').show();this.scope.find('[data-action="regex"]').show();if(this.scope.attr('data-easy')==1){this.showEasy();}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.members.achievementRuleForm',{initialize:function(){this.on('change','select[name="achievement_rule_action"]',this.changeRule);this.on('click','[data-action="filterReveal"]',this.showFilter);this.on('click','[data-action="filterCollapse"]',this.hideFilter);this.on('change keyup','input[type="number"]',this.changeNumber);this.on('change','select[name$="[badge]"]',this.changeBadge);this.setup();},setup:function(){this._select=this.scope.find('select[name="achievement_rule_action"]');this.changeRule();},changeBadge:function(e){this._changeBadge($(e.currentTarget).closest('select[name$="[badge]"]'));},_changeBadge:function(badgeSelectObj){const data=badgeSelectObj.attr('name').split('_');const translatable=$('#'+data[0]+'_'+data[1]+'_award_'+data[3].replace('[badge]','')+'_badge');if(badgeSelectObj.val()>0){translatable.each(function(){this.ipsShow();});}else{translatable.each(function(){this.ipsHide();});}},changeRule:function(e){if(e){e.preventDefault();}
|
||||
const ruleToShow=this.scope.find(`#rule_${this._select.val()}`);this.scope.find('[data-role="ruleWrap"]').each(function(){this.ipsHide()});ruleToShow.attr('data-ipsForm',true);ruleToShow.get(0).ipsShow();this._changeBadge($('select[name="'+this._select.val()+'_award_subject[badge]"]'));const otherBadge=$('select[name="'+this._select.val()+'_award_other[badge]"]');if(otherBadge.length){this._changeBadge(otherBadge);}
|
||||
$(document).trigger('contentChange',[ruleToShow]);},showFilter:function(e){const ruleWrap=$(e.currentTarget).closest('[data-role="ruleWrap"]');const toggleWrap=$(e.currentTarget).closest('[data-role="toggleFilter"]');const check=toggleWrap.find('input[type="checkbox"]');const toggleRow=toggleWrap.closest('[data-role="conditionButtons"]');check.prop('checked',true).trigger('change');toggleWrap.each(function(){this.ipsHide();});toggleRow.toggle(toggleRow.find('[data-role="toggleFilter"] input[type="checkbox"]:visible').length>0);ruleWrap.find(`#${check.attr('data-filter')}`).each(function(){this.ipsShow();});if(ruleWrap.find('input[type="number"]')){const self=this;ruleWrap.find('input[type="number"]').each(function(){self._pluralizeNumber($(this));});}},hideFilter:function(e){e.preventDefault();const filter=$(e.currentTarget).closest('[data-role="filterField"]');const filterName=filter.attr('id');const ruleWrap=filter.closest('[data-role="ruleWrap"]');const check=ruleWrap.find(`#${filterName}Checkbox`);const toggleWrap=check.closest('[data-role="toggleFilter"]');check.prop('checked',false).trigger('change');toggleWrap.each(function(){this.ipsShow();})
|
||||
toggleWrap.closest('[data-role="conditionButtons"]').each(function(){this.ipsShow();});filter.each(function(){this.ipsHide()});},changeNumber:function(e){this._pluralizeNumber($(e.currentTarget));},_pluralizeNumber:function(input){const span=input.next('[data-role="th"]');if(span.length){span.text(ips.pluralize(ips.getString('numberSuffix'),input.val()));}}});}(jQuery,_));;
|
||||
@@ -0,0 +1,2 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.settings.advanced',{defaultStatus:false,initialize:function(){this.defaultStatus=$('#check_lazy_load_enabled').is(':checked');this.on('change','#check_lazy_load_enabled',this.promptRebuildPreference);},promptRebuildPreference:function(e){if(this.defaultStatus==$('#check_lazy_load_enabled').is(':checked')){$('input[name=rebuildPosts]').val(0);return;}
|
||||
ips.ui.alert.show({type:'confirm',message:ips.getString('imageProxyRebuild'),subText:$('#check_lazy_load_enabled').is(':checked')?ips.getString('imageLazyLoadRebuildBlurbEnable'):ips.getString('imageLazyLoadRebuildBlurbDisable'),icon:'question',buttons:{ok:ips.getString('imageProxyRebuildYes'),cancel:ips.getString('imageProxyRebuildNo')},callbacks:{ok:function(){$('input[name=rebuildPosts]').val(1);},cancel:function(){$('input[name=rebuildPosts]').val(0);}}});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,14 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.stats.overview',{dateFilters:{'start':null,'end':null,'range':null},initialize:function(){this.on('submit','[data-role="dateFilter"]',this.updateDateFilter);this.on('change','[data-action="toggleApp"]',this.toggleApp);this.on('change','[name="predate"]',this.submitForm);this.on('click','[data-action="cancelDateRange"]',this.cancelDateRange);this.on('stats.ready',this.blockReady);$(document).on('reloadStatsDateFilters',_.bind(this.resendDateFilters,this));this.setup();},setup:function(){this.url=this.scope.attr('data-url');this.dateFilters.range=this.scope.find('[data-role="dateFilter"]').attr('data-defaultRange');},resendDateFilters:function(e){this.trigger('stats.setDateFilters',{dateFilters:this.dateFilters,url:this.url});},cancelDateRange:function(e){e.preventDefault();this.scope.find('select[name="predate"]').val(this.scope.find('.cStatsFilters').attr('data-defaultRange')).change();},submitForm:function(e){var select=$(e.currentTarget);if(select.val()==='-1'){this.scope.find('.cStatsFilters [data-role="formTitle"], select[name="predate"]').hide();this.scope.find('.cStatsFilters button').show();}else{this.scope.find('.cStatsFilters [data-role="formTitle"], select[name="predate"]').show();this.scope.find('.cStatsFilters button').hide();select.closest('form').submit();}},blockReady:function(e,data){$(e.target).trigger('stats.loadBlock',{dateFilters:this.dateFilters,url:this.url});},toggleApp:function(){var enabledApps=_.map(this.scope.find('[data-action="toggleApp"]:checked'),function(app){return $(app).attr('data-toggledApp')});var disabledApps=_.map(this.scope.find('[data-action="toggleApp"]:not( :checked )'),function(app){return $(app).attr('data-toggledApp');});this.scope.find('.cStatTile[data-app]').each(function(){var tile=$(this);if(tile.hasClass('ipsHide')&&enabledApps.indexOf($(this).attr('data-app'))!==-1){tile.css({transform:'scale(0.7)',opacity:"0"}).removeClass('ipsHide').animate({transform:'scale(1)',opacity:"1"});}else if(enabledApps.indexOf($(this).attr('data-app'))===-1){tile.addClass('ipsHide');}});ips.utils.cookie.set('overviewExcludedApps',JSON.stringify(disabledApps),true);},updateDateFilter:function(e){e.preventDefault();e.stopPropagation();this.dateFilters={'start':null,'end':null,'range':this.scope.find('[name="predate"]').val()};if(this.dateFilters.range=='-1'){this.dateFilters.start=this.scope.find('[name="date[start]"]').val();this.dateFilters.end=this.scope.find('[name="date[end]"]').val();}
|
||||
this.triggerOn('core.admin.stats.overviewBlock','stats.loadBlock',{dateFilters:this.dateFilters,url:this.url});this.triggerOn('core.admin.stats.nodeFilters','stats.setDateFilters',{dateFilters:this.dateFilters,url:this.url});},});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.stats.nodeFilters',{url:null,dateFilters:{'start':null,'end':null,'range':null},initialize:function(){this.on('submit',this.reloadBlock);$(document).on('stats.setDateFilters',_.bind(this.statsReady,this));$(document).on('click.hovercard',_.bind(function(){this.trigger('reloadStatsDateFilters');},this));this.trigger('reloadStatsDateFilters');},statsReady:function(e,data){this.url=data.url;this.dateFilters=data.dateFilters;},reloadBlock:function(e){var blockKey=$(e.currentTarget).attr('data-block');var subblock=$(e.currentTarget).attr('data-subblock');var blockElement=$('[data-role="statsBlock"][data-block="'+blockKey+'"][data-subblock="'+subblock.replace(/\\/g,'\\\\')+'"]');blockElement.attr('data-nodeFilter',$(e.currentTarget).find('[data-role="nodeValue"]').val());e.preventDefault();e.stopPropagation();this.trigger('stats.nodeFilters',{blockToRefresh:blockKey,subblockToRefresh:subblock,url:this.url,dateFilters:this.dateFilters});$(document).trigger('click');}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.stats.overviewBlock',{initialize:function(){Debug.log('init bloc');this.on('stats.loadBlock',this.loadBlock);$(document).on('stats.nodeFilters',_.bind(this.loadBlock,this));this.setup();},setup:function(){this.refresh=null;this.loaded=false;this.currentCounts=[];this.url=null;this.block=this.scope.attr('data-block');this.subblock=this.scope.attr('data-subblock');this.refreshInterval=this.scope.attr('data-refresh')?parseInt(this.scope.attr('data-refresh')):false;this.trigger('stats.ready');},getCounts:function(elem){return _.map(elem.find('[data-number]'),function(thisElem){return parseInt($(thisElem).attr('data-number'))});},startInterval:function(){if(!this.refreshInterval||!this.url){return;}
|
||||
clearInterval(this.refresh);this.refresh=setInterval(_.bind(this.fetchUpdate,this),this.refreshInterval*1000);},fetchUpdate:function(){var self=this;ips.getAjax()(this.url,{type:'get'}).done(function(response){var newContent=$("<div>"+response+"</div>");var counts=self.getCounts(newContent);var hasDifference=false;if(counts.length!==self.currentCounts.length){hasDifference=true;}else{for(var i=0;i<counts.length;i++){if(counts[i]!==self.currentCounts[i]){hasDifference=true;break;}}}
|
||||
if(hasDifference){self.scope.addClass('cStatTile--updated').find('[data-role="statBlockContent"]').html(response);self.currentCounts=counts;setTimeout(function(){self.scope.removeClass('cStatTile--updated');},2200);$(document).trigger('contentChange',[self.scope]);}else{Debug.log("No change in values in "+self.block);}});},loadBlock:function(e,data){if(!_.isUndefined(data.blockToRefresh)&&(data.blockToRefresh!=this.block||data.subblockToRefresh!=this.subblock)){Debug.log("Skipping because "+data.blockToRefresh+" does not match "+this.block+" or "+data.subblockToRefresh+" does not match "+this.subblock);return;}
|
||||
var self=this;this.url=data.url+'&blockKey='+this.block;clearInterval(this.refresh);if(this.loaded){this.loaded=false;this.scope.removeClass('cStatTile--loaded').find('.cStatTile__body').addClass('ipsLoading').end().find('[data-role="statBlockContent"]').hide().html('');}
|
||||
if(!_.isUndefined(this.subblock)){this.url=this.url+'&subblock='+this.subblock;}
|
||||
if(data.dateFilters.range!='-1'&&data.dateFilters.range!='0'){this.url=this.url+'&range='+data.dateFilters.range;}else if(data.dateFilters.range=='-1'&&!_.isNull(data.dateFilters.start)){this.url=this.url+'&start='+data.dateFilters.start+'&end='+data.dateFilters.end;}
|
||||
if(this.scope.attr('data-nodeFilter')){this.url=this.url+'&nodes='+this.scope.attr('data-nodeFilter');}
|
||||
ips.getAjax()(this.url,{type:'get'}).done(function(response){self.scope.addClass('cStatTile--loaded').find('.cStatTile__body').removeClass('ipsLoading').end().find('[data-role="statBlockContent"]').hide().html(response);self.scope.find('[data-role="statBlockContent"]').fadeIn('fast');self.loaded=true;self.currentCounts=self.getCounts(self.scope);self.startInterval();$(document).trigger('contentChange',[self.scope]);});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.stats.filtering',{initialize:function(){this.on('click','[data-role="toggleGroupFilter"]',this.toggleGroupFilter);if($('#elGroupFilter').attr('data-hasGroupFilters')=='true'){$('#elGroupFilter').show();}},toggleGroupFilter:function(e){e.preventDefault();if($('#elGroupFilter').is(':visible')){$('#elGroupFilter').find('input[type="checkbox"]').prop('checked',true);$('#elGroupFilter').slideUp();}
|
||||
else
|
||||
{$('#elGroupFilter').slideDown();}}});}(jQuery,_));;
|
||||
@@ -0,0 +1,3 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.streams.form',{initialize:function(){this.checkReadStatus()
|
||||
this.elem.addEventListener('change',()=>this.checkReadStatus())},checkReadStatus(){if(this.elem.querySelector('input[name="stream_read"][value="unread"]').checked){this.elem.querySelector('input[name="stream_include_comments"][value="0"]')?.setAttribute('checked','')
|
||||
this.elem.querySelector('input[name="stream_include_comments"][value="1"]')?.setAttribute('disabled','')}else{this.elem.querySelector('input[name="stream_include_comments"][value="1"]')?.removeAttribute('disabled')}}});}(jQuery,_));;
|
||||
@@ -0,0 +1,15 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.support.contact',{initialize:function(){this.on('change','#elCheckbox_support_request_extra_admin',this.acpAccountCheckboxChange);this.on(document,'refreshSupportSummary',this.embedSummary);this.embedSummary();},acpAccountCheckboxChange:function(e){if(!$('#elCheckbox_support_request_extra_admin').is(':checked')){ips.ui.alert.show({type:'confirm',message:ips.getString('supportAcpAccountHead'),subText:ips.getString('supportAcpAccountDisableBlurb'),icon:'warn',buttons:{ok:ips.getString('supportAcpAccountDisableYes'),cancel:ips.getString('supportAcpAccountDisableNo')},callbacks:{ok:function(){$('#elCheckbox_support_request_extra_admin').prop('checked',true);}}});}},embedSummary:function(){var summary=$(document).find('[data-controller="core.admin.support.dashboard"] [data-role="summary"]');if(summary.length){var html=$('<div>').append(summary.clone());html.find('.i-float_end').remove();html.find('[data-role="summary"]').addClass('i-margin-bottom_3');html.find('[data-role="summaryText"]').append(ips.templates.render('support.ticket.supportSummary'));html=html.html();this.scope.find('ul.ipsForm').prepend('<li>'+html+'</li>');}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.support.dashboard',{blocksToLoad:0,blocksLoaded:0,criticalIssuesCount:0,recommendedIssuesCount:0,results:{},_ajax:{},_timers:{},_lastValue:'',_input:null,initialize:function(){this.on('click','[data-role="checkAgain"]',this.checkAgain);this.on('click','[data-role="disableCustomizations"]',this.disableCustomizations);this.on('click','[data-role="enableCustomizations"]',this.enableCustomizations);this.on('click','[data-action="enableThirdPartyPart"]',this.enableSingleCustomizations);this.on(document,'customizationsEnabled',this.setCustomizationsButton);this._input=$('#elInput_support_advice_search');this.on('focus','#elInput_support_advice_search',this.fieldFocus);this.on('blur','#elInput_support_advice_search',this.fieldBlur);this.on('submit','#guidesForm form',this.guideFormSubmit);this.initializeBlocks();},guideFormSubmit:function(e){e.preventDefault();},fieldFocus:function(e){this._timers.focus=setInterval(_.bind(this.guideSearch,this),700);},fieldBlur:function(e){clearInterval(this._timers);},guideSearch:function(e){var searchTerm=this._input.val().trim();if(searchTerm==this._lastValue){return;}
|
||||
if(searchTerm.length<3){if(!$('#featuredGuides').is(':visible')&&searchTerm.length==0){ips.utils.anim.go('fadeIn fast',$('#featuredGuides'));ips.utils.anim.go('fadeOut fast',$('#guideSearchResults'));}
|
||||
return;}
|
||||
this._lastValue=searchTerm;$('#guideSearchResults > ul').html('').parent().addClass('ipsLoading');if($('#featuredGuides').is(':visible')){ips.utils.anim.go('fadeOut fast',$('#featuredGuides'));ips.utils.anim.go('fadeIn fast',$('#guideSearchResults'));}
|
||||
var self=this;if(_.size(this._ajax)){_.each(this._ajax,function(ajax){try{if(_.isFunction(ajax.abort)){ajax.abort();Debug.log('aborted ajax');}}catch(err){}});}
|
||||
if(!_.isUndefined(this.results[searchTerm])){this.showResults(this.results[searchTerm]);return;}
|
||||
ips.getAjax()('?app=core&module=support&controller=support&do=guideSearch',{dataType:'json',data:{search_term:encodeURIComponent(searchTerm)}}).done(function(response){self.results[searchTerm]=response;self.showResults(response);}).fail(function(err){});},showResults:function(results){$('#guideSearchResults').removeClass('ipsLoading');var html='';if(results.length){_.each(results,function(result){html+=ips.templates.render('support.guideSearch',result);});}
|
||||
else
|
||||
{html=ips.templates.render('support.guideSearch.noResults');}
|
||||
if(html){$('#guideSearchResults > ul').html(html);}else{}},initializeBlocks:function(){var self=this;self.blocksToLoad=0;self.blocksLoaded=0;self.criticalIssuesCount=0;self.recommendedIssuesCount=0;_.each($(this.scope).find('[data-role="patchworkItem"]'),function(elem){$(elem).find('[data-role="supportBlock"]').html('').addClass('ipsLoading');$(elem).find('[data-iconType]').hide();$(elem).removeClass('elCritical');self.loadBlock($(elem).attr('data-blockid'));self.blocksToLoad++;});},checkAgain:function(){this.blocksToLoad=0;this.blocksLoaded=0;this.scope.find('[data-role="summary"]').hide();this.initializeBlocks();},disableCustomizations:function(e){e.preventDefault();$(e.target).prop('disabled',true).attr('data-oldText',$(e.target).text()).text(ips.getString('supportDisablingCustomizations'));var self=this;ips.getAjax()($(e.target).attr('href')).done(function(response){self.scope.find('[data-role="customizationsWrapper"]').html(response);self.scope.find('[data-role="disableCustomizations"]').text($(e.target).attr('data-oldText')).prop('disabled',false).hide();self.scope.find('[data-role="enableCustomizations"]').show();$(document).trigger('contentChange',[self.scope]);});},enableCustomizations:function(e){e.preventDefault();$(e.target).prop('disabled',true).attr('data-oldText',$(e.target).text()).text(ips.getString('supportEnablingCustomizations'));var self=this;ips.getAjax()($(e.target).attr('href')).done(function(response){self.scope.find('[data-role="disableCustomizations"]').show();self.scope.find('[data-role="enableCustomizations"]').prop('disabled',false).text($(e.target).attr('data-oldText')).hide();var container=self.scope.find('[data-role="disabledInformation"]');container.find('.i-color_warning').removeClass('i-color_warning').addClass('i-color_soft');container.find('.fa-exclamation-triangle').removeClass('fa-exclamation-triangle').addClass('fa-info-circle');container.find('.ipsButton--negative').removeClass('ipsButton--negative').addClass('ipsButton--inherit');container.find('[data-role="disabledMessage"]').hide();container.find('[data-role="enabledMessage"]').show();container.find('[data-action="enableThirdPartyPart"]').remove();$(document).trigger('contentChange',[self.scope]);});},enableSingleCustomizations:function(e){e.preventDefault();$(e.target).prop('disabled',true).text(ips.getString('supportEnablingCustomizations'));var self=this;ips.getAjax()($(e.target).attr('href')+'&enable=1&type='+$(e.target).attr('data-type')).done(function(response){var container=$(e.target).closest('li');container.find('.i-color_warning').removeClass('i-color_warning').addClass('i-color_soft');container.find('.fa-exclamation-triangle').removeClass('fa-exclamation-triangle').addClass('fa-info-circle');container.find('.ipsButton--negative').removeClass('ipsButton--negative').addClass('ipsButton--inherit');container.find('[data-role="disabledMessage"]').hide();container.find('[data-role="enabledMessage"]').show();if(self.scope.find('.ipsButton--negative').length<1){self.scope.find('[data-role="disableCustomizations"]').show();self.scope.find('[data-role="enableCustomizations"]').hide();$(document).trigger('customizationsEnabled');}
|
||||
$(e.target).remove();$(document).trigger('contentChange',[self.scope]);});},loadBlock:function(blockid){var loadBlockUrl='?app=core&module=support&controller=support&do=getBlock&block='+blockid;var self=this;ips.getAjax()(loadBlockUrl).done(function(response){self.scope.find('[data-blockid="'+blockid+'"] [data-role="supportBlock"]').html(response.html).removeClass('ipsLoading');$(document).trigger('contentChange',[self.scope.find('[data-blockid="'+blockid+'"]')]);self.blocksLoaded++;self.criticalIssuesCount=self.criticalIssuesCount+parseInt(response.criticalIssues);self.recommendedIssuesCount=self.recommendedIssuesCount+parseInt(response.recommendedIssues);self.scope.find('[data-blockid="'+blockid+'"] [data-iconType]').hide();if(parseInt(response.criticalIssues)){ips.utils.anim.go('fadeIn slow',self.scope.find('[data-blockid="'+blockid+'"] [data-iconType="critical"]'));self.scope.find('[data-blockid="'+blockid+'"]').addClass('elCritical');}
|
||||
else if(parseInt(response.recommendedIssues)){ips.utils.anim.go('fadeIn slow',self.scope.find('[data-blockid="'+blockid+'"] [data-iconType="recommended"]'));}
|
||||
if(self.blocksLoaded==self.blocksToLoad){self.finishSetup();}}).fail(function(response){self.scope.find('[data-blockid="'+blockid+'"] [data-role="supportBlock"]').html(ips.getString("hookscanner_error")).removeClass("ipsLoading");self.scope.find('[data-blockid="'+blockid+'"]').addClass('elCritical');$(document).trigger('contentChange',[self.scope.find('[data-blockid="'+blockid+'"]')]);self.blocksLoaded++;});},finishSetup:function(){this.scope.find('[data-role="summaryText"]').html(ips.pluralize(ips.getString('health_check_summary'),[this.criticalIssuesCount,this.recommendedIssuesCount]));ips.utils.anim.go('fadeIn slow',this.scope.find('[data-role="summary"]'));$(document).trigger('refreshSupportSummary');}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.support.md5',{initialize:function(){this.on('click','[data-action="downloadDelta"]',this.downloadDelta);},downloadDelta:function(e){e.preventDefault();$(this.scope).find('[data-role="initialScreen"]').hide();$(this.scope).find('[data-role="downloadForm"]').show();}});}(jQuery,_));;
|
||||
@@ -0,0 +1,16 @@
|
||||
ips.templates.set('menuManager.temporaryDropdown'," <li class='ipsMenu_item {{#selected}}cMenuManager_active{{/selected}}' data-itemID='temp' data-role='menuItem'> <span> {{#lang}}menuManagerNewItem{{/lang}} <ul class='cMenuManager_tools'> <li> <a href='#' data-action='removeItem' data-ipsTooltip title='{{#lang}}menuManagerRemoveItem{{/lang}}'> <i class='fa-solid fa-xmark'></i></i> </a> </li> </ul> </span> </li>");ips.templates.set('menuManager.temporaryMenuItem'," <li id='menu_{{id}}' data-role='menuNode'> <div class='cMenuManager_leaf {{#selected}}cMenuManager_active{{/selected}}' data-itemID='temp' data-role='menuItem'> <h3 class='cMenuManager_leafTitle'>{{#lang}}menuManagerNewItem{{/lang}}</h3> <ul class='cMenuManager_tools'> <li> <a href='#' data-action='removeItem' data-ipsTooltip title='{{#lang}}menuManagerRemoveItem{{/lang}}'> <i class='fa-solid fa-xmark'></i></i> </a> </li> </ul> </div> </li>");ips.templates.set('menuManager.emptyList'," <li class='cMenuManager_emptyList i-color_soft i-text-align_center'>{{#lang}}menuManagerEmptyList{{/lang}}</li>");;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.system.upgradeManualQuery',{initialize:function(){this.scope.find('[data-role="runManualButton"]').css({'display':'inline'});this.on('click','[data-action="runQuery"]',this.runQuery);},runQuery:function(e){this.scope.find('[data-role="querySuccessButtons"]').hide();this.scope.css({'opacity':"0.5"}).addClass('ipsLoading');ips.getAjax()(this.scope.attr('data-url'),{timeout:30000}).done(function(response){if(response.runManualQuery){this.scope.find('[data-action="redirectContinue"]').click();}else{this.runQueryFailed();}}.bind(this)).fail(function(a,b,c){this.runQueryFailed();}.bind(this));},runQueryFailed:function(){this.scope.css({'opacity':"1"}).removeClass('ipsLoading');this.scope.find('[data-role="querySuccessButtons"]').show();this.scope.find('[data-role="runManualButton"]').hide();ips.ui.alert.show({type:'alert',icon:'warn',message:ips.getString('delta_upgrade_run_manual_query_fail_title'),subText:ips.getString('delta_upgrade_run_manual_query_fail_desc')});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.system.settings',{initialize:function(){this.on('change','input[name=datastore_method]',this.datastoreChanged);this.on('change','input[name=cache_method]',this.cacheChanged);this.setup();},setup:function(){if($('input[name=datastore_method]:checked').val()=='Redis'){$("input[name=cache_method][value=Redis]").prop("checked",true);$('#form_cache_method').slideUp();$('li[id^=redis]').slideDown();}},cacheChanged:function(e,data){var value=$(e.currentTarget).val();if(value=='Redis'){$("input[name=datastore_method][value=Redis]").prop("checked",true);$('#form_cache_method,#id_datastore_filesystem_path').slideUp();$('li[id^=redis]').slideDown();}else{$('#form_cache_method').slideDown();$('li[id^=redis]').slideUp();if($('input[name=datastore_method]:checked').val()=="Redis"){$("input[name=datastore_method][value=FileSystem]").prop("checked",true);}}},datastoreChanged:function(e,data){var value=$(e.currentTarget).val();if(value=='Redis'){$("input[name=cache_method][value=Redis]").prop("checked",true);$('#form_cache_method').slideUp();$('li[id^=redis]').slideDown();}else{$('#form_cache_method').slideDown();$('li[id^=redis]').slideUp();if($('input[name=cache_method]:checked').val()=="Redis"){$("input[name=cache_method][value=None]").prop("checked",true);}}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.system.menuManager',{_hasChanges:false,initialize:function(){this.on('sortstop','.ipsTree_rows > .ipsTree',this.afterSort);this._hasChanges=ips.getSetting('menuChanged');this.togglePublish();},afterSort:function(event,ui){this._hasChanges=true;this.togglePublish();},togglePublish:function(){if(this._hasChanges){$('#acpPageHeader > .ipsMessage').fadeIn();}else{$('#acpPageHeader > .ipsMessage').hide();}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.system.login',{initialize:function(){this.on('tabChanged',this.tabChanged);this.on('click','[data-action="upgradeWarningContinue"]',this.upgradeWarningContinue);this.setup();},setup:function(){this.scope.find("#elTabContent .ipsTabs__panel:visible").first().find('input[type="text"]').first().focus();},tabChanged:function(e,data){ips.utils.cookie.set('acpLoginMethod',data.tabID,1);},upgradeWarningContinue:function(e,data){e.preventDefault();$(this.scope).find('[data-role="upgradeWarning"]').hide();$(this.scope).find('[data-role="loginForms"]').removeClass('ipsHide').show();}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.system.langString',{initialize:function(){this.on('click','[data-action="saveWords"]',this.saveWords);this.on('click','[data-action="revertWords"]',this.revertWords);this.setup();},setup:function(){var self=this;var textArea=$('<textarea />');textArea.attr('data-url',this.scope.attr('href')).val(this.scope.html()).change(function(e){self._change(e);});},_change:function(e){var elem=$(e.target);elem.addClass('ipsField_loading');var url=elem.attr('data-url')+'&form_submitted=1&csrfKey='+ips.getSetting('csrfKey')+
|
||||
'&lang_word_custom='+encodeURIComponent(elem.val());ips.getAjax()(url).done(function(){elem.removeClass('ipsField_loading');ips.ui.flashMsg.show(ips.getString('saved'));}).fail(function(){window.location=url;});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.system.codeHook',{codeMirror:null,initialize:function(){this.on('click','[data-codeToInject]',this._itemClick);},_itemClick:function(e){var codeMirror=$(this.scope).find('textarea').data('CodeMirrorInstance');var regex=new RegExp($.parseJSON($(e.currentTarget).attr('data-signature')));var found=false;var lastLine=codeMirror.doc.lineCount()-1;codeMirror.doc.eachLine(function(line){if(line.text.match(regex)){found=true;codeMirror.setSelection({line:codeMirror.doc.getLineNumber(line),ch:0},{line:codeMirror.doc.getLineNumber(line),ch:line.text.length});codeMirror.scrollIntoView({line:codeMirror.doc.getLineNumber(line),ch:0});}
|
||||
if(line.text.match(/^\s*}\s*$/)){lastLine=codeMirror.doc.getLineNumber(line);}});if(!found){codeMirror.doc.replaceRange($.parseJSON($(e.currentTarget).attr('data-codeToInject')),{line:lastLine-1,chr:0},{line:lastLine-1,chr:0});codeMirror.scrollIntoView({line:codeMirror.doc.lineCount(),ch:0});}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.system.autoupgradetimer',{initialize:function(){var self=this;var secondsRemaining=60*5;if(ips.getSetting('cloud2')){secondsRemaining=15;}
|
||||
var interval=setInterval(function(){secondsRemaining--;if(secondsRemaining<1){clearInterval(interval);self.scope.find('[data-role="counter-wrapper"]').hide();self.scope.find('[data-role="continue-button"]').show();}
|
||||
else
|
||||
{var minutes=Math.floor(secondsRemaining/60);var seconds=secondsRemaining%60;self.scope.find('[data-role="counter"]').html(minutes+':'+((seconds>=10)?seconds:'0'+seconds));}},1000);}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.system.api',{initialize:function(){this.on('click','[data-action="showEndpoint"]',this.showEndpoint);},showEndpoint:function(e){e.preventDefault();var self=this;var url=$(e.currentTarget).attr('href');this.scope.find('.cApiTree_activeNode').removeClass('cApiTree_activeNode');$(e.currentTarget).parent('li').addClass('cApiTree_activeNode');this.scope.find('[data-role="referenceContainer"]').html($('<div/>').addClass('ipsLoading').css({height:'300px'}));ips.getAjax()(url).done(function(response){self.scope.find('[data-role="referenceContainer"]').html(response)}).fail(function(){window.location=url;});this.scope.find('[data-role="referenceContainer"]')[0].scrollIntoView({behavior:"smooth"});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.system.apiPermissions',{initialize:function(){this.on('click','[data-action="toggleSection"]',this.toggleSection);this.on('click','.cApiPermissions [data-action="checkAll"]',this.checkAll);this.on('click','.cApiPermissions [data-action="checkNone"]',this.checkNone);this.on('click','.cApiPermissions_header [data-action="checkAll"]',this.checkAllHeader);this.on('click','.cApiPermissions_header [data-action="checkNone"]',this.checkNoneHeader);this.setup();},setup:function(){var self=this;var sections=this.scope.find('.cApiPermissions > li');sections.each(function(){self._calculatedCheckedEndpoints($(this));});},toggleSection:function(e){var header=$(e.currentTarget).parent();if(header.hasClass('cApiPermissions_open')){this._collapseSection(header);}else{this._expandSection(header);}},checkAllHeader:function(e){e.preventDefault();var self=this;var header=$(e.currentTarget).closest('.cApiPermissions_header');var sections=header.next('.cApiPermissions').find('> li');sections.each(function(){var next=$(this).find('> ul');if(!next.is(':visible')){next.animationComplete(function(){setTimeout(function(){self._togglePermissions(true,next);},300);});self._expandSection($(this));}else{self._togglePermissions(true,next);}})},checkNoneHeader:function(e){e.preventDefault();var self=this;var header=$(e.currentTarget).closest('.cApiPermissions_header');var sections=header.next('.cApiPermissions').find('> li');sections.each(function(){var next=$(this).find('> ul');if(!next.is(':visible')){next.animationComplete(function(){setTimeout(function(){self._togglePermissions(false,next);},300);});self._expandSection($(this));}else{self._togglePermissions(false,next);}})},checkAll:function(e){e.preventDefault();var self=this;var header=$(e.currentTarget).parents('li').first();var next=header.find('> ul');if(!next.is(':visible')){next.animationComplete(function(){setTimeout(function(){self._togglePermissions(true,next);},300);});this._expandSection(header);}else{this._togglePermissions(true,next);}},checkNone:function(e){e.preventDefault();var self=this;var header=$(e.currentTarget).parents('li').first();var next=header.find('> ul');if(!next.is(':visible')){next.animationComplete(function(){setTimeout(function(){self._togglePermissions(false,next);},300);});this._expandSection(header);}else{this._togglePermissions(false,next);}},_calculatedCheckedEndpoints:function(section){var totalEndpoints=section.find('input[name*="access"]');var checkedEndpoints=totalEndpoints.filter(':checked');var endpointSpan=section.find('[data-role="endpointOverview"]');if(section.hasClass('cApiPermissions_open')){endpointSpan.hide();}else{var text=ips.getString('apiEndpoints_all');if(!checkedEndpoints.length){text=ips.getString('apiEndpoints_none');}else if(totalEndpoints.length!==checkedEndpoints.length){text=ips.pluralize(ips.getString('apiEndpoints_some',{checked:checkedEndpoints.length}),totalEndpoints.length);}
|
||||
endpointSpan.text(text).show();}},_togglePermissions:function(state,container){container.find('input[type="checkbox"]:not( [disabled] )').prop('checked',state).change();},_expandSection:function(section){var next=section.find('> ul');section.addClass('cApiPermissions_open').removeClass('cApiPermissions_closed');ips.utils.anim.go('fadeInDown fast',next);this._calculatedCheckedEndpoints(section);},_collapseSection:function(section){section.removeClass('cApiPermissions_open').addClass('cApiPermissions_closed');this._calculatedCheckedEndpoints(section);},});}(jQuery,_));;
|
||||
@@ -0,0 +1,4 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.templates.simple',{_cmInstances:{},initialize:function(){this.on('click','button[type="submit"]',this.save);this.on('tabChanged',this.changedTab);var debounce=_.debounce(_.bind(this._recalculatePanelWrapper,this),100);this.on(window,'resize',debounce);this.setup();},setup:function(){var self=this;ips.loader.get(['core/interface/codemirror/diff_match_patch.js','core/interface/codemirror/codemirror.js']).then(function(){self._initCodeMirror('theme_simple_header','htmlmixed');self._initCodeMirror('theme_simple_footer','htmlmixed');self._initCodeMirror('theme_simple_css','css');});},_initCodeMirror:function(key,type){var self=this;this._cmInstances[key]=CodeMirror.fromTextArea(document.getElementById('elTextarea_'+key),{mode:type,lineNumbers:false});this._cmInstances[key].setSize(null,this._getContentHeight());this.scope.find('#elTextarea_'+key).parent().addClass('i-background_3 i-padding_2');},changedTab:function(e,data){this._recalculatePanelWrapper();},save:function(e){e.preventDefault();var self=this;var form=this.scope.find('form[data-formid="form"]');var save={};_.each(this._cmInstances,function(key,cm){key.save();});form.find('input').each(function(){save[$(this).attr('name')]=$(this).val();});form.find('textarea').each(function(){save[$(this).attr('name')]=$(this).val();});Debug.log(save);self.scope.find('button[type="submit"]').addClass('ipsButton--disabled').removeClass('ipsButton--primary');ips.getAjax()(form.attr('action'),{dataType:'json',data:save,type:'post'}).done(function(response){ips.ui.flashMsg.show(ips.getString('saved'));}).fail(function(jqXHR){var message=ips.getString('saveThemeError');try
|
||||
{message=$.parseJSON(jqXHR.responseText);}
|
||||
catch(e){}
|
||||
ips.ui.alert.show({type:'alert',message:message,icon:'warn'});}).always(function(){self.scope.find('button[type="submit"]').removeClass('ipsButton--disabled').addClass('ipsButton--primary');});},_getContentHeight:function(){return $(window).height()-this.scope.find('#tabs_form').offset().top-250;},_recalculatePanelWrapper:function(){var self=this;_.each(this._cmInstances,function(key,cm){key.setSize(null,self._getContentHeight());});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,2 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.mixin('file.moderate','core.global.core.table',false,function(){this.after('_updateSort',function(){var current=this._getSortValue();var formAction=ips.utils.url.removeParams(['sortby','sortdirection','listResort'],this.scope.find('[data-role="moderationTools"]').attr('action'));this.scope.find('[data-role="moderationTools"]').attr('action',formAction+'&listResort=1&sortby='+current.by+'&sortdirection='+current.order);});});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.mixin('group.counts','core.global.core.table',true,function(){this.after('setup',function(){this.getGroupCounts();$(document).on('tableRowsUpdated',_.bind(this.getGroupCounts,this));});this.getGroupCounts=function(){this.scope.find('[data-ipsGroupCount].ipsLoading').each(function(){var element=$(this);var groupId=element.attr('data-ipsGroupId');ips.getAjax()('?app=core&module=members&controller=groups&do=getCount&group='+groupId).done(function(response){element.removeClass('ipsLoading').removeClass('ipsLoading--tiny').html(response);$(document).trigger('contentChange',[element]);});});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,5 @@
|
||||
;(function($,_,undefined){"use strict";ips.model.register('messages.folder',{initialize:function(){this.on('loadFolder.messages',this.loadFolder);this.on('addFolder.messages',this.addFolder);this.on('renameFolder.messages',this.renameFolder);this.on('markFolder.messages',this.markFolder);this.on('emptyFolder.messages',this.emptyFolder);this.on('searchFolder.messages',this.searchFolder);this.on('deleteFolder.messages',this.deleteFolder);this.on('deleteMessages.messages',this.deleteMessages);},searchFolder:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger',dataType:'json',data:data,events:'searchFolder',namespace:'messages'},data);},loadFolder:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger',dataType:'json',data:{folder:data.folder,sortBy:data.sortBy,filter:data.filter,overview:1},events:'loadFolder',namespace:'messages'},data);},addFolder:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger&do=addFolder',dataType:'json',data:{messenger_add_folder_name:data.name,form_submitted:1},type:'post',events:'addFolder',namespace:'messages'},data);},renameFolder:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger&do=renameFolder',dataType:'json',data:{folder:data.folder,messenger_add_folder_name:data.name,form_submitted:1},events:'renameFolder',namespace:'messages'},data);},markFolder:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger&do=readFolder',dataType:'html',data:{folder:data.folder,form_submitted:1},events:'markFolder',namespace:'messages'},data);},emptyFolder:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger&do=emptyFolder',dataType:'json',data:{folder:data.folder,form_submitted:1},events:'emptyFolder',namespace:'messages'},data);},deleteFolder:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger&do=deleteFolder',dataType:'json',data:{folder:data.folder,form_submitted:1,wasConfirmed:1},events:'deleteFolder',namespace:'messages'},data);},deleteMessages:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger&do=leaveConversation',dataType:'json',data:{id:data.id},events:'deleteMessages',namespace:'messages'},data);}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.model.register('messages.message',{initialize:function(){this.on('fetchMessage.messages',this.fetchMessage);this.on('deleteMessage.messages',this.deleteMessage);this.on('moveMessage.messages',this.moveMessage);this.on('blockUser.messages',this.blockUser);this.on('addUser.messages',this.addUser);},fetchMessage:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger',dataType:'html',data:{id:data.id,page:data.page||1},events:'loadMessage',namespace:'messages'},data);},deleteMessage:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger&do=leaveConversation',dataType:'json',data:{id:data.id},events:'deleteMessage',namespace:'messages'},data);},moveMessage:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger&do=move',dataType:'json',data:{id:data.id,to:data.folder},events:'moveMessage',namespace:'messages'},data);},blockUser:function(e,data){this.getData({url:'app=core&module=messaging&controller=messenger&do=blockParticipant',dataType:'html',data:{id:data.id,member:data.member},events:'blockUser',namespace:'messages'},data);},addUser:function(e,data){var sendData={id:data.id};if(data.names){_.extend(sendData,{member_names:data.names});}
|
||||
if(data.member){_.extend(sendData,{member:data.member});}
|
||||
if(data.unblock){_.extend(sendData,{unblock:true});}
|
||||
this.getData({url:'app=core&module=messaging&controller=messenger&do=addParticipant',dataType:'json',data:sendData,events:'addUser',namespace:'messages'},data);}});}(jQuery,_));;
|
||||
@@ -0,0 +1,6 @@
|
||||
ips.templates.set('club.request.approve'," <span class='cClubRequestCover_icon i-background_positive'> <i class='fa-solid fa-check'></i> </span> <br> <span class='ipsBadge ipsBadge--large ipsBadge--positive'>{{#lang}}clubRequestApproved{{/lang}}</span>");ips.templates.set('club.request.decline'," <span class='cClubRequestCover_icon i-background_negative'> <i class='fa-solid fa-xmark'></i> </span> <br> <span class='ipsBadge ipsBadge--large ipsBadge--negative'>{{#lang}}clubRequestDenied{{/lang}}</span>");ips.templates.set('club.menu.dragHandle'," <span data-role='clubMenuDrag' style='display: none'><i class='fa-solid fa-bars'></i> </span>");;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.clubs.navbar',{_interval:null,_sortableElem:null,initialize:function(){this.on(document,'click','[data-action="reorderClubmenu"]',this.startReorder);this.on(document,'click','[data-action="saveClubmenu"]',this.saveOrder);this.setup();},setup:function(){this._sortableElem=this.scope.find('ul[data-club-menu]');},startReorder:function(e){e.preventDefault();$('[data-action="saveClubmenu"]').removeClass('ipsHide');$('[data-action="reorderClubmenu"]').parent().addClass('ipsHide');var self=this;this._sortableElem.find('a').addClass('i-cursor_move').prepend(ips.templates.render('club.menu.dragHandle'));ips.loader.get(['core/interface/jquery/jquery-ui.js']).then(function(){self._sortableElem.sortable({items:'> li',forcePlaceholderSize:true,update:function(){self._orderChanged=true;}});self._reordering=true;self._orderChanged=false;self._sortableElem.find('a [data-role="clubMenuDrag"]').fadeIn();});},_finishReorder:function(){this._sortableElem.find('a').removeClass('i-cursor_move').find('[data-role="clubMenuDrag"]').remove();$('[data-action="saveClubmenu"]').addClass('ipsHide');$('[data-action="reorderClubmenu"]').parent().removeClass('ipsHide');this._sortableElem.sortable('destroy');this._reordering=false;},saveOrder:function(e){e.preventDefault();var self=this;var tabOrder=this._sortableElem.sortable('toArray',{attribute:'data-tab'});if(this._orderChanged){ips.getAjax()(ips.getSetting('baseURL')+'index.php?app=core&module=clubs&controller=view&do=saveMenu',{data:{tabOrder:tabOrder,id:this.scope.attr('data-clubID')},dataType:'json',type:'post'}).done(function(response){ips.ui.flashMsg.show(ips.getString('tab_order_saved'));}).fail(function(){ips.ui.alert.show({type:'alert',icon:'warning',message:ips.getString('tab_order_not_saved'),callbacks:{ok:function(){}}});}).always(function(){self._finishReorder();});}else{this._finishReorder();}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.clubs.requests',{_interval:null,initialize:function(){this.on('click','[data-action="requestApprove"], [data-action="requestDecline"]',this.handleRequest);this.on(document,'menuItemSelected',this.handleRequest);this.on(window,'resize',this.resizeCovers);this.setup();},setup:function(){},resizeCovers:function(e){var self=this;var cards=this.scope.find('[data-ips-js=memberCard][data-hasCover]');if(cards.length){$.each(cards,function(){var id=$(this).identify().attr('id');var cover=$('body').find('.cClubRequestCover[data-cardId="'+id+'"]');self._positionCover($(this),cover);});}},handleRequest:function(e,data){var self=this;if(e.type=='menuItemSelected'){if(data.menuElem.attr('data-role')!='acceptMenu'){return;}
|
||||
data.originalEvent.preventDefault();var url=$(data.originalEvent.target).attr('href');var card=$(e.target).closest('[data-ips-js=memberCard]');}else{e.preventDefault();var url=$(e.currentTarget).attr('href');var card=$(e.currentTarget).closest('[data-ips-js=memberCard]');}
|
||||
var id=card.identify().attr('id');card.find('[data-action]').addClass('ipsButton--disabled');ips.getAjax()(url,{showLoading:true}).done(function(response){card.attr('data-hasCover',true);card.animate({opacity:"0.2"});var cover=$('<div/>').addClass('cClubRequestCover').attr('data-cardId',id);$('body').append(cover);self._positionCover(card,cover);cover.append(ips.templates.render(response.status=='approved'?'club.request.approve':'club.request.decline')).fadeIn();ips.ui.flashMsg.show(response.status=='approved'?ips.getString('clubMemberApproved'):ips.getString('clubMemberDeclined'),{escape:false});if(!self._interval){self._interval=window.setInterval(_.bind(self._checkCardsExist,self),200);}}).fail(function(){window.location=url;});},_checkCardsExist:function(){var self=this;var covers=$('body').find('.cClubRequestCover');var cards=this.scope.find('[data-ips-js=memberCard][data-hasCover]');if(cards.length==covers.length){return;}
|
||||
if(covers.length){$.each(covers,function(){var cardId=$(this).attr('data-cardId');var card=self.scope.find('#'+cardId);if(!card.length){$(this).remove();}});}},_positionCover:function(card,cover){var elemPosition=ips.utils.position.getElemPosition(card);var dims=ips.utils.position.getElemDims(card);cover.css({position:'absolute',top:elemPosition.absPos.top+'px',left:elemPosition.absPos.left+'px',width:dims.outerWidth+'px',height:dims.outerHeight+'px'});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,75 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.notifications',{initialize:function(){this.on(document,'menuOpened',this.menuOpened);this.on(document,'permissionDenied.notifications',this.hideNotice);this.on(document,'subscribePending.notifications',this.subscribePending);this.on(document,'subscribeSuccess.notifications',this.subscribeSuccess);this.on(document,'subscribeFail.notifications',this.subscribeFail);this.on('click','[data-action=browserNotificationPrompt]',this.requestPermission);this.on('click','[data-role=dismissNotification]',this.dismissNotification);this.on('click','[data-action="rejectPush"]',this.rejectPush);if(ips.getSetting('memberID')&&ips.utils.notification.supported&&ips.utils.serviceWorker.supported){this.setup();}},setup:function(){this._timeout=null;this._buttonText='';this._missingSubscription=false;if(ips.utils.notification.needsPermission()&&_.isUndefined(ips.utils.cookie.get('browserNotificationDismiss'))){this.scope.html(ips.templates.render('core.browserNotification.prompt')).hide();}else if(ips.utils.notification.hasPermission()&&_.isUndefined(ips.utils.cookie.get('notificationPushRejected'))){ips.utils.notification.getSubscription().then(subscription=>{if(subscription){return;}
|
||||
this._missingSubscription=true;this.scope.html(ips.templates.render('core.browserNotification.missingSubscription')).hide();}).catch(err=>{Debug.log("getSubscription failed - browser may not support pushManager");Debug.log(err);return;});}},destroy:function(){clearTimeout(this._timeout);},menuOpened:function(e,data){let date;const showPrompt=()=>{this._timeout=setTimeout(()=>{this.scope.slideDown('fast');ips.utils.cookie.unset('notificationMenuShown');},750);};if(data.elemID==='elFullNotifications'){if(this._missingSubscription){showPrompt();}else{if(ips.utils.cookie.get('notificationMenuShown')===undefined){date=parseInt(ips.utils.cookie.get('notificationMenuShown'));if(date&&Date.now()>=date){showPrompt();}}else{date=new Date();date.setDate(date.getDate()+2);ips.utils.cookie.set('notificationMenuShown',date.getTime(),true);}}}},subscribePending:function(e,data){const button=this.scope.find('[data-action="browserNotificationPrompt"]');this._buttonText=button.text();button.prop('disabled',true).text(ips.getString('notificationsEnabling'));},subscribeSuccess:function(e,data){const button=this.scope.find('[data-action="browserNotificationPrompt"]');button.prop('disabled',true).text(ips.getString('notificationsSubscribed'));},subscribeFail:function(e,data){this.scope.find('[data-action="browserNotificationPrompt"]').prop('disabled',false).text(this._buttonText);this.scope.find('[data-role="promptMessage"]').text(ips.getString('notificationsSubscribeFailed')).slideDown();},requestPermission:function(){this.scope.find('[data-role="promptMessage"]').text(ips.getString('notificationsAllowPrompt')).slideDown();$(document).trigger('requestPermission.notifications');},rejectPush:function(e){e.preventDefault();ips.utils.cookie.set('notificationPushRejected',true,true);this.hideNotice();},hideNotice:function(){this.scope.slideUp('fast');},dismissNotification:function(e){if(e){e.preventDefault();}
|
||||
var date=new Date();date.setDate(date.getDate()+100);ips.utils.cookie.set('browserNotificationDismiss',true,date.toUTCString());this.scope.slideUp({duration:400,complete:function(){$(this).remove();}});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.onlineUsersWidget',{initialize(){if(!ips.getSetting('member_url')||this.elem.querySelector(`[data-memberId="${ips.getSetting('memberID')}"]`)){return;}
|
||||
const memberRowHtml=ips.templates.render('core.onlineUser.linked',{memberUrl:ips.getSetting('member_url'),memberHovercardUrl:ips.getSetting('member_hovercardUrl'),formattedName:ips.getSetting('member_formattedName'),});this.scope.find('ul').prepend(memberRowHtml);const numOnline=this.elem.querySelector('[data-memberCount]');if(numOnline){numOnline.innerText=ips.pluralize(ips.getString('widget_onlineusers_membercount'),parseInt(numOnline.dataset.membercount)+1);}
|
||||
this.elem.querySelector('li[data-noneOnline]')?.remove();}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.poll',{initialize:function(){this.on('submit','form',this.submitPoll);this.on('click','[data-action="viewResults"]',this.viewResults);},viewResults:function(e){e.preventDefault();var url=$(e.currentTarget).attr('href')+'&fetchPoll=1&viewResults=1';if($(e.currentTarget).attr('data-viewResults-confirm')){var self=this;ips.ui.alert.show({type:'confirm',icon:'warn',message:ips.getString('generic_confirm'),subText:ips.getString('warn_allow_result_view'),callbacks:{ok:function(){self._viewResults(url+'&nullVote=1');}}});}else{this._viewResults(url);}},_viewResults:function(url){var self=this;self._setContentsLoading();ips.getAjax()(url).done(function(response){self.cleanContents();self.scope.html(response);$(document).trigger('contentChange',[self.scope]);});},_setContentsLoading:function(){var container=this.scope.find('[data-role="pollContents"]');var height=container.outerHeight();container.css({height:height+'px'}).html('').addClass('ipsLoading');},submitPoll:function(e){var form=$(e.currentTarget);if(form.attr('data-bypassAjax')){return}
|
||||
e.preventDefault();var url=form.attr('action');var self=this;this.scope.find('button[type="submit"]').prop('disabled',true).text(ips.getString('votingNow'));if(url.match(/\?/)){url+='&';}else{url+='?';}
|
||||
ips.getAjax()(url+'fetchPoll=1',{data:form.serialize(),type:'POST'}).done(function(response){self.cleanContents();self.scope.html(response);$(document).trigger('contentChange',[self.scope]);ips.ui.flashMsg.show(ips.getString('thanksForVoting'));}).fail(function(){form.attr('data-bypassAjax',true).submit();});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.pollEditor',{initialize:function(){this.on('click','[data-action="removeChoice"]',this.removeChoice);this.on('click','[data-action="addChoice"]',this.addChoice);this.on('click','[data-action="addQuestion"]',this.addQuestion);this.on('click','[data-action="removeQuestion"]',this.removeQuestion);this.setup();},setup:function(){this._maxQuestions=this.scope.attr('data-maxQuestions');this._maxChoices=this.scope.attr('data-maxChoices');this._name=this.scope.attr('data-pollName');var pollData=ips.getSetting('pollData');if(_.isArray(pollData)&&pollData.length){for(var i=0;i<pollData.length;i++){this._buildQuestion(pollData[i],i+1);}}else if(_.isObject(pollData)&&!_.isEmpty(pollData)){for(var i in pollData){this._buildQuestion(pollData[i],i);}}else{this._addQuestion(1);this._checkQuestionButton();this._checkChoiceButton(this.scope.find('[data-questionID="1"]'));}},addQuestion:function(e){e.preventDefault();var maxQid=_.max(this.scope.find('[data-questionID]'),function(item){return parseInt($(item).attr('data-questionID'));});maxQid=parseInt($(maxQid).attr('data-questionID'));if(!_.isNumber(maxQid)||_.isNaN(maxQid)){maxQid=0;}
|
||||
var questions=this.scope.find('[data-questionID]');if(questions.length>=this._maxQuestions){ips.ui.alert.show({type:'alert',icon:'warn',message:ips.getString('noMoreQuestionsMlord'),callbacks:{ok:$.noop}});return;}
|
||||
this._addQuestion(maxQid+1);ips.utils.anim.go('fadeIn',this.scope.find('[data-questionID="'+(maxQid+1)+'"]'));this._checkQuestionButton();},removeQuestion:function(e){e.preventDefault();var self=this;var question=$(e.currentTarget).closest('[data-questionid]');var removeQuestion=function(){question.remove();self._checkQuestionButton();};if(question.find('[data-role="questionTitle"]').val()!==''){ips.ui.alert.show({type:'confirm',icon:'question',message:ips.getString('removeQuestionConfirm'),callbacks:{ok:removeQuestion}});}else{removeQuestion();}},addChoice:function(e){e.preventDefault();var question=$(e.currentTarget).closest('[data-questionID]');var maxCid=_.max(question.find('[data-choiceID]'),function(item){return parseInt($(item).attr('data-choiceID'));});maxCid=parseInt($(maxCid).attr('data-choiceID'));if(!_.isNumber(maxCid)||_.isNaN(maxCid)){maxCid=0;}
|
||||
if(maxCid>=this._maxChoices){ips.ui.alert.show({type:'alert',icon:'warn',message:ips.getString('noMoreChoices'),callbacks:{ok:$.noop}});return;}
|
||||
this._addChoice(question,maxCid+1);ips.utils.anim.go('fadeIn',question.find('[data-choiceID="'+(maxCid+1)+'"]'));this._checkChoiceButton(question);},removeChoice:function(e){e.preventDefault();var self=this;var choice=$(e.currentTarget).closest('[data-choiceID]');var question=choice.closest('[data-questionID]');if(question.find('[data-choiceID]').length<=2){ips.ui.alert.show({type:'alert',icon:'warn',message:ips.getString('cantRemoveOnlyChoice'),callbacks:{ok:$.noop}});return;}
|
||||
choice.animationComplete(function(){choice.remove();_.each(question.find('[data-choiceID]'),function(item,idx){$(item).attr('data-choiceID',idx+1).find('[data-role="choiceNumber"]').text(idx+1);});self._checkChoiceButton(question);});ips.utils.anim.go('fadeOut fast',choice);},_buildQuestion:function(data,qid){var choices=[];if(_.isArray(data.choices)&&data.choices.length){for(var i=0;i<data.choices.length;i++){choices.push(this._getChoiceHTML(i+1,qid,data.choices[i].title));}}else if(_.isObject(data.choices)){for(var i in data.choices){choices.push(this._getChoiceHTML(i,qid,data.choices[i].title));}}
|
||||
this.scope.find('[data-role="pollContainer"]').append(ips.templates.render('core.pollEditor.question',{pollName:this._name,multiChoice:data.multiChoice,questionID:qid,question:data.title,choices:choices.join(''),removeQuestion:!(qid===1)}));},_addQuestion:function(qid){var choices=[];choices.push(this._getChoiceHTML(1,qid));choices.push(this._getChoiceHTML(2,qid));this.scope.find('[data-role="pollContainer"]').append(ips.templates.render('core.pollEditor.question',{pollName:this._name,questionTitle:ips.getString('questionTitle',{id:qid}),questionID:qid,choices:choices.join(''),removeQuestion:!(qid===1)}));},_addChoice:function(question,cid){var html=this._getChoiceHTML(cid,question.attr('data-questionID'),'');question.find('[data-role="choices"]').append(html);},_getChoiceHTML:function(cid,qid,name){return ips.templates.render('core.pollEditor.choice',{choiceID:cid,questionID:qid,pollName:this._name,choiceTitle:name});},_checkQuestionButton:function(){var questions=this.scope.find('[data-questionID]');this.scope.find('[data-action="addQuestion"]').toggleClass('ipsButton--disabled',(questions.length>=this._maxQuestions));},_checkChoiceButton:function(questionScope){var choices=questionScope.find('[data-choiceID]');questionScope.find('[data-action="addChoice"]').toggleClass('ipsButton--disabled',(choices.length>=this._maxChoices));questionScope.find('[data-choiceID] [data-action="removeChoice"]').toggleClass('ipsButton--disabled',(choices.length===2));}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.profileCompletion',{initialize:function(){this.on('click','[data-role="dismissProfile"]',this.dismissProfile);},dismissProfile:function(e){e.preventDefault();var self=this;ips.getAjax()(ips.getSetting('baseURL')+'index.php?app=core&module=system&controller=settings&do=dismissProfile').done(function(response){self.scope.animate({opacity:"0"},'fast',function(){self.scope.hide();});});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.reviewForm',{initialize:function(){this.on('click','[data-action="writeReview"]',this.toggleReview);},toggleReview:function(e){e.preventDefault();this.scope.find('[data-role="reviewIntro"]').hide();this.scope.find('[data-role="reviewForm"]').show();}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.tagEditor',{_minTags:null,_maxTags:null,_count:0,_tagEditID:'',initialize:function(){this.on('click','[data-action="removeTag"]',this.removeTag);this.on(document,'tagsUpdated',this.tagsUpdated);this.setup();},setup:function(){this._tagEditID=this.scope.attr('data-tagEditID');this._minTags=this.scope.attr('data-minTags')||null;this._maxTags=this.scope.attr('data-maxTags')||null;this._setCount();this._checkMinMax();},_destroy:function(){if($('#elTagEditor_'+this._tagEditID+'_menu').length){$('#elTagEditor_'+this._tagEditID+'_menu').remove();}},tagsUpdated:function(e,data){if(data.tagEditID!==this._tagEditID){return;}
|
||||
this.scope.find('.ipsTags__item:not(.ipsTags__item--edit)').remove();this.scope.prepend(data.tags);var editablePrefix=$('body').find('[data-editablePrefix]');if(editablePrefix.length){if(data.prefix){editablePrefix.html(data.prefix).removeClass('ipsHide');}else{editablePrefix.html('').addClass('ipsHide');}}else if(data.prefix.length){this.scope.prepend(data.prefix);}
|
||||
this._setCount();this._checkMinMax();ips.ui.flashMsg.show(ips.getString('tagsUpdated'));},removeTag:function(e){e.preventDefault();var self=this;var remove=$(e.currentTarget);var url=remove.attr('href');var tagContainer=remove.closest('.ipsTags__item');var tag=tagContainer.find('.ipsTags__tag');tagContainer.fadeOut('fast');this._count--;this._checkMinMax();ips.getAjax()(url,{bypassRedirect:true}).done(function(){ips.ui.flashMsg.show(ips.getString('tagRemoved'));setTimeout(function(){tagContainer.remove();},200);}).fail(function(jqXHR,textStatus,errorThrown){tagContainer.stop().show().css({opacity:"1"});self._count++;if(jqXHR.responseJSON){ips.ui.alert.show({type:'alert',icon:'warn',message:jqXHR.responseJSON,callbacks:{}});}});},_checkMinMax:function(){var allowRemove=!(this._minTags&&this._count<=this._minTags);this.scope.find('[data-action="removeTag"]').toggle(allowRemove).end().find('.ipsTags__item--deletable').toggleClass('ipsTags__item--deletable',allowRemove);this.scope.find('.ipsTags__item--edit').toggle(!(this._maxTags&&this._count>=this._maxTags));},_setCount:function(){var prefix=this._getPrefix();var count=this.scope.find('.ipsTags__item').length;if(prefix.length&&prefix.is(':visible')){count++;}
|
||||
this._count=count;},_getPrefix:function(){return $('body').find('[data-editablePrefix]');}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.tagEditorForm',{_placeholder:null,_menuID:'',_tagEditID:'',initialize:function(){this.on(document,'menuOpened',this.menuOpened);this.on(document,'menuClosed',this.menuClosed);this.on('submit','form',this.submitForm);this.setup();},setup:function(){this._menuID=this.scope.closest('.ipsMenu').attr('id').replace('_menu','');this._tagEditID=this._menuID.replace('elTagEditor_','');},menuClosed:function(e,data){if(data.elemID!=this._menuID){return;}
|
||||
this.scope.html(ips.templates.render('core.edittags.default'));},menuOpened:function(e,data){if(data.elemID!=this._menuID){return;}
|
||||
var self=this;var url=$(data.originalEvent.currentTarget).attr('href');ips.getAjax()(url).done(function(response){self._setLoading(false);self.scope.html(response);$(document).trigger('contentChange',[self.scope]);}).fail(function(){window.location=url;});},submitForm:function(e){e.preventDefault();var self=this;var form=$(e.currentTarget);var autoComplete=this.scope.find('[data-ipsAutocomplete]');autoComplete.trigger('blur');setTimeout(function(){if(ips.ui.autocomplete.getObj(autoComplete).hasErrors()){e.preventDefault();return;}
|
||||
self._setLoading(true);ips.getAjax()(form.attr('action'),{type:'post',data:form.serialize(),dataType:'json'}).done(function(response){self.scope.trigger('tagsUpdated',{tagEditID:self._tagEditID,tags:response.tags,prefix:response.prefix});self.scope.trigger('closeMenu');setTimeout(function(){self._setLoading(false);},200);}).fail(function(jqXHR,textStatus,errorThrown){if(jqXHR.responseJSON){ips.ui.alert.show({type:'alert',icon:'warn',message:jqXHR.responseJSON,callbacks:{}});}});},500);},_setLoading:function(loading){if(loading){if(!this._placeholder){this._buildPlaceholder();}
|
||||
var width=this.scope.outerWidth();var height=this.scope.outerHeight();this.scope.hide();this._placeholder.show().css({width:width+'px',height:height+'px'});}else{if(this._placeholder){this._placeholder.hide();this.scope.show();}}},_buildPlaceholder:function(){this._placeholder=$('<div/>').addClass('ipsLoading').hide();this.scope.after(this._placeholder);}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.announcementBanner',{initialize:function(){this.setup();this.on('click','[data-role="dismissAnnouncement"]',this.dismissAnnouncement);},setup:function(){this.scope.find('[data-announcementId]').each(function(){var announcement=$(this);if(ips.utils.cookie.get('announcement_'+announcement.attr('data-announcementId'))){announcement.hide();}});},dismissAnnouncement:function(e){var element=$(e.target).closest('[data-announcementId]');var id=element.attr('data-announcementId');var date=new Date();date.setTime(date.getTime()+(7*86400000));ips.utils.cookie.set('announcement_'+id,true,date.toUTCString());element.slideUp({duration:400,complete:function(){$(this).remove();}});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.articlePages',{_currentPage:1,_pages:null,_articleID:'',initialize(){this.on('paginationClicked',this.paginationClicked);this.setup();},setup(){this._articleID=this._getArticleID();this.on(window,`historychange:article-${this._articleID}`,this.stateChange);this._setupPages();},stateChange(){if(!(('article-'+this._articleID)in ips.utils.history.getState())){return;}
|
||||
const state=ips.utils.history.getState(`article-${this._articleID}`)
|
||||
const newPage=parseInt(state?.['page'+this._articleID]);if(!Number.isInteger(newPage)||this._pages[newPage-1]===undefined){return;}
|
||||
this._pages.hide();this._currentPage=newPage;ips.utils.anim.go('fadeIn',$(this._pages[newPage-1]));this._checkButtons();},paginationClicked(e,data){if(data.originalEvent){data.originalEvent.preventDefault();data.originalEvent.stopPropagation();}
|
||||
e.stopPropagation();const urlData={controller:'article-'+this._articleID};if(data.pageNo=='next'){urlData['page'+this._articleID]=this._currentPage+1;}else{urlData['page'+this._articleID]=this._currentPage-1;}
|
||||
const url=this._buildURL(urlData['page'+this._articleID]);ips.utils.history.pushState(urlData,`article-${this._articleID}`,url);},_getArticleID(){if(this.scope.attr('data-articleID')){return this.scope.attr('data-articleID');}else if(this.scope.closest('[data-commentID]')){return'comment'+this.scope.closest('[data-commentID]').attr('data-commentID');}else{return this.scope.identify().attr('id');}},_buildURL(pageNo){var urlObj=ips.utils.url.getURIObject();var url=urlObj.protocol+'://'+urlObj.host+(urlObj.port?(':'+urlObj.port):'')+urlObj.path+'?';urlObj.queryKey['page'+this._articleID]=pageNo;var params=_.clone(urlObj.queryKey);if(urlObj.file=='index.php'){_.each(params,function(val,key){if(key.startsWith('/')){url+=key;delete params[key];}});url+='&';}
|
||||
if(!_.isEmpty(params)){url+=$.param(params);}
|
||||
return url;},_checkButtons(){const indexedPage=this._currentPage-1;this.scope.find('.ipsPagination__prev').toggle(!(indexedPage<=0));this.scope.find('.ipsPagination__next').toggle(!(indexedPage>=(this._pages.length-1)));},_setupPages(){this._pages=this.scope.find('[data-role="contentPage"]');if(this._pages.length<2){return;}
|
||||
this.scope.prepend(ips.templates.render('core.pagination'));this.scope.append(ips.templates.render('core.pagination'));this._pages.hide();if(!_.isUndefined(ips.utils.url.getParam('page'+this._articleID))){this._currentPage=parseInt(ips.utils.url.getParam('page'+this._articleID));}
|
||||
$(this._pages[this._currentPage-1]).show();this._checkButtons();this.scope.find('[data-role="contentPageBreak"]').hide();$(document).trigger('contentChange',[this.scope]);}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.guestTerms',{initialize:function(){this.setup();this.on('click','[data-action="dismissTerms"]',this.dismissTerms);},setup:function(){let hide=false;if(this.scope.attr('data-role')=='cookieConsentBar'&&ips.utils.cookie.get('cookie_consent')){hide=true;}
|
||||
else if(this.scope.attr('data-role')=='guestTermsBar'&&ips.utils.cookie.get('guestTermsDismissed')){hide=true;}
|
||||
if(this.scope.attr('data-role')=='cookieConsentBar'&&(!ips.getSetting('memberID')&&!ips.utils.cookie.get('cookie_consent_optional'))){$('#elNavTheme').hide();}
|
||||
if(this.scope.attr('data-role')=='cookieConsentBar'&&!ips.utils.cookie.get('cookie_consent_optional')){$('[data-role="dismissAnnouncement"]').hide();}
|
||||
this.scope.toggle(!hide);$('body').toggleClass('cWithGuestTerms',!hide);},dismissTerms:function(e){e.preventDefault();ips.utils.cookie.set('guestTermsDismissed',1);this.hideGuestBar();},hideGuestBar:function(){this.scope.toggle(false);$('body').toggleClass('cWithGuestTerms',false);}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.followForm',{initialize:function(){this.on('submit',this.submitForm);this.on('click','[data-action="unfollow"]',this.unfollow);this.setup();},setup:function(){this._app=this.scope.attr('data-followApp');this._area=this.scope.attr('data-followArea');this._id=this.scope.attr('data-followID');},unfollow:function(e){e.preventDefault();this._doFollowAction($(e.currentTarget).attr('href'),{},true);},submitForm:function(e){e.preventDefault();this._doFollowAction(this.scope.attr('action'),this.scope.serialize(),false);},_doFollowAction:function(url,data,unfollow){var self=this;var dims=ips.utils.position.getElemDims(this.scope.parent('div'));this.scope.hide().parent('div').css({width:dims.outerWidth+'px',height:dims.outerHeight+'px'}).addClass('ipsLoading');ips.getAjax()(url,{data:data,type:'post'}).done(function(response){if(unfollow){self.trigger('followingItem',{feedID:self._area+'-'+self._id,unfollow:true});}else{self.trigger('followingItem',{feedID:self._area+'-'+self._id,notificationType:self.scope.find('[name="follow_type"]:checked').val(),anonymous:!self.scope.find('[name="follow_public_checkbox"]').is(':checked')});}
|
||||
ips.ui.flashMsg.show(ips.getString('followUpdated'));}).fail(function(jqXHR,textStatus,errorThrown){window.location=url;}).always(function(){self.scope.parents('.ipsHovercard').remove();});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.followButton',{initialize:function(){this.setup();this.on(document,'followingItem',this.followingItemChange);},setup:function(){this._app=this.scope.attr('data-followApp');this._area=this.scope.attr('data-followArea');this._id=this.scope.attr('data-followID');this._feedID=this._area+'-'+this._id;this._button=this.scope.find('[data-role="followButton"]');},followingItemChange:function(e,data){if(data.feedID==this._feedID){this._reloadButton();}},_reloadButton:function(){this._button.addClass('i-opacity_3');var self=this;var pos=ips.utils.position.getElemPosition(this._button);var dims=ips.utils.position.getElemDims(this._button);this.scope.append(ips.templates.render('core.follow.loading'));this.scope.find('.ipsLoading').css({width:dims.outerWidth+'px',height:dims.outerHeight+'px',top:"0",left:"0",position:'absolute',zIndex:ips.ui.zIndex()});ips.getAjax()(ips.getSetting('baseURL')+'index.php?app=core&module=system&controller=notifications&do=button',{data:_.extend({follow_app:this._app,follow_area:this._area,follow_id:this._id,},(this.scope.attr('data-buttonType'))?{button_type:this.scope.attr('data-buttonType')}:{},(this.scope.attr('data-buttonSize'))?{button_size:this.scope.attr('data-buttonSize')}:{})}).done(function(response){self.scope.html(response);$(document).trigger('contentChange',[self.scope]);if($('input[data-toggle-id="auto_follow_toggle"]').length){var val=self.scope.find('[data-role="followButton"]').attr('data-following');if(val=='false'&&$('input[data-toggle-id="auto_follow_toggle"]').is(':checked')){$('input[data-toggle-id="auto_follow_toggle"]').prop('checked',false).change();}else if(val=='true'&&!$('input[data-toggle-id="auto_follow_toggle"]').is(':checked')){$('input[data-toggle-id="auto_follow_toggle"]').prop('checked',true).change();}}}).fail(function(){self._button.removeClass('i-opacity_3');}).always(function(){self.scope.find('.ipsLoading').remove();});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.dataLayer',{eventHandlers:[],propertiesHandlers:[],initialize:function(){if(this.verify()){this.on('ipsDataLayer',this.handleEvent);this.on('ipsDataLayerProperties',this.handleProperties);this.setup();Debug.log('Pushing events to the dataLayer');}},setup:function(){for(let i in IpsDataLayerEventHandlers){let handler=IpsDataLayerEventHandlers[i];if(handler instanceof Function){try{let callback=handler();if(callback instanceof Function){this.eventHandlers.push(callback);}else{Debug.error(`Invalid Handler Callback Found: Returned value of type '${typeof (callback || undefined)}', expected a callback Function!`);}}catch(e){Debug.error(e);}}}
|
||||
for(let i in IpsDataLayerPropertiesHandlers){let handler=IpsDataLayerPropertiesHandlers[i];if(handler instanceof Function){try{let callback=handler();if(callback instanceof Function){this.propertiesHandlers.push(callback);}else{Debug.error(`Invalid Handler Callback Found: Returned value of type '${typeof (callback || undefined)}', expected a callback Function!`);}}catch(e){Debug.error(e);}}}
|
||||
this.unsetOldUniqueKeys();setTimeout(_.bind(this.loginLogout,this),200);setTimeout(_.bind(this.handleInitialEvents,this),202);this.on('ipsDataLayerSync',this.remoteFetchEvents);this.scope.find('[data-datalayer-postfetch]').on('click',function(e){setTimeout(function(){$(e.currentTarget).trigger('ipsDataLayerSync');},1500);});},handleEvent:function(evt,event){let Events=IpsDataLayerConfig._events;let Properties=IpsDataLayerConfig._properties;let PII=IpsDataLayerConfig._pii;if(!Object.keys(Events).length||!this.eventHandlers.length){return;}
|
||||
try{if(event._key&&event._properties instanceof Object){if(!Events[event._key]||!Events[event._key].enabled)return;if(event._uniquekeys&&event._uniquekeys instanceof Object){try{let same=true;let saved=ips.utils.db.get('ipsDataLayer',event._key)||{};saved.exp=saved.exp||0;event._uniquekeys.exp=event._uniquekeys.exp||(Math.floor(Date.now()/1000)+300);if((saved.exp)<=Math.floor(Date.now()/1000)){same=false;}
|
||||
if(same){for(let savedKey in saved){if(savedKey==='exp'){continue;}
|
||||
if(saved[savedKey]!==event._uniquekeys[savedKey]){same=false;break;}}}
|
||||
if(same){saved.exp=Math.max(event._uniquekeys.exp,saved.exp);ips.utils.db.set('ipsDataLayer',event._key,saved,false);return;}
|
||||
ips.utils.db.set('ipsDataLayer',event._key,event._uniquekeys,false);}catch(e){Debug.error(e);}}
|
||||
let _event={'_key':Events[event._key].formatted_name,'_properties':{}};for(let propertyKey in Properties){let property=Properties[propertyKey];if(property.enabled&&!(!PII&&property.pii)){let validForEvent=false;for(let j in property.event_keys){let pattern=property.event_keys[j].replaceAll('*','.*');if(event._key.match(pattern)){validForEvent=true;break;}}
|
||||
if(!validForEvent){continue;}
|
||||
let formatted=property.formatted_name;let value='';if(propertyKey==='ips_key'){value=this.uniqueId();}else if(Object.keys(event._properties).includes(propertyKey)){value=event._properties[propertyKey];}else if(property.custom){value=(property.value===null||property.value===undefined)?undefined:property.value;}else if(propertyKey==='ips_time'){value=Math.floor(Date.now()/1000);}else if(IpsDataLayerContext[formatted]){value=IpsDataLayerContext[formatted];}else{value=property.default||undefined;}
|
||||
if(value!==null&&value!==undefined){let types=property.type.toLowerCase().split(' ');if(types.includes('number')){try{if(!isNaN(value)){value=Number(value);}}catch(e){}}
|
||||
if(typeof value==='object'&&Object.keys(value).length===0&&Object.getPrototypeOf(value)===Object.prototype&&types.includes('array')){value=[];}else if(!((types.includes('array')&&value instanceof Array)||types.includes(typeof value))){Debug.error(`Invalid Data Layer Property Type: Event property "${propertyKey}" was overridden to undefined because it could not be cast from "${typeof value}" to an allowed type`);value=undefined;}}else{value=undefined;}
|
||||
_event._properties[formatted]=value;}}
|
||||
Debug.log('Pushing an event to the Data Layer Event Handlers');Debug.log(_event)
|
||||
for(let i in this.eventHandlers){try{this.eventHandlers[i](_event);}catch(e){Debug.error('Bad Data Layer Event Handler: An event handler failed to handle an event!');}}}}catch(e){Debug.log(e);}},handleProperties:function(evt,event){let Properties=IpsDataLayerConfig._properties;let PII=IpsDataLayerConfig._pii;if(this.propertiesHandlers.length&&event._properties instanceof Object){let properties={};for(let propertyKey in event._properties){let property=Properties[propertyKey];if(!(property||property===null)||!property.enabled||!property.page_level||(!PII&&property.pii)){continue;}
|
||||
let value=event._properties[propertyKey];if(value!==null&&value!==undefined){let types=property.type.toLowerCase().split(' ');if(types.includes('number')){try{if(!isNaN(value)){value=Number(value);}}catch(e){}}
|
||||
if(typeof value==='object'&&Object.keys(value).length===0&&Object.getPrototypeOf(value)===Object.prototype&&types.includes('array')){value=[];}else if(!((types.includes('array')&&value instanceof Array)||types.includes(typeof value))){Debug.error(`Invalid Data Layer Property Type: Property "${propertyKey}" was overridden to undefined because it could not be cast from "${typeof value}" to an allowed type`);value=undefined;}}else{value=undefined;}
|
||||
properties[propertyKey]=value;}
|
||||
if(Object.keys(properties).length){Debug.log('Pushing properties to the Data Layer Properties Handlers');Debug.log(properties);for(let i in this.propertiesHandlers){try{this.propertiesHandlers[i](properties);}catch(e){Debug.error('Bad Data Layer Properties Handler: A properties handler failed to handle a collection (object) of properties');}}}}},handleInitialEvents:function(){let self=this;IpsDataLayerEvents.forEach(function(event){self.handleEvent({},event);});},verify:function(){try{return((!window.IpsDataLayerContext&&IpsDataLayerContext)&&(!window.IpsDataLayerConfig&&IpsDataLayerConfig)&&(!window.IpsDataLayerEventHandlers&&IpsDataLayerEventHandlers)&&(!window.IpsDataLayerPropertiesHandlers&&IpsDataLayerPropertiesHandlers)&&IpsDataLayerContext instanceof Object&&IpsDataLayerEvents instanceof Array&&IpsDataLayerEventHandlers instanceof Array&&IpsDataLayerPropertiesHandlers instanceof Array&&IpsDataLayerConfig instanceof Object&&IpsDataLayerConfig._properties instanceof Object&&IpsDataLayerConfig._events instanceof Object&&IpsDataLayerConfig._pii!==undefined);}catch(e){return false;}},loginLogout:function(){let stored=ips.utils.db.get('ipsDataLayer','login')||{};if(ipsSettings.memberID){if(stored.logged_in===0){this.scope.trigger('ipsDataLayer',{_key:'account_login',_properties:{}});}
|
||||
ips.utils.db.set('ipsDataLayer','login',{logged_in:1},false)}else{if(stored.logged_in===1){this.scope.trigger('ipsDataLayer',{_key:'account_logout',_properties:{}});}
|
||||
ips.utils.db.set('ipsDataLayer','login',{logged_in:0},false);}},uniqueId:function(){let s=i=>{return Math.floor((1+Math.random())*Math.pow(16,i)).toString(16).substring(1);};let time=Date.now();let sec=Math.floor(time/1000);let secString=sec.toString(16);secString=secString.substring(secString.length-8);let ms=(time-(sec*1000))*1000;let msString=(ms+0x100000).toString(16).substring(1);return secString+msString+s(1)+'.'+s(4)+s(4);},unsetOldUniqueKeys:function(){let Events=IpsDataLayerConfig._events;for(let eventKey in Events){let saved=ips.utils.db.get('ipsDataLayer',eventKey)||{};if(Object.keys(saved).length){Debug.log(`Found stored unique keys for the event '${eventKey}'`);Debug.log(saved);if(!saved.exp||saved.exp<=(Date.now()/1000)){Debug.log(`Removing expired stored unique keys for the event '${eventKey}'`);ips.utils.db.set('ipsDataLayer',eventKey,0,false);}}}},remoteFetchEvents:function(){let self=this;ips.getAjax()('?app=core&module=system&controller=ajax&do=getDataLayerEvents').done(function(response){for(let i in response){self.handleEvent({},response[i]);}});},});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.contentMessage',{initialize:function(){this.on('change','#check_message_is_public',this.updateEditorBorder);this.setup();},setup:function(){this.scope.find('.ipsComposeArea_editor').addClass('cContentMessageEditor');this.updateEditorBorder();},updateEditorBorder:function(){if($('#check_message_is_public').is(":checked")){this.scope.find('.ipsComposeArea_editor').removeClass('cContentMessageEditor--private').addClass('cContentMessageEditor--public');}else{this.scope.find('.ipsComposeArea_editor').removeClass('cContentMessageEditor--public').addClass('cContentMessageEditor--private');}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.core.moderation',{_editTimeout:0,_editingTitle:false,initialize:function(){this.on('submit','[data-role="moderationTools"]',this.moderationSubmit);this.on('mousedown','[data-role="editableTitle"]',this.editTitleMousedown);this.on('mouseup mouseleave','[data-role="editableTitle"]',this.editTitleMouseup);this.on('click','[data-role="editableTitle"]',this.editTitleMouseclick);},editTitleMousedown:function(e){var self=this;if(e.which!==1){return;}
|
||||
this._editTimeout=setTimeout(function(){self._editingTitle=true;clearTimeout(this._editTimeout);var anchor=$(e.currentTarget);anchor.hide();var inputNode=$('<input/>').attr({type:'text'}).attr('data-role','editTitleField').val(anchor.text().trim());anchor.after(inputNode);inputNode.focus();inputNode.on('blur',function(){inputNode.addClass('ipsField_loading');if(inputNode.val()==''){inputNode.remove();anchor.show();self._editingTitle=false;}
|
||||
else
|
||||
{ips.getAjax()(anchor.attr('href'),{method:'post',data:{do:'ajaxEditTitle',newTitle:inputNode.val()}}).done(function(response){anchor.text(response);}).fail(function(response){ips.ui.alert.show({type:'alert',icon:'warn',message:response.responseJSON,});}).always(function(){inputNode.remove();anchor.show();self._editingTitle=false;});}});inputNode.on('keypress',function(e){if(e.keyCode==ips.ui.key.ENTER){e.stopPropagation();e.preventDefault();inputNode.blur();return false;}});inputNode.on('keydown',function(e){if(e.keyCode==ips.ui.key.ESCAPE){inputNode.remove();anchor.show();self._editingTitle=false;return false;}});},1000);},editTitleMouseup:function(e){clearTimeout(this._editTimeout);},editTitleMouseclick:function(e){if(this._editingTitle){e.preventDefault();}},moderationSubmit:function(e){if(this._editingTitle){e.preventDefault();}
|
||||
var action=this.scope.find('[data-role="moderationAction"]').val();switch(action){case'delete':this._modActionDelete(e);break;case'move':this._modActionDialog(e,'move','narrow');break;case'hide':this._modActionDialog(e,'hide','narrow');break;case'split':this._modActionDialog(e,'split','wide');break;case'merge':this._modActionDialog(e,'merge','medium');break;case'tag':this._modActionDialog(e,'tag','narrow');break;case'untag':this._modActionDialog(e,'untag','narrow');break;default:$(document).trigger('moderationSubmitted');break;}},_modActionDelete:function(e){var self=this;var form=this.scope.find('[data-role="moderationTools"]');if(self._bypassDeleteCheck){return;}
|
||||
e.preventDefault();var count=parseInt(this.scope.find('[data-role="moderation"]:checked').length)+parseInt(this.scope.find('[data-role="moderation"]:hidden').length);ips.ui.alert.show({type:'confirm',icon:'warn',message:(count>1)?ips.pluralize(ips.getString('delete_confirm_many'),count):ips.getString('delete_confirm'),callbacks:{ok:function(){$(document).trigger('moderationSubmitted');self._bypassDeleteCheck=true;self.scope.find('[data-role="moderationTools"]').submit();}}});},_modActionDialog:function(e,title,size){e.preventDefault();var form=this.scope.find('[data-role="moderationTools"]');var moveDialog=ips.ui.dialog.create({url:form.attr('action')+'&'+form.serialize().replace(/%5B/g,'[').replace(/%5D/g,']'),modal:true,title:ips.getString(title),forceReload:true,size:size});moveDialog.show();$(document).trigger('moderationSubmitted');}});}(jQuery,_));;
|
||||
@@ -0,0 +1,6 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.helpful.helpful',{ajaxObj:null,initialize:function(){this.on('click','[data-action="helpful"]',this.markHelpful);},async markHelpful(e){e.preventDefault();let clicked=$(e.currentTarget);let showHelpfulButton=document.querySelector('[data-role="helpfulCount"]');let mostHelpfulBox=document.querySelector('[data-role="mostHelpful"]');clicked.addClass('i-opacity_3');const response=await ips.fetch(clicked.attr('href'));if(!response.error){clicked.closest("li").replaceWith(response.button);if(response.helpfulReplies===0){}
|
||||
if(showHelpfulButton&&response.countLanguage){$(showHelpfulButton).html(response.countLanguage);}
|
||||
if(mostHelpfulBox){if(response.mostHelpfulHtml){$(mostHelpfulBox).removeClass('ipsHide');$(mostHelpfulBox).html(response.mostHelpful);}
|
||||
else
|
||||
{$(mostHelpfulBox).addClass('ipsHide');}}}
|
||||
clicked.removeClass('i-opacity_3');}});}(jQuery,_));;
|
||||
@@ -0,0 +1,4 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.ignore.new',{initialize:function(){this.on('submit','#elIgnoreForm',this.addIgnoredUser);this.on('tokenAdded',this.showExtraControls);this.setup();},setup:function(){if(parseInt(this.scope.attr('data-id'))===0){$('#elIgnoreTypes, #elIgnoreSubmitRow').hide();}},addIgnoredUser:function(e){var form=this.scope.find('#elIgnoreForm');if(form.attr('data-bypassValidation')){return;}
|
||||
e.preventDefault();var self=this;var scope=this.scope;ips.getAjax()(form.attr('action'),{data:form.serialize(),type:'post'}).done(function(response,textStatus,jqXHR){if(jqXHR.responseJSON){ips.utils.anim.go('fadeOut',$('#elIgnoreTypes, #elIgnoreSubmitRow')).then(function(){var field=scope.find('[name="member"]');ips.ui.autocomplete.getObj(field).removeAll();form.find("[type='checkbox']").attr('checked','').change();});ips.ui.flashMsg.show(ips.getString('addedIgnore',{user:response.name}));self.triggerOn('core.global.core.table','refreshResults');}else{form.attr('data-bypassValidation',true).submit();}}).fail(function(jqXHR,textStatus,errorThrown){form.attr('data-bypassValidation',true).submit();});},showExtraControls:function(e,data){var field=this.scope.find('[name="member"]');var wrapper=$('#'+field.attr('id')+'_wrapper');wrapper.addClass('ipsField_loading');var form=this.scope.find('#elIgnoreForm');ips.getAjax()(form.attr('action'),{type:'post',data:{do:'add',name:this.scope.find('[name="member"]').val()}}).done(function(response){var i;for(i in response){form.find("[name='ignore_"+i+"_checkbox']").attr('checked',response[i]==1).change();}
|
||||
ips.utils.anim.go('fadeIn',$('#elIgnoreTypes, #elIgnoreSubmitRow'));}).fail(function(jqXHR,textStatus,errorThrown){ips.ui.alert.show({message:jqXHR.responseJSON['error']});field.data('_autocomplete').removeAll();}).always(function(){wrapper.removeClass('ipsField_loading');});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.ignore.existing',{initialize:function(){this.on('menuItemSelected','[data-action="ignoreMenu"]',this.ignoreMenu);this.on('submitDialog',this.editedUser);},editedUser:function(e,data){this.trigger('refreshResults');ips.ui.flashMsg.show(ips.getString('editedIgnore'));},ignoreMenu:function(e,data){data.originalEvent.preventDefault();switch(data.selectedItemID){case'remove':this._removeIgnore(e,data);break;}},_removeIgnore:function(e,data){var url=data.menuElem.find('[data-ipsMenuValue="remove"] a').attr('href');var self=this;Debug.log('here');ips.ui.alert.show({type:'confirm',icon:'question',message:ips.getString('confirm_unignore'),subText:ips.getString('confirm_unignore_desc'),callbacks:{ok:function(){ips.getAjax()(url+'&wasConfirmed=1').done(function(response){self.trigger('refreshResults');});}}});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,50 @@
|
||||
ips.templates.set('messages.view.placeholder'," <div class='ipsEmpty'> <i class='fa-solid fa-inbox i-opacity_2'></i> <p class='i-margin-top_1'>{{#lang}}no_message_selected{{/lang}}</p></div>");ips.templates.set('messages.main.folderMenu',"<li class='ipsMenu_item' data-ipsMenuValue='{{key}}'><a href='#'><span data-role='folderName'>{{name}}</span> <span class='ipsMenu_itemCount'>{{count}}</span></a></li>");;
|
||||
;(function($,_){"use strict";ips.controller.register('core.front.messages.view',{_currentMessageID:null,_currentPage:1,initialize(){this.on('paginationClicked paginationJump',this.paginationClicked);this.on('addToCommentFeed',this.addToCommentFeed);this.on('deletedComment.comment',this.deleteComment);this.on(document,'menuItemSelected','#elConvoMove',this.moveConversation);this.on(document,'click','[data-action="deleteConversation"]',this.deleteConversation);this.on('menuOpened',"[data-action='inviteUsers']",this.inviteMenuOpened);this.on(document,'menuItemSelected','[data-role="userActions"]',this.userAction);this.on('submit','[data-role="addUser"]',this.addUsersSubmit);this.on(document,'selectedMessage.messages',this.selectedMessage);this.on(document,'setInitialMessage.messages',this.setInitialMessage);this.on(document,'getFolder.messages',this.getFolder);this.on(document,'loadMessageLoading.messages',this.loadMessageLoading);this.on(document,'loadMessageDone.messages',this.loadMessageDone);this.on(document,'deleteMessageDone.messages',this.deleteMessageDone);this.on(document,'blockUserDone.messages',this.blockUserDone);this.on(document,'addUserDone.messages',this.addUserDone);this.on(document,'addUserError.messages',this.addUserError);this.on(window,'historychange:messages',this.stateChange);this.setup();},setup(){if(this.scope.attr('data-current-id')){this._currentMessageID=this.scope.attr('data-current-id');}},addToCommentFeed(e,data){if(data.totalItems){this.trigger('updateReplyCount.messages',{messageID:this._currentMessageID,count:data.totalItems});}},addUserError(e,data){if(data.error){ips.ui.alert.show({type:'alert',icon:'warn',message:data.error,callbacks:{}});}},addUserDone(e,data){if(data.id!==this._currentMessageID){return;}
|
||||
if(data.error){ips.ui.alert.show({type:'alert',icon:'warn',message:data.error,callbacks:{}});return;}
|
||||
const numberMembers=_.size(data.members);if(data.members&&numberMembers){for(const i in data.members){const participant=this.scope.find('.cMessage_members').find('[data-participant="'+i+'"]');Debug.log('Ajax response:');Debug.log(data.members[i]);if(participant.length){participant.replaceWith(data.members[i]);}else{this.scope.find('.cMessage_members [data-role="addUserItem"]').before(data.members[i]);}}}
|
||||
let message=ips.getString('messageUserAdded');if(numberMembers>1){message=ips.pluralize(ips.getString('messageUsersAdded'),numberMembers);}
|
||||
ips.ui.flashMsg.show(message);if(data.failed&&parseInt(data.failed)>0){ips.ui.flashMsg.show(ips.getString('messageNotAllUsers'));}
|
||||
this.scope.find('#elInviteMember'+this._currentMessageID).trigger('closeMenu');var autocomplete=ips.ui.autocomplete.getObj(this.scope.find('input[name="member_names"]'));autocomplete.removeAll();},inviteMenuOpened(e){this.scope.find('[data-role="addUser"] input[type="text"][id$="dummyInput"]').focus();},addUsersSubmit(e){e.preventDefault();const names=$(e.currentTarget).find('[name="member_names"]').val();this.trigger('addUser.messages',{id:this._currentMessageID,names:names});},blockUserDone(e,data){if(data.id!=this._currentMessageID){return;}
|
||||
var participant=this.scope.find('.cMessage_members').find('[data-participant="'+data.member+'"]');participant.replaceWith(data.response);ips.ui.flashMsg.show(ips.getString('messageRemovedUser'));},userAction(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
var userID=$(data.triggerElem).closest('[data-participant]').attr('data-participant');switch(data.selectedItemID){case'block':this.trigger('blockUser.messages',{member:userID,id:this._currentMessageID});break;case'unblock':this.trigger('addUser.messages',{member:userID,id:this._currentMessageID,unblock:true});break;}},deleteMessageDone(e,data){var url=ipsSettings['baseURL']+'?app=core&module=messaging&controller=messenger'
|
||||
window.location=url;},moveConversation(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
var self=this;var realName=$('#elConvoMove_menu').find('[data-ipsMenuValue="'+data.selectedItemID+'"] a').html();ips.ui.alert.show({type:'confirm',icon:'question',message:ips.getString('conversationMove',{name:realName}),callbacks:{ok(){self.trigger('moveMessage.messages',{id:self._currentMessageID,folder:data.selectedItemID});}}});},deleteConversation(e){e.preventDefault();var self=this;ips.ui.alert.show({type:'confirm',icon:'question',message:ips.getString('messagesDelete'),subText:ips.getString('messagesDeleteSubText'),callbacks:{ok(){self.trigger('deleteMessage.messages',{id:self._currentMessageID});}}});},loadMessageLoading(e,data){this.cleanContents();this.scope.html($('<div/>').addClass('ipsLoading').html(' ').css({minHeight:'150px'}));},loadMessageDone(e,data){this.scope.html(data.response);$(document).trigger('contentChange',[this.scope]);},paginationClicked(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}},selectedMessage(e,data){this.trigger('loadMessage.messages',{messageID:data.messageID,messageURL:data.messageURL,messageTitle:data.messageTitle});this._currentMessageID=data.messageID;},stateChange(){const state=ips.utils.history.getState('messages');if(state?.controller!=='messages'){return;}
|
||||
if(state.id==null){this.cleanContents();this.scope.html(ips.templates.render('messages.view.placeholder'));this._currentMessageID=null;this._currentPage=null;return;}
|
||||
if(state.id!==this._currentMessageID){this.trigger('fetchMessage.messages',{id:state.id,page:state.page||1});ips.utils.analytics.trackPageView(window.location.href);this._currentMessageID=state.id;this._currentPage=state.page||1;}else if(state.page!==this._currentPage){this.trigger('fetchMessage.messages',{id:this._currentMessageID,page:state.page});this._currentPage=state.page;}},setInitialMessage(e,data){this._currentMessageID=data.messageID;},getFolder(){this.cleanContents();this.scope.html(ips.templates.render('messages.view.placeholder'));ips.utils.anim.go('fadeIn',this.scope);},});}(jQuery,_));;
|
||||
;(function($,_){"use strict";ips.controller.register('core.front.messages.main',{_currentMessageID:null,_ready:{},_protectedFolders:['myconvo'],_params:{'sortBy':'mt_last_post_time','filter':'all'},_currentFolder:null,initialize(){this.on('menuItemSelected','#elMessageFolders',this.changeFolder);this.on('menuItemSelected','#elFolderSettings',this.folderAction);this.on('click','[data-action="addFolder"]',this.addFolder);this.on(document,'addFolderLoading.messages renameFolderLoading.messages '+
|
||||
'markFolderLoading.messages emptyFolderLoading.messages '+
|
||||
'deleteMessageLoading.messages deleteMessagesLoading.messages moveMessageLoading.messages '+
|
||||
'deleteFolderLoading.messages',this.folderActionLoading);this.on(document,'addFolderFinished.messages renameFolderFinished.messages '+
|
||||
'markFolderFinished.messages emptyFolderFinished.messages '+
|
||||
'deleteMessageFinished.messages deleteMessagesFinished.messages moveMessageFinished.messages '+
|
||||
'deleteFolderFinished.messages',this.folderActionDone);this.on(document,'deleteFolderDone.messages deleteMessageDone.messages deleteMessagesDone.messages '+
|
||||
'emptyFolderDone.messages moveMessageDone.messages',this.updateCounts);this.on(document,'addFolderDone.messages',this.addFolderDone);this.on(document,'renameFolderDone.messages',this.renameFolderDone);this.on(document,'markFolderDone.messages',this.markFolderDone);this.on(document,'emptyFolderDone.messages',this.emptiedFolder);this.on(document,'deleteFolderDone.messages',this.deletedFolder);this.on('setInitialMessage.messages',this.setInitialMessage);this.on('setInitialFolder.messages',this.setInitialFolder);this.on('changeSort.messages changeFilter.messages',this.updateParam);this.on('input','[data-role="moderation"]',this.moderationInput);this.applyModMenuSelection();this.on('loadMessage.messages',this.loadMessage);this.on('changePage.messages',this.changePage);this.on(document,'controllerReady',this.controllerReady);this.on(document,'openDialog','#elAddFolder',this.addFolderDialogOpen);this.on(document,'openDialog','#elFolderRename',this.renameFolderDialogOpen);this.on(window,'historychange:messages',this.stateChange);},controllerReady(e,data){this._ready[data.controllerType]=true;if(this._ready['messages.list']&&this._ready['messages.view']&&data.controllerType=='core.front.messages.list'||data.controllerType=='core.front.messages.view'){this.trigger('messengerReady.messages');}},setInitialMessage(e,data){this._currentMessageID=data.messageID;},setInitialFolder(e,data){Debug.log(data);this._currentFolder=data.folderID;},changePage(e,data){this._updateURL({id:data.id,page:data.pageNo},{id:data.id,page:data.pageNo});},folderAction(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
if(this._currentFolder==null){}
|
||||
if(_.indexOf(this._protectedFolders,this._currentFolder)!==-1&&_.indexOf(['delete','rename'],data.selectedItemID)!==-1){return;}
|
||||
switch(data.selectedItemID){case'markRead':this._actionMarkRead(data);break;case'delete':this._actionDelete(data);break;case'empty':this._actionEmpty(data);break;case'rename':this._actionRename(data);break;}},folderActionLoading(e,data){var loading=this.scope.find('[data-role="loadingFolderAction"]');ips.utils.anim.go('fadeIn',loading);},folderActionDone(e,data){var loading=this.scope.find('[data-role="loadingFolderAction"]');ips.utils.anim.go('fadeOut',loading);},addFolder(e){var button=$(e.currentTarget);if(ips.ui.dialog.getObj(button)){ips.ui.dialog.getObj(button).show();}else{button.ipsDialog({content:'#elAddFolder_content',title:ips.getString('addFolder'),size:'narrow'});}},addFolderDone(e,data){var newItem=ips.templates.render('messages.main.folderMenu',{key:data.key,count:0,name:data.folderName});$('#elMessageFolders_menu').find('[data-ipsMenuValue]').last().after(newItem);$('#elMessageFolders_menu').find('[data-ipsMenuValue="'+data.key+'"]').click();},renameFolderDone(e,data){var realFolderName=this._getRealFolder(data.folder);$('#elMessageFolders_menu').find('[data-ipsMenuValue="'+data.folder+'"]').find('[data-role="folderName"]').text(data.folderName);this.scope.find('[data-role="currentFolder"]').text(data.folderName);ips.ui.flashMsg.show(ips.getString('renamedTo',{folderName:realFolderName,newFolderName:data.folderName}));},markFolderDone(e,data){var realFolderName=this._getRealFolder(data.folder);ips.ui.flashMsg.show(ips.getString('messengerMarked',{folderName:realFolderName}));},emptiedFolder(e,data){var menuItem=$('#elMessageFolders_menu').find('[data-ipsMenuValue="'+data.folder+'"]');menuItem.find('.ipsMenu_itemCount').html('0');this.trigger('loadFolder',{folder:this._currentFolder,sortBy:this._params['sortBy'],filter:this._params['filter']});},deletedFolder(e,data){this.scope.find('#elMessageFolders_menu').find('[data-ipsMenuValue="'+data.folder+'"]').remove().end().find('[data-ipsMenuValue="myconvo"]').click();ips.ui.flashMsg.show(ips.getString('folderDeleted'));},loadMessage(e,data){if(!data.messageID){return;}
|
||||
this._newMessageID=data.messageID;this._updateURL({id:data.messageID,url:data.messageURL},{},data.messageTitle);},updateParam(e,data){if(!_.isUndefined(data.param)&&!_.isUndefined(data.value)){this._params[data.param]=data.value;}
|
||||
this._updateURL(false,this._params);},changeFolder(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
var folderID=data.selectedItemID;var folderURL=data.menuElem.find('[data-ipsMenuValue="'+data.selectedItemID+'"] a').attr('href');var folderName=data.menuElem.find('[data-ipsMenuValue="'+data.selectedItemID+'"]').find('[data-role="folderName"]').text();if(_.isUndefined(folderID)){return;}
|
||||
this._currentMessageID=null;this.scope.find('[data-ipsFilterBar]').trigger('switchTo.filterBar',{switchTo:'filterBar'});this._updateURL(_.extend({folder:folderID,url:folderURL},this._params),{folder:folderID,id:null,page:null},folderName);},addFolderDialogOpen(e,data){$(data.dialog).find('input[type="text"]').attr('data-folderID',this._currentFolder).val('').focus();},renameFolderDialogOpen(e,data){var realFolderName=this._getRealFolder(this._currentFolder);$(data.dialog).find('[data-role="folderName"]').attr('data-folderID',this._currentFolder).val(_.unescape(realFolderName)).focus();},stateChange(){const state=ips.utils.history.getState('messages')
|
||||
if(state?.controller==='messages'&&state.folder!==this._currentFolder){this._updateFolder(state.folder);}},_updateURL(urlParams,newValues,newTitle){let url='';const title=newTitle||document.title;if(urlParams===false){url=window.location.href;if(window.location.hash){url=url.substr(0,url.length-window.location.hash.length);}}else if(urlParams.url){url=urlParams.url;}else{url=[];url.push('?app=core&module=messaging&controller=messenger');_.each(urlParams,function(value,idx){if(idx!='page'||(idx=='page'&&value!=1)){url.push(idx+"="+value);}});url=url.join('&');}
|
||||
const defaultObj={id:this._newMessageID,folder:this._currentFolder,params:this._params,controller:'messages',};ips.utils.history.pushState({...defaultObj,...(newValues||{})},'messages',url);document.title=title},updateCounts(e,data){this.scope.find('[data-role="quotaTooltip"]').attr('data-ipsTooltip-label',data.quotaText).find('[data-role="quotaWidth"]').val(parseInt(data.quotaPercent)).end().find('[data-role="quotaValue"]').text(parseInt(data.quotaPercent));$('#elMessageFolders_menu').find('[data-ipsMenuValue]').each(function(){if(data.counts){$(this).find('.ipsMenu_itemCount').text(parseInt(data.counts[$(this).attr('data-ipsMenuValue')]?data.counts[$(this).attr('data-ipsMenuValue')]:'0'));}});},_updateFolder(newFolder){var folderName=$('[data-ipsMenuValue="'+newFolder+'"]').find('[data-role="folderName"]').text();var self=this;$('#elFolderSettings_menu').find('.ipsMenu_item').removeClass('ipsMenu_itemDisabled').show();$('#elFolderSettings_menu .ipsMenu_item a').each(function(){$(this).attr('href',$(this).attr('href').replace('&folder='+self._currentFolder,'&folder='+newFolder));});if(_.indexOf(this._protectedFolders,newFolder)!==-1){$('#elFolderSettings_menu').find('[data-ipsMenuValue="delete"], [data-ipsMenuValue="rename"]').addClass('ipsMenu_itemDisabled').hide();}
|
||||
this.scope.find('[data-role="currentFolder"]').text(folderName);this._currentFolder=newFolder;},_actionRename(data){var dialog=$('#elFolderSettings_menu').find('[data-ipsMenuValue="rename"]');if(ips.ui.dialog.getObj(dialog)){ips.ui.dialog.getObj(dialog).show();}else{dialog.ipsDialog({content:'#elFolderRename_content',title:ips.getString('renameFolder'),size:'narrow'});}},_actionDelete(data){var self=this;ips.ui.alert.show({type:'confirm',icon:'question',message:ips.getString('messengerDeleteConfirm'),subText:ips.getString('cantBeUndone'),callbacks:{ok(){self.trigger('deleteFolder.messages',{folder:self._currentFolder});}}});},_actionMarkRead(data){var realFolderName=this._getRealFolder(this._currentFolder);var self=this;ips.ui.alert.show({type:'confirm',icon:'question',message:ips.getString('messengerMarkRead',{folderName:realFolderName}),callbacks:{ok(){self.trigger('markFolder.messages',{folder:self._currentFolder});}}});},_actionEmpty(data){var realFolderName=this._getRealFolder(this._currentFolder);var self=this;ips.ui.alert.show({type:'confirm',icon:'question',message:ips.getString('messengerDeleteContents',{folderName:realFolderName}),subText:ips.getString('cantBeUndone'),callbacks:{ok(){self.trigger('emptyFolder.messages',{folder:self._currentFolder});}}});},_getRealFolder(folder){var menuItem=$('#elMessageFolders_menu').find('[data-ipsMenuValue="'+folder+'"]');return menuItem.find('[data-role="folderName"]').html();},moderationInput(e){const currentData=ips.utils.db.get('messages','mod_menu_checked')||{};const id=e.target.name;if(!id){return;}
|
||||
if(e.target.checked){currentData[id]=e.target.dataset.actions||"";}else{delete currentData[id];}
|
||||
ips.utils.db.set('messages','mod_menu_checked',currentData);},applyModMenuSelection(){const currentData=ips.utils.db.get('messages','mod_menu_checked');const pageAction=this.elem.querySelector('[data-ipspageaction]');if(pageAction&¤tData&&typeof currentData==="object"&&Object.keys(currentData).length){const messageSelector=[...Object.keys(currentData)].map(id=>`[name="${id}"]`).join(',');const remainingIds=new Set(Object.keys(currentData));this.elem.querySelectorAll(`input[data-role="moderation"]:is(${messageSelector})`).forEach(el=>{remainingIds.delete(el.name);el.checked=true;$(el).trigger('change');});if(remainingIds.size){remainingIds.forEach(id=>{$(pageAction).trigger("addManualItem.pageAction",{id:id,actions:typeof currentData[id]==="string"?currentData[id]:''})});$(this.elem.querySelector('[data-ipsautocheck]')).trigger('setInitialCount.autoCheck',{count:remainingIds.size})}}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.messages.list',{_messageList:null,_searchTimer:null,_currentFolder:null,_currentMessageID:null,_currentOptions:{sortBy:'mt_last_post_time',filter:'all'},_infScrollURL:null,initialize(){this.on(document,'messengerReady.messages',this.messengerReady);this.on('menuItemSelected','#elSortByMenu',this.changeSort);this.on('menuItemSelected','#elFilterMenu',this.changeFilter);this.on('menuItemSelected','#elSearchTypes',this.selectedMenuItem);this.on('click','[data-messageid]',this.clickMessage);this.on('submit','[data-role="moderationTools"]',this.moderationSubmit);this.on('input','[data-role="messageSearchText"]',this.inputSearch);this.on('click','[data-action="messageSearchCancel"]',this.cancelSearch);this.on(document,'loadFolderDone.messages',this.loadFolderDone);this.on(document,'loadFolderLoading.messages, searchFolderLoading.messages',this.loadFolderLoading);this.on(document,'loadFolderFinished.messages',this.loadFolderFinished);this.on(document,'searchFolderLoading.messages',this.searchFolderLoading);this.on(document,'searchFolderDone.messages',this.searchFolderDone);this.on(document,'searchFolderFinished.messages',this.searchFolderFinished);this.on(document,'markFolderDone.messages',this.markFolderDone);this.on(document,'deleteMessagesDone.messages',this.deleteMessagesDone);this.on(document,'loadMessageDone.messages',this.markMessageRead);this.on(document,'deleteMessageDone.messages',this.deleteMessageDone);this.on(document,'moveMessageDone.messages',this.moveMessageDone);this.on(document,'addToCommentFeed',this.newMessage);this.on(document,'deletedComment.comment',this.deletedMessage);this.on(window,'historychange:messages',this.stateChange);this.setup();},setup(){this._messageList=this.scope.find('[data-role="messageList"]');this._currentFolder=this.scope.attr('data-folderID');this.trigger('setInitialFolder.messages',{folderID:this._currentFolder});},moderationSubmit(e,data){e.preventDefault();var self=this;var form=this.scope.find('[data-role="moderationTools"]');var count=parseInt(this.scope.find('[data-role="moderation"]:checked').length);if(this.scope.find('[data-role="pageActionOptions"]').find('select option:selected').val()=='move'){var dialog=ips.ui.dialog.create({remoteVerify:false,size:'narrow',remoteSubmit:false,title:ips.getString('messagesMove'),url:form.attr('action')+'&do=moveForm&ids='+_.map(self.scope.find('[data-role="moderation"]:checked'),function(item){return $(item).closest('[data-messageid]').attr('data-messageid');}).join(',')});dialog.show();}else{ips.ui.alert.show({type:'confirm',icon:'question',message:(count>1)?ips.pluralize(ips.getString('messagesDeleteMany'),count):ips.getString('messagesDelete'),subText:(count>1)?ips.getString('messagesDeleteManySubText'):ips.getString('messagesDeleteSubText'),callbacks:{ok(){var ids=_.map(self.scope.find('[data-role="moderation"]:checked'),function(item){return $(item).closest('[data-messageid]').attr('data-messageid');});self.trigger('deleteMessages.messages',{id:ids});}}});}},deleteMessagesDone(e,data){var selector=_.map(data.id,function(item){return'[data-messageid="'+item+'"]';}).join(',');var self=this;var messages=this._messageList.find(selector);if(messages.length){messages.slideUp({complete(){messages.remove();if(data.id.indexOf(self._currentMessageID)!==-1){self._currentMessageID=null;if(self._messageList.find('[data-messageid]').length){self._messageList.find('[data-messageid]').first().click();}else{self.trigger('getFolder',{folderID:self._currentFolder});}}
|
||||
self._resetListActions();},queue:false}).fadeOut({queue:false});}},inputSearch(e){clearTimeout(this._searchTimer);this._searchTimer=setTimeout(_.bind(this._startSearch,this),500);},searchFolderLoading(e,data){this.scope.find('[data-role="messageSearchText"]').addClass('ipsField_loading');},searchFolderDone(e,data){this._messageList.html(data.data).show().end().find('[data-role="messageListPagination"]').html(data.pagination).end().find('[data-role="loading"]').attr('hidden',true).end().find('[data-role="messageListFilters"]').attr('hidden',true);this.scope.find('[data-action="messageSearchCancel"]').removeAttr('hidden');if(this.scope.is('[data-ipsInfScroll]')){var params=decodeURIComponent($.param(ips.utils.form.serializeAsObject($('[data-role="messageSearch"]'))));var base=this.scope.find('#elMessageList > form').attr('action');this._infScrollURL=this.scope.attr('data-ipsInfScroll');this.scope.attr('data-ipsInfScroll-url',base+'&'+params+'&folder='+this._currentFolder);this.scope.trigger('refresh.infScroll');}
|
||||
$(document).trigger('contentChange',[this._messageList]);this._resetListActions();},searchFolderFinished(e,data){this.scope.find('[data-role="messageSearchText"]').removeClass('ipsField_loading');},cancelSearch(e){if(!_.isUndefined(e)){e.preventDefault();}
|
||||
this._resetSearch();this._getFolder(this._currentFolder);},deletedReply(e,data){var count=this._messageList.find('[data-messageid="'+data.messageID+'"] [data-role="replyCount"]').text();this._messageList.find('[data-messageid="'+data.messageID+'"] [data-role="replyCount"]').text(parseInt(count)-1);},updateReplyCount(e,data){this._messageList.find('[data-messageid="'+data.messageID+'"] [data-role="replyCount"]').text(data.count);},markFolderDone(e,data){if(data.folder==this._currentFolder){this._messageList.find('[data-messageid]').removeAttr('data-ips-unread').find('.ipsIndicator').remove();}},deleteMessageDone(e,data){var message=this._messageList.find('[data-messageid="'+data.id+'"]');if(message.length){ips.utils.anim.go('fadeOutDown',message).done(function(){message.remove();});this._currentMessageID=null;}},moveMessageDone(e,data){var message=this._messageList.find('[data-messageid="'+data.id+'"]');var next=null;if(this._currentMessageID==data.id){if(message.prev('[data-messageid]').length){next=message.prev('[data-messageid]');}else if(message.next('[data-messageid]').length){next=message.next('[data-messageid]');}}
|
||||
if(message.length&&data.to!=this._currentFolder){ips.utils.anim.go('fadeOutDown',message).done(function(){message.remove();});this._currentMessageID=null;}
|
||||
ips.ui.flashMsg.show(ips.getString('conversationMoved'));if(next){next.click();}},loadFolderDone(e,data){this.scope.attr('data-ipsInfScroll-url',data.listBaseUrl).find('#elMessageList').scrollTop(0);this._messageList.html(data.data).show().end().find('[data-role="messageListPagination"]').html(data.pagination).end().find('[data-role="loading"]').attr('hidden',true);this.scope.trigger('refresh.infScroll');$(document).trigger('contentChange',[this._messageList]);this._resetListActions();},loadFolderLoading(e,data){if(!this.scope.find('[data-role="loading"]').length){this._messageList.after($('<div/>').addClass('ipsLoading').html(' ').css({minHeight:'150px'}).attr('data-role','loading'));}
|
||||
this._messageList.hide();this._hideEmpty();this.scope.find('[data-role="loading"]').removeAttr('hidden');},loadFolderFinished(e,data){this._messageList.show();this._resetSearch();},messengerReady(){this._currentMessageID=this._messageList.find('.ipsData__item--active').attr('data-messageid');this.trigger('setInitialMessage.messages',{messageID:this._currentMessageID});},clickMessage(e){if($(e.target).is('input[type="checkbox"]')){return;}
|
||||
e.preventDefault();var messageID=$(e.currentTarget).attr('data-messageid');var messageURL=$(e.currentTarget).find('[data-role="messageURL"]').attr('href');var messageTitle=$(e.currentTarget).find('[data-role="messageURL"]').text();this.trigger('selectedMessage.messages',{messageID:messageID,messageURL:messageURL,messageTitle:messageTitle});this.trigger('switchTo.filterBar',{switchTo:'filterContent'});this._selectMessage(messageID);},newMessage(e,data){this._updateRow(data.feedID.substr(data.feedID.indexOf('-')+1));},deletedMessage(e,data){var feedId=$(e.target).closest('[data-feedid]').attr('data-feedid');this._updateRow(feedId.substr(feedId.indexOf('-')+1));},_updateRow:function(conversationId){var scope=$(this.scope);ips.getAjax()(ips.getSetting('baseURL')+'index.php?app=core&module=messaging&controller=messenger&id='+conversationId+'&getRow=1').done(function(response){scope.find('[data-messageid="'+conversationId+'"]').replaceWith(response);$(document).trigger('contentChange',[scope]);});},changeSort(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
var sort=data.selectedItemID;if(sort){this.trigger('changeSort.messages',{param:'sortBy',value:sort});}},changeFilter(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
var filter=data.selectedItemID;if(filter){this.trigger('changeFilter.messages',{param:'filter',value:filter});}},stateChange(){const state=ips.utils.history.getState('messages')||{}
|
||||
if(state.controller!=='messages'){return;}
|
||||
let newFilters=false;if(typeof state.params==='object'&&(state.params.sortBy!==this._currentOptions.sortBy||state.params.filter!==this._currentOptions.filter)){this._currentOptions.sortBy=state.params.sortBy;this._currentOptions.filter=state.params.filter;newFilters=true;}
|
||||
if(state.folder!==this._currentFolder||newFilters){this._getFolder(state.folder);}
|
||||
if(state.mid!==this._currentMessageID){if(Array.isArray(state.mid)){this._selectMessages(state.mid);}else{this._selectMessage(state.mid);}}},markMessageRead:function(e,data){this._messageList.find('[data-messageid="'+data.id+'"]').removeAttr('data-ips-unread');},_startSearch(e){var serialized=ips.utils.form.serializeAsObject($('[data-role="messageSearch"]'));if(!serialized.q.length){this.cancelSearch();return;}
|
||||
if(!serialized.q.length){this.cancelSearch();return;}
|
||||
var gotSomething=false;_.each(['topic','post','recipient','sender'],function(item){if(_.has(serialized.search,item)){gotSomething=true;}});if(!gotSomething){var self=this;ips.ui.alert.show({type:'alert',icon:'warn',message:ips.getString('messageSearchFail'),subText:ips.getString('messageSearchFailSubText'),callbacks:{ok(){self._resetSearch();return false;}}});}else{this.trigger('searchFolder.messages',_.extend({folder:this._currentFolder},serialized));}},_resetSearch(){this.scope.find('[data-role="messageSearchText"]').removeClass('ipsField_loading').val('');this.scope.find('[data-action="messageSearchCancel"]').attr('hidden',true);this.scope.find('[data-role="messageListFilters"]').removeAttr('hidden');this._resetListActions();this.scope.attr('data-ipsInfScroll',this._infScrollURL);this.scope.trigger('refresh.infScroll');},_selectMessage(id){this._messageList.find('[data-messageid]').removeClass('ipsData__item--active').end().find('[data-messageid="'+id+'"]').addClass('ipsData__item--active');this._currentMessageID=id;},_selectMessages(IDs){var self=this;this._messageList.find('[data-messageid]').removeClass('ipsData__item--active');_.each(IDs,function(id){self._messageList.find('[data-messageid="'+id+'"]').addClass('ipsData__item--active');});this._currentMessageID=IDs;},_getFolder(newFolder){this.trigger('loadFolder.messages',{folder:newFolder,filter:this._currentOptions.filter,sortBy:this._currentOptions.sortBy});this._currentFolder=newFolder;},_hideEmpty(){this.scope.find('[data-role="emptyMsg"]').hide();},_resetListActions(){try{ips.ui.pageAction.getObj(this.scope.find('[data-ipsPageAction]')).reset();ips.ui.autoCheck.getObj(this.scope.find('[data-ipsAutoCheck]')).refresh();}catch(err){}},selectedMenuItem(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.messages.folderDialog',{_events:{add:'addFolder',rename:'renameFolder'},initialize:function(){this.on('submit','form',this.submitName);},submitName:function(e){e.preventDefault();e.stopPropagation();var type=this.scope.attr('data-type');var field=this.scope.find('[data-role="folderName"]');var val=field.val();var folderID=field.attr('data-folderID');this.trigger(this._events[type]+'.messages',{folder:folderID,name:val});this.trigger('closeDialog');}});}(jQuery,_));;
|
||||
@@ -0,0 +1,25 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.modcp.report',{initialize:function(){this.on(document,'submitDialog','[data-role="warnUserDialog"]',this.dialogSubmitted);this.on('menuItemSelected',this.menuItemSelected);},menuItemSelected:function(e,data){data.originalEvent.preventDefault();var link=data.menuElem.find('[data-ipsMenuValue="'+data.selectedItemID+'"] a');var langString=(data.selectedItemID=='spamFlagButton')?ips.getString('confirmFlagAsSpammer'):ips.getString('confirmUnFlagAsSpammer');var descString=(data.selectedItemID=='spamUnFlagButton')?ips.getString('confirmUnFlagAsSpammerDesc'):'';var self=this;if(data.selectedItemID=='spamFlagButton'||data.selectedItemID=='spamUnFlagButton'){ips.ui.alert.show({type:'confirm',message:langString,subText:descString,callbacks:{ok:function(){self._startLoading();ips.getAjax()(link.attr('href'),{bypassRedirect:true}).done(function(response){self._refreshPanel();});},}});}},dialogSubmitted:function(e,data){this._startLoading();this._refreshPanel();},_startLoading:function(){this.scope.find('[data-role="authorPanel"]').css('height',this.scope.find('[data-role="authorPanel"]').height()+'px').addClass('ipsLoading').find('*').hide();},_refreshPanel:function(){var self=this;ips.getAjax()(window.location,{bypassRedirect:true}).done(function(response){self.scope.find('[data-role="authorPanel"]').css('height','auto').removeClass('ipsLoading').html(response);});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.modcp.approveQueue',{initialize:function(){this.on('click','[data-action="approvalQueueAction"]',this.doConfirm);},doConfirm:function(e,data){e.preventDefault();var self=this;var action=$(e.currentTarget).attr('data-type');if(action!=='delete'){self.doAction(e,data);return;}
|
||||
var alert={type:'confirm',icon:'warn',message:ips.getString('generic_confirm'),subText:'',callbacks:{ok:function(){self.doAction(e,data);},no:function(){return;}}};ips.ui.alert.show(alert);},doAction:function(e,data){e.preventDefault();var element=$(e.target).closest('a');ips.getAjax()($(element).attr('href')+'&_fromApproval=1',{bypassRedirect:true}).done(function(){ips.getAjax()(ips.getSetting('baseURL')+'?app=core&module=modcp&controller=modcp&tab=approval&action=getCount').done(function(response){$('#elModCPApprovalCount').html(response.count);$(element).parents('.ipsApprovalQueueItem, .ipsData__item').slideUp("slow").remove();}).fail(function(failresponse){window.location=ips.getSetting('baseURL')+'?app=core&module=modcp&controller=modcp&tab=approval';});}).fail(function(){window.location=$(e.currentTarget).attr('href');});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.modcp.reportToggle',{initialize:function(){this.on('menuItemSelected',this.reportToggled);},reportToggled:function(e,data){var item=data.menuElem.find('[data-ipsmenuvalue="'+data.selectedItemID+'"]');var icon=item.find('[data-role="ipsMenu_selectedIcon"]').attr('class');var status=item.find('[data-role="ipsMenu_selectedText"]').text();this.scope.find('[data-role="reportIcon"]').get(0).className=icon;this.scope.find('[data-role="reportStatus"]').text(status);ips.ui.flashMsg.show(ips.getString('reportStatusChanged'));}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.modcp.warnForm',{pointsEdited:false,expirationEdited:false,editorSetTo:'',initialize:function(){var self=this;this.on('change','[name="warn_reason"]',this.changeReason);this.on('change','[name="warn_points"]',this.changePoints);this.on('change','[name="warn_remove"],[name="warn_remove_time"]',function(e){self.expirationEdited=true;});this.on('editorWidgetInitialized',this.editorInitialized);},editorInitialized:function(e,data){if(data.id=='warn_member_note'){$('[name="warn_reason"]').change();const editor=ips.ui.editorv5.getObj($('textarea[name="warn_member_note"]').closest('[data-ipsEditorv5]'));this.editorSetTo=editor.getInstance().getHTML();}},changeReason:function(e){var scope=this.scope;var self=this;ips.getAjax()(ips.getSetting('baseURL')+'index.php?app=core&module=system&controller=warnings&do=reasonAjax&id='+$(e.target).val()).done(function(response){if(self.pointsEdited==false||response.points_override==0){var pointsNow=scope.find('[name="warn_points"]').val();scope.find('[name="warn_points"]').val(response.points).prop('disabled',response.points_override==0);if(pointsNow!=response.points){scope.find('[name="warn_points"]').change();}
|
||||
self.pointsEdited=false;}
|
||||
var removePointsUnlimited=scope.find('[name="warn_remove_unlimited"]');if(response.remove.unlimited){if(self.expirationEdited==false||response.remove_override==0){if(removePointsUnlimited.prop('checked')==false){if(removePointsUnlimited.prop('disabled')==true){removePointsUnlimited.prop('disabled',false).click().prop('disabled',true);}else{removePointsUnlimited.click();}}}}else if(self.expirationEdited==false||response.remove_override==0){removePointsUnlimited.prop('checked',false);scope.find('[name="warn_remove"]').val(response.remove.date).prop('disabled',response.remove_override==0);scope.find('[name="warn_remove_time"]').val(response.remove.time).prop('disabled',response.remove_override==0);}
|
||||
removePointsUnlimited.prop('disabled',response.remove_override==0);var cheevPoints=scope.find('[name="warn_cheeve_point_reduction"]');if(response.cheev_override==0){cheevPoints.prop('disabled',true);}else{cheevPoints.prop('disabled',false);}
|
||||
cheevPoints.val(response.cheev_point_reduction);var editor=ips.ui.editorv5.getObj($('textarea[name="warn_member_note"]').closest('[data-ipsEditorv5]'));if(response.notes){var currentContents=editor.getInstance().getHTML();var previousContents=self.editorSetTo;editor.unminimize(function(){if(currentContents==previousContents){editor.reset();}else{editor.insertHtml('<p></p>');}
|
||||
editor.insertHtml(response.notes);self.editorSetTo=editor.getInstance().getHTML();});}});},changePoints:function(e){this.pointsEdited=true;var scope=this.scope;ips.getAjax()(ips.getSetting('baseURL')+'index.php?app=core&module=system&controller=warnings&do=actionAjax&points='+$(e.target).val()+'&member='+scope.attr('data-member')).done(function(response){var types=['mq','rpa','suspend'];scope.find('ul#elWarningPenalties').remove();if(parseInt(response.override)){scope.find('li#form_warn_punishment .ipsFieldRow__content').show();}
|
||||
else{scope.find('li#form_warn_punishment .ipsFieldRow__content').hide();var enforcedPenalties=[];for(var i=0;i<3;i++){if(parseInt(response.actions[types[i]].unlimited)){enforcedPenalties.push(ips.getString('warningPunishmentIndefinitely',{type:ips.getString('warningPunishment_'+types[i])}));}
|
||||
else if(response.actions[types[i]].date!=""){var date=new Date(response.actions[types[i]].date+' '+response.actions[types[i]].time);enforcedPenalties.push(ips.getString('warningPunishmentDate',{type:ips.getString('warningPunishment_'+types[i]),date:ips.utils.time.localeDateString(date,{dateStyle:"long",timeStyle:"short"})}));}
|
||||
scope.find('[name="warn_punishment['+types[i]+']"]').prop('checked',false).change();}
|
||||
scope.find('li#form_warn_punishment').append(ips.templates.render('system.warningpenalty.nomodify',{penalties:enforcedPenalties}));}
|
||||
for(var i=0;i<3;i++){if(parseInt(response.override)){scope.find('[name="warn_punishment['+types[i]+']"]').prop('checked',(response.actions[types[i]].date||response.actions[types[i]].unlimited)).change();}
|
||||
scope.find('[name="warn_'+types[i]+'"]').val(response.actions[types[i]].date).prop('disabled',!parseInt(response.override));scope.find('[name="warn_'+types[i]+'_time"]').val(response.actions[types[i]].time).prop('disabled',!parseInt(response.override));scope.find('[name="warn_'+types[i]+'_unlimited"]').prop('checked',response.actions[types[i]].unlimited).prop('disabled',!parseInt(response.override));}});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.modcp.warnPopup',{initialize:function(){this.on('click','[data-action="revoke"]',this.revokeWarning);},revokeWarning:function(e){e.preventDefault();var url=$(e.currentTarget).attr('href');ips.ui.alert.show({type:'verify',icon:'question',message:ips.getString('revokeWarning'),buttons:{yes:ips.getString('reverseAndDelete'),no:ips.getString('justDelete'),cancel:ips.getString('cancel')},callbacks:{yes:function(){window.location=url+'&undo=1';},no:function(){window.location=url+'&undo=0';}}});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.modcp.reportList',{initialize:function(){this.on('menuItemSelected','[data-action="changeStatus"]',this.changeReportStatus);this.on('menuItemSelected','[data-role="filterButton"]',this.filterList);},changeReportStatus:function(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
var row=$(e.currentTarget).closest('.ipsData__item');row.removeClass('ipsData__item--warning');switch(data.selectedItemID){case'1':break;case'2':row.addClass('ipsData__item--warning');break;}},filterList:function(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
var filter=data.selectedItemID||'';var container=$(this.scope).find('[data-baseUrl]');ips.getAjax()($(container).data('baseUrl'),{data:{filter:filter}}).done(function(response){$(container).replaceWith(response);$(document).trigger('contentChange',[container]);});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.modcp.announcementForm',{_lastValue:'',_textField:null,_timer:0,initialize:function(){this._textField=$('#elInput_announce_url');this.on('blur','#elInput_announce_url',this.fieldKeyUp);},fieldKeyUp:function(){clearTimeout(this._timer);this._timer=setTimeout(_.bind(this._checkPermissions,this),700);},_checkPermissions:function(){var value=this._textField.val().trim();if(value.length<3){return;}
|
||||
ips.getAjax()('?app=core&module=system&controller=announcement&do=permissionCheck',{dataType:'json',data:{url:value}}).done(function(response){if(_.isUndefined(response.html)&&$('#elAnnouncementGroupWarning').length){$('#elAnnouncementGroupWarning').remove();}
|
||||
if($('#elAnnouncementGroupWarning').length){$('#elAnnouncementGroupWarning').replaceWith(response.html);}
|
||||
else
|
||||
{$(response.html).insertAfter('#elInput_announce_url');}}).fail(function(err){});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,15 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.profile.followers',{_feedID:null,initialize:function(){this.on(document,'followingItem',this.followUser);this.on('menuItemSelected',"[data-role='followOption']",this.toggleFollowOption);this.setup();},setup:function(){this._feedID=this.scope.attr('data-feedID');},followUser:function(e,data){if(data.feedID!=this._feedID){return;}
|
||||
var self=this;var memberID=data.feedID.replace('member-','');ips.getAjax()(ips.getSetting('baseURL')+'index.php?app=core&module=members&controller=profile&do=followers&id='+parseInt(memberID)).done(function(response){self.scope.html(response);}).fail(function(){Debug.log('Error fetching follower HTML');});},toggleFollowOption:function(e,data){data.originalEvent.preventDefault();var url=data.menuElem.find('[data-ipsMenuValue="'+data.selectedItemID+'"] a').attr('href');ips.getAjax()(url).done(function(response){ips.ui.flashMsg.show(ips.getString('followerSettingToggled'));}).fail(function(){window.location=url;});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.profile.toggleBlock',{initialize:function(){this.on('click','[data-action="disable"]',this.toggleBlock);this.on('click','[data-action="enable"]',this.toggleBlock);},toggleBlock:function(e){e.preventDefault();var self=this;this.scope.css({opacity:"0.6"});ips.getAjax()($(e.currentTarget).attr('href'),{showLoading:true}).done(function(response){self.scope.html(response);$(document).trigger('contentChange',[self.scope]);}).fail(function(){window.location=$(e.currentTarget).attr('href');}).always(function(){self.scope.css({opacity:"1"});});}});}(jQuery,_));;
|
||||
;(function($,_){"use strict";ips.controller.register('core.front.profile.main',{contentArea:null,lastType:null,initialize(){this.on('click','[data-action="goToProfile"]',this.changeType);this.on('click','[data-action="browseContent"]',this.changeType);this.on('click','[data-action="repLog"]',this.changeType);this.on('click','[data-action="badgeLog"]',this.changeType);this.on('click','[data-action="solutionLog"]',this.changeType);this.on(window,'historychange',this.stateChange);this.setup();},_getHistoryStateFromPage(){const elem=this.scope.get(0)
|
||||
const selectorMap={browseContent:'#elUserContent',repLog:'#elUserReputation',badgeLog:'.cProfileBadgeGrid'}
|
||||
for(const state in selectorMap){if(elem.querySelector(selectorMap[state])){return state}}
|
||||
return"goToProfile"},setup(){this.contentArea=this.scope.find('[data-role="profileContent"]');this.contentHeader=this.scope.find('[data-role="profileHeader"]');if(!ips.utils.history.getState('profile')?.section){ips.utils.history.replaceState({section:this._getHistoryStateFromPage()},'profile',window.location.href);}},stateChange(e){if(e.detail?.type==='load'||e.detail?.type==='replace'){return}
|
||||
const url=window.location.href
|
||||
const data=ips.utils.history.getState('profile')
|
||||
if(this._getHistoryStateFromPage()===data.section&&data.section){return}
|
||||
this.lastType=data.section;e?.stopPropagation?.()
|
||||
e?.stopImmediatePropagation?.()
|
||||
switch(data?.section){case'goToProfile':this._showProfile(url);break;case'browseContent':this._showContent(url);break;case'repLog':case'solutionLog':case'badgeLog':this._showGenericLog(url);break;}},changeType(e){e.preventDefault();let target=$(e.currentTarget);if(!target.is('a')){target=target.find('a');}
|
||||
ips.utils.history.pushState({section:$(e.currentTarget).attr('data-action')},'profile',target.attr('href'));document.title=target.attr('title')},_showGenericLog(url){this._changeContent(true,url).then(()=>{});},_showContent(url){this._changeContent(true,url).then(()=>{});},_showProfile(url){this._changeContent(false,url).then(()=>{});},async _changeContent(small,url){ips.controller.cleanContentsOf(this.contentArea);this.contentArea.css({height:String(this.contentArea.outerHeight())});this.contentArea.html($('<div/>').addClass('ipsLoading').css({height:'300px'}));this.contentHeader.find('#elProfileHeader').toggleClass('ipsCoverPhoto--minimal',small);url+=(url.includes('?')?'&':'?')+'entireSection=1';try{const response=await ips.fetch(url)
|
||||
this.contentArea.hide().html(response).css({height:'auto'});ips.utils.anim.go('fadeIn fast',this.contentArea);$(document).trigger('contentChange',[this.contentArea]);}catch(e){window.location=url;}}});}(jQuery,_));;
|
||||
@@ -0,0 +1,2 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.system.promote',{initialize:function(){this.on(window,'resize',this.resizeContentArea);this.on('click','[data-action="selectImage"]',this.selectImage);this.setup();},setup:function(){this.resizeContentArea();},expandTextarea:function(e){e.preventDefault();$('#eOriginalText').removeClass('cPromote_text_fade').addClass('cPromote_text_expanded');this.scope.find('[data-action="expandTextarea"]').hide();},selectImage:function(e){e.preventDefault();var image=$(e.currentTarget);var check=image.find('input[type="checkbox"]');var select=image.find('.ipsAttach_selection');var wrap=image.closest('.cPromote_attachImage');select.toggleClass('ipsAttach_selectionOn',!check.is(':checked'));wrap.toggleClass('cPromote_attachImageSelected',!check.is(':checked'));check.prop('checked',!check.is(':checked')).trigger('change');},resizeContentArea:function(){if(!this.scope.closest('.ipsDialog').length){return;}
|
||||
var dialogHeight=this.scope.closest('.ipsDialog_content').outerHeight();var controlsHeight=this.scope.find('.cPromoteSubmit').outerHeight();this.scope.find('[data-role="promoteDialogBody"]').css({paddingBottom:controlsHeight+30+'px',height:(dialogHeight-80)+'px',overflow:'auto'});}});}(jQuery,_));;
|
||||
@@ -0,0 +1,59 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.search.filters',{initialize:function(){this.on('click','[data-action="showFilters"]',this.showFilters);this.on('click','[data-action="searchByTags"]',this.toggleSearchFields);this.on('click','[data-action="searchByAuthors"]',this.toggleSearchFields);this.on('click','[data-action="cancelFilters"]',this.cancelFilters);this.on('change','input[name="type"]',this.toggleFilterByCounts);this.on('itemClicked.sideMenu','[data-filterType="dateCreated"]',this.filterDate);this.on('itemClicked.sideMenu','[data-filterType="dateUpdated"]',this.filterDate);this.on('itemClicked.sideMenu','[data-filterType="joinedDate"]',this.filterDate);this.on('change','[name^="search_min_"]',this.changeValue);this.on('tokenDeleted tokenAdded',this.tokenChanged);this.on('resultsLoading.search',this.resultsLoading);this.on('resultsDone.search',this.resultsDone);this.on('cancelResults.search',this.cancelResults);this.on('submit',this.submitForm);this.on('tabShown',this.tabShown);this.on('nodeInitialValues',this.setup);if(!this.scope.find('[data-role="hints"] ul li').length){this.scope.find('[data-role="hints"]').hide();}
|
||||
this.setup();},setup:function(){var data=this.scope.find('form').serializeArray();this.trigger('initialData.search',{data:data});this.toggleFilterByCounts();},toggleFilterByCounts:function(){var type=this.scope.find('input[name="type"]:checked').val();if(!type){$('#elSearch_filter_by_number').hide();}else{$('#elSearch_filter_by_number').show();}},cancelResults:function(){this.showFilters();this.scope.find('[data-role="hints"]').remove();this.scope.find('#elMainSearchInput').val('').focus();this.scope.find('[data-action="cancelFilters"], [data-action="searchAgain"]').hide();},changeValue:function(e){var field=$(e.currentTarget);var name=field.attr('name');var bubble=this.scope.find('[data-role="'+name+'_link"] [data-role="fieldCount"]');if(field.val()==0){bubble.text('0').addClass('ipsHide');}else{bubble.text(field.val()).removeClass('ipsHide');}},tokenChanged:function(e,data){var tags=this.scope.find('input[name="tags"]');var term=this.scope.find('input[name="q"]');var andOr=this.scope.find('[data-role="searchTermsOrTags"]');if(tags.val()&&term.val()&&!andOr.is(':visible')){andOr.slideDown();}else if((!tags.val()||!term.val())&&andOr.is(':visible')){andOr.slideUp();}},tabShown:function(e,data){if(data.tabID=='elTab_searchMembers'){this.scope.find('input[name="type"][value="core_members"]').prop('checked',true).change().end().find('[data-action="updateResults"]').text(ips.getString('searchMembers'));}else{this.scope.find('[data-role="searchApp"] .ipsSideMenu_itemActive input[type="radio"]').prop('checked',true).change().end().find('[data-action="updateResults"]').text(ips.getString("searchContent"));}},cancelFilters:function(e){var self=this;this.scope.find('[data-role="searchFilters"]').slideUp('fast',function(){self.scope.find('[data-action="showFilters"]').slideDown();});},showFilters:function(e){if(e){e.preventDefault();}
|
||||
this.scope.find('[data-action="showFilters"]').hide();this.scope.find('[data-role="searchFilters"]').slideDown();$(document).trigger('contentChange',[this.scope]);},resultsDone:function(e,data){var searchButton=this.scope.find('[data-action="updateResults"]');searchButton.prop('disabled',false).text(searchButton.attr('data-originalText'));this.scope.find('[data-role="searchFilters"]').hide();this.scope.find('[data-action="showFilters"]').removeClass('ipsHide').show();this.scope.find('[data-action="searchAgain"]').removeClass('ipsHide ipsButton--disabled').show();if(!_.isUndefined(data.hints)){this.scope.find('[data-role="hints"]').html(data.hints).show();}
|
||||
if(!this.scope.find('[data-role="hints"] ul li').length){this.scope.find('[data-role="hints"]').hide();}
|
||||
$(document).trigger('contentChange',[this.scope]);},resultsLoading:function(e,data){var searchButton=this.scope.find('[data-action="updateResults"]');this.scope.find('[data-action="searchAgain"]').addClass('ipsButton--disabled');searchButton.prop('disabled',true).attr('data-originalText',searchButton.text()).text(ips.getString("searchFetchingResults"));},toggleSearchFields:function(e){e.preventDefault();var link=$(e.currentTarget);var opens=link.attr('data-opens').split(',');var i;for(i=0;i<opens.length;i++){this.scope.find('[data-role="'+opens[i]+'"]').slideDown(function(){if(!link.closest('ul').find('li').length){link.closest('ul').remove();}
|
||||
$(this).find('input[type="text"]').focus();});}
|
||||
link.closest('li').hide();},filterDate:function(e,data){var elem=$(e.currentTarget);if(data.selectedItemID=='custom'){elem.find('[data-role="dateForm"]').slideDown();}else{elem.find('[data-role="dateForm"]').slideUp();}},submitForm:function(e){e.preventDefault();this.scope.find('#elMainSearchInput').blur();var self=this;var app=this.scope.find('[data-role="searchApp"] .ipsSideMenu_itemActive');var appKey=app.attr('data-ipsMenuValue');var appTitle=app.find('[data-role="searchAppTitle"]').text();var isMemberSearch=$('#elTab_searchMembers').hasClass('ipsTabs__tab--active');var searchTerm=this.scope.find('#elMainSearchInput').val().trim();var tagExists=(this.scope.find('#elInput_tags').length&&this.scope.find('#elTab_searchContent').hasClass('ipsTabs__tab--active'));if(tagExists){var tagField=ips.ui.autocomplete.getObj(this.scope.find('#elInput_tags'));var tokens=tagField.getTokens();}
|
||||
if(!isMemberSearch){if(!searchTerm&&!tagExists||!searchTerm&&tagExists&&tokens.length===0){ips.ui.alert.show({type:'alert',message:(!searchTerm&&!tagExists)?ips.getString('searchRequiresTerm'):ips.getString('searchRequiresTermTags'),icon:'info',callbacks:{ok:function(){setTimeout(function(){self.scope.find('#elMainSearchInput').focus();},300);}}});return;}}
|
||||
this.trigger('formSubmitted.search',{data:this.scope.find('form').serializeArray(),appKey:appKey,tabType:this.scope.closest('data-tabType').attr('data-tabType'),appTitle:appTitle});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.search.main',{_content:null,_formData:{},_loadingDiv:null,_initialURL:'',_initialData:{},initialize(){this.on('initialData.search',this.initialData);this.on('formSubmitted.search',this.submittedSearch);this.on('paginationClicked paginationJump',this.paginationClicked);this.on(window,'historychange:search',this.stateChange);this.setup();},setup(){this._content=this.scope.find('#elSearch_main');this._baseURL=this.scope.attr('data-baseURL');if(this._baseURL.match(/\?/)){this._baseURL+='&';}else{this._baseURL+='?';}
|
||||
if(this._baseURL.slice(-1)==='&'){this._baseURL=this._baseURL.slice(0,-1)}
|
||||
this._initialURL=window.location.href;},initialData(e,data){this._formData=this._getFormData(data.data);this._initialData=_.clone(this._formData);},stateChange(){const state={data:ips.utils.history.getState('search'),url:window.location.href};if(this._initialURL===state.url&&!Object.keys(state.data).length){this._cancelSearch();}else if(this._initialURL===state.url&&state.data.url===undefined){this._loadResults(this._getUrlFromData(this._initialData));}else{this._loadResults(state.data.url);}},submittedSearch(e,data){this._formData=this._getFormData(data.data);const url=this._getUrlFromData(this._formData);try{if(IpsDataLayerContext&&!window.IpsDataLayerContext){let unique='';let self=this;Object.keys(this._formData).sort().forEach(function(index){let value=self._formData[index];if(value.join){value=value.join();}
|
||||
if(value.toString){value=value.toString();}
|
||||
if(value&&(typeof value==='string')){unique+=value;}});$('body').trigger('ipsDataLayer',{_key:'search',_properties:{query:this._formData.q||null},_uniquekeys:{'key':unique}});}}catch(e){}
|
||||
ips.utils.history.pushState({controller:'core.front.search.main',url:url,filterData:this._formData},'search',url);document.title=this._getBrowserTitle();},_cancelSearch(){var results=this.scope.find('[data-role="filterContent"]');var blurb=this.scope.find('[data-role="searchBlurb"]');ips.controller.cleanContentsOf(results);this.triggerOn('core.front.search.filters','cancelResults.search');results.html('');blurb.html('').hide();},_getUrlFromData(data){var params=[];_.each(['q','type','page','quick'],function(val){if(!_.isUndefined(data[val])&&data[val]!==''){params.push(val+'='+encodeURIComponent(data[val]));}});if(data['type']==='core_members'){if(!_.isUndefined(data['joinedDate'])){if(data['joinedDate']!=='custom'){params.push('joinedDate='+data['joinedDate']);}else{if(!_.isUndefined(data['joinedDateCustom[start]'])){params.push('start_after='+encodeURIComponent(new Date(data['joinedDateCustom[start]']).getTime()/1000));}
|
||||
if(!_.isUndefined(data['joinedDateCustom[end]'])){params.push('start_before='+encodeURIComponent(new Date(data['joinedDateCustom[end]']).getTime()/1000));}}}
|
||||
if(!_.isUndefined(data['group'])){if(!_.isArray(data['group'])){data['group']=[data['group']];}
|
||||
for(var i=0;i<data['group'].length;i++){params.push('group['+data['group'][i]+']=1');}}
|
||||
_.each(data,function(val,key){if(!key.startsWith('core_pfield')||val===0||val===''){return;}
|
||||
params.push(key+'='+val);});}else{_.each(['item','author','search_min_replies','search_min_views','search_min_comments','search_min_reviews'],function(val){if(!_.isUndefined(data[val])&&data[val]!==''&&parseInt(data[val])!==0){if(val==='author'){params.push(val+'='+encodeURIComponent(data[val]));return;}
|
||||
params.push(val+'='+data[val]);}});if(!_.isUndefined(data['tags'])){params.push('tags='+data['tags'].replace(/\n/g,','));}
|
||||
if(!_.isUndefined(data['nodes'])){params.push('nodes='+data['nodes'].replace(/\n/g,','));}
|
||||
else if(!_.isUndefined(data[data['type']+'_node'])){params.push('nodes='+data[data['type']+'_node']);}
|
||||
if(!_.isUndefined(data['club[]'])){if(_.isArray(data['club[]'])){params.push('club='+data['club[]'].filter(function(v){return v!=='__EMPTY';}));}else if(data['club[]'].replace('__EMPTY','')){params.push('club='+data['club[]'].replace('__EMPTY',''));}}
|
||||
if(!_.isUndefined(data['eitherTermsOrTags'])){if(!_.isUndefined(data['q'])&&data['q'].trim()!==''&&!_.isUndefined(data['tags'])&&data['tags'].trim()!==''){params.push('eitherTermsOrTags='+data['eitherTermsOrTags']);}}
|
||||
if(!_.isUndefined(data['search_and_or'])&&(data['search_and_or']==='or'||data['search_and_or']==='and')){params.push('search_and_or='+data['search_and_or']);}
|
||||
if(!_.isUndefined(data['search_in'])&&data['search_in']==='titles'){params.push('search_in='+data['search_in']);}
|
||||
var datesSet={startDate:false,updatedDate:false};_.each([['startDate','start_after'],['updatedDate','updated_after']],function(val){if(!_.isUndefined(data[val[0]])){if(data[val[0]]!=='any'&&data[val[0]]!=='custom'){params.push(val[1]+'='+data[val[0]]);datesSet[val[0]]=true;}else if(data[val[0]]==='any'){datesSet[val[0]]=true;}}});_.each([['startDateCustom[start]','start_after'],['startDateCustom[end]','start_before'],['updatedDateCustom[start]','updated_after'],['updatedDateCustom[end]','updated_before']],function(val){var thisType=(val[0].indexOf('startDate')!==-1)?'startDate':'updatedDate';if(!_.isUndefined(data[val[0]])&&!datesSet[thisType]){if((val[0]==='startDateCustom[start]'||val[0]==='startDateCustom[end]')&&!_.isUndefined(data['startDate'])&&data['startDate']==='any'){}else if((val[0]==='updatedDateCustom[start]'||val[0]==='updatedDateCustom[end]')&&!_.isUndefined(data['updatedDate'])&&data['updatedDate']==='any'){}else{params.push(val[1]+'='+encodeURIComponent(ips.utils.time.getDateFromInput($('[name="'+val[0]+'"]')).getTime()/1000));}}});}
|
||||
if(!_.isUndefined(data['sortby'])){params.push('sortby='+data['sortby']);}
|
||||
if(!_.isUndefined(data['sortdirection'])){params.push('sortdirection='+data['sortdirection']);}
|
||||
return this._baseURL+'&'+params.join('&');},async _loadResults(url){this.triggerOn('core.front.search.filters','resultsLoading.search');this._setContentLoading(true);try{const response=await ips.fetch(url)
|
||||
if(typeof response!=='object'){window.location=url;}
|
||||
if(response.css){this._addCSS(response.css);}
|
||||
this.triggerOn('core.front.search.filters','resultsDone.search',{contents:response.filters,hints:response.hints});this._content.html(response.content);$(document).trigger('contentChange',[this._content]);this.scope.find('[data-role="searchBlurb"]').show().html(response.title);this.scope.find('[data-action="cancelFilters"]').show();const newItems=this.scope.find('[data-role="resultsArea"] [data-role="activityItem"]').css({opacity:"0"});const delay=100;newItems.slideDown(function(){newItems.each(function(index){var d=(index*delay);$(this).delay((d>1200)?1200:d).animate({opacity:"1"});});});}catch(e){window.location=url;}
|
||||
this._setContentLoading(false);},paginationClicked(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
this._formData['page']=data.pageNo;const url=this._getUrlFromData(this._formData);ips.utils.history.pushState({controller:'core.front.search.main',url},'search',url);const elemPosition=ips.utils.position.getElemPosition(this.scope);$('html, body').animate({scrollTop:elemPosition.absPos.top+'px'});},_getFormData(data){if(!_.isObject(data)){return;}
|
||||
var returnData={};var skipData=['page','csrfKey'];for(var i=0;i<data.length;i++){if(_.indexOf(skipData,data[i].name)===-1&&data[i].value!==''){if(!_.isUndefined(returnData[data[i].name])&&!_.isArray(returnData[data[i].name])){var tmp=returnData[data[i].name];returnData[data[i].name]=[];returnData[data[i].name].push(tmp);}
|
||||
if(!_.isUndefined(returnData[data[i].name])){returnData[data[i].name].push(data[i].value);}else{returnData[data[i].name]=data[i].value;}
|
||||
if(data[i].name!=='club[]'){if($('#'+data[i].name+'-unlimitedCheck').length){if(!$('#'+data[i].name+'-unlimitedCheck:checked').length){returnData[data[i].name]=$('input[type=number][name='+data[i].name+']').val();}
|
||||
else
|
||||
{delete(returnData[data[i].name]);}}}}}
|
||||
if(!_.isUndefined(data['type'])&&data['type']!=='core_members'){if(!_.isUndefined(data['sortby'])){delete(data['sortby']);}
|
||||
if(!_.isUndefined(data['sortdirection'])){delete(data['sortdirection']);}}
|
||||
return returnData;},_getBrowserTitle(){var title=ips.getString('searchTitle');var currentType=this.scope.find('input[type="radio"][name="type"]:checked');var q=this._formData['q'];if(_.isUndefined(q)){q='';}
|
||||
if(q!==''&&!currentType.length){title=ips.getString('searchTitleTerm',{term:q});}else if(q!==''&¤tType.length){title=ips.getString('searchTitleTermType',{term:q,type:currentType.next('[data-role="searchAppTitle"]').text()});}else if(q===''&&this._currentType!==''){title=ips.getString('searchTitleType',{type:currentType.next('[data-role="searchAppTitle"]').text()});}
|
||||
return title;},_addCSS(css){var head=$('head');if(css&&css.length){for(var i=0;i<css.length;i++){head.append($('<link/>').attr('href',css[i]).attr('type','text/css').attr('rel','stylesheet'));}}},_setContentLoading(state){var results=this.scope.find('[data-role="resultsContents"]');if(!results.length){if(this._loadingDiv){this._loadingDiv.hide();}
|
||||
return;}
|
||||
var dims=ips.utils.position.getElemDims(results);var position=ips.utils.position.getElemPosition(results);if(!this._loadingDiv){this._loadingDiv=$('<div/>').append($('<div/>').css({height:_.min([200,results.outerHeight()])+'px'}).addClass('ipsLoading'));ips.getContainer().append(this._loadingDiv);}
|
||||
this._loadingDiv.show().css({left:position.viewportOffset.left+'px',top:position.viewportOffset.top+$(document).scrollTop()+'px',width:dims.width+'px',height:dims.height+'px',position:'absolute',zIndex:ips.ui.zIndex()})
|
||||
if(state){results.animate({opacity:"0.6"}).css({height:results.height()+'px'});}else{results.css({height:'auto',opacity:"1"});this._loadingDiv.hide();}}});}(jQuery,_));;
|
||||
;(function($,_){"use strict";ips.controller.register('core.front.search.results',{_resultLength:300,_terms:[],initialize:function(){this.setup();this.on(document,'contentChange',_.bind(this.contentChange,this));},setup(){const self=this;try{this._terms=JSON.parse(this.scope.attr('data-term'));}catch(err){Debug.log("Error parsing search terms");return;}
|
||||
this.scope.find('[data-role="activityItem"]').each(function(){self._processResult($(this));});},contentChange:function(){var self=this;this.scope.find('[data-role="activityItem"]').each(function(){self._processResult($(this));});},_processResult:function(result){if(result.attr('data-processed')){return;}
|
||||
var findWords=result.find('[data-findTerm]');if(findWords.length){this._findWords(findWords);}
|
||||
this._highlight(result);result.attr('data-processed',true);},_findWords:function(result){var text=result.text().trim();var firstMatch=text.length;var startPoint=0;var foundMatches=false;for(var i=0;i<this._terms.length;i++){var indexOf=text.search(new RegExp(ips.utils.escapeRegexp(this._terms[i]),'i'));if(indexOf!==-1){foundMatches=true;if(indexOf<firstMatch){firstMatch=indexOf;}}}
|
||||
var punctuationMarks=['.',',','?','!'];var searchBack=(firstMatch-(this._resultLength/2)<0)?0:firstMatch-(this._resultLength/2);if(!foundMatches){startPoint=0;}else{for(var j=firstMatch;j>searchBack;j--){if(punctuationMarks.indexOf(text[j])!==-1){startPoint=j+1;break;}}}
|
||||
var finalSnippet=text.substring(startPoint,startPoint+300).trim();if(startPoint>0&&foundMatches){finalSnippet='...'+finalSnippet;}
|
||||
if(startPoint+this._resultLength<text.length||(!foundMatches&&text.length>this._resultLength)){finalSnippet=finalSnippet+'...';}
|
||||
result.text(finalSnippet);},_highlight(result){const elements=result.find('[data-searchable]');for(const index in this._terms){const term=this._terms[index].toLowerCase();elements.each(function(){if(!$(this).text().toLowerCase().includes(term)){return;}
|
||||
$(this).contents().filter(function(){return this.nodeType===3}).each(function(){$(this).replaceWith(_.escape(XRegExp.replace($(this).text(),new RegExp("(\\b|\\s|^)("+term+"\\w*)(\\b|\\s|$)","ig"),'<mark class="ipsMatch'+(index+1)+'">'+"$2 "+'</mark>')).replace(new RegExp("<mark class="ipsMatch"+(index+1)+"">",'ig')," <mark class='ipsMatch"+(index+1)+"'>").replace(new RegExp("</mark>",'ig'),"</mark>"));});});}}});}(jQuery,_));;
|
||||
@@ -0,0 +1,98 @@
|
||||
ips.templates.set('core.streams.teaser',`
|
||||
<li data-action='insertNewItems' class='ipsStream__loadMore' style='display: none'>
|
||||
<button>{{{words}}}</button>
|
||||
</li>
|
||||
`);ips.templates.set('core.streams.unreadBar',`
|
||||
<li data-role='unreadBar' class='ipsStreamItem_bar'><hr class='ipsHr'></li>
|
||||
`);ips.templates.set('core.streams.noMore',`
|
||||
<div class='ipsEmptyMessage i-padding_0' data-role="loadMoreContainer">
|
||||
{{#lang}}noMoreActivity{{/lang}}
|
||||
</div>
|
||||
`);ips.templates.set('core.streams.loadMore',`
|
||||
<a href='#' class='ipsButton ipsButton--inherit' data-action='loadMore'>{{#lang}}loadNewActivity{{/lang}}</a>
|
||||
`);;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.streams.form',{loaded:{},formSnapshot:false,reloaded:false,_loadedContainer:{},_loadedClubs:false,_formData:{},initialize:function(){this.on('streamStateUpdate.streamForm',this.streamStateUpdate);this.on('itemClicked.sideMenu','[data-filterType="type"]',this.selectedType);this.on('menuItemSelected','#elStreamReadStatus, #elStreamShowMe',this.checkFormUpdate);this.on('tokenAdded tokenDeleted',this.tokensChanged);this.on('menuItemSelected','#elStreamSortEdit',this.changeSort);this.on('click','[data-action="saveStream"], [data-action="newStream"]',this.submitForm);this.on('click','[data-role="streamContainer"]',this.openStreamContainer);this.on('click','[data-role="streamClubs"]',this.openStreamClubs);this.on('click','[data-action="dismissSave"]',this.dismissSave);this.on('keydown','input',this.inputKeydown);if(this.scope.attr('data-formType')=='createStream'){this.on('itemClicked.sideMenu','[data-filterType="date"]',this.selectedDate);this.on('itemClicked.sideMenu','[data-filterType="ownership"]',this.selectedOwnership);}else{this.on('menuItemSelected','#elStreamFollowStatus',this.selectedFollowStatus);this.on('menuItemSelected','#elStreamTimePeriod',this.selectedDate);this.on('menuItemSelected','#elStreamOwnership',this.selectedOwnership);}
|
||||
this.on('change','#elSelect_stream_club_filter',this.clubSelectionChanged);this.on('change','#stream_club_filter_unlimited',this.clubSelectionChanged);this.on('nodeItemSelected',this.toggleApplyFilterButton);this.on('nodeItemUnselected',this.toggleApplyFilterButton);this.on('click','[data-action="applyFilters"]',this.applyFilters);this.on('menuItemSelected','#elStreamSortEdit, #elStreamFollowStatus',this.selectedMenuItem);this.on('menuItemSelected','#elStreamTimePeriod, #elStreamOwnership, #elStreamShowMe',this.selectedMenuItem);this.on('menuItemSelected','#elStreamReadStatus',this.selectedReadStatus);this.on('menuClosed',this.menuClosed);this.setup();},setup:function(){this._serializeConfig={'stream_date_range[start]':this._serializeDate,'stream_date_range[end]':this._serializeDate};if(this.scope.attr('data-formType')!='createStream'){this._formData=ips.getSetting('stream_config');this._changeReadStatus(this._formData['stream_read']);this._updateFilterOverview();this.takeFormSnapshot();}
|
||||
this.trigger('initialFormData.stream',{data:this._formData});},inputKeydown:function(e){if(e.which==13){e.preventDefault();}},toggleApplyFilterButton:function(e){var button=$('.ipsMenu').filter(':visible').first().find('[data-action="applyFilters"]');if(this.hasFormChanged()){button.removeClass('ipsButton--disabled');}else{button.addClass('ipsButton--disabled');}},applyFilters:function(e){var button=$(e.currentTarget);button.closest('.ipsMenu').trigger('closeMenu');},streamStateUpdate:function(e,data){this._formData=data.filterData;this._updateFieldValues();if(!_.isUndefined(data.hideSaveBar)&&data.hideSaveBar){this.scope.find('[data-role="saveButtonContainer"]').slideUp();}else{this.scope.find('[data-role="saveButtonContainer"]').slideDown();}},_updateFilterOverview:function(){if(this.scope.attr('data-formType')=='createStream'){return;}
|
||||
var self=this;var values=this._formData;var _overview=function(type){return self.scope.find('[data-filter="'+type+'"] [data-role="filterOverview"]');};_.each(['stream_include_comments','stream_read','stream_sort','stream_solved'],function(val){var lang='streamFilter_'+val+'_'+values[val];_overview(val).html(ips.getString(lang));});if(!_.isUndefined(values['stream_tags'])&&values['stream_tags'].trim()!==''){var tags=_.compact(values['stream_tags'].split(/\n/));if(tags.length<=2){var tagLang=ips.getString('streamFilter_stream_tags_tags',{'tags':_.escape(tags.join(','))});}else{var tagLang=ips.pluralize(ips.getString('streamFilter_stream_tags_count'),tags.length);}
|
||||
_overview('stream_include_comments').append('; '+tagLang);}else{_overview('stream_include_comments').append('; '+ips.getString('streamFilter_stream_tags_noTags'));}
|
||||
if(values['stream_ownership']=='custom'&&(_.isUndefined(values['stream_custom_members'])||values['stream_custom_members']==null||values['stream_custom_members']=='')){values['stream_ownership']='all'}
|
||||
if(values['stream_ownership']!=='custom'){var ownershipLang='streamFilter_stream_ownership_'+values['stream_ownership'];_overview('stream_ownership').html(ips.getString(ownershipLang));}else if(!_.isUndefined(values['stream_custom_members'])&&values['stream_custom_members']!=null){var names=_.compact((_.isObject(values['stream_custom_members'])?values['stream_custom_members']:values['stream_custom_members'].split(/\n/)));var ownershipLang=ips.pluralize(ips.getString('streamFilter_stream_ownership_custom'),names.length);_overview('stream_ownership').text(ownershipLang);}
|
||||
if(values['stream_follow']=='all'){_overview('stream_follow').html(ips.getString('streamFilter_stream_follow_all'));}else{var value=_.keys(values['stream_followed_types']);var follows=[];for(var i=0;i<value.length;i++){follows.push(ips.getString('streamFilter_stream_follow_'+value[i]));}
|
||||
_overview('stream_follow').html(follows.join(', '));}
|
||||
if(values['stream_date_type']=='relative'&&(_.isUndefined(values['stream_date_relative_days'])||values['stream_date_relative_days']==null||values['stream_date_relative_days']=='')){values['stream_date_type']='all';}else if(values['stream_date_type']=='custom'&&((_.isUndefined(values['stream_date_range']['start'])||values['stream_date_range']['start']==null||values['stream_date_range']['start']=='')||(_.isUndefined(values['stream_date_range']['end'])||values['stream_date_range']['end']==null||values['stream_date_range']['end']==''))){values['stream_date_type']='all';}
|
||||
if(values['stream_date_type']=='all'||values['stream_date_type']=='last_visit'){_overview('stream_date_type').html(ips.getString('streamFilter_stream_date_type_'+values['stream_date_type']));}else if(values['stream_date_type']=='relative'){if(values['stream_date_relative_days']['unit']=='w'){var dateLang=ips.pluralize(ips.getString('streamFilter_stream_date_type_relative_weeks'),(values['stream_date_relative_days']['val']?values['stream_date_relative_days']['val']:values['stream_date_relative_days']));}
|
||||
else{var dateLang=ips.pluralize(ips.getString('streamFilter_stream_date_type_relative'),(values['stream_date_relative_days']['val']?values['stream_date_relative_days']['val']:values['stream_date_relative_days']));}
|
||||
_overview('stream_date_type').text(dateLang);}else{if(!_.isUndefined(values['__stream_owner'])||(isNaN(values['stream_date_range']['start'])&&values['stream_date_range']['start'].match('-'))){var start=ips.utils.time.localeDateString(ips.utils.time.removeTimezone(new Date(isNaN(values['stream_date_range']['start'])&&values['stream_date_range']['start'].match('-')?values['stream_date_range']['start']:values['stream_date_range']['start']*1000)));var end=ips.utils.time.localeDateString(ips.utils.time.removeTimezone(new Date(isNaN(values['stream_date_range']['end'])&&values['stream_date_range']['end'].match('-')?values['stream_date_range']['end']:values['stream_date_range']['end']*1000)));}else{var start=ips.utils.time.localeDateString(new Date(values['stream_date_range']['start']*1000));var end=ips.utils.time.localeDateString(new Date(values['stream_date_range']['end']*1000));}
|
||||
if(!_.isUndefined(values['stream_date_range']['start'])&&!_.isUndefined(values['stream_date_range']['end'])){var dateLang=ips.getString('streamFilter_stream_date_type_range',{start:start,end:end});}else if(!_.isUndefined(values['stream_date_range']['start'])){var dateLang=ips.getString('streamFilter_stream_date_type_start',{start:start});}else if(!_.isUndefined(values['stream_date_range']['start'])){var dateLang=ips.getString('streamFilter_stream_date_type_end',{end:end});}
|
||||
_overview('stream_date_type').text(dateLang);}
|
||||
if(!values['stream_classes']||values['stream_classes_type']==0){if(values['stream_club_select']=='none'){_overview('stream_classes').html(ips.getString('streamFilter_stream_classes_no_clubs'));}else if(values['stream_club_select']=='all'){_overview('stream_classes').html(ips.getString('streamFilter_stream_classes_all'));}else if(values['stream_club_filter']){_overview('stream_classes').text(ips.getString('loading'));this._loadClubs(function(){var elem=this.scope.find('#elSelect_stream_club_filter');var clubIds=values['stream_club_filter'].split(',');var clubNames=[];for(var i=0;i<clubIds.length;i++){var option=elem.find('option[value="'+clubIds[i]+'"]');if(option.length){clubNames.push(option.text().trim());}}
|
||||
_overview('stream_classes').text(clubNames.join(', '));}.bind(this));}}else{var classKeys=_.keys(values['stream_classes']);var classes=[];for(var i=0;i<classKeys.length;i++){var elem=this.scope.find('[data-class="'+classKeys[i].replace(/\\/g,'\\\\')+'"] > span');if(elem.length){classes.push(elem.text().trim());}}
|
||||
_overview('stream_classes').text(classes.join(', '));}},_updateFieldValues:function(){var self=this;var data=this._formData;if(data['stream_read']=='unread'){data['stream_include_comments']=0;}
|
||||
_.each(['stream_include_comments','stream_read','stream_sort','stream_follow','stream_ownership','stream_date_type'],function(key){self.scope.find('[name="'+key+'"]').prop('checked',false).closest('.ipsMenu_item').removeClass('ipsMenu_itemChecked').end().filter('[value="'+data[key]+'"]').prop('checked',true).change().closest('.ipsMenu_item').addClass('ipsMenu_itemChecked');});var followSelector=_.map(data['stream_followed_types'],function(val,key){return'[name="stream_followed_types['+key+']"]';});this.scope.find('[name^="stream_followed_types"]').prop('checked',false).closest('.ipsMenu_item').removeClass('ipsMenu_itemChecked').end().filter(followSelector.join(',')).prop('checked',true).change().closest('.ipsMenu_item').addClass('ipsMenu_itemChecked');if(this.scope.find('#elInput_stream_custom_members').length){var ownerAC=ips.ui.autocomplete.getObj(this.scope.find('#elInput_stream_custom_members'));ownerAC.removeAll();if(data['stream_ownership']=='custom'){var names=_.compact(data['stream_custom_members'].split(/\n/));for(var i=0;i<names.length;i++){ownerAC.addToken(names[i]);}}}
|
||||
if(!_.isUndefined(data['stream_tags'])){var tags=_.compact(data['stream_tags'].split(/\n/));var tagAC=ips.ui.autocomplete.getObj(this.scope.find('#elInput_stream_tags'));tagAC.removeAll();if(tags.length){for(var i=0;i<tags.length;i++){tagAC.addToken(tags[i]);}}}
|
||||
this.scope.find('[name="stream_date_relative_days"], [name="stream_date_range[start]"], [name="stream_date_range[end]"]').val('');if(data['stream_date_type']=='relative'){this.scope.find('[name="stream_date_relative_days"]').val(data['stream_date_relative_days']);}else if(data['stream_date_type']=='custom'){var html5=ips.utils.time.supportsHTMLDate();if(data['stream_date_range']['start']){var startDateObj=new Date(data['stream_date_range']['start']);if(html5){this.scope.find('[name="stream_date_range[start]"]').get(0).valueAsDate=startDateObj;}else{this.scope.find('[name="stream_date_range[start]"]').datepicker('setDate',ips.utils.time.removeTimezone(startDateObj));}}
|
||||
if(data['stream_date_range']['end']){var endDateObj=new Date(data['stream_date_range']['end']);if(html5){this.scope.find('[name="stream_date_range[end]"]').get(0).valueAsDate=endDateObj;}else{this.scope.find('[name="stream_date_range[end]"]').datepicker('setDate',ips.utils.time.removeTimezone(endDateObj));}}}
|
||||
var classChecks=$('#elStreamContentTypes_menu').find('[type="checkbox"][name^="stream_classes"]');var classSelector=[];classChecks.prop('checked',false).change().closest('.ipsSideMenu_item').removeClass('ipsSideMenu_itemActive');if(data['stream_classes_type']==0){this.scope.find('[name="stream_classes_type"]').first().closest('.ipsSideMenu_item').addClass('ipsSideMenu_itemActive');}else{var classKeys=_.keys(data['stream_classes']);_.each(classKeys,function(val){self.scope.find('[data-class="'+val.replace(/\\/g,'\\\\')+'"] input[type="checkbox"]').prop('checked',true).change().closest('.ipsSideMenu_item').addClass('ipsSideMenu_itemActive');});}
|
||||
this._updateFilterOverview();},openStreamContainer:function(e,data){e.preventDefault();var self=this;var link=$(e.currentTarget);var className=link.attr('data-class');var contentKey=link.attr('data-contentKey');var nodeContainer=link.next('.cStreamForm_nodes');if(!this._loadedContainer[className]){nodeContainer.slideDown();var containers=[];if(_.isObject(ips.getSetting('stream_config'))&&!_.isEmpty(ips.getSetting('stream_config')['containers'])){var keys=_.keys(ips.getSetting('stream_config')['containers']);var values=_.values(ips.getSetting('stream_config')['containers']);for(var i=0;i<keys.length;i++){containers.push('stream_containers['+keys[i]+']='+values[i]);}}
|
||||
ips.getAjax()(this.scope.find('form').attr('action').replace('do=create',''),{type:'post',data:'do=getContainerNodeElement&className='+className+'&key='+contentKey+'&'+containers.join('&')}).done(function(returnedData){nodeContainer.html(returnedData.node);self._loadedContainer[className]=true;$(document).trigger('contentChange',[nodeContainer.parent()]);});}else{nodeContainer.slideToggle();}},openStreamClubs:function(e,data){e.preventDefault();var clubContainer=$('#elStreamClubs');if(!this._loadedClubs){clubContainer.slideDown();this._loadClubs(null);}else{clubContainer.slideToggle();}},_loadClubs:function(callback){if(!this._loadedClubs){var clubContainer=$('#elStreamClubs');var extra=null;if(_.isObject(ips.getSetting('stream_config'))){extra='&stream_club_select='+ips.getSetting('stream_config')['stream_club_select']+'&stream_club_filter='+ips.getSetting('stream_config')['stream_club_filter'];}
|
||||
var self=this;ips.getAjax()(this.scope.find('form').attr('action').replace('do=create',''),{type:'post',data:'do=getClubElement&'+extra}).done(function(returnedData){clubContainer.html(returnedData.field);self._loadedClubs=true;$(document).trigger('contentChange',[clubContainer.parent()]);if(callback){callback();}});}else if(callback){callback();}},menuClosed:function(e,data){if(data.elemID=='elStreamContentTypes'||($('#'+data.elemID+'_menu').length&&data.elemID!='elSaveStream')){_.delay(function(self){$('[data-action="applyFilters"]').addClass('ipsButton--disabled');self.checkFormUpdate();self.reloaded=true;},500,this);}},checkFormUpdate:function(){if(this.hasFormChanged()){this.updateResults();this.scope.find('#elSaveStream').removeClass('i-opacity_4');this.takeFormSnapshot();}},hasFormChanged:function(){if(_.isEqual(this.formSnapshot,ips.utils.form.serializeAsObject(this.scope.find('form'),this._serializeConfig))){return false;}
|
||||
return true;},takeFormSnapshot:function(){this.formSnapshot=ips.utils.form.serializeAsObject(this.scope.find('form'),this._serializeConfig);},tokensChanged:function(){this.reloaded=false;},changeSort:function(e,data){this.checkFormUpdate();},selectedMenuItem:function(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}},selectedReadStatus:function(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
this._changeReadStatus(data.selectedItemID);},_changeReadStatus:function(type){if(type=='unread'){this._formData['stream_include_comments']=0;this.scope.find('#stream_ownership_0').closest('a').trigger('click');this.scope.find('#elStreamShowMe_menu li[data-ipsmenuvalue=1]').addClass('ipsMenu_itemDisabled');}else{this.scope.find('#elStreamShowMe_menu li[data-ipsmenuvalue=1]').removeClass('ipsMenu_itemDisabled');}},dismissSave:function(e){e.preventDefault();this.scope.find('[data-role="saveButtonContainer"]').slideUp();},submitForm:function(e){var button=$(e.currentTarget);var form=button.closest('form');if(this.scope.attr('data-formType')=='createStream'){return;}
|
||||
if(button.attr('data-action')=='newStream'){form.prepend($('<input />').attr('type','hidden').attr('name','do').attr('value','create'));}else{this._formData=ips.utils.form.serializeAsObject(this.scope.find('form'),this._serializeConfig);this.trigger('formSubmitted.stream',{data:this._formData,action:(button.attr('data-action')=='newStream')?'createForm':'saveForm'});}},updateResults:function(){this._formData=ips.utils.form.serializeAsObject(this.scope.find('form'),this._serializeConfig);this._updateFilterOverview();this.trigger('formSubmitted.stream',{data:this._formData,action:'updateForm'});},selectedDate:function(e,data){this.reloaded=false;if(data.selectedItemID=='custom'){this.scope.find('[data-role="dateRelativeForm"]').slideUp();this.scope.find('[data-role="dateForm"]').slideDown();}else if(data.selectedItemID=='relative'){this.scope.find('[data-role="dateForm"]').slideUp();this.scope.find('[data-role="dateRelativeForm"]').slideDown();this.scope.find('[name="stream_date_relative_days"]').focus();}else{if(!_.isUndefined(data.selectedItemID)){this.scope.find('[data-role="dateForm"]').slideUp();this.scope.find('[data-role="dateRelativeForm"]').slideUp();this.checkFormUpdate();}}},selectedFollowStatus:function(e,data){var selectedItems=data.selectedItems;if(!_.size(selectedItems)){this.scope.find('[name="stream_follow"]').val('all');}else{this.scope.find('[name="stream_follow"]').val('followed');}
|
||||
this.checkFormUpdate();},selectedOwnership:function(e,data){if(data.selectedItemID=='custom'){this.scope.find('[data-role="ownershipMemberForm"]').slideDown();}else{if(!_.isUndefined(data.selectedItemID)){this.scope.find('[data-role="ownershipMemberForm"]').slideUp();this.checkFormUpdate();}}},clubSelectionChanged:function(e,data){if(this.scope.find('[name="stream_club_filter_dummy_unlimited"]').is(':checked')){this.scope.find('[name="stream_club_select"]').val('all');}else{this.scope.find('[name="stream_club_select"]').val('select');this.scope.find('[name="stream_club_filter"]').val($('#elSelect_stream_club_filter').val());}
|
||||
this.toggleApplyFilterButton();},selectedType:function(e,data){var self=this;var typeMenu=this.scope.find('[data-filterType="type"]');var all=typeMenu.find('[data-ipsMenuValue="__all"]');var allButAll=typeMenu.find('[data-ipsMenuValue]:not( [data-ipsMenuValue="__all"] )');var allButAllChecks=allButAll.find('> input[type="checkbox"]');this.reloaded=false;this.toggleApplyFilterButton();if(data.selectedItemID=='__all'){allButAll.removeClass('ipsSideMenu_itemActive').find('> input[type="checkbox"]').prop('checked',false);all.addClass('ipsSideMenu_itemActive');this.scope.find('input[type="radio"][name="stream_classes_type"][value="0"]').prop('checked',true);this.scope.find('[data-contentType]').closest('.cStreamForm_nodes').slideUp();}else{if(allButAllChecks.filter(':checked').length){all.removeClass('ipsSideMenu_itemActive')
|
||||
this.scope.find('input[type="radio"][name="stream_classes_type"][value="1"]').prop('checked',true);allButAllChecks.filter(':checked').each(function(){var type=$(this).closest('[data-ipsMenuValue]').attr('data-ipsMenuValue');if(self.scope.find('[data-contentType="'+type+'"]').length){self.scope.find('[data-contentType="'+type+'"]').slideDown();}});allButAllChecks.filter(':not( :checked )').each(function(){var type=$(this).closest('[data-ipsMenuValue]').attr('data-ipsMenuValue');if(self.scope.find('[data-contentType="'+type+'"]').length){self.scope.find('[data-contentType="'+type+'"]').slideUp();}})}else{all.addClass('ipsSideMenu_itemActive').find('> input[type="checkbox"]').prop('checked',true);this.scope.find('[data-contentType]').slideUp();}}},_serializeDate:function(name,value){if(ips.utils.time.supportsHTMLDate()){return value;}
|
||||
var dateObj=ips.utils.time.getDateFromInput($('input[name='+ips.utils.css.escapeSelector(name)+']'));if(!ips.utils.time.isValidDateObj(dateObj)){return'';}
|
||||
var month=('0'+(dateObj.getUTCMonth()+1)).slice(-2);var day=('0'+(dateObj.getUTCDate())).slice(-2);return dateObj.getUTCFullYear()+'-'+month+'-'+day;}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.streams.main',{_streamLoadingOverlay:null,_tooltip:null,_tooltipTimer:null,_baseURL:'',_streamID:0,_currentView:'',_shortInterval:15,_longInterval:45,_killUpdate:45,_timer:null,_killTimer:null,_activityUpdate:null,_loadMore:null,_timestamp:0,_autoUpdate:false,_windowFocus:false,initialize(){this.on('formSubmitted.stream',this.formSubmitted);this.on('initialFormData.stream',this.initialFormData);this.on('loadMoreResults.stream',this.loadMoreResults);this.on('latestTimestamp.stream',this.latestTimestamp);this.on('click','[data-action="switchView"]',this.switchView);this.on('menuOpened','#elStreamShare',this.menuOpened);this.on('click','[data-action="toggleStreamDefault"]',this.toggleDefault);this.on('click','[data-action="removeStream"]',this.removeStream);this.on('click','[data-action="loadMore"]',this.loadMoreResults);this.on('resultsUpdated.stream',this.resultsUpdated);this.on(document,'markAllRead',this.markAllRead);this.on(document,ips.utils.events.getVisibilityEvent(),this.windowVisibilityChange);this.on(window,'historychange:streams',this.stateChange);this.setup();},setup(){this._streamID=this.scope.attr('data-streamID');this._baseURL=ips.getSetting('stream_config')['url'];if(this._baseURL.match(/\?/)){this._baseURL+='&';}else{this._baseURL+='?';}
|
||||
if(this._baseURL.slice(-1)==='&'){this._baseURL=this._baseURL.slice(0,-1)}
|
||||
this._timestamp=parseInt(this.scope.find('[data-timestamp]').first().attr('data-timestamp'));this._currentView=this.scope.find('[data-action="switchView"].ipsDataFilters__button--active').attr('data-view');if(!_.isUndefined(this.scope.find('[data-role="streamResults"]').attr('data-autoPoll'))){this._autoUpdate=true;this.windowVisibilityChange();}
|
||||
if(!document.getElementById('elStreamFilterForm')){document.querySelector("[aria-controls='elStreamFilterForm']").hidden=true;}},stateChange(){const state={data:ips.utils.history.getState('streams')||{},url:window.location.href,title:document.title}
|
||||
if((!state.data.controller||state.data.controller!=='core.front.streams.main')&&this._initialURL!==state.url){return;}
|
||||
if(state.data.action==='saveForm'||state.data.action==='updateForm'){this.triggerOn('core.front.streams.form','streamStateUpdate.streamForm',{filterData:state.data.filterData,hideSaveBar:(_.isEmpty(this._getUrlDiff(state.data.filterData))||state.data.action==='saveForm')});ips.utils.analytics.trackPageView(state.url);if(!_.isUndefined(state.data.filterData.stream_sort)){this._togglePolling(!(state.data.filterData.stream_sort==='oldest'));}
|
||||
const data=_.extend({view:this._currentView},state.data.filterData);switch(state.data.action){case'updateForm':data.updateOnly=1
|
||||
break;case'saveForm':data.form='save'
|
||||
break;}
|
||||
this._loadResults(data).done((response)=>{this.triggerOn('core.front.streams.results','updateResults.stream',{append:false,response});if(state.data.action==='saveForm'){ips.setSetting('stream_config',JSON.parse(response.config));ips.utils.history.replaceState({controller:'core.front.streams.main',url:ips.getSetting('stream_config')['url'],skipUpdate:true},'core.front.streams.main',ips.getSetting('stream_config').url);}})}else if(state.data.action==='loadMore'){const data=_.extend({before:state.data.before,view:this._currentView},state.data.filters);const before=this.scope.find('[data-role="activityItem"]').last().attr('data-timestamp');this._loadResults(data).done((response)=>{const content=$('<div>'+response.results+'</div>');const latest=parseInt(content.find('[data-role="activityItem"]').last().attr('data-timestamp'))-1;ips.utils.history.replaceState({controller:'core.front.streams.main',latest:latest},'core.front.streams.main',this._buildRequestURL({before:before,latest:isNaN(latest)?0:latest}));this.triggerOn('core.front.streams.results','updateResults.stream',{append:true,response:response,url:this._buildRequestURL({before:before,latest:isNaN(latest)?0:latest})});});}else if(state.data.action==='viewToggle'){this._setViewType(state.data.view);this._loadResults({view:state.data.view,...state.data.filters}).done(response=>this.triggerOn('core.front.streams.results','updateResults.stream',{response}));}else{Debug.log('skip update');}},loadMoreResults(e,data){e.preventDefault();var timestamp=this.scope.find('[data-role="activityItem"]').last().attr('data-timestamp');var url=this._buildRequestURL({before:timestamp});this.scope.find('[data-role="loadMoreContainer"] [data-action="loadMore"]').addClass('ipsButton--disabled').text(ips.getString('loading'));ips.utils.history.pushState({controller:'core.front.streams.main',before:timestamp,filters:this._getUrlDiff(this._formData),action:'loadMore'},'streams',url);},_setViewType(type){this._currentView=type;this.scope.find('[data-action="switchView"]').removeClass('ipsButtonGroup__button--active').filter('[data-view="'+type+'"]').addClass('ipsButtonGroup__button--active');ips.utils.cookie.set('stream_view_'+this._streamID,type,true);},switchView(e){e.preventDefault();const view=$(e.currentTarget).attr('data-view');ips.utils.history.pushState({controller:'core.front.streams.main',view,filters:this._getUrlDiff(this._formData),action:'viewToggle'},'streams',this._buildRequestURL({view}));},formSubmitted(e,data){this._formData=this._getFormData(data.data);const url=this._buildRequestURL();ips.utils.history.pushState({controller:'core.front.streams.main',url:url,filterData:this._formData,action:data.action},'streams',url);},initialFormData(e,data){this._formData=this._getFormData(data.data);},latestTimestamp(e,data){this._timestamp=data.timestamp;},windowVisibilityChange(){var hiddenProp=ips.utils.events.getVisibilityProp();if(!_.isUndefined(hiddenProp)){if(document[hiddenProp]){this._windowFocus=false;this._startTimer(this._longInterval);this._killTimer=setTimeout(_.bind(this._stopPolling,this),this._killUpdate*60*1000);Debug.log("Set the kill timer");}else{this._windowFocus=true;this._startTimer(this._shortInterval);this._updateTitle(0);clearTimeout(this._killTimer);Debug.log("Cleared the kill timer");}}else{this._startTimer(this._longInterval);}},_loadResults(data,resetConfig,silent){var self=this;var promise=$.Deferred();if(!silent){this._setStreamLoading(true);}
|
||||
ips.getAjax()(ips.getSetting('stream_config')['url'],{type:'post',data:data||{}}).done(function(response){if(!silent){self._setStreamLoading(false);self._updateStreamUI(response);}
|
||||
promise.resolve(response);}).fail(function(response){if(!silent){ips.ui.alert.show({type:'alert',message:ips.getString('errorLoadingStream'),icon:'warn'});}
|
||||
promise.reject();});return promise;},resultsUpdated:function(e,data){if(this.scope.find('[data-role="activityItem"]').length===0){this.scope.find('[data-role="loadMoreContainer"]').hide();this.scope.find('[data-role="streamContent"]').removeClass('ipsStream_withTimeline');}
|
||||
else{this.scope.find('[data-role="streamContent"]').addClass('ipsStream_withTimeline');this.scope.find('[data-role="loadMoreContainer"]').show();}},_updateStreamUI(response){Debug.log("Updating stream UI...");this.scope.find('[data-role="streamBlurb"]').text(response.blurb.replace(/'/g,"'"));this.scope.find('[data-role="streamTitle"]').html(response.title);if(response.count===0){this.scope.find('[data-role="loadMoreContainer"]').show().html(ips.templates.render('core.streams.noMore'));}else{this.scope.find('[data-role="loadMoreContainer"]').show().html(ips.templates.render('core.streams.loadMore'));}
|
||||
if(response.id){var menuItem=$('body').find('[data-streamid="'+response.id+'"] > a');menuItem.html(response.title);}},_getFormData(data){var returnValues={};_.each(data,function(val,key){if(key.startsWith('stream_')){returnValues[key]=val;}});try{if(!_.isUndefined(returnValues['stream_classes']['__EMPTY'])){returnValues['stream_classes']=_.omit(returnValues['stream_classes'],'__EMPTY');}}catch(err){}
|
||||
return returnValues;},_getUrlDiff(data){var returnedValues={};var defaultValues=ips.getSetting('stream_config');if(!_.isUndefined(defaultValues['changed'])){_.each(defaultValues['changed'],function(val,key){returnedValues[(key==='containers')?'stream_containers':key]=defaultValues[key];});}
|
||||
if(!_.size(data)){return returnedValues;}
|
||||
_.each(['stream_sort','stream_include_comments','stream_read','stream_default_view','stream_club_select','stream_club_filter'],function(val){if(defaultValues[val]!==data[val]&&!_.isUndefined(data[val])){returnedValues[val]=data[val];}});if(data['stream_ownership']==='custom'){var newNames=_.isObject(data['stream_custom_members'])?data['stream_custom_members']:data['stream_custom_members'].split(/\n/);var oldNames=defaultValues['stream_custom_members'];if(!_.isObject(oldNames)){oldNames=[];}
|
||||
var nameIntersection=_.intersection(newNames,oldNames);if(!newNames.length){returnedValues['stream_ownership']='all';}
|
||||
else if(newNames.length!==oldNames.length||nameIntersection.length!==newNames.length){returnedValues['stream_ownership']='custom';returnedValues['stream_custom_members']=data['stream_custom_members'];}}else if(defaultValues['stream_ownership']!==data['stream_ownership']){returnedValues['stream_ownership']=data['stream_ownership'];}
|
||||
if(!(defaultValues['stream_follow']==='all'&&data['stream_follow']==='all')){if(data['stream_follow']==='followed'){var newFollowTypes=_.keys(data['stream_followed_types']);var oldFollowTypes=_.keys(defaultValues['stream_followed_types']);var followIntersection=_.intersection(newFollowTypes,oldFollowTypes);if(newFollowTypes.length!==oldFollowTypes.length||followIntersection.length!==newFollowTypes.length){returnedValues['stream_follow']='followed';returnedValues['stream_followed_types']=data['stream_followed_types'];}}else{returnedValues['stream_follow']=data['stream_follow'];}}
|
||||
if(!_.isUndefined(data['stream_tags'])&&!_.isEmpty(data['stream_tags'].trim())){var newTags=_.compact((data['stream_tags']||'').split(/\n/));var oldTags=_.compact((defaultValues['stream_tags']||'').split(/\n/));var tagIntersection=_.intersection(newTags,defaultValues['stream_tags']);if(newTags.length!==oldTags.length||tagIntersection.length!==newTags.length){returnedValues['stream_tags']=_.map(newTags,function(str){return str.trim()}).join(',');}}else if(defaultValues['stream_tags']){returnedValues['stream_tags']='';}
|
||||
if(data['stream_date_type']==='custom'){var startTest=data['stream_date_range']['start'];if(startTest.toString().match(/^[0-9]{9,10}$/)){var start=data['stream_date_range']['start'];var end=data['stream_date_range']['end'];}
|
||||
else
|
||||
{var start=new Date(data['stream_date_range']['start']).getTime()/1000;var end=new Date(data['stream_date_range']['end']).getTime()/1000;}
|
||||
if(data['stream_date_range']['start']&&(_.isUndefined(defaultValues['stream_date_range'])||start!==defaultValues['stream_date_range']['start'])){returnedValues['stream_date_type']='custom';returnedValues['stream_date_start']=start;}
|
||||
if(data['stream_date_range']['end']&&(_.isUndefined(defaultValues['stream_date_range'])||end!==defaultValues['stream_date_range']['end'])){returnedValues['stream_date_type']='custom';returnedValues['stream_date_end']=end;}}else if(data['stream_date_type']==='relative'){if(defaultValues['stream_date_relative_days']!==data['stream_date_relative_days']){returnedValues['stream_date_type']='relative';returnedValues['stream_date_relative_days']=data['stream_date_relative_days'];}}else if(defaultValues['stream_date_type']!==data['stream_date_type']){returnedValues['stream_date_type']=data['stream_date_type'];}
|
||||
if(data['stream_classes_type']===0&&defaultValues['stream_classes_type']===1){returnedValues['stream_classes']={};}else{var newClasses=_.without(_.keys(data['stream_classes']),'__EMPTY');var classIntersection=_.intersection(newClasses,_.keys(defaultValues['stream_classes']));if(classIntersection.length!==newClasses.length){returnedValues['stream_classes']=_.omit(data['stream_classes'],'__EMPTY');}}
|
||||
var containers={};if(!_.isUndefined(data['stream_classes'])&&_.isObject(data['stream_classes'])){_.each(_.without(_.keys(data['stream_classes']),'__EMPTY'),function(val,key){var contentType=$('div[data-role="streamContainer"][data-className="'+val.replace(/\\/g,'\\\\')+'"]').attr('data-contentKey');if(!_.isUndefined(contentType)&&$('input[name="stream_containers_'+contentType+'"]').length){containers[val]=$('input[name="stream_containers_'+contentType+'"]').val();}});}
|
||||
if(!_.isEmpty(containers)){if(!_.isUndefined(defaultValues['containers'])&&!_.isEqual(containers,defaultValues['containers'])){returnedValues['stream_containers']=containers;}}
|
||||
return returnedValues;},_buildRequestURL(extraParams){var urlDiff=this._getUrlDiff(this._formData);var params=[];_.each(urlDiff,function(val,key){if(_.isObject(val)){if(!_.size(val)){params.push(key+'=');}else{var keys=_.keys(val);var values=_.values(val);for(var i=0;i<keys.length;i++){var paramValue=(!_.isUndefined(values[i])?values[i]:1);params.push(key+'['+encodeURIComponent(keys[i])+']='+paramValue);}}}else{params.push(key+'='+encodeURIComponent(val));}});if(_.isObject(extraParams)){_.each(extraParams,function(val,key){params.push(key+'='+encodeURIComponent(val));});}
|
||||
return this._baseURL+'&'+params.join('&');},menuOpened(e,data){data.menu.find('input[type="text"]').focus().get(0).select();},removeStream(e){e.preventDefault();ips.ui.alert.show({type:'confirm',message:ips.getString('confirmRemoveStream'),callbacks:{ok(){window.location=$(e.currentTarget).attr('href')+'&wasConfirmed=1';},}});},toggleDefault(e){e.preventDefault();var self=this;var link=$(e.currentTarget);var value=link.attr('data-change');var url=link.attr('href');ips.getAjax()(url).done(function(response){if(value===1){self.scope.find('a[data-action="toggleStreamDefault"][data-change="0"]').removeClass('ipsHide');self.scope.find('a[data-action="toggleStreamDefault"][data-change="1"]').addClass('ipsHide');}else{self.scope.find('a[data-action="toggleStreamDefault"][data-change="0"]').addClass('ipsHide');self.scope.find('a[data-action="toggleStreamDefault"][data-change="1"]').removeClass('ipsHide');}
|
||||
if(!response.title){$('a[data-action="defaultStream"]').hide();}else{$('a[data-action="defaultStream"]').attr('href',response.url).attr('aria-label',response.title).show().find('[data-role="defaultStreamName"]').html(response.title);}
|
||||
if(value===1){if(!ips.utils.responsive.enabled||!ips.utils.responsive.currentIs('phone')&&$('a[data-action="defaultStream"]').is(':visible')){self._showStreamTooltip(response.tooltip);}else{ips.utils.anim.go('pulseOnce',$('a[data-action="defaultStream"]'));}}});},_showStreamTooltip(title){if(!this._tooltip){var tooltipHTML=ips.templates.render('core.tooltip',{id:'elDefaultStreamTooltip_'+this.controllerID});ips.getContainer().append(tooltipHTML);this._tooltip=$('#elDefaultStreamTooltip_'+this.controllerID);}else{this._tooltip.hide();}
|
||||
if(this._tooltipTimer){clearTimeout(this._tooltipTimer);}
|
||||
this._tooltip.text(ips.getString('streamDefaultTooltip',{title:title}));var streamLink=$('a[data-action="defaultStream"]:visible');var self=this;var positionInfo={trigger:streamLink.first(),target:this._tooltip,center:true,above:true};var tooltipPosition=ips.utils.position.positionElem(positionInfo);$(this._tooltip).css({left:tooltipPosition.left+'px',top:tooltipPosition.top+'px',position:(tooltipPosition.fixed)?'fixed':'absolute',zIndex:ips.ui.zIndex()});if(tooltipPosition.location.vertical==='top'){this._tooltip.addClass('ipsTooltip_top');}else{this._tooltip.addClass('ipsTooltip_bottom');}
|
||||
this._tooltip.show();setTimeout(function(){if(self._tooltip&&self._tooltip.is(':visible')){ips.utils.anim.go('fadeOut',self._tooltip);}},3000);},_setStreamLoading(loading){var stream=this.scope.find('[data-role="streamContent"]');if(!loading){this._streamLoadingOverlay.hide();stream.css({opacity:"1"});return;}else{if(!this._streamLoadingOverlay){this._streamLoadingOverlay=$('<div/>').addClass('ipsLoading');ips.getContainer().append(this._streamLoadingOverlay);}
|
||||
var dims=ips.utils.position.getElemDims(stream);var position=ips.utils.position.getElemPosition(stream);this._streamLoadingOverlay.show().css({left:position.viewportOffset.left+'px',top:position.viewportOffset.top+$(document).scrollTop()+'px',width:dims.width+'px',height:dims.height+'px',position:'absolute',zIndex:ips.ui.zIndex()});stream.css({opacity:"0.5"});}},_startTimer(interval){if(!this._autoUpdate){return;}
|
||||
if(!interval){interval=this._shortInterval;}
|
||||
if(this._timer){clearInterval(this._timer);}
|
||||
this._timer=setInterval(_.bind(this._autoFetchNew,this),interval*1000);},_togglePolling(status){if(!this._autoUpdate){clearInterval(this._timer);return;}
|
||||
if(status){this._startTimer();this.scope.find('[data-role="updateMessage"]').show();}else{if(this._timer){clearInterval(this._timer);this.scope.find('[data-role="updateMessage"]').hide();}}},_autoFetchNew(){if(!_.isNumber(this._timestamp)||_.isNaN(this._timestamp)){Debug.log("Timestamp not a number");clearInterval(this._timer);return;}
|
||||
this._loadResults({after:this._timestamp},false,true).done(response=>{const count=parseInt(response.count);if(response.error&&response.error==='auto_polling_disabled'){this.scope.find('[data-role="updateMessage"]').remove();clearInterval(this._timer);return;}
|
||||
if(_.isNaN(count)||count===0){return;}
|
||||
this.triggerOn('core.front.streams.results','resultsTeaser.stream',{response:response});});},_stopPolling(){clearInterval(this._timer);this._autoUpdate=false;this.scope.find('[data-role="updateMessage"]').html(ips.getString('autoUpdateStopped'));Debug.log("Stopped polling due to user inactivity");},_updateTitle(count){},markAllRead(){this.scope.find('[data-ips-unread]').removeAttr('data-ips-unread');}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.streams.results',{_streamID:0,_newUpdates:$('<div/>'),_waitingCount:0,_config:{},initialize:function(){this.on('updateResults.stream',this.updateResults);this.on('resultsTeaser.stream',this.resultsTeaser);this.on('click','[data-action="insertNewItems"]',this.insertNewItems);this.on('click','a[data-linkType]',this.clickResult);this.setup();},setup:function(){if(this.scope.attr('data-streamID')){this._streamID=this.scope.attr('data-streamID');}
|
||||
this._config=ips.getSetting('stream_config');},updateResults:function(e,data){if(data.append){this._appendNewResults(data);}else{this._replaceWithNewResults(data);}},_replaceWithNewResults:function(data){this._config=JSON.parse(data.response.config);if(data.response.results.indexOf('core.front.streams.results')!==-1){var content=$('<div>'+data.response.results+'</div>');var root=content.find('[data-controller="core.front.streams.results"]');this.cleanContents();this.scope.html(root.html()).attr('data-streamReadType',root.attr('data-streamReadType')).attr('data-streamURL',root.attr('data-streamURL')).attr('data-streamID',root.attr('data-streamID'));}else{ips.controller.cleanContentsOf(this.scope.find('[data-role="streamContent"]'));this.scope.find('[data-role="streamContent"]').html(data.response.results);}
|
||||
this.trigger('resultsUpdated.stream',{response:data.response});$(document).trigger('contentChange',[this.scope]);},_appendNewResults:function(data){var content=$('<div>'+data.response.results+'</div>');var latestBubble=this.scope.find('[data-timeType]').last().attr('data-timeType');content.find('[data-timeType="'+latestBubble+'"]').remove();content.find('[data-role="activityItem"]').attr('data-new',true).css({opacity:"0"});if(!_.isUndefined(data.url)){content.find('.js-ipsEntry__content form[action="'+this._config['url']+'"]').attr('action',data.url);}
|
||||
var existingItems=this.scope.find('[data-role="activityItem"]');var count=existingItems.length;existingItems.last().after(content);this.scope.find('[data-role="activityItem"]').slice(count).each(function(){$(document).trigger('contentChange',[$(this)]);});this._animateNewItems();},clickResult:function(e,data){var item=$(e.target).closest('[data-indexID]');var star=item.find('a[data-linkType="star"]');this.scope.find('.ipsStreamItem_active').removeClass('ipsStreamItem_active');item.addClass('ipsStreamItem_active').removeAttr('data-ips-unread');if(star.attr('data-iPostedIn')){star.addClass('ipsIndicator--read').unwrap();}else{star.attr('hidden',true);}},insertNewItems:function(e){e.preventDefault();var insertBefore=null;if(this.scope.find('[data-timeType="past_hour"]').length){insertBefore=this.scope.find('[data-timeType="past_hour"]').siblings('[data-role="activityItem"]').first();this._newUpdates.find('[data-timeType]').remove();}else{insertBefore=this.scope.find('[data-timeType], [data-role="activityItem"]').first();}
|
||||
this.scope.find('[data-role="unreadBar"]').remove();this._newUpdates.append(ips.templates.render('core.streams.unreadBar'));this._newUpdates.find('[data-role="activityItem"]').attr('data-new',true).css({opacity:"0"});insertBefore.before(this._newUpdates.html());$(document).trigger('contentChange',[this.scope]);this.scope.find('[data-action="insertNewItems"]').remove();this._animateNewItems();this._newUpdates=$('<div/>');this._waitingCount=0;},_animateNewItems:function(){var newItems=this.scope.find('[data-new]');var delay=200;newItems.each(function(index){var d=(index*delay);$(this).delay((d>1200)?1200:d).animate({opacity:"1"}).removeAttr('data-new');});},resultsTeaser:function(e,data){var self=this;var response=data.response;var count=parseInt(response.count);var tmp=$('<div>'+response.results+'</div>');self.trigger('latestTimestamp.stream',{timestamp:parseInt(tmp.find('[data-timestamp]').first().attr('data-timestamp'))});self._waitingCount+=count;if(tmp.find('[data-timeType]').length){var type=tmp.find('[data-timeType]').attr('data-timeType');self._newUpdates.find('[data-timeType="'+type+'"]').remove();}
|
||||
self._newUpdates.prepend(tmp.contents());var teaser=ips.templates.render('core.streams.teaser',{count:self._waitingCount,words:ips.pluralize(ips.getString('newActivityItems'),[self._waitingCount,self._waitingCount])});if(self.scope.find('[data-action="insertNewItems"]').length){self.scope.find('[data-action="insertNewItems"]').replaceWith(teaser);self.scope.find('[data-action="insertNewItems"]').show();}else{self.scope.find('[data-role="activityItem"]').first().before(teaser);self.scope.find('[data-action="insertNewItems"]').slideDown();}}});}(jQuery,_));;
|
||||
@@ -0,0 +1,36 @@
|
||||
ips.templates.set('follow.frequency'," {{#hasNotifications}} <i class='fa-solid fa-bell'></i> {{/hasNotifications}} {{^hasNotifications}} <i class='fa-regular fa-bell-slash'></i> {{/hasNotifications}} {{text}}");;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.system.manageFollowed',{initialize:function(){$(document).on('followingItem',_.bind(this.followingItemChange,this));this.setup();},setup:function(){this._followID=this.scope.attr('data-followID');},followingItemChange:function(e,data){if(data.feedID!=this._followID){return;}
|
||||
if(!_.isUndefined(data.unfollow)){this.scope.find('[data-role="followDate"], [data-role="followFrequency"]').html('');this.scope.find('[data-role="followAnonymous"]').addClass('ipsHide');this.scope.find('[data-role="followButton"]').addClass('ipsButton--disabled');this.scope.addClass('i-opacity_4');return;}
|
||||
this.scope.find('[data-role="followAnonymous"]').toggleClass('ipsHide',!data.anonymous);if(data.notificationType){this.scope.find('[data-role="followFrequency"]').html(ips.templates.render('follow.frequency',{hasNotifications:(data.notificationType!=='none'),text:ips.getString('followFrequency_'+data.notificationType)}));}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.system.metaTagEditor',{_changed:false,initialize:function(){this.on('click','[data-action="addMeta"]',this.addMetaBlock);this.on('click','[data-action="deleteMeta"]',this.removeMetaBlock);this.on('click','[data-action="deleteDefaultMeta"]',this.removeDefaultMeta);this.on('click','[data-action="restoreMeta"]',this.restoreDefaultMeta);this.on('change','input, select',this.changed);this.on('submit','form',this.formSubmit);this.on(window,'beforeunload',this.beforeUnload);this.on('change','[data-role="metaTagChooser"]',this.toggleNameField);this.setup();},setup:function(){this.scope.css({zIndex:"10000"});},toggleNameField:function(e){if($(e.currentTarget).val()=='other'){$(e.currentTarget).closest('ul').find('[data-role="metaTagName"]').show();}
|
||||
else
|
||||
{$(e.currentTarget).closest('ul').find('[data-role="metaTagName"]').hide();}},restoreDefaultMeta:function(e){var tag=$(e.currentTarget).attr('data-tag');var copy=this.scope.find('[data-role="metaTemplate"]').clone().attr('data-role','metaTagRow').hide();if(tag=='robots'||tag=='keywords'||tag=='description'){copy.find('select[name="meta_tag_name[]"]').val(tag);}
|
||||
else
|
||||
{copy.find('select[name="meta_tag_name[]"]').val('other');copy.find('[name="meta_tag_name_other[]"]').val(tag).parent().removeClass('ipsHide');}
|
||||
if(this.scope.find('input[name="defaultMetaTag['+tag+']"]')){copy.find('[name="meta_tag_content[]"]').val(this.scope.find('input[name="defaultMetaTag['+tag+']"]').val());}
|
||||
copy.find('[data-action="deleteMeta"]').attr('data-action','deleteDefaultMeta');$('#elMetaTagEditor_defaultTags').append(copy);ips.utils.anim.go('fadeIn',copy);$(document).trigger('contentChange',[this.scope]);this._doMetaRemoval(e);},removeDefaultMeta:function(e){if($(e.currentTarget).siblings('select').first().val()=='other'){var name=$(e.currentTarget).closest('ul').find('input[name="meta_tag_name_other[]"]').val();}
|
||||
else
|
||||
{var name=$(e.currentTarget).siblings('select').first().val();}
|
||||
$(e.currentTarget).closest('form').find('input').first().after("<input type='hidden' name='deleteDefaultMeta[]' value='"+name+"'>");this.removeMetaBlock(e,false);var string=ips.getString('meta_tag_deleted',{tag:name});var copy=this.scope.find('[data-role="metaDefaultDeletedTemplate"]').clone().attr('data-role','metaTagRow').hide();copy.find('[data-role="metaDeleteMessage"]').html(string);copy.find('[data-action="restoreMeta"]').attr('data-tag',name);$('#elMetaTagEditor_defaultTags').find('.i-background_3').after(copy);ips.utils.anim.go('fadeIn',copy);$(document).trigger('contentChange',[this.scope]);this.changed();this._showHideNoTagsMessage();},removeMetaBlock:function(e,restoreDefault){if(_.isUndefined(restoreDefault)){restoreDefault=true;}
|
||||
if($(e.currentTarget).siblings('select').first().val()=='other'){var tag=$(e.currentTarget).closest('ul').find('input[name="meta_tag_name_other[]"]').val();}
|
||||
else
|
||||
{var tag=$(e.currentTarget).siblings('select').first().val();}
|
||||
if(this.scope.find('input[name="defaultMetaTag['+tag+']"]').length&&restoreDefault){$(e.currentTarget).attr('data-tag',tag);this.restoreDefaultMeta(e);}
|
||||
else
|
||||
{this._doMetaRemoval(e);}},_doMetaRemoval:function(e){e.preventDefault();var elem=$(e.currentTarget).closest('[data-role="metaTagRow"]');elem.remove();ips.utils.anim.go('fadeOut',elem);this.changed();this._showHideNoTagsMessage();},_showHideNoTagsMessage:function(){if($('#elMetaTagEditor_customTags').find('li[data-role="metaTagRow"]').length){$('#elMetaTagEditor_customTags').find('li[data-role="noCustomMetaTagsMessage"]').hide();}
|
||||
else
|
||||
{$('#elMetaTagEditor_customTags').find('li[data-role="noCustomMetaTagsMessage"]').show();}},formSubmit:function(e){var form=$(e.currentTarget);if(form.attr('data-noAjax')){return;}
|
||||
e.preventDefault();var self=this;form.find('.ipsButton').prop('disabled',true).addClass('ipsButton--disabled');ips.getAjax()(form.attr('action'),{data:form.serialize(),type:'post'}).done(function(){ips.ui.flashMsg.show(ips.getString('metaTagsSaved'));form.find('.ipsButton').prop('disabled',false).removeClass('ipsButton--disabled');self._changed=false;if(form.find('[name="meta_tag_title"]').val()){document.title=form.find('[name="meta_tag_title"]').val();}
|
||||
else
|
||||
{document.title=self.scope.attr('data-defaultPageTitle');}}).fail(function(){form.attr('data-noAjax','true');form.submit();});},beforeUnload:function(){if(this._changed){return ips.getString('metaTagsUnsaved');}},addMetaBlock:function(e){e.preventDefault();var copy=this.scope.find('[data-role="metaTemplate"]').clone().attr('data-role','metaTagRow').hide();$('#elMetaTagEditor_customTags').append(copy);ips.utils.anim.go('fadeIn',copy);$(document).trigger('contentChange',[copy]);this.changed();this._showHideNoTagsMessage();},changed:function(e){this._changed=true;}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.system.notificationSettings',{initialize:function(){this.on('click','[data-action="enablePush"]',this.enablePush);this.on(document,'subscribePending.notifications',this.subscribePending);this.on(document,'subscribeSuccess.notifications',this.subscribeSuccess);this.on(document,'subscribeFail.notifications',this.subscribeFail);this.on(document,'permissionDenied.notifications',this.permissionDenied);this.on('click','[data-action="showNotificationSettings"]',this.showNotificationSettings);this.on('click','[data-action="closeNotificationSettings"]',this.closeNotificationSettings);this.on('change','[data-role="notificationSettingsWindow"]',this.saveNotificationSettings);this.on('change','#elBrowserNotifications',this.promptMe);this.setup();},setup:function(){this._showNotificationOptions();},_showNotificationOptions:function(){const pushElement=this.scope.find('[data-action="enablePush"]');if(ips.utils.notification.supported&&ips.utils.serviceWorker.supported){if(Notification.permission==='granted'){ips.utils.notification.getSubscription().then(subscription=>{if(!subscription){return;}
|
||||
const enableLink=pushElement.contents();pushElement.html(ips.templates.render('core.notifications.checking'));const jsonSubscription=JSON.parse(JSON.stringify(subscription));const key=jsonSubscription.keys.p256dh;ips.getAjax()(ips.getSetting('baseURL')+'index.php?app=core&module=system&controller=notifications&do=verifySubscription',{type:'post',data:{key}}).done((response,status,jqXHR)=>{if(jqXHR.status===200){pushElement.html(ips.templates.render('core.notifications.success'));return;}
|
||||
pushElement.html(enableLink);}).fail(()=>{pushElement.html(enableLink);});}).catch(err=>{Debug.error(err);pushElement.html(ips.templates.render('core.notifications.notSupported'));});}else if(Notification.permission==='denied'){pushElement.html(ips.templates.render('core.notifications.fail'));}}else{Debug.log("Notifications not supported");pushElement.html(ips.templates.render('core.notifications.notSupported'));}
|
||||
pushElement.slideDown();},enablePush:function(e){e.preventDefault();ips.utils.notification.requestPermission();},subscribePending:function(e,data){this.scope.find('[data-action="enablePush"]').html(ips.templates.render('core.notifications.pending')).show();},subscribeSuccess:function(e,data){this.scope.find('[data-action="enablePush"]').html(ips.templates.render('core.notifications.success')).show();},subscribeFail:function(e,data){this.scope.find('[data-action="enablePush"]').html(ips.templates.render('core.notifications.fail')).show();},permissionDenied:function(){this.scope.find('[data-action="enablePush"]').html(ips.templates.render('core.notifications.fail')).show();},promptMe:function(e){if($(e.target).is(':checked')){ips.utils.cookie.unset('noBrowserNotifications');if(!ips.utils.notification.hasPermission()){ips.utils.notification.requestPermission();}else{ips.ui.flashMsg.show(ips.getString('saved'));}}else{ips.utils.cookie.set('noBrowserNotifications',true,true);ips.ui.flashMsg.show(ips.getString('saved'));}},_showNotificationChoice:function(){this.scope.find('[data-role="browserNotifyInfo"]').show();var type=ips.utils.notification.permissionLevel();switch(type){case'denied':$('#elBrowserNotifications').prop('checked',false).prop('disabled',true);this.scope.find('[data-role="browserNotifyDisabled"]').show();break;case'granted':$('#elBrowserNotifications').prop('checked',!ips.utils.cookie.get('noBrowserNotifications'));break;default:break;}},showNotificationSettings:function(e){e.preventDefault();var target=$(e.currentTarget);var expandedContainer=target.parent().find('[data-role="notificationSettingsWindow"]');this.scope.find('.cNotificationTypes__row--selected').removeClass('cNotificationTypes__row--selected');this.scope.find('[data-action="showNotificationSettings"]').show();this.scope.find('[data-role="notificationSettingsWindow"]').hide();target.parent().addClass('cNotificationTypes__row--selected');target.find('.cNotificationSettings_expand').addClass('ipsLoading ipsLoading--tiny').find('i').addClass('ipsHide');ips.getAjax()(target.attr('href')).done(function(response){expandedContainer.html(response).show();target.hide();target.find('.cNotificationSettings_expand').removeClass('ipsLoading').find('i').removeClass('ipsHide');}).fail(function(){window.location=target.attr('href');})},closeNotificationSettings:function(e){e.preventDefault();this.scope.find('.cNotificationTypes__row--selected').removeClass('cNotificationTypes__row--selected');this.scope.find('[data-action="showNotificationSettings"]').show();this.scope.find('[data-role="notificationSettingsWindow"]').hide();},saveNotificationSettings:function(e){e.preventDefault();var target=$(e.target);var form=target.closest('form');var container=form.closest('[data-role="notificationSettingsWindow"]');var containerParent=container.closest('.cNotificationTypes__row');var closeIcon=container.find('[data-action="closeNotificationSettings"]');closeIcon.addClass('ipsLoading ipsLoading--tiny').text('');ips.getAjax()(form.attr('action'),{data:form.serialize(),type:'post'}).done(function(response){closeIcon.removeClass('ipsLoading').html('×');containerParent.find('[data-action="showNotificationSettings"]').html(response);ips.ui.flashMsg.show(ips.getString('saved'));});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.system.referrals',{initialize:function(){$('.cReferrer_copy').each(function(){$(this).hide();});ips.loader.get(['core/interface/clipboard/clipboard.min.js']).then(function(){if(ClipboardJS.isSupported()){$('.cReferrer_copy').each(function(){$(this).show();});var clipboard=new ClipboardJS('.cReferrer_copy');clipboard.on('success',function(e){ips.ui.flashMsg.show(ips.getString('copied'));e.clearSelection();});}else{$('.cReferrals_directLink_input').removeClass('ipsHide');$('.cReferrals_directLink_link').addClass('ipsHide');}});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.system.register',{usernameField:null,timers:{'username':null,'email':null},ajax:ips.getAjax(),popup:null,passwordBlurred:true,dirty:false,initialize:function(){this.on('keyup','#elInput_username',this.changeUsername);this.on('blur','#elInput_username',this.changeUsername);this.on('keyup','#elInput_password_confirm',this.confirmPassword);this.on('blur','#elInput_password_confirm',this.confirmPassword);this.on('click','a[data-ipsPbrCancel]',this.cancelPbr);this.setup();},setup:function(){this.usernameField=this.scope.find('#elInput_username');this.passwordField=this.scope.find('#elInput_password');this.confirmPasswordField=this.scope.find('#elInput_password_confirm');this.usernameField.after($('<span/>').attr('data-role','validationCheck'));this.confirmPasswordField.after($('<span/>').attr('data-role','validationCheck'));this.convertExistingErrors();},convertExistingErrors:function(){var fields=this.scope.find('#elInput_username, #elInput_password, #elInput_password_confirm');var self=this;fields.each(function(){var elem=$(this);var wrapper=elem.closest('.ipsFieldRow');if(!wrapper.hasClass('ipsFieldRow_error')){return;}
|
||||
var message=wrapper.find('.i-color_warning').html();self._clearResult(elem);wrapper.find('[data-role="validationCheck"]').show().html(ips.templates.render('core.forms.validateFailText',{message:message}));elem.removeClass('ipsField_success').addClass('ipsField_error');});},cancelPbr:function(e){var url=$(e.target).closest('[data-ipsPbrCancel]').attr('href');e.preventDefault();e.stopPropagation();ips.ui.alert.show({type:'confirm',message:ips.getString('pbr_confirm_title'),subText:ips.getString('pbr_confirm_text'),icon:'warn',buttons:{ok:ips.getString('pbr_confirm_ok'),cancel:ips.getString('pbr_confirm_cancel')},callbacks:{ok:function(){window.location=url;},cancel:function(){return false;}}});},changeUsername:function(e){if(this.timers['username']){clearTimeout(this.timers['username']);}
|
||||
if(this.usernameField.val().length>4||e.type!="keyup"){this.timers['username']=setTimeout(_.bind(this._doCheck,this,this.usernameField),700);}else{this._clearResult(this.usernameField);}},changePassword:function(e){if(this.timers['password']){clearTimeout(this.timers['password']);}
|
||||
if(this.passwordField.val().length>2||e.type!="keyup"){this.timers['password']=setTimeout(_.bind(this._doPasswordCheck,this,this.passwordField),200);}else{this._clearResult(this.passwordField);}
|
||||
this.confirmPassword();},confirmPassword:function(e){var resultElem=this.confirmPasswordField.next('[data-role="validationCheck"]');if(this.passwordField.val()&&this.passwordField.val()===this.confirmPasswordField.val()){resultElem.hide().html('');this.confirmPasswordField.removeClass('ipsField_error').addClass('ipsField_success');}else{this._clearResult(this.confirmPasswordField);}},_clearResult:function(field){field.removeClass('ipsField_error').removeClass('ipsField_success').next('[data-role="validationCheck"]').html('');field.closest('.ipsFieldRow').removeClass('ipsFieldRow_error').find('.i-color_warning, .ipsFieldRow__content br:last').remove();},_doCheck:function(field){var value=field.val();var resultElem=field.next('[data-role="validationCheck"]');var self=this;if(this.ajax&&this.ajax.abort){this.ajax.abort();}
|
||||
field.addClass('ipsField_loading');this.ajax(ips.getSetting('baseURL')+'?app=core&module=system&controller=ajax&do=usernameExists',{dataType:'json',data:{input:encodeURIComponent(value)}}).done(function(response){if(response.result=='ok'){resultElem.hide().html('');field.removeClass('ipsField_error').addClass('ipsField_success');}else{resultElem.show().html(ips.templates.render('core.forms.validateFailText',{message:response.message}));field.removeClass('ipsField_success').addClass('ipsField_error');}}).fail(function(){}).always(function(){field.removeClass('ipsField_loading');});}});}(jQuery,_));;
|
||||
@@ -0,0 +1 @@
|
||||
ips.templates.set('vse.classes.title'," <li class='ipsToolbox_sectionTitle' data-role='{{role}}'>{{title}}</li>");ips.templates.set('vse.classes.item'," <li data-styleID='{{styleid}}' data-themeKey='{{themekey}}'> {{#swatch.back}} <input class='vseClass_swatch vseClass_swatch--back' value='{{swatch.back.color}}' data-key='{{swatch.back.key}}'> {{/swatch.back}} {{^swatch.back}} <span class='vseClass_swatch vseClass_swatch--back vseClass_swatch--noStyle'>×</span> {{/swatch.back}} {{#swatch.fore}} <input class='vseClass_swatch vseClass_swatch--fore' value='{{swatch.fore.color}}' data-key='{{swatch.fore.key}}'> {{/swatch.fore}} {{^swatch.fore}} <span class='vseClass_swatch vseClass_swatch--fore vseClass_swatch--noStyle'>×</span> {{/swatch.fore}} {{title}}</li>");ips.templates.set('vse.panels.header'," <h2 class='ipsTitle ipsTitle--h3'>{{title}}</h2> {{#desc}} <p class='i-color_soft i-font-size_-2'> {{desc}} </p> {{/desc}} <br>");ips.templates.set('vse.panels.wrapper'," <div class='vseStyleSection' data-role='{{type}}Panel'> {{{content}}} </div>");ips.templates.set('vse.panels.background'," <h3>{{#lang}}vseBackground{{/lang}}</h3> <div data-role='backgroundControls' class='ipsSpanGrid'> <div class='ipsGrid_span3'> <div data-role='backgroundPreview' class='vseBackground_preview'> </div> </div> <div class='ipsGrid_span9'> <input type='text' class='ipsInput--wide color vseBackground_color' data-role='backgroundColor' value='{{backgroundColor}}'> <br> <div class='ipsSpanGrid'> <!--<div class='ipsGrid_span6'> <button data-ipsTooltip title='{{#lang}}vseBackground_image{{/lang}}' class='ipsButton ipsButton--primary ipsButton--small ipsButton--wide i-text-align_center i-font-size_2'><i class='fa-regular fa-image'></i></button> </div>--> <div class='ipsGrid_span6'> <button data-ipsTooltip title='{{#lang}}vseBackground_gradient{{/lang}}' data-action='launchGradientEditor' class='ipsButton ipsButton--primary ipsButton--small ipsButton--wide i-text-align_center i-font-size_2'><i class='fa-solid fa-barcode'></i></button> </div> </div> </div> </div>");ips.templates.set('vse.panels.font'," <h3>{{#lang}}vseFont_color{{/lang}}</h3> <input type='text' class='ipsInput--wide color' data-role='fontColor' value='{{fontColor}}'>");ips.templates.set('vse.gradient.editor'," <div data-role='gradientPreview' class='vseBackground_gradient'></div> <div class='ipsSpanGrid'> <button data-action='gradientAngle' data-angle='90' class='ipsButton ipsButton--primary ipsButton--small ipsGrid_span3'> <i class='fa-solid fa-arrow-down'></i> </button> <button data-action='gradientAngle' data-angle='0' class='ipsButton ipsButton--primary ipsButton--small ipsGrid_span3'> <i class='fa-solid fa-arrow-left'></i> </button> <button data-action='gradientAngle' data-angle='45' class='ipsButton ipsButton--primary ipsButton--small ipsGrid_span3'> <i class='fa-solid fa-arrow-up'></i> </button> <button data-action='gradientAngle' data-angle='120' class='ipsButton ipsButton--primary ipsButton--small ipsGrid_span3'> <i class='fa-solid fa-arrow-right'></i> </button> </div> <hr class='ipsHr'> <ul data-role='gradientStops'> <li class='ipsSpanGrid'> <p class='ipsGrid_span1'> </p> <p class='i-color_soft i-font-size_-2 ipsGrid_span5'>{{#lang}}vseGradient_color{{/lang}}</p> <p class='i-color_soft i-font-size_-2 ipsGrid_span6'>{{#lang}}vseGradient_position{{/lang}}</p> </li> <li class='ipsSpanGrid'> <p class='ipsGrid_span1'> </p> <p class='ipsGrid_span11'><a href='#' data-action='gradientAddStop'>{{#lang}}vseAddStop{{/lang}}</a></p> </li> </ul> <hr class='ipsHr'> <div class='ipsSpanGrid'> {{{buttons}}} </div>");ips.templates.set('vse.gradient.twoButtons'," <button data-action='saveGradient' class='ipsGrid_span8 ipsButton ipsButton--secondary ipsButton--small ipsButton--wide'>{{#lang}}vseGradient_save{{/lang}}</button> <button data-action='cancelGradient' class='ipsGrid_span4 ipsButton ipsButton--secondary ipsButton--small ipsButton--wide'>{{#lang}}vseCancel{{/lang}}</button>");ips.templates.set('vse.gradient.threeButtons'," <button data-action='saveGradient' class='ipsGrid_span4 ipsButton ipsButton--secondary ipsButton--small ipsButton--wide'>{{#lang}}vseSave{{/lang}}</button> <button data-action='cancelGradient' class='ipsGrid_span4 ipsButton ipsButton--secondary ipsButton--small ipsButton--wide'>{{#lang}}vseCancel{{/lang}}</button> <button data-action='removeGradient' class='ipsGrid_span4 ipsButton ipsButton--primary ipsButton--small ipsButton--wide'>{{#lang}}vseDelete{{/lang}}</button>");ips.templates.set('vse.gradient.stop'," <li class='ipsSpanGrid'> <span class='ipsGrid_span1 i-color_soft i-text-align_center'><i class='fa-solid fa-bars'></i></span> <input type='text' class='ipsGrid_span5' value='{{color}}' maxlength='6' pattern='^([0-9a-zA-Z]{6})$'> <input type='range' class='ipsGrid_span5' min='0' max='100' value='{{location}}'> <p class='i-text-align_centLine truncated
|
||||
@@ -0,0 +1,89 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.widgets.area',{_managing:false,reactContainer:null,reactRoot:null,initialize(){if(this.elem.closest('.pageBuilderRoot')){return;}
|
||||
this.on('managingStarted.widgets',this.managingStarted);this.on('managingFinished.widgets',this.managingFinished);},isRoot(){if(!this.elem?.parentElement){return false}
|
||||
return!this.elem.parentElement.closest('[data-controller="core.front.widgets.area"]')},async managingStarted(){if(!this.reactContainer&&this.elem.dataset.widgetarea&&this.isRoot()){this._managing=true;const container=this.reactContainer=document.createElement('div')
|
||||
container.className='pageBuilderRoot'
|
||||
this.elem.parentElement.insertBefore(container,this.elem)
|
||||
this.reactContainer.ipsHide()
|
||||
this.elem.classList.add('cWidgetContainer_managing')
|
||||
this.elem.querySelectorAll('.cWidgetContainer').forEach(el=>el.classList.add('cWidgetContainer_managing'))
|
||||
this.reactRoot=await ips.utils.pagebuilder.initializePageBuilderTree(container,this.elem).root
|
||||
await new Promise(resolve=>setTimeout(resolve,10))
|
||||
this.elem.ipsHide()
|
||||
this.reactContainer.ipsShow()}},managingFinished(){if(this.isRoot()){this._managing=false;const rootClone=this.reactContainer?.cloneNode(true)
|
||||
rootClone?.querySelectorAll('details > summary > input').forEach(titleInput=>{const titleNode=document.createTextNode(titleInput.value)
|
||||
titleInput.parentElement.replaceChild(titleNode,titleInput)})
|
||||
rootClone?.querySelectorAll('[draggable]').forEach(el=>el.removeAttribute('draggable'))
|
||||
const newState=rootClone?.querySelector(`[data-depth="0"]`)?.innerHTML;this.reactRoot?.unmount();this.reactContainer?.remove();document.querySelectorAll('[data-role="widgetAreaConfigForm"]').forEach(el=>el.remove())
|
||||
this.reactContainer=null;this.reactRoot=null;if(newState!==undefined){this.elem.innerHTML=newState;const widgets=[...this.elem.querySelectorAll('.cWidgetContainer > .ipsWidget__content--wrap > .ipsWidget')];if(newState&&widgets.some(widget=>!!widget.innerHTML.match(/\S/))){widgets.forEach(widget=>{if(!widget.innerHTML.match(/\S/)){widget.closest('.cWidgetContainer').setAttribute('hidden','');}})
|
||||
this.elem.ipsShow();}
|
||||
this.cleanContents()
|
||||
this.elem.querySelectorAll('section.cWidgetContainer').forEach(element=>{if(!element.dataset.controller?.split(',').includes('core.front.widgets.area')){element.dataset.controller=[(element.dataset.controller||''),'core.front.widgets.area'].filter(i=>!!i).join(',')}})
|
||||
try{$(document).trigger('contentChange',[$(this.elem)])}catch(e){Debug.error(e)}}}},cleanContents(){this.elem.querySelectorAll('.cWidgetContainer .ipsWidget__content--wrap > :is(.ipsWidgetBlank, .cSidebarBlock_managing), .cWidgetContainer__menu_region').forEach(el=>el.remove())
|
||||
const classesToRemove=['cWidgetContainer_managing','cWidgetContainer--menu_open','cWidgetContainer--dragLeft','cWidgetContainer--dragRight','cWidgetContainer--dragAbove','cWidgetContainer--dragBelow','cWidgetContainer--dragInside','cWidgetContainer--editable']
|
||||
const query=`:is(${classesToRemove.map(token => `.${token}`).join(', ')})`;[this.elem,...this.elem.querySelectorAll(query)].forEach(el=>{for(const token of classesToRemove){el.classList.remove(token)}})},});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.widgets.block',{_orientation:'',_blockID:'',initialize(){this._blockID=this.scope.attr('data-blockID');this._orientation=this.scope.closest('[data-role="widgetReceiver"]').attr('data-orientation');this.on('reloadContents.sidebar',this.reloadContent);$(document).on('markAllRead',_.bind(this.markAllRead,this));},async reloadContent(){this._setLoading(true);try{const pageID=ips.getSetting('pageID')
|
||||
const data={app:pageID?'cms':'core',module:pageID?'pages':'system',controller:pageID?'builder':'widgets',do:'getBlock',blockID:this._blockID,orientation:this._orientation}
|
||||
Object.assign(data,pageID?{pageID}:{pageArea:this.elem.closest('[data-widgetArea]').dataset.widgetarea,pageApp:document.body.dataset.pageapp,pageModule:document.body.dataset.pagemodule,pageController:document.body.dataset.pagecontroller,})
|
||||
const response=await ips.fetch(ips.getSetting('baseURL'),{method:'GET',data});this.scope.hide().html(response.html);if('devices'in response&&Array.isArray(response.devices)){this.resetResponsiveClasses(response.devices);}
|
||||
ips.utils.anim.go('fadeIn',this.scope);this.trigger('loadedWidget.widgets',{blockID:this._blockID});}catch(e){this.scope.html('Error');}
|
||||
this._setLoading(false);},resetResponsiveClasses(deviceList){this.scope.removeClass('ipsResponsive_hidePhone').removeClass('ipsResponsive_hideDesktop').removeClass('ipsResponsive_hideTablet');for(const value of["Phone","Tablet","Desktop"].filter(i=>!deviceList.includes(i))){this.scope.addClass('ipsResponsive_hide'+value);}},markAllRead(){this.scope.find('[data-ips-unread]').removeAttr('data-ips-unread');},_setLoading(status){if(status){this.scope.html('').addClass('ipsLoading cSidebarBlock_loading');}else{this.scope.removeClass('ipsLoading cSidebarBlock_loading');}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.front.widgets.carouselControls',{initialize(){if(this.elem.closest('.pageBuilderRoot')||!this.getCarousel()){return;}
|
||||
this._area=undefined;this.setupCarousel();},_area:undefined,getCarousel(){if(this._area===undefined){const container=this.elem.closest('.cWidgetContainer');if(!container?.classList.contains('cWidgetContainer--carousel')){this._area=null;}else{this._area=container;}}
|
||||
return this._area;},_carouselIndicator:undefined,_isScrolling:false,_actualCarouselIndex:0,getCarouselOffset(){const children=this.getCarousel().querySelectorAll(':scope > .cWidgetContainer:not([hidden])');if(this._isScrolling){return[this._actualCarouselIndex,children.length,children];}
|
||||
const box=this.getCarousel().getBoundingClientRect();let index;for(index=0;index<children.length;index++){if(children[index].getBoundingClientRect().left>=(box.left-10)){return[index,children.length,children];}}
|
||||
return[children.length-1,children.length,children];},getCarouselIndicator(){if(this._carouselIndicator===undefined){this._carouselIndicator=this.elem.querySelector(`.cWidgetContainer__carousel-indicator`);}
|
||||
return this._carouselIndicator;},updateCarouselIndicator(){const indicator=this.getCarouselIndicator();if(!indicator){Debug.warn(`Couldn't find a carousel indicator for a carousel`);return;}
|
||||
let[index,total]=this.getCarouselOffset();index=Math.min(index,this.getPageCount());total=Math.min(total,this.getPageCount());indicator.innerHTML=this.shouldUseCarouselLinks()?`<a href="#${this.getCarouselHref(index)}">${index + 1}/${total}</a>`:`${index + 1}/${total}`;this.elem.querySelectorAll('button').forEach(el=>total<=1?el.setAttribute('disabled',''):el.removeAttribute('disabled'));},carouselScroll(e){const button=e.target?.closest?.(`[data-carousel-arrow]`);if(!button){return;}
|
||||
const[index,total,children]=this.getCarouselOffset();const dir=button.dataset.carouselArrow||'next';const box=this.getCarousel().getBoundingClientRect();const atEnd=dir!=='prev'&&((index===total-1)||(children[total-1].getBoundingClientRect().right<=box.right-5));const toIndex=((dir==='prev'&&index===0)?(total-1):(atEnd?0:index+(dir==='prev'?-1:1)))%total;const childBox=children[toIndex].getBoundingClientRect();const scrollAmount=(toIndex===total-1?childBox.right:childBox.left)-box.left;this._isScrolling=true;this._actualCarouselIndex=toIndex;children.forEach(child=>child.style.scrollSnapStop="normal")
|
||||
this.getCarousel().scrollTo({left:this.getCarousel().scrollLeft+scrollAmount,behavior:"smooth"});this.updateCarouselIndicator();},carouselScrollEnd(){this._isScrolling=false;const children=this.getCarousel().querySelectorAll(":scope > .cWidgetContainer:not([hidden])");children.forEach(child=>child.style.scrollSnapStop="")
|
||||
this.updateCarouselIndicator();},getCarouselHref(idx){if(this.shouldUseCarouselLinks()){return`carouselwidget_${this.getCarousel().dataset.widgetarea}_${this.getCarousel().dataset.widgetAreaId}_${idx + 1}`;}
|
||||
return'';},shouldUseCarouselLinks(){return!!(this.getCarousel().dataset.widgetAreaId&&this.getCarousel().dataset.widgetarea);},setupCarousel(){if(!(this.getCarousel()instanceof Element)||this.getCarousel().closest('body')!==document.body||!this.getCarousel().classList.contains('cWidgetContainer--carousel')||!this.getCarousel().querySelector(`:scope > .cWidgetContainer`)||(this.getCarousel().querySelectorAll(`:scope > .cWidgetContainer`).length===1&&this.getCarousel().querySelector(`:scope > .cWidgetContainer`).getBoundingClientRect().width>=this.elem.getBoundingClientRect().width)){this.elem.ipsHide();return;}
|
||||
this.elem.ipsShow();const buttonContainer=this.elem;buttonContainer.querySelectorAll('[data-carousel-arrow]').forEach(button=>button.addEventListener('click',e=>this.carouselScroll(e)));if('onscrollend'in this.getCarousel()){this.getCarousel().addEventListener('scrollend',()=>this.carouselScrollEnd(),{capture:true});}else{this.getCarousel().addEventListener('scroll',_.debounce(()=>this.carouselScrollEnd(),200),{capture:true});}
|
||||
this.updateCarouselIndicator();if(this.shouldUseCarouselLinks()&&window.location.hash){const[_,total,children]=this.getCarouselOffset();for(let i=0;i<total;i++){const hash=this.getCarouselHref(i);if(hash&&window.location.hash===`#${hash}`){this._actualCarouselIndex=i;this._isScrolling=true;children[i].scrollIntoView({behavior:"instant",block:"start",inline:"start"});break;}}}
|
||||
this.setupObserver();},getPageCount(){const box=this.getCarousel()?.getBoundingClientRect();if(!box){return 1;}
|
||||
const children=this.getCarousel().querySelectorAll(`:scope > .cWidgetContainer:not([hidden])`);if(children.length<2){return 1;}
|
||||
let basePages=Math.ceil(Math.abs(children[children.length-1].getBoundingClientRect().right-children[0].getBoundingClientRect().left)/box.width);if(children.length>2&&(children[children.length-1].getBoundingClientRect().right-children[children.length-2].getBoundingClientRect().left)>box.width){basePages++;}
|
||||
return basePages;},setupObserver(){if(this._observer){this._observer.disconnect();}
|
||||
if(this.getCarousel()instanceof HTMLElement){this._observer=new ResizeObserver(_.debounce(()=>this.updateCarouselIndicator()));this._observer.observe(this.getCarousel());}}});}(jQuery,_));;
|
||||
;(function($,_){"use strict";let pageLoadTime;setTimeout(()=>pageLoadTime=Date.now());let state='unloaded';const whenLoadedCallbacks=[];function whenLoaded(){return new Promise(resolve=>{if(state==='loaded'){resolve();return;}
|
||||
whenLoadedCallbacks.push(resolve);if(state==='unloaded'){ips.loader.get(['core/front/controllers/widgets/ips.widgets.block.js']).then(async()=>{if(!window.ips.utils.pagebuilder){const url=ips.getSetting('baseURL')+`/applications/core/interface/pagebuilder/manifest.json?v=${ips.getSetting('pagebuilderKey')}`
|
||||
const data=await ips.fetch(url)
|
||||
const toLoad=[];for(const key in data){if(data[key].file?.match(/\.css$/i)){const href=ips.getSetting('baseURL')+'/applications/core/interface/pagebuilder/'+data[key].file
|
||||
if(!document.querySelector(`[href="${encodeURI(href)}"]`)){const style=document.createElement('link')
|
||||
style.rel='stylesheet'
|
||||
style.href=href
|
||||
document.head.appendChild(style)}}else if(data[key].isEntry){toLoad.push(ips.getSetting('baseURL')+'/applications/core/interface/pagebuilder/'+data[key].file)}}
|
||||
if(toLoad.length){await ips.loader.get(toLoad)}}
|
||||
state='loaded';while(whenLoadedCallbacks.length){whenLoadedCallbacks.shift()();}})
|
||||
state='loading';}})}
|
||||
ips.controller.register('core.front.widgets.manager',{_loadedManager:false,_loadingManager:false,_inManagingState:false,_wasUnused:false,initialize(){this.on('click','[data-action="openSidebar"]',this.openSidebarManager);this.on('click','[data-action="closeSidebar"]',this.closeSidebarManager);this._wasUnused=!!document.querySelector('.ipsLayout__secondary-column.ipsLayout__secondary-column--hide')||this._wasUnused;whenLoaded().then(()=>{if(ips.utils.url.getParam('_blockManager')){this.openSidebarManager();}});window.addEventListener('historychange',_.debounce((e)=>{if(ips.utils.history.getLastChangeType()!=='pagebuilder'&&e.detail?.type!=='pop'){return;}
|
||||
if(this._inManagingState&&!ips.utils.url.getParam('_blockManager')){this.closeSidebarManager()}else if(!this._inManagingState&&ips.utils.url.getParam('_blockManager')){this.openSidebarManager()}},50))},getSidebar(){return this.elem.querySelector('#elSidebarManager');},setupSearch(){for(const group of this.getSidebar()?.querySelectorAll("[data-role='block_group']")||[]){let widgetsFound=group.querySelectorAll('[data-blockid][data-blocktitle]');if(widgetsFound&&widgetsFound.length){for(const block of widgetsFound){ips.utils.search.addTerm('widgets',block.dataset.blocktitle,[block.dataset.blockid]);if(block.dataset.searchterms){block.dataset.searchterms.split(',').forEach(term=>{ips.utils.search.addTerm('widgets',term,[block.dataset.blockid]);});}}}}
|
||||
this.getSearchBar().addEventListener('input',e=>{const value=e.target.value;const widgetIds=ips.utils.search.search('widgets',value);if(!widgetIds.size){this.getSidebar().querySelector('[data-role="emptyMessage"]').removeAttribute('hidden');this.getSidebar().querySelector('[data-role="availableBlocks"]').setAttribute('hidden','');}else{this.getSidebar().querySelector('[data-role="emptyMessage"]').setAttribute('hidden','');this.getSidebar().querySelector('[data-role="availableBlocks"]').removeAttribute('hidden');this.getSidebar()?.querySelectorAll('[data-role=block_group]').forEach(group=>{if('favorites'in group.dataset){if(value.trim()||!group.querySelector('[data-blockid][data-blocktitle]')){group.setAttribute('hidden','');}else{group.removeAttribute('hidden');}
|
||||
return;}
|
||||
const blocks=group.querySelectorAll('[data-blockid][data-blocktitle]');let groupHasVisibleBlocks=(!value.trim()&&"showWhenEmpty"in group.dataset);blocks.forEach(block=>{if(!value.trim()||widgetIds.has(block.dataset.blockid)){groupHasVisibleBlocks=true;block.removeAttribute('hidden');}else{block.setAttribute('hidden','');}});if(!groupHasVisibleBlocks){group.setAttribute('hidden','');}else{group.removeAttribute('hidden');}})}})},sidebarSetup:false,setupFavorites(){if(!this.sidebarSetup){this.getSidebar().addEventListener('click',e=>{const indicator=e.target.closest('[data-blockid] [data-role="favorite-indicator"]');if(indicator){this.toggleFavorite(indicator);}});}
|
||||
this.getSidebar().querySelectorAll(`[data-role="favorite-indicator"]`).forEach(indicator=>{if('isFavorite'in indicator.dataset){indicator.title=ips.getString('cSidebarBlock_unset-favorite')}else{indicator.title=ips.getString('cSidebarBlock_set-favorite')}});this.sidebarSetup=true;},async toggleFavorite(indicator){const block=indicator.closest('[data-blockid]');const blockID=block.dataset.blockid;const isFavorite="isFavorite"in indicator.dataset;const favoriteGroup=this.getSidebar().querySelector('[data-favorites]');const favoriteList=favoriteGroup.querySelector('ul');if(!isFavorite){if(!favoriteList.querySelector(`[data-blockid="${blockID}"]`)){const clone=block.cloneNode(true);clone.querySelector(`[data-role="favorite-indicator"]`).dataset.isFavorite='';clone.querySelector(`[data-role="favorite-indicator"]`).title=ips.getString('cSidebarBlock_unset-favorite');this._setupDraggingOnItem(clone);favoriteList.appendChild(clone);favoriteGroup.removeAttribute('hidden');}}else{favoriteList.querySelectorAll(`[data-blockid="${blockID}"]`).forEach(itemInFavorites=>{itemInFavorites.remove();});if(!favoriteGroup.querySelectorAll(`[data-blockid]`).length){favoriteGroup.setAttribute('hidden','');}}
|
||||
this.getSidebar().querySelectorAll(`[data-blockid="${blockID}"] [data-role="favorite-indicator"]`).forEach(indicator=>{if(isFavorite){delete indicator.dataset.isFavorite;indicator.title=ips.getString('cSidebarBlock_set-favorite');}else{indicator.dataset.isFavorite="";indicator.title=ips.getString('cSidebarBlock_unset-favorite');}});try{await ips.fetch(ips.getSetting('baseURL'),{method:"get",data:{app:'core',module:'system',controller:'widgets',do:isFavorite?"removeFavorite":"addFavorite",blockID:blockID.split('_',3).pop()}});}catch(e){ips.ui.alert.show({"message":"Something went wrong, the favorites may not have been saved"});}},getSearchBar(){return this.elem.querySelector('input[data-role="widgetSearch"]');},async openSidebarManager(e){const userMenu=document.querySelector('#ipsMenu_elUserLink_menu');$(userMenu).trigger("closeMenu",true);e?.preventDefault();await whenLoaded();if(this._inManagingState){return}
|
||||
document.querySelectorAll('.ipsTableOfContents__linkOptions').forEach(el=>el.dispatchEvent(new CustomEvent('remove')));if(!this.elem.querySelector('[data-role="manager"]')){this._buildSidebar();}else{this.elem.querySelectorAll('#elSidebarManager .ipsToolbox__tools').forEach(elem=>Object.assign(elem.style,{overflow:'',position:'',top:''}));}
|
||||
this.triggerOn('core.front.widgets.area','managingStarted.widgets');this._showManager();if(!window.location.search.includes('_blockManager')){let anchor=window.location.href.match(/(#.*)$/)?.[1]||''
|
||||
let url=window.location.href.replaceAll(/#.*$|\b_blockManager=1?\b/g,'')
|
||||
url+=url.includes('?')?'&_blockManager=1':'?_blockManager=1'
|
||||
url+=anchor
|
||||
ips.utils.history.pushState({artificial:true},'pagebuilder',url)}
|
||||
this.scope.addClass('cWidgetsManaging');},closeSidebarManager(e){e?.preventDefault();if(this._inManagingState){this.scope.removeClass('cWidgetsManaging');this._hideManager();try{this.triggerOn('core.front.widgets.area','managingFinished.widgets');}catch(e){Debug.error(e);}
|
||||
if(ips.utils.url.getParam('_blockManager')){if(ips.utils.history.getState('pagebuilder').artificial){window.history.back()}
|
||||
setTimeout(()=>ips.utils.history.replaceState({},'pagebuilder',window.location.href.replace(/\?(.*?)&?_blockManager=[^&]*/,'?$1').replace(/[?&]+$/,'')))}}},_setUpDragging(){this.elem.querySelectorAll('[data-role="availableBlocks"] ul').forEach(list=>{list.style.zIndex=ips.ui.zIndex();list.querySelectorAll(':scope > .cSidebarManager_block').forEach(item=>this._setupDraggingOnItem(item));})},_setupDraggingOnItem(item){item.setAttribute('draggable','true');const wrapBehavior=item.dataset.widgetLayouts?.split(',')?.[0]?.trim()||'table'
|
||||
item.addEventListener('dragstart',function(e){e.stopPropagation();e.dataTransfer.clearData()
|
||||
e.dataTransfer.setData('application/x.ipsblock',JSON.stringify({blockID:e.target.dataset.blockid,blockTitle:e.target.dataset.blocktitle,allowReuse:e.target.dataset.allowreuse,config:!!e.target.dataset.blockconfig,blank:e.target.dataset.blockerrormessage,menustyle:e.target.dataset.menustyle,ipsWrapBehavior:wrapBehavior,}))})},async _showManager(){this.scope.find('#elSidebarManager').removeAttr('hidden');this._fadeUnmanagedRoots();if(!this._loadedManager&&!this._loadingManager){try{const response=await ips.fetch(ips.getSetting('baseURL')+'index.php?app=core&module=system&controller=widgets&do=getBlockList',{data:{pageApp:$('body').attr('data-pageApp')}})
|
||||
this._loadedManager=true;this.scope.find('[data-role="availableBlocks"]').html(response);this._setUpDragging();this.setupSearch();this.setupFavorites();try{$(document).trigger('contentChange',[$('#elSidebarManager')]);}catch(e){Debug.error(e);}
|
||||
document.dispatchEvent(new CustomEvent('ipsWidgetManagerLoaded',{bubbles:true,cancelable:true}))}catch(e){Debug.error(e)
|
||||
ips.ui.alert.show({type:'alert',icon:'warn',message:ips.getString('sidebar_fetch_blocks_error'),callbacks:{}});}
|
||||
this.scope.find('[data-role="availableBlocks"]').removeClass('ipsLoading ipsLoading_dark');this._loadingManager=false;}else{this._setUpDragging();this.setupSearch();this.setupFavorites();}
|
||||
this._inManagingState=true;},_hideManager(){this._unfadeUnmanagedRoots();this.scope.find('#elSidebarManager').attr('hidden',true);this._inManagingState=false;},_buildSidebar(){this.elem.innerHTML+=ips.templates.render('core.sidebar.managerWrapper');try{$(document).trigger('contentChange',[this.scope]);}catch(e){Debug.error(e);}},_getUnmanagedRoots(){const unmanagedRoots=new Set();const visitedNodes=new Set();const root=document.querySelector('[data-ips-hook="main"]');function bubbleUp(el){if(el===root){return;}
|
||||
if(visitedNodes.has(el)){return;}
|
||||
[...el.children].forEach(child=>{if(!child.matches('.pageBuilderRoot, .cWidgetContainer, :is(.pageBuilderRoot, .cWidgetContainer) *')&&!child.querySelector('.pageBuilderRoot, .cWidgetContainer')){unmanagedRoots.add(child);}});if(el.parentElement){bubbleUp(el.parentElement);}
|
||||
visitedNodes.add(el);}
|
||||
root.querySelectorAll('.cWidgetContainer--main, .cWidgetContainer:not(.cWidgetContainer *)').forEach(el=>{bubbleUp(el.parentElement);})
|
||||
return unmanagedRoots;},_fadeUnmanagedRoots(){this._getUnmanagedRoots().forEach(root=>{setTimeout(()=>{if(Date.now()-pageLoadTime>3000){root.classList.add('cWidgetsManaging__faded-root--animating');}
|
||||
root.classList.add('cWidgetsManaging__faded-root');Promise.all(root.getAnimations().map(animation=>animation.finished)).then(()=>root.classList.remove('cWidgetsManaging__faded-root--animating'));})})},_unfadeUnmanagedRoots(){document.querySelectorAll('.cWidgetsManaging__faded-root').forEach(root=>{root.classList.add('cWidgetsManaging__faded-root--animating');root.classList.remove('cWidgetsManaging__faded-root');Promise.all(root.getAnimations().map(animation=>animation.finished)).then(()=>root.classList.remove('cWidgetsManaging__faded-root--animating'));});}});}(jQuery,_));;
|
||||
;(function($,_){"use strict";ips.controller.register('core.front.widgets.sidebar',{initialize(){this.on('managingStarted.widgets',this.managingStarted);this.on('managingFinished.widgets',this.managingFinished);this.setup();},setup(){if(!CSS.supports("selector(a:has(b))")||ips.getSetting('sidebar_use_js_fallback')){Debug.log('using the js sidebar hide fallback')
|
||||
this._addConditionalClasses();this.on(window,'resize',this._addConditionalClasses);this.on('addConditionalClasses',this._addConditionalClasses)}},managingStarted(){this.scope.addClass('ipsLayout__secondary-column--managing');},managingFinished(){this.scope.trigger('addConditionalClasses');this.scope.removeClass('ipsLayout__secondary-column--managing');},_addConditionalClasses(){if(!this.scope.find('.cWidgetContainer--isWidget:visible [data-blockID]:not([hidden])').length&&!$('#elContextualTools').length&&!$('[data-role="sidebarAd"]').length&&!$('#cAnnouncementSidebar').length){this.scope.addClass('ipsLayout__secondary-column--hide');}else{this.scope.removeClass('ipsLayout__secondary-column--hide');}}});}(jQuery,_));;
|
||||
@@ -0,0 +1,105 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.2fa',{initialize:function(){this.on('tabShown',this.tabShown);this.on('tabChanged',this.tabChanged);this.setup();},setup:function(){this.scope.css({zIndex:ips.ui.zIndex()});$('body').append(this.scope);this.scope.find('input[type="text"]:visible').first().focus();},tabShown:function(e,data){this.scope.find('input[type="text"]:visible').first().focus();},tabChanged:function(e,data){if(data.tab){data.tab.find('input[name="mfa_method"]').prop('checked',true);}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.authyOneTouch',{initialize:function(){var scope=$(this.scope);setInterval(function(){ips.getAjax()(scope.closest('form').attr('action'),{data:{'onetouchCheck':scope.find('[data-role="onetouchCode"]').val()}}).done(function(response){if(response.status==1){scope.closest('form').submit();}});},3000);}});}(jQuery,_));;
|
||||
;(function($,undefined){"use strict";ips.controller.register('core.global.core.coverPhoto',{_image:null,_existingPosition:0,_tooltip:null,_expandedCover:false,_newPosition:0,_container:null,_editingPosScroll:0,_editingPosMouse:0,initialize:function(){var self=this;this.on('menuItemSelected',function(e,data){var button=$(data.originalEvent.target).closest('a[data-action]');switch($(button).attr('data-action')){case'removeCoverPhoto':self.removePhoto(data);break;case'positionCoverPhoto':self.positionPhoto(data.originalEvent);break;}});this.on('click','[data-action="savePosition"]',this.savePosition);this.on('click','[data-action="cancelPosition"]',this.cancelPosition);this.on('click','[data-action="toggleCoverPhoto"]',this.toggleCoverPhoto);this.setup();},setup:function(){this._image=this.scope.find('.ipsCoverPhoto__image');var doPosition=ips.utils.url.getParam('_position');if(doPosition!=undefined)this.positionPhoto();this.scope.find('a[data-action="positionCoverPhoto"]').parent().removeClass('ipsHide');},removePhoto:function(data){data.originalEvent.preventDefault();var self=this;var target=$(data.originalEvent.target).closest('[data-action="removeCoverPhoto"]');ips.ui.alert.show({type:'confirm',icon:'warn',message:ips.getString('confirmRemoveCover'),callbacks:{ok:function(){ips.getAjax()($(target).attr('href')+'&wasConfirmed=1').done(function(){ips.utils.anim.go('fadeOut',self._image).done(function(){ips.ui.flashMsg.show(ips.getString('removeCoverDone'));});data.menuElem.find('[data-role="photoEditOption"]').hide();}).fail(function(err){window.location=$(target).attr('href');});}}});},savePosition:function(e){e.preventDefault();let newPos=((this._container.scrollTop/(this._container.scrollHeight-this._container.clientHeight))*100);newPos=newPos||0;this._newPosition=newPos;this.scope.attr('data-coverOffset',this._newPosition);this.scope.css({'--offset':this._newPosition});ips.getAjax()(this.scope.attr('data-url')+'&do=coverPhotoPosition'+'&offset='+this._newPosition).fail(function(err){this.scope.attr('data-url')+'&do=coverPhotoPosition'+'&offset='+this._newPosition;});this._resetImage();},cancelPosition:function(e){e.preventDefault();this._resetImage();},positionPhoto:function(e){if(e!=undefined)e.preventDefault();this.scope.addClass('ipsCoverPhoto--editing');this._existingPosition=parseInt(this.scope.attr('data-coveroffset'))||0;this._container=this.scope.find('.ipsCoverPhoto__container')[0];this._mouseDownHandler=this._mouseDownHandler.bind(this);this._container.addEventListener('mousedown',this._mouseDownHandler);this._mouseUpHandler=this._mouseUpHandler.bind(this);this._container.addEventListener('mouseup',this._mouseUpHandler);this._mouseOutHandler=this._mouseOutHandler.bind(this);this._container.addEventListener('mouseout',this._mouseOutHandler);this._container.scrollTop=(this._container.scrollHeight-this._container.clientHeight)*(this._existingPosition/100);this.scope.find('.ipsCoverPhoto__container').after(ips.templates.render('core.coverPhoto.controls'));this._showTooltip();},_mouseDownHandler:function(e){e.preventDefault();this._editingPosMouse=e.clientY;this._editingPosScroll=this._container.scrollTop;this._mouseMoveHandler=this._mouseMoveHandler.bind(this);this._container.addEventListener('mousemove',this._mouseMoveHandler);},_mouseMoveHandler:function(e){let dy=(e.clientY-this._editingPosMouse)*2.3;this._container.scrollTop=this._editingPosScroll-dy;},_mouseUpHandler:function(e){this._container.removeEventListener('mousemove',this._mouseMoveHandler);},_mouseOutHandler:function(e){this._container.removeEventListener('mousemove',this._mouseMoveHandler);},_resetImage:function(){this._container.removeEventListener('mousedown',this._mouseDownHandler);this.scope.removeClass('ipsCoverPhoto--editing');this.scope.find('[data-role="reposition"]').remove();this.scope.find('[data-role="coverPhotoControls"]').remove();this._hideTooltip();ips.utils.history.pushState({},'core.global.core.coverPhoto',ips.utils.url.removeParam('csrfKey',this.scope.attr('data-url')));},_showTooltip:function(msg){if(!this._tooltip){this._buildTooltip();}
|
||||
this._tooltip.hide().text(ips.getString('dragCoverPhoto'));this._positionTooltip();},_hideTooltip:function(){if(this._tooltip&&this._tooltip.is(':visible')){ips.utils.anim.go('fadeOut',this._tooltip);}},_positionTooltip:function(){var positionInfo={trigger:this.scope.find('.ipsCoverPhoto__container'),target:this._tooltip,center:true,above:true};var tooltipPosition=ips.utils.position.positionElem(positionInfo);this._tooltip.css({left:tooltipPosition.left+'px',top:tooltipPosition.top+'px',position:(tooltipPosition.fixed)?'fixed':'absolute',zIndex:ips.ui.zIndex()});if(tooltipPosition.location.vertical=='top'){this._tooltip.addClass('ipsTooltip_top');}else{this._tooltip.addClass('ipsTooltip_bottom');}
|
||||
this._tooltip.show();},_buildTooltip:function(){var tooltipHTML=ips.templates.render('core.tooltip',{id:'elCoverPhotoTooltip'});ips.getContainer().append(tooltipHTML);this._tooltip=$('#elCoverPhotoTooltip');},toggleCoverPhoto:function(){if(this._expandedCover==false){let naturalImage=this.scope.find('.ipsCoverPhoto__image')[0],ratio=naturalImage.naturalWidth/naturalImage.naturalHeight;this.scope.find('.ipsCoverPhoto__container').css("--coverPhoto--ratio",ratio);this._expandedCover=true;this.scope.addClass('ipsCoverPhoto--expanded');}else{this._expandedCover=false;this.scope.removeClass('ipsCoverPhoto--expanded');}},});}(jQuery));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.cropper',{_image:null,_coords:{},initialize:function(){this.setup();},setup:function(){var self=this;this._image=this.scope.find('[data-role="profilePhoto"]');this._coords={topLeftX:this.scope.find('[data-role="topLeftX"]'),topLeftY:this.scope.find('[data-role="topLeftY"]'),bottomRightX:this.scope.find('[data-role="bottomRightX"]'),bottomRightY:this.scope.find('[data-role="bottomRightY"]'),};this._image.css({maxWidth:'100%'});ips.loader.get(['core/interface/cropper/cropper.min.js']).then(function(){self._image.imagesLoaded(_.bind(self._startCropper,self));});},_startCropper:function(){var self=this;var width=this._image.width();var height=this._image.height();this._image.closest('[data-role="cropper"]').css({width:width+'px',height:height+'px'});var cropper=new Cropper(this._image.get(0),{aspectRatio:1/1,autoCropArea:0.9,responsive:true,zoomOnWheel:false,crop:function(e){self._coords.topLeftX.val(e.detail.x);self._coords.topLeftY.val(e.detail.y);self._coords.bottomRightX.val(e.detail.width+e.detail.x);self._coords.bottomRightY.val(e.detail.height+e.detail.y);}});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.datetime',{initialize:function(){this.setup();},setup:function(){var formatObject={format:$(this.scope).attr('data-format')};var localeTimeFormat=ips.utils.time.localeTimeFormat($('html').attr('lang'));if(localeTimeFormat.meridiem){formatObject.meridiem=localeTimeFormat.meridiem;}
|
||||
$(this.scope).text(ips.utils.time.formatTime(new Date($(this.scope).attr('data-time')),formatObject));}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.embeddedvideo',{initialize:function(){var video=this.scope.get(0);var canPlay=false;this.scope.find('source').each(function(){if(video.canPlayType($(this).attr('type'))){canPlay=true;}});if(!canPlay){if(this.scope.find('embed').length){this.scope.replaceWith(this.scope.find('embed'));}else{this.scope.replaceWith($(this.scope).find('a'));}}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.framebust',{initialize:function(){if(top!=self){$(this.scope).html('');}}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.genericTable',{_curSearchValue:'',_urlParams:{},_baseURL:'',_searchField:null,_timer:null,_currentValue:'',initialize:function(){this.on('paginationClicked paginationJump',this.paginationClicked);this.on('click','[data-action="tableFilter"]',this.changeFiltering);this.on('menuItemSelected','[data-role="tableFilterMenu"]',this.changeFilteringFromMenu);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('menuItemSelected','#elSortMenu',this.sortByMenu);this.on('menuItemSelected','#elOrderMenu',this.orderByMenu);this.on('refreshResults',this._getResults);this.on('buttonAction',this.buttonAction);this.on(window,'historychange:core.global.core.genericTable',this.stateChange);this.setup();},setup:function(){this._baseURL=this.scope.attr('data-baseurl');if(this.scope.attr('data-baseurl').match(/\?/)){this._baseURL+='&';}else{this._baseURL+='?';}
|
||||
this._searchField=this.scope.find('[data-role="tableSearch"]');var sort=this._getSortValue();this._urlParams={filter:this._getFilterValue()||'',sortby:sort.by||'',sortdirection:sort.order||'',quicksearch:this._getSearchValue()||'',page:ips.utils.url.getParam('page')||1};ips.utils.history.replaceState(this._urlParams,'core.global.core.genericTable',window.location.href);this.scope.find('[data-role="tableSearch"]').removeClass('ipsHide').show();},buttonAction:function(e,data){this._getResults();},sortByMenu:function(e,data){data.originalEvent.preventDefault();this._updateSort({by:data.selectedItemID});},orderByMenu:function(e,data){data.originalEvent.preventDefault();this._updateSort({order:data.selectedItemID});},stateChange:function(){const state={data:ips.utils.history.getState('core.global.core.genericTable'),url:window.location.href};if(state.data?.controller!=='genericTable'){return;}
|
||||
if(!_.isUndefined(state.data.filter)&&state.data.filter!==this._urlParams.filter){this._updateFilter(state.data.filter);}
|
||||
if((!_.isUndefined(state.data.sortby)&&!_.isUndefined(state.data.sortdirection))&&(state.data.sortby!==this._urlParams.sortby||state.data.sortdirection!==this._urlParams.sortdirection)){this._updateSort({by:state.data.sortby,order:state.data.sortdirection});}
|
||||
if(!_.isUndefined(state.data.quicksearch)&&state.data.quicksearch!==this._urlParams.quicksearch){this._updateSearch(state.data.quicksearch);}
|
||||
if(!_.isUndefined(state.data.page)&&state.data.page!==this._urlParams.page){this._updatePage(state.data.page);}
|
||||
this._urlParams=state.data;this._getResults();},updateURL:function(newParams){_.extend(this._urlParams,newParams);const tmpStateData=_.extend(_.clone(this._urlParams),{controller:'genericTable'});const newUrlParams=this._getURL();if(newUrlParams.match(/page=\d/)){this._baseURL=this._baseURL.replace(/page=\d+?(&|\s)/,'');}
|
||||
let newUrl=this._baseURL+newUrlParams;if(newUrl.endsWith('?')){newUrl=newUrl.substring(0,newUrl.length-1);}
|
||||
ips.utils.history.pushState(tmpStateData,'core.global.core.genericTable',newUrl);},_getURL:function(){var tmpUrlParams={};for(var i in this._urlParams){if(this._urlParams[i]!=''&&i!='controller'&&(i!='page'||(i=='page'&&this._urlParams[i]!=1))){tmpUrlParams[i]=this._urlParams[i];}}
|
||||
return $.param(tmpUrlParams);},paginationClicked:function(e,data){if(data.originalEvent){data.originalEvent.preventDefault();}
|
||||
if(data.pageNo!=this._urlParams.page){this.updateURL({page:data.pageNo});}},_updatePage:function(newPage){this.scope.find('[data-role="tablePagination"] [data-page]').removeClass('ipsPagination_pageActive').end().find('[data-page="'+newPage+'"]').addClass('ipsPagination_pageActive');},changeFiltering:function(e){e.preventDefault();var newFilter=$(e.currentTarget).attr('data-filter');this._updateFilter(newFilter);if(newFilter!=this._urlParams.filter){this.updateURL({filter:newFilter,page:1});}},changeFilteringFromMenu:function(e,data){var newFilter=$(data.originalEvent.target).closest('li').attr('data-filter');this._updateFilter(newFilter);if(newFilter!=this._urlParams.filter){this.updateURL({filter:newFilter,page:1});}},_updateFilter:function(newFilter){this.scope.find('[data-role="tableSortBar"] [data-action="tableFilter"] a').removeClass('ipsButtonRow_active').end().find('[data-action="tableFilter"][data-filter="'+newFilter+'"] a').addClass('ipsButtonRow_active');},startLiveSearch:function(e){this._timer=setInterval(_.bind(this._checkSearchValue,this),500);},endLiveSearch:function(e){clearInterval(this._timer);},_checkSearchValue:function(){var val=this._searchField.val();if(this._currentValue!=val){this.updateURL({quicksearch:val,page:1});this._currentValue=val;}},_updateSearch:function(searchValue){this._searchField.val(searchValue);},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._updateSort({by:cell.attr('data-key'),order:order});},_updateSort:function(data){var directions='ipsTable_sortableAsc ipsTable_sortableDesc';var current=this._getSortValue();if(!data.by){data.by=current.by;}
|
||||
if(!data.order){data.order=current.order;}
|
||||
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.updateURL({sortby:data.by,sortdirection:data.order,page:1});},_getResults:function(){var self=this;ips.getAjax()(this._baseURL+this._getURL()+'&'+this.scope.attr('data-resort')+'=1',{dataType:'json',showLoading:true}).done(function(response){self._updateTable(response);}).fail(function(jqXHR,textStatus,errorThrown){if(Debug.isEnabled()){Debug.error("Ajax request failed ("+status+"): "+errorThrown);Debug.error(jqXHR.responseText);}else{window.location=self._baseURL+self._getURL();}});},_updateTable:function(response){this.scope.find('[data-role="tableRows"]').html(response.rows);this.scope.find('[data-role="tablePagination"]').toggle((response.pagination&&response.pagination.trim()!=="")||!_.isUndefined(this.scope.find('[data-role="tablePagination"]').attr('data-showEmpty'))).html(response.pagination||"");$(document).trigger('contentChange',[this.scope]);},_getFilterValue:function(){var sortBar=this.scope.find('[data-role="tableSortBar"]');if(!sortBar.length){return'';}
|
||||
return sortBar.find('.ipsButtonRow_active').closest('[data-filter]').attr('data-filter');},_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};},_getSearchValue:function(){if(ips.utils.url.getParam('quicksearch')){return ips.utils.url.getParam('quicksearch');}
|
||||
return this.scope.find('[data-role="tableSearch"]').val();},_actionReplace:function(target,contents){var tr=$(target).closest('tr');var prevElem=tr.prev();tr.replaceWith(contents);$(document).trigger('contentChange',[prevElem.next()]);}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.googleAuth',{initialize:function(){this.on('click','[data-action="showManual"]',this.showManual);this.on('click','[data-action="showBarcode"]',this.showBarcode);var waitUntil=$(this.scope).attr('data-waitUntil');if(waitUntil>Math.floor(Date.now()/1000)){this.showWait();}},showManual:function(){this.scope.find('[data-role="barcode"]').hide();this.scope.find('[data-role="manual"]').show();},showBarcode:function(){this.scope.find('[data-role="barcode"]').show();this.scope.find('[data-role="manual"]').hide();},showWait:function(){this.scope.find('[data-role="codeWaiting"]').show();this.scope.find('[data-role="codeInput"]').hide();var waitUntil=$(this.scope).attr('data-waitUntil')*1000;var start=Date.now();var progressBar=$(this.scope).find('[data-role="codeWaitingProgress"]');var interval=setInterval(function(){if(Date.now()>=waitUntil){clearInterval(interval);this.showInput();}
|
||||
progressBar.css('width',((100-(100/(waitUntil-start)*(waitUntil-Date.now()))))+'%');}.bind(this),100);},showInput:function(){this.scope.find('[data-role="codeWaiting"]').hide();this.scope.find('[data-role="codeInput"]').show();this.scope.find('input').focus();}});}(jQuery,_));;
|
||||
;(function($,_){"use strict";ips.controller.register('ips.core.map.googlemap',{initialize(){let mapData=this.scope.data().mapData;if(typeof mapData==='string'){mapData=JSON.parse(mapData);}
|
||||
if('key'in mapData){this._mapData=mapData;ips.ui.map.afterGoogleMapsLoaded(()=>this.setupGoogleMaps())}},setupGoogleMaps(){let position={lat:this._mapData.lat,lng:this._mapData.long};let elem=this.scope.find('[data-role="mapContainer"]').get(0);let maptype='ROADMAP';if(this._mapData.maptype&&window.google.maps.MapTypeId[this._mapData.maptype.toUpperCase()]){maptype=this._mapData.maptype.toUpperCase();}
|
||||
let map=new window.google.maps.Map(elem,{center:position,zoom:this._mapData.zoom?this._mapData.zoom*8:15,scale:this._mapData.scale||undefined,mapTypeId:window.google.maps.MapTypeId[maptype.toUpperCase()]});let marker=new window.google.maps.Marker({position,map});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.licenseRenewal',{initialize:function(){this.on('click','[data-action="notNow"]',this.renewalPrompt);this.on(document,'click','[data-action="closeLicenseRenewal"]',this.close);},renewalPrompt:function(e){e.preventDefault();this._modal=ips.ui.getModal();if(!$('body').find('[data-role="licenseRenewal"]').length){$('body').append(ips.templates.render('licenseRenewal.wrapper'));}
|
||||
this._container=$('body').find('[data-role="licenseRenewal"]').css({opacity:"0.001",transform:"scale(0.8)"});$('body').find('[data-role="survey"]').attr('href',$(this.scope).attr('data-surveyUrl'));this._modal.css({zIndex:ips.ui.zIndex()});var self=this;setTimeout(function(){self._container.css({zIndex:ips.ui.zIndex()});self._container.animate({opacity:"1",transform:"scale(1)"},'fast');},500);ips.utils.anim.go('fadeIn',this._modal);},close:function(e){if($('body').find('[data-role="licenseRenewal"]').find('input[type=checkbox][name=hideRenewalNotice]').is(':checked')){var notification=$(this.scope).closest('.cNotification,.cAcpNotificationBanner');ips.getAjax()($(this.scope).find('[data-action="notNow"]').attr('href')).done(function(response){ips.utils.anim.go('fadeOut',notification);if(!notification.closest('.cNotificationList').children().count){ips.utils.anim.go('fadeIn',notification.closest('.cNotificationList').find('[data-role="empty"]').removeClass('ipsHide'));}
|
||||
$('body').trigger('updateNotificationCount');});}
|
||||
$('body').find('[data-role="licenseRenewal"]').animate({transform:"scale(0.7)",opacity:"0"},'fast');ips.utils.anim.go('fadeOut',this._modal);}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.multipleRedirect',{_iterator:0,initialize:function(){var self=this;this.setup();},setup:function(){this.scope.find('.ipsRedirect').removeClass('ipsHide');$('.ipsRedirect_manualButton').hide();this.step(this.scope.attr('data-url')+'&mr=0&_mrReset=1');},step:function(url){this._iterator++;var elem=this.scope;var self=this;ips.getAjax()(url).done(function(response){if(_.isObject(response)&&response.custom){var originalContent=$(elem.html()).removeClass('ipsHide');var newContent=elem.html(response.custom);newContent.find('[data-action="redirectContinue"]').click(function(e){e.preventDefault();elem.html(originalContent);self.step($(this).attr('href'));});$(document).trigger('contentChange',[elem]);return;}
|
||||
if(_.isObject(response)&&response.redirect){window.location=response.redirect;return;}
|
||||
elem.find('[data-loading-text]').attr('data-loading-text',response[1]);if(response[2]&&response[2]<100){elem.find('[data-role="progressBarContainer"]').removeClass('ipsHide');elem.find('[data-role="loadingIcon"]').addClass('ipsHide');elem.find('[data-role="progressBar"]').css({width:(response[2]+'%')}).attr('data-progress',+(Math.round(response[2]+"e+2")+"e-2")+'%');}else{elem.find('[data-role="progressBarContainer"]').addClass('ipsHide');elem.find('[data-role="loadingIcon"]').removeClass('ipsHide');elem.find('[data-role="progressBar"]').removeAttr('data-progress');}
|
||||
var newurl=elem.attr('data-url')+'&mr='+self._iterator;if(response.done&&response.done==true){window.location=newurl;}else if(response.close&&response.close==true){self.trigger('closeDialog');}else{self.step(newurl);}}).fail(function(err){window.location=url;});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.notificationList',{initialize:function(){this.on('click','[data-action="dismiss"]',this.dismiss);},dismiss:function(e){e.preventDefault();var notification=$(e.target).closest('[data-role="notificationBlock"],.cAcpNotificationBanner, .ipsMessage--acp');ips.ui.alert.show({type:'confirm',message:ips.getString('acp_notification_hide_confirm'),icon:'question',callbacks:{ok:function(){ips.getAjax()(notification.find('[data-action="dismiss"]').attr('href')).done(function(response){notification.hide();ips.utils.anim.go('fadeOut',notification).done(function(){if(!notification.closest('.cNotificationList').children('[data-role="notificationBlock"]:not(.cNotification_hidden)').length){ips.utils.anim.go('fadeIn',notification.closest('.cNotificationList').find('[data-role="empty"]').removeClass('ipsHide'));}});$('body').trigger('updateNotificationCount');});}}});}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.optionalAutocomplete',{_autoComplete:null,_closedTagging:false,initialize:function(){this.setup();this.on('click','[data-action="showAutocomplete"]',this.showAutocomplete);},setup:function(){this._autoComplete=this.scope.find('[data-ipsAutocomplete]');if(!_.isUndefined(this._autoComplete.attr('data-ipsAutocomplete-minimized'))){return;}
|
||||
var div=$('<div data-role="autoCompleteWrapper" />').html(this.scope.contents()).hide();this.scope.html(div);this.scope.append(ips.templates.render('core.autocomplete.optional',{langString:ips.getString(this._autoComplete.attr('data-ipsAutocomplete-lang'))}));this.scope.closest('.ipsFieldRow').find('.ipsFieldRow__label').hide();this._closedTagging=this._autoComplete.attr('data-ipsAutocomplete-freeChoice')==='false';},showAutocomplete:function(e){if(e){e.preventDefault();e.stopPropagation();}
|
||||
var self=this;var autoCompleteObj=ips.ui.autocomplete.getObj(this._autoComplete);this.scope.find('[data-action="showAutocomplete"]').hide();this.scope.find('[data-role="autoCompleteWrapper"]').show();this.scope.closest('.ipsFieldRow').find('.ipsFieldRow__label').show();setTimeout(function(){if(self._closedTagging){self.scope.find('[data-action="addToken"]').click();}else{autoCompleteObj.focus();}},100);}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.prefixedAutocomplete',{initialize:function(){this.setup();this.on('autoCompleteReady',this.autoCompleteReady);this.on('tokenAdded',this.tokensChanged);this.on('tokenDeleted',this.tokensChanged);this.on('menuItemSelected','[data-role="prefixButton"]',this.prefixSelected);this.scope.find('[data-ipsAutocomplete]').trigger('reissueReady');},setup:function(){this._prefixRow=this.scope.find('[data-role="prefixRow"]');this._prefixValue=this.scope.find('[data-role="prefixValue"]');this._prefixButton=this.scope.find('[data-role="prefixButton"]');this._prefixMenu=this.scope.find('[data-role="prefixMenu"]');},autoCompleteReady:function(e,data){var tokens=data.currentValues;if(this._prefixValue&&tokens.length){this._prefixMenu.html(this._buildTokenList(tokens,this._prefixValue.val()));this._prefixButton.find('span').html(this._getPrefixText(_.escape(this._prefixValue.val())));this._prefixRow.show();}},tokensChanged:function(e,data){if(data.totalTokens>0&&!this._prefixRow.is(':visible')){ips.utils.anim.go('fadeIn',this._prefixRow);}else if(data.totalTokens===0&&this._prefixRow.is(':visible')){ips.utils.anim.go('fadeOut',this._prefixRow);this._prefixRow.find('input[type="checkbox"]').prop('checked',false);}
|
||||
if(e&&e.type=='tokenDeleted'&&data.token==this._prefixValue.val()){this._prefixButton.find('span').html(ips.getString('selectPrefix'));this._prefixValue.val('');}
|
||||
var value=this._prefixValue.val();var list=this._buildTokenList(data.tokenList,value);this._prefixMenu.html(list);},prefixSelected:function(e,data){data.originalEvent.preventDefault();var itemValue=(data.selectedItemID=='-')?'':data.selectedItemID;var selectedText=this._getPrefixText(data.selectedItemID);this._prefixButton.find('span').html(selectedText);this._prefixValue.val(itemValue);this._prefixRow.find('input[type="checkbox"]').prop('checked',true);},_buildTokenList:function(tokens,value){var output='';output+=ips.templates.render('core.menus.menuItem',{value:'',title:ips.getString('selectedNone'),checked:(value=='')});output+=ips.templates.render('core.menus.menuSep');$.each(tokens,function(i,item){output+=ips.templates.render('core.menus.menuItem',{value:item,title:_.unescape(item),checked:(item==value)});});Debug.log(output);return output;},_getPrefixText:function(prefix){var selectedText='';if(prefix&&prefix!='-'){selectedText=ips.getString('selectedPrefix',{tag:prefix});}else{selectedText=ips.getString('selectedPrefix',{tag:ips.getString('selectedNone')});}
|
||||
return selectedText;}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.table',{_urlParams:{},_baseURL:'',_otherParams:[],_pageParam:'page',_updateURL:true,_currentPage:1,_seoPagination:false,_initialURL:'',_ajax:null,initialize:function(){this.on('paginationClicked paginationJump',this.paginationClicked);this.on('refreshResults',this.refreshResults);this.on('buttonAction',this.buttonAction);this.on('click','[data-action="tableFilter"]',this.changeFiltering);this.on('menuItemSelected','[data-role="tableFilterMenu"]',this.changeFilteringFromMenu);this.on('click','tr[data-tableClickTarget]',this.rowClick);this.setup();},setup:function(){if(this.scope.attr('data-pageParam')&&this.scope.attr('data-pageParam')!='page'){this._pageParam=this.scope.attr('data-pageParam');}
|
||||
this._otherParams.push(this._pageParam);this._baseURL=this.scope.attr('data-baseurl');const safeURL=[...(new TextEncoder()).encode(this.scope.attr('data-baseurl')?ips.utils.url.pageParamToPath(this._cleanUpURL(this.scope.attr('data-baseurl')),this._pageParam,1):'')].map(char=>String.fromCodePoint(char)).join('');this._stateKey=`table${btoa(safeURL)}`;this._originalBaseURL=this._baseURL;this._currentPage=ips.utils.url.getPageNumber(this._pageParam,window.location.href);this._cleanUpBaseURL();if(this._baseURL.match(/\?/)){if(this._baseURL.slice(-1)!='?'){this._baseURL+='&';}}else{this._baseURL+='?';}
|
||||
this._urlParams=this._getUrlParams();this._urlParams[this._pageParam]=parseInt(this._currentPage);this._initialURL=window.location.href;if(this.scope.closest('[data-disableTableUpdates]').length){this._updateURL=false;}
|
||||
if(!(this._stateKey in ips.utils.history.getState())){ips.utils.history.replaceState({...this._urlParams,controller:this.controllerID},this._stateKey,window.location.href);}
|
||||
this.on(window,`historychange:${this._stateKey}`,this.stateChange);try{if(IpsDataLayerConfig&&!window.IpsDataLayerConfig){this.scope.find('[data-role="tablePagination"] [data-page]').click(function(e){let target=e.currentTarget;if(target.parentNode.classList.contains('ipsPagination_active')){return;}
|
||||
let page=Number(e.currentTarget.dataset['page']);if(isNaN(page))return;$('body').trigger('ipsDataLayerProperties',{_properties:{page_number:page}});});}}catch(e){}},stateChange(e){if(e.detail?.type==='replace'){return}
|
||||
const data={...this._urlParams,...(ips.utils.history.getState(this._stateKey)||{})}
|
||||
if(!Object.keys(this._filterParamsForChanges(data)).length){return;}
|
||||
e.stopImmediatePropagation?.()
|
||||
e.stopPropagation?.()
|
||||
this._handleStateChanges({data,url:window.location.href,title:document.title});this._urlParams={...data}
|
||||
delete this._urlParams.bypassStateAdjustment
|
||||
if(data.bypassStateAdjustment){return;}
|
||||
this._getResults();},buttonAction:function(){this._getResults();},refreshResults:function(){this._getResults();},_filterParamsForChanges(params){const out={};for(const k in params){if(['controller'].includes(k)){continue}
|
||||
if(!(params[k]||this._urlParams[k])){continue;}
|
||||
if(k===this._pageParam&&parseInt(params[k])!==parseInt(this._urlParams[k])){out[this._pageParam]=parseInt(params[k])}else if(params[k]!=this._urlParams[k]){out[k]=params[k]}}
|
||||
return out;},updateURL(newParams){newParams=this._filterParamsForChanges(newParams)
|
||||
if(!Object.keys(newParams).length){return;}
|
||||
const tmpStateData={...this._urlParams,...newParams,controller:this.controllerID};let newUrl=(this._baseURL+this._getURL(tmpStateData)).replace(/^([^?]*)?$/,'$1').replace(/&$/,'');if(this._seoPagination){newUrl=ips.utils.url.pageParamToPath(newUrl,this._pageParam,newParams[this._pageParam]);}
|
||||
ips.utils.history.pushState(tmpStateData,this._stateKey,newUrl);},paginationClicked(e,data){e.stopPropagation?.();e.stopImmediatePropagation?.();data.originalEvent?.preventDefault()
|
||||
this._seoPagination=data.seoPagination;this.updateURL({[this._pageParam]:parseInt(data.pageNo)});},changeFiltering(e){e.preventDefault();this.updateURL({filter:$(e.currentTarget).attr('data-filter'),[this._pageParam]:1});},_updateFilter(newFilter){},_updateSort(data){},_updatePage(newPage){if(newPage===this._currentPage){return;}
|
||||
const boundingBox=this.scope.get(0).getBoundingClientRect();let padding=parseInt(ips.getSetting('tableScrollTopPadding'));if(!Number.isInteger(padding)){padding=30;}
|
||||
if(boundingBox.top<padding){window.scrollBy({top:boundingBox.top-padding,behavior:'smooth'});}
|
||||
this._currentPage=newPage;},changeFilteringFromMenu(e,data){data.originalEvent?.preventDefault();if(!('selectedItemID'in data)){return;}
|
||||
this.updateURL({filter:data.selectedItemID,[this._pageParam]:1});},_cleanUpURL(url){const urlObj=ips.utils.url.getURIObject(url);const params=_.clone(urlObj.queryKey);url=urlObj.protocol+'://'+urlObj.host+(urlObj.port?(':'+urlObj.port):'')+urlObj.path+'?';if(urlObj.file==='index.php'){let hasFURL=false;for(const key of Object.keys(params)){if(key.startsWith('/')){hasFURL=true;url+=encodeURIComponent(key).replace(/%2f/ig,'/');delete params[key];}}
|
||||
if(hasFURL){url+='&';}}
|
||||
for(const param of['sortby','sortdirection','filter',...this._otherParams]){delete params[param]}
|
||||
_.each(params,function(v,k){delete params[k];params[decodeURIComponent(k).replace(/\+/g,' ')]=v.replace(/\+/g,' ');});if(!_.isEmpty(params)){url+=decodeURIComponent($.param(params));}
|
||||
url=url.replace(/[?&]$/,'')
|
||||
return url;},_cleanUpBaseURL(){this._baseURL=this._cleanUpURL(this._baseURL);},_handleStateChanges(state){if('filter'in state.data&&state.data.filter!=this._urlParams.filter){this._updateFilter(state.data.filter);}
|
||||
for(const field of['sortby','sortdirection']){if(field in state.data&&state.data[field]!=this._urlParams[field]){this._updateSort({by:state.data.sortby,order:state.data.sortdirection})
|
||||
break;}}
|
||||
if(this._pageParam in state.data&&state.data[this._pageParam]!=this._urlParams[this._pageParam]){this._updatePage(parseInt(state.data[this._pageParam]))}},_getResults(forceURL){const urlBits=this._getURL();let url='';try{if(this._ajax&&_.isFunction(this._ajax.abort)){this._ajax.abort();this._ajax=null;}}catch(err){}
|
||||
if(forceURL){url=forceURL;}else{if(urlBits){url=this._baseURL+this._getURL()+'&';}else{url=this._baseURL;}
|
||||
if(this._seoPagination){url=ips.utils.url.pageParamToPath(url,this._pageParam,this._urlParams[this._pageParam]);}}
|
||||
if(this.scope.attr('data-resort')!==undefined){url+=`${url.includes('?') ? '&' : '?'}${this.scope.attr('data-resort')}=1`;}
|
||||
url=url.replaceAll(/\+/g,'%20');this._ajax=ips.getAjax()(url,{dataType:'json',showLoading:this._showLoading()}).done(response=>this._getResultsDone(response)).fail((jqXHR,textStatus,errorThrown)=>this._getResultsFail(jqXHR,textStatus,errorThrown,url)).always((...args)=>this._getResultsAlways(...args));},_showLoading(){return true;},_getResultsDone(response){this._updateTable(response);},_getResultsFail:function(jqXHR,textStatus,errorThrown,url){if(Debug.isEnabled()||textStatus=='abort'){Debug.error(`Ajax request to '${url}' failed (`+textStatus+"): "+errorThrown);Debug.error(jqXHR.responseText);}else{window.location=this._baseURL+this._getURL();}},_updateTable(response){const rows=this.scope.find('[data-role="tableRows"]');const pagination=this.scope.find('[data-role="tablePagination"]');const extra=this.scope.find('[data-role="extraHtml"]');const autoCheck=this.scope.find('[data-ipsAutoCheck]');if(!rows.length){const url=this._baseURL+this._getURL();if(url===window.location.href){window.location.reload();}else{window.location.href=url;}
|
||||
return;}
|
||||
ips.cleanContentsOf(rows)
|
||||
rows.html(response.rows).trigger('tableRowsUpdated');pagination.toggle((response.pagination&&response.pagination.trim()!=="")||!_.isUndefined(pagination.attr('data-showEmpty'))).html(response.pagination||"").trigger('tablePaginationUpdated');extra.html(response.extraHtml);autoCheck.trigger('refresh.autoCheck');this.scope.get(0).querySelectorAll(':scope > *').forEach(child=>$(document).trigger('contentChange',[$(child)]))
|
||||
try{if(IpsDataLayerConfig&&!window.IpsDataLayerConfig){this.scope.find('[data-role="tablePagination"] [data-page]').click(function(e){let target=e.currentTarget;if(target.parentNode.classList.contains('ipsPagination_active')){return;}
|
||||
let page=Number(e.currentTarget.dataset['page']);if(isNaN(page))return;$('body').trigger('ipsDataLayerProperties',{_properties:{page_number:page}});});}}catch(e){}},_getURL(params){params=params||this._urlParams
|
||||
const tmpUrlParams={};for(const i in params){if(['','controller','app','module','bypassState'].includes(i)||(i===this._pageParam&&parseInt(params[i])===1)||!params[i]){continue}
|
||||
tmpUrlParams[i]=params[i];}
|
||||
return $.param(tmpUrlParams);},_getUrlParams:function(){var sort=this._getSortValue();var obj={filter:this._getFilterValue()||'',sortby:sort.by||'',sortdirection:sort.order||'',};obj[this._pageParam]=ips.utils.url.getParam(this._pageParam)||1
|
||||
return obj;},rowClick:function(e){var target=$(e.target);if(target.is('a')||target.is('i')||target.is('input')||target.is('textarea')||target.is('code')||target.closest('a').length||target.closest('.ipsMenu').length){return;}
|
||||
if(e.which!==1&&e.which!==2){return;}
|
||||
if(e.altKey||e.shiftKey){return;}
|
||||
if(target.is('td')){var checkbox=target.find('input[type="checkbox"]');if(checkbox.length){checkbox.prop('checked',!checkbox.prop('checked'));return;}}
|
||||
var link=$(e.currentTarget).find('[data-ipscontrolstrip]').parent().find('[data-controlStrip-action="'+$(e.currentTarget).attr('data-tableClickTarget')+'"]');if(e.metaKey||e.ctrlKey||e.which==2){link.attr('target','_blank');link.get(0).click();link.attr('target','');}else{link.get(0).click();}},_getSortValue:$.noop,_getFilterValue:$.noop,_getResultsAlways:$.noop});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.updateBanner',{initialize:function(){this.on('click','[data-role="closeMessage"]',this.hideMessage);},hideMessage:function(){var date=new Date();date.setTime(date.getTime()+(7*86400000));ips.utils.cookie.set('updateBannerDismiss',true,date.toUTCString());this.scope.slideUp();}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.core.ftp',{initialize:function(){var scope=$(this.scope);scope.find('[data-role="portToggle"]').change(function(){scope.find('[data-role="portInput"]').val($(this).attr('data-port'));});scope.find('[data-role="serverInput"]').keyup(function(){var matches=$(this).val().match(/^((.+?):\/\/)?((.+?)(:(.+?)?)@)?(.+?\..+?)(:(\d+)?)?(\/.*)?$/);if(matches&&(matches[1]||matches[3]||matches[8]||matches[10])){if(matches[2]){scope.find('[data-role="portToggle"][value="'+matches[2]+'"]').prop('checked',true);}
|
||||
if(matches[3]){if(matches[4]){scope.find('[data-role="usernameInput"]').val(matches[4]);scope.find('[data-role="usernameInput"]').focus();}
|
||||
if(matches[6]){scope.find('[data-role="passwordInput"]').val(matches[6]);scope.find('[data-role="passwordInput"]').focus();}}
|
||||
if(matches[8]){scope.find('[data-role="portInput"]').val(matches[9]);scope.find('[data-role="portInput"]').focus();}
|
||||
if(matches[10]){scope.find('[data-role="pathInput"]').val(matches[10]);scope.find('[data-role="pathInput"]').focus();}
|
||||
$(this).val(matches[7]);}});},});}(jQuery,_));;
|
||||
@@ -0,0 +1,5 @@
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.global.customization.visualLang',{timeout:null,initialize:function(){this.on(document,'mousedown','span[data-vle]',this.mouseDownLang);this.on(document,'mouseup mouseleave','span[data-vle]',this.mouseUpLang);this.on(document,'keypress','input[type="text"][data-role="vle"]',this.keyPressEditBox);this.on(document,'blur','input[type="text"][data-role="vle"]',this.blurEditBox);this.on(document,'contentChange',this.contentChange);this.setup();},setup:function(){var self=this;this._boundHandler=_.bind(this._preventDefaultHandler,this);this._removeLangTag('title');$(document).ready(function(){self._setUpTextNodes('body');self._removeLangTag('body');self.scope.trigger('vleDone');});},contentChange:function(e,data){this._setUpTextNodes(data);this._removeLangTag(data);},mouseDownLang:function(e){this.timeout=setTimeout(_.partial(this._enableLangEditing,e),1000);},mouseUpLang:function(){clearTimeout(this.timeout);},keyPressEditBox:function(e){if(e.keyCode==ips.ui.key.ENTER){e.stopPropagation();$(e.currentTarget).blur();return false;}},blurEditBox:function(e){var inputNode=$(e.currentTarget);var value=inputNode.val();var safeValue=encodeURIComponent(value);var elem=inputNode.closest('[data-vle]');var url='?app=core&module=system&controller=vle&do=set';if(value==elem.attr('data-original')||value==''){elem.html(elem.attr('data-original'));}else{inputNode.val('').addClass('ipsField_loading');ips.getAjax()(url+'&key='+elem.attr('data-vle')+'&value='+safeValue).done(function(response){ipsVle[elem.attr('data-vle')]=response;elem.attr('data-original',response);$(document).find('[data-vle="'+elem.attr('data-vle')+'"]').html(response);}).fail(function(){Debug.log(url+'&key='+elem.attr('data-vle')+'&value='+safeValue);elem.html(inputNode.attr('data-original'));ips.ui.alert.show({type:'alert',icon:'warn',message:ips.getString('js_login_both'),});});}
|
||||
var parentLink=elem.closest('a');if(parentLink.length){parentLink.off('click',this._boundHandler);if(parentLink.attr('data-vleHref')){parentLink.attr('href',parentLink.attr('data-vleHref')).removeAttr('data-vleHref');}}},_preventDefaultHandler:function(e){e.preventDefault();},_enableLangEditing:function(e){var elem=$(e.currentTarget);var parentLink=elem.closest('a');if(parentLink.length){parentLink.on('click',this._boundHandler).attr('data-vleHref',parentLink.attr('href')).attr('href','#');}
|
||||
var inputNode=$('<input/>').attr({type:'text'}).addClass('ipsField_loading ipsField_vle').attr('data-role','vle');elem.html('').append(inputNode);ips.getAjax()('?app=core&module=system&controller=vle&do=get&key='+elem.attr('data-vle')).done(function(response){console.log(elem.attr('data-vle'));inputNode.val(response).attr({'data-original':response}).removeClass('ipsField_loading').focus().select()}).fail(function(){ips.ui.alert.show({type:'alert',icon:'warn',message:ips.getString('js_login_both'),});});},_removeLangTag:function(element){if(_.isUndefined(element)){return;}
|
||||
var elem=$(element);elem.contents().filter(function(){return this.nodeType===3||this.tagName==="LABEL"||this.tagName==="SPAN";}).each(function(){$(this).replaceWith($(this).text().replace(/#VLE#(.+?)#!#/gm,function(match,key){return(ipsVle.hasOwnProperty(key)&&ipsVle[key]!==undefined)?ipsVle[key]:'';}));});elem.find('i[class]').each(function(){$(this).attr('class',$(this).attr('class').replace(/#VLE#(.+?)#!#/gm,function(match,key){return(ipsVle.hasOwnProperty(key)&&ipsVle[key]!==undefined)?ipsVle[key]:'';}));});elem.find('[placeholder]').each(function(){$(this).attr('placeholder',$(this).attr('placeholder').replace(/#VLE#(.+?)#!#/gm,function(match,key){return(ipsVle.hasOwnProperty(key)&&ipsVle[key]!==undefined)?ipsVle[key]:'';}));});elem.find('[title]').each(function(){$(this).attr('title',$(this).attr('title').replace(/#VLE#(.+?)#!#/gm,function(match,key){return(ipsVle.hasOwnProperty(key)&&ipsVle[key]!==undefined)?ipsVle[key]:'';}));});elem.find('[aria-label]').each(function(){$(this).attr('aria-label',$(this).attr('aria-label').replace(/#VLE#(.+?)#!#/gm,function(match,key){return(ipsVle.hasOwnProperty(key)&&ipsVle[key]!==undefined)?ipsVle[key]:'';}));});},_setUpTextNodes:function(element){if(_.isUndefined(element)){return;}
|
||||
var regex=/#VLE#([0-9a-z_-]+?)#!#/igm;$(element).find('*').contents().filter(function(){var elem=$(this);return!elem.is('iframe')&&!elem.closest('[data-ipsEditor]').length&&!elem.is('textarea')&&(elem.is('[value]')||this.nodeType==3);}).each(function(idx,elem){var elem=$(elem);if(elem.get(0).nodeType===3){elem.replaceWith(elem.text().replace(regex,function(match,key){if(ipsVle.hasOwnProperty(key)&&ipsVle[key]!==undefined){return'<span data-vle="'+key+'" data-original="'+ipsVle[key]+'">'+ipsVle[key]+'</span>';}else{return Debug.isEnabled()?key:'';}}));}else if(elem.is('[value]')){if(elem.val()!==''){elem.attr('data-vle',elem.val().replace(regex,'$1')).val(elem.val().replace(regex,function(match,key){if(ipsVle.hasOwnProperty(key)&&ipsVle[key]!==undefined){return ipsVle[key];}else{return Debug.isEnabled()?key:'';}}));}}});}});}(jQuery,_));;
|
||||
Reference in new issue
Block a user