Version 5.0.0 beta 2
This commit is contained in:
1 parent
15c7beabc5
commit
f61b0da85d
181 files changed
+3182
-1533
No files matched your search
@@ -2,7 +2,7 @@
|
||||
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);}
|
||||
const memberRowHtml=ips.templates.render('core.onlineUser.linked',{memberUrl:ips.getSetting('member_url'),memberHovercardUrl:ips.getSetting('member_hovercardUrl'),formattedName:ips.getSetting('member_formattedName'),memberId:ips.getSetting('memberID')});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+='?';}
|
||||
|
||||
@@ -39,7 +39,7 @@ this.updateURL({sortby:cell.attr('data-key'),sortdirection:order});};this.startL
|
||||
return{by:sortBy.attr('data-key'),order:sortOrder};};this._getFilterValue=function(){var sortBar=this.scope.find('[data-role="tableSortBar"]');if(!sortBar.length){return'';}
|
||||
return sortBar.find('.ipsDataFilters__button--active').closest('[data-filter]').attr('data-filter');};this._getSearchValue=function(){if(ips.utils.url.getParam('quicksearch')){return ips.utils.url.getParam('quicksearch');}
|
||||
return this.scope.find('[data-role="tableSearch"]').val();};});}(jQuery,_));;
|
||||
ips.templates.set('core.appMenu.reorder'," <span data-role='reorder' style='display: none'><i class='fa-solid fa-bars'></i></span>");ips.templates.set('core.controlStrip.menu'," <ul class='ipsMenu ipsMenu_auto' role='menu' id='{{id}}_menu' style='display: none'> {{{content}}} </ul>");ips.templates.set('core.controlStrip.menuItem'," <li class='ipsMenu_item ipsControlStrip_menuItem' role='menuitem' id='{{id}}'> {{{item}}} </li>");ips.templates.set('core.controlStrip.dropdown'," <li class='ipsControlStrip_button ipsControlStrip_dropdown' data-dropdown id='{{id}}'> <a href='#'> <i class='ipsControlStrip_icon fa-solid fa-angle-down'></i> </a> </li>");ips.templates.set('core.forms.toggle'," <span class='ipsToggle {{className}}' id='{{id}}' tabindex='0' role='switch' aria-checked='{{status}}'> <span data-role='status'></span> </span>");ips.templates.set('core.trees.childWrapper'," {{{content}}}");ips.templates.set('core.trees.loadingRow'," <ol class='ipsTree'><li class='ipsTree_loadingRow ipsLoading ipsLoading--tiny'>{{#lang}}loading{{/lang}}</li></ol>");ips.templates.set('core.trees.loadingPane'," <div class='ipsLoading' style='height: 150px'> </div>");ips.templates.set('core.trees.noRows'," <div class='i-text-align_center i-padding_3 i-color_soft'>{{#lang}}no_results{{/lang}}</div>");ips.templates.set('core.livesearch.noResults'," <li class='i-text-align_center i-padding_3 i-color_soft' data-role='result'> <br><br> </li>");ips.templates.set('languages.translateString'," <div class='cTranslateTable_field'> <textarea class='ipsInput'>{{value}}</textarea> <a href='#' data-action='saveWords' tabindex='-1' class='ipsButton ipsButton--positive ipsButton--tiny ipsButton--icon'><i class='fa-solid fa-check'></i> {{#lang}}languageSave{{/lang}}</a> </div>");ips.templates.set('support.guideSearch'," <li> <a href=\"{{link}}\" target='_blank' rel='noopener'>{{title}}</a> </li>");ips.templates.set('support.guideSearch.noResults'," <li class='i-color_soft'> {{#lang}}no_results{{/lang}} </li>");ips.templates.set('support.ticket.supportSummary'," <div class='i-padding-top_3'> {{#lang}}health_ticket_beforeproceeding{{/lang}} </div>");;
|
||||
ips.templates.set('core.appMenu.reorder'," <span data-role='reorder' style='display: none'><i class='fa-solid fa-bars'></i></span>");ips.templates.set('core.controlStrip.menu'," <ul class='ipsMenu ipsMenu_auto' role='menu' id='{{id}}_menu' style='display: none'> {{{content}}} </ul>");ips.templates.set('core.controlStrip.menuItem'," <li class='ipsMenu_item ipsControlStrip_menuItem' role='menuitem' id='{{id}}'> {{{item}}} </li>");ips.templates.set('core.controlStrip.dropdown'," <li class='ipsControlStrip_button ipsControlStrip_dropdown' data-dropdown id='{{id}}'> <a href='#'> <i class='ipsControlStrip_icon fa-solid fa-angle-down'></i> </a> </li>");ips.templates.set('core.trees.childWrapper'," {{{content}}}");ips.templates.set('core.trees.loadingRow'," <ol class='ipsTree'><li class='ipsTree_loadingRow ipsLoading ipsLoading--tiny'>{{#lang}}loading{{/lang}}</li></ol>");ips.templates.set('core.trees.loadingPane'," <div class='ipsLoading' style='height: 150px'> </div>");ips.templates.set('core.trees.noRows'," <div class='i-text-align_center i-padding_3 i-color_soft'>{{#lang}}no_results{{/lang}}</div>");ips.templates.set('core.livesearch.noResults'," <li class='i-text-align_center i-padding_3 i-color_soft' data-role='result'> <br><br> </li>");ips.templates.set('languages.translateString'," <div class='cTranslateTable_field'> <textarea class='ipsInput'>{{value}}</textarea> <a href='#' data-action='saveWords' tabindex='-1' class='ipsButton ipsButton--positive ipsButton--tiny ipsButton--icon'><i class='fa-solid fa-check'></i> {{#lang}}languageSave{{/lang}}</a> </div>");ips.templates.set('support.guideSearch'," <li> <a href=\"{{link}}\" target='_blank' rel='noopener'>{{title}}</a> </li>");ips.templates.set('support.guideSearch.noResults'," <li class='i-color_soft'> {{#lang}}no_results{{/lang}} </li>");ips.templates.set('support.ticket.supportSummary'," <div class='i-padding-top_3'> {{#lang}}health_ticket_beforeproceeding{{/lang}} </div>");;
|
||||
;(function($,_,undefined){"use strict";ips.controller.register('core.admin.core.app',{initialize:function(){this.on('click','[data-clickshow]',this.clickShow);this.on('click','[data-clickhide]',this.clickHide);this.on('click','[data-clickempty]',this.clickEmpty);this.on('click','[data-delete]',this.deleteSomething);this.on('click','a[data-confirm]',this.confirmSomething);this.on('click','[data-doajax]',this.doAjaxAction);this.on(document,'contentChange',this._checkAndClearAutosave);this.setup();},setup:function(){if(ips.utils.serviceWorker.supported){ips.utils.serviceWorker.registerServiceWorker('admin',false);}
|
||||
this._checkAndClearAutosave();if(!ips.getSetting('memberID')&&ips.utils.url.getParam('_fromLogout')){ips.utils.db.removeByType('editorSave');}},_checkAndClearAutosave:function(){if(ips.utils.cookie.get('clearAutosave')){var autoSaveKeysToClear=ips.utils.cookie.get('clearAutosave').split(',');for(var i=0;i<autoSaveKeysToClear.length;i++){ips.utils.db.remove('editorSave',autoSaveKeysToClear[i]);}
|
||||
ips.utils.cookie.unset('clearAutosave');}},doAjaxAction:function(e){e.preventDefault();ips.getAjax()($(e.currentTarget).attr('href'),{dataType:'json'}).done(function(response){ips.ui.flashMsg.show(response);}).fail(function(jqXHR){if(Debug.isEnabled()){Debug.error(jqXHR.responseText);}else{window.location=$(e.currentTarget).attr('href');}});},deleteSomething:function(e){e.preventDefault();var elem=$(e.currentTarget);var deleteTitle=elem.attr('data-delete-message');var extraWarning=elem.attr('data-delete-warning');ips.ui.alert.show({type:'confirm',icon:'warn',message:deleteTitle||ips.getString('delete_confirm'),subText:extraWarning||'',focus:'cancel',callbacks:{ok:function(){if(elem.attr('data-noajax')!==undefined){window.location=elem.attr('href')+'&csrfKey='+ips.getSetting('csrfKey')+'&wasConfirmed=1';return;}
|
||||
|
||||
@@ -3,7 +3,7 @@ ips.templates.set('core.tooltip'," <div id='{{id}}' class='ipsTooltip' role='to
|
||||
<div class='ipsPixabayThumb' {{#width}}{{#height}}style="--i-ratio: {{width}} / {{height}}"{{/height}}{{/width}}>
|
||||
<img loading="lazy" {{#width}}width='{{width}}'{{/width}} {{#height}}height='{{height}}'{{/height}} src="{{thumb}}" class="ipsPixabayImage" data-url="{{url}}" data-id="{{imgid}}" alt="">
|
||||
</div>
|
||||
`);ips.templates.set('core.editor.emoticons'," <div class='ipsMenu ipsMenu_wide' id='{{id}}_menu' style='display: none' data-editorID='{{editor}}' data-controller='core.global.editor.emoticons'> <div class='ipsMenu_headerBar'> <h4 class='ipsTitle ipsTitle--h4'>{{#lang}}emoji{{/lang}}</h4> <div class='i-flex i-gap_2'> <a href='#' class='i-color_inherit ipsHide' data-role='skinToneMenu' data-ipsMenu data-ipsMenu-appendTo='#{{id}}_menu' id='{{id}}_tones'>{{#lang}}emoji_skin_tone{{/lang}} <i class='fa-solid fa-caret-down'></i></a> <a href='#' class='i-color_inherit ipsHide' data-role='categoryTrigger' data-ipsMenu data-ipsMenu-appendTo='#{{id}}_menu' id='{{id}}_more'>{{#lang}}emoticonCategories{{/lang}} <i class='fa-solid fa-caret-down'></i></a> </div> <ul class='ipsMenu ipsMenu_veryNarrow i-cursor_pointer' id='{{id}}_tones_menu' role='menu' style='display: none'> <li class='ipsMenu_title'>{{#lang}}emoji_skin_tone{{/lang}}</li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='none'><a>{{#lang}}emoji_skin_tone_default{{/lang}}</a></li> <li class='ipsMenu_sep'><hr></li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='light'><a>\uD83C\uDFFB {{#lang}}emoji_skin_tone_light{{/lang}}</a></li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='medium-light'><a>\uD83C\uDFFC {{#lang}}emoji_skin_tone_medium_light{{/lang}}</a></li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='medium'><a>\uD83C\uDFFD {{#lang}}emoji_skin_tone_medium{{/lang}}</a></li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='medium-dark'><a>\uD83C\uDFFE {{#lang}}emoji_skin_tone_medium_dark{{/lang}}</a></li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='dark'><a>\uD83C\uDFFF {{#lang}}emoji_skin_tone_dark{{/lang}}</a></li> </ul> <ul data-role='categoryMenu' class='ipsMenu ipsMenu_auto i-cursor_pointer' id='{{id}}_more_menu' role='menu' style='display: none'> </ul> </div> <div class='ipsMenu_innerContent'> <div class='ipsEmoticons_content'> <div class='ipsEmpty ipsEmoticons_contentLoading' data-role='emojiLoading'> {{#lang}}loading{{/lang}}... </div> </div> </div> <div class='ipsMenu_footerBar'> <input type='text' data-role='emoticonSearch' class='ipsInput ipsInput--wide' placeholder='{{#lang}}emoticonFind{{/lang}}'> </div></div>");ips.templates.set('core.editor.emoticonSection'," <div data-panel='{{id}}'>{{{content}}}</div>");ips.templates.set('core.editor.emoticonMenu'," <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='{{categoryID}}'><a><span class='ipsMenu_itemCount'>{{count}}</span>{{title}}</a></li>");ips.templates.set('core.editor.emoticonCategory'," <div class='i-background_2 i-padding_2'><strong>{{title}}</strong></div> <div class='ipsEmoticons_category' data-categoryid='{{categoryID}}'>{{{emoticons}}}</div>");ips.templates.set('core.editor.emoticonSearch'," <div class='ipsEmoticons_category'>{{{emoticons}}}</div>");ips.templates.set('core.editor.emoticonRow'," <div class='ipsEmoticons_row ipsEmoji'>{{{emoticons}}}</div>");ips.templates.set('core.editor.emoticonItem'," <div class='ipsEmoticons_item' data-emoticon='{{tag}}' src='{{src}}' data-height='{{height}}' data-width='{{width}}' title='{{tag}}' loading='lazy'>{{{img}}}</div>");ips.templates.set('core.editor.emoji'," <div class='ipsEmoticons_item' title='{{name}}' data-emoji='{{code}}'>{{{display}}}</div>");ips.templates.set('core.editor.emojiNotNative'," <div class='ipsEmoticons_item' title='{{name}}' data-emoji='{{code}}'>{{{img}}}</div>");ips.templates.set('core.editor.emoticonBlank'," <div class='ipsEmoticons_item'> </div>");ips.templates.set('core.editor.emoticonNoResults'," <div class='i-padding_3 i-text-align_center i-color_soft'>{{#lang}}no_results{{/lang}}</div>");ips.templates.set('core.editor.emojiResult'," <li class='ipsMenu_item i-cursor_pointer' title='{{name}}' data-emoji='{{code}}'> <a><span class='ipsEmoji_result'>{{{emoji}}}</span> <span data-role='shortCode'>{{short_code}}</span></a> </li>");ips.templates.set('core.editor.quote',"<blockquote class='ipsQuote' data-ipsQuote data-gramm='false' cite='{{citeurl}}'><div class='ipsQuote_citation'>{{citation}}</div><div class='ipsQuote_contents ipsClearfix' data-gramm='false'>{{{contents}}}</div></blockquote>");ips.templates.set('core.editor.legacyQuoteUpcast',"<div class='ipsQuote_citation'>{{citation}}</div><div class='ipsQuote_contents ipsClearfix' data-gramm='false'>{{{contents}}}</div>");ips.templates.set('core.editor.citation'," <div class='ipsQuote_citation ipsQuote_open'> <a href='#' data-action='toggleQuote' aria-label='{{#lang}}toggle_quote{{/lang}}'> </a> {{#contenturl}} <a href='{{contenturl}}' class='ipsQuote_citation-origin'><i class='fa-solid fa-share'></i></a> {{/contenturl}} {{{citation}}} </div>");ips.templates.set('core.editor.citationLink'," <a href='{{baseURL}}?app=core&module=members&controller=profile&id={{userid}}' data-ipsHover data-ipshover-target='{{baseUR
Line truncated
|
||||
`);ips.templates.set('core.editor.emoticons'," <div class='ipsMenu ipsMenu_wide' id='{{id}}_menu' style='display: none' data-editorID='{{editor}}' data-controller='core.global.editor.emoticons'> <div class='ipsMenu_headerBar'> <h4 class='ipsTitle ipsTitle--h4'>{{#lang}}emoji{{/lang}}</h4> <div class='i-flex i-gap_2'> <a href='#' class='i-color_inherit ipsHide' data-role='skinToneMenu' data-ipsMenu data-ipsMenu-appendTo='#{{id}}_menu' id='{{id}}_tones'>{{#lang}}emoji_skin_tone{{/lang}} <i class='fa-solid fa-caret-down'></i></a> <a href='#' class='i-color_inherit ipsHide' data-role='categoryTrigger' data-ipsMenu data-ipsMenu-appendTo='#{{id}}_menu' id='{{id}}_more'>{{#lang}}emoticonCategories{{/lang}} <i class='fa-solid fa-caret-down'></i></a> </div> <ul class='ipsMenu ipsMenu_veryNarrow i-cursor_pointer' id='{{id}}_tones_menu' role='menu' style='display: none'> <li class='ipsMenu_title'>{{#lang}}emoji_skin_tone{{/lang}}</li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='none'><a>{{#lang}}emoji_skin_tone_default{{/lang}}</a></li> <li class='ipsMenu_sep'><hr></li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='light'><a>\uD83C\uDFFB {{#lang}}emoji_skin_tone_light{{/lang}}</a></li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='medium-light'><a>\uD83C\uDFFC {{#lang}}emoji_skin_tone_medium_light{{/lang}}</a></li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='medium'><a>\uD83C\uDFFD {{#lang}}emoji_skin_tone_medium{{/lang}}</a></li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='medium-dark'><a>\uD83C\uDFFE {{#lang}}emoji_skin_tone_medium_dark{{/lang}}</a></li> <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='dark'><a>\uD83C\uDFFF {{#lang}}emoji_skin_tone_dark{{/lang}}</a></li> </ul> <ul data-role='categoryMenu' class='ipsMenu ipsMenu_auto i-cursor_pointer' id='{{id}}_more_menu' role='menu' style='display: none'> </ul> </div> <div class='ipsMenu_innerContent'> <div class='ipsEmoticons_content'> <div class='ipsEmpty ipsEmoticons_contentLoading' data-role='emojiLoading'> {{#lang}}loading{{/lang}}... </div> </div> </div> <div class='ipsMenu_footerBar'> <input type='text' data-role='emoticonSearch' class='ipsInput ipsInput--wide' placeholder='{{#lang}}emoticonFind{{/lang}}'> </div></div>");ips.templates.set('core.editor.emoticonSection'," <div data-panel='{{id}}'>{{{content}}}</div>");ips.templates.set('core.editor.emoticonMenu'," <li class='ipsMenu_item' role='menuitem' data-ipsMenuValue='{{categoryID}}'><a><span class='ipsMenu_itemCount'>{{count}}</span>{{title}}</a></li>");ips.templates.set('core.editor.emoticonCategory'," <div class='i-background_2 i-padding_2'><strong>{{title}}</strong></div> <div class='ipsEmoticons_category' data-categoryid='{{categoryID}}'>{{{emoticons}}}</div>");ips.templates.set('core.editor.emoticonSearch'," <div class='ipsEmoticons_category'>{{{emoticons}}}</div>");ips.templates.set('core.editor.emoticonRow'," <div class='ipsEmoticons_row ipsEmoji'>{{{emoticons}}}</div>");ips.templates.set('core.editor.emoticonItem'," <div class='ipsEmoticons_item' data-emoticon='{{tag}}' src='{{src}}' data-height='{{height}}' data-width='{{width}}' title='{{tag}}' loading='lazy'>{{{img}}}</div>");ips.templates.set('core.editor.emoji'," <div class='ipsEmoticons_item' title='{{name}}' data-emoji='{{code}}'>{{{display}}}</div>");ips.templates.set('core.editor.emojiNotNative'," <div class='ipsEmoticons_item' title='{{name}}' data-emoji='{{code}}'>{{{img}}}</div>");ips.templates.set('core.editor.emoticonBlank'," <div class='ipsEmoticons_item'> </div>");ips.templates.set('core.editor.emoticonNoResults'," <div class='i-padding_3 i-text-align_center i-color_soft'>{{#lang}}no_results{{/lang}}</div>");ips.templates.set('core.editor.emojiResult'," <li class='ipsMenu_item i-cursor_pointer' title='{{name}}' data-emoji='{{code}}'> <a><span class='ipsEmoji_result'>{{{emoji}}}</span> <span data-role='shortCode'>{{short_code}}</span></a> </li>");ips.templates.set('core.editor.quote',"<blockquote class='ipsQuote' data-ipsQuote data-gramm='false' cite='{{citeurl}}'><div class='ipsQuote_citation'>{{citation}}</div><div class='ipsQuote_contents ipsClearfix' data-gramm='false'>{{{contents}}}</div></blockquote>");ips.templates.set('core.editor.legacyQuoteUpcast',"<div class='ipsQuote_citation'>{{citation}}</div><div class='ipsQuote_contents ipsClearfix' data-gramm='false'>{{{contents}}}</div>");ips.templates.set('core.editor.citation'," <div class='ipsQuote_citation ipsQuote_open'> <a href='#' data-action='toggleQuote' aria-label='{{#lang}}toggle_quote{{/lang}}'> </a> {{#contenturl}} <a href='{{contenturl}}' class='ipsQuote_citation-origin'><i class='fa-solid fa-share'></i></a> {{/contenturl}} {{{citation}}} </div>");ips.templates.set('core.editor.citationLink'," <a href='{{baseURL}}?app=core&module=members&controller=profile&id={{userid}}' data-ipsHover data-ipshover-target='{{baseUR
Line truncated
|
||||
ips.templates.set('core.rating.star'," <li class='{{className}}' data-ratingValue='{{value}}'><a href='#'><i class='fa-solid fa-star'></i></a></li>");ips.templates.set('core.rating.halfStar'," <li class='ipsRating_half' data-ratingValue='{{value}}'><i class='fa-solid fa-star-half'></i><i class='fa-solid fa-star-half fa-flip-horizontal'></i></li>");ips.templates.set('core.rating.loading'," <i class='ipsLoadingIcon'></span>");ips.templates.set('core.sidebar.managerWrapper',`\
|
||||
<div id='elSidebarManager' data-role='manager' class='ipsToolbox' hidden>
|
||||
<div class='ipsToolbox__tools'>
|
||||
@@ -39,7 +39,7 @@ ips.templates.set('core.rating.star'," <li class='{{className}}' data-ratingValu
|
||||
<div class='ipsData__last'></div>
|
||||
</div>
|
||||
</li>
|
||||
`);ips.templates.set('licenseRenewal.wrapper'," <div class='acpLicenseRenewal' data-role='licenseRenewal'> <div class='acpLicenseRenewal_wrap'> <div class='acpLicenseRenewal_inner'> <div class='acpLicenseRenewal_content i-padding_3'> <h4 class='i-font-size_3 i-font-weight_600 i-color_hard i-margin-bottom_2' data-role='mainTitle'>{{#lang}}licenseRenewalTitle{{/lang}}</h4> <p class='i-color_soft'>{{#lang}}licenseRenewalText{{/lang}}</p> <div class='i-margin-top_2 i-flex i-align-items_center i-gap_1 i-font-weight_500'><input type='checkbox' checked='checked' name='hideRenewalNotice' id='hideRenewalNotice' class='ipsInput ipsInput--toggle'> <label for='hideRenewalNotice'>{{#lang}}licenseRenewalCheckbox{{/lang}}</label></div> </div> <ul class='ipsButtons i-background_2 i-border-top_1 i-border-end-start-radius_box i-border-end-end-radius_box i-padding_2'> <li> <a href='#' class='ipsButton ipsButton--inherit' data-action='closeLicenseRenewal'>{{#lang}}licenseRenewalNo{{/lang}}</a> </li> <li> <a href='#' class='ipsButton ipsButton--primary' data-role='survey' data-action='closeLicenseRenewal' target='_blank'>{{#lang}}licenseRenewalYes{{/lang}}</a> </li> </ul> </div> </div> </div>");ips.templates.set('core.browserNotification.prompt'," <div class='cNotifcationPrompt'> <div class='i-padding_3'> <div class='ipsPhotoPanel ipsPhotoPanel--mini'> <span class='cNotifcationPrompt_icon'></span> <div> <a href='#' class='cNotifcationPrompt_dismiss' data-role=\"dismissNotification\">×</a> <h3 class='cNotifcationPrompt_title i-font-size_2 ipsType_sectionHead'>{{#lang}}notificationsCallout{{/lang}}</h3> <p class='cNotifcationPrompt_text i-margin-top_2'> {{#lang}}notificationsDefaultBlurb{{/lang}} </p> <div class='ipsButtons i-margin-top_3'> <button data-action='browserNotificationPrompt' class='ipsButton ipsButton--small ipsButton--soft ipsButton--wide'>{{#lang}}notificationsAllow{{/lang}}</button> </div> <p class='i-font-size_-2 i-margin-block_2 ipsHide' data-role='promptMessage'> {{#lang}}notificationsAllowPrompt{{/lang}} </p> </div> </div> </div> </div>");ips.templates.set('core.browserNotification.missingSubscription'," <div class='cNotifcationPrompt'> <div class='i-padding_3'> <div class='ipsPhotoPanel ipsPhotoPanel--mini'> <span class='cNotifcationPrompt_icon'></span> <div> <a href='#' class='cNotifcationPrompt_dismiss' data-role=\"dismissNotification\">×</a> <h3 class='cNotifcationPrompt_title i-font-size_2 ipsType_sectionHead'>{{#lang}}notificationsCalloutPush{{/lang}}</h3> <p class='cNotifcationPrompt_text i-margin-block_2'> {{#lang}}notificationsDefaultBlurb{{/lang}} </p> <p class='cNotifcationPrompt_text i-font-size_-2 i-margin-block_2'> {{#lang}}notificationsUpgradeBlurb{{/lang}} </p> <div class='ipsButtons i-margin-top_3'> <button data-action='browserNotificationPrompt' class='ipsButton ipsButton--small ipsButton--soft i-flex_11'>{{#lang}}notificationsAllow{{/lang}}</button> <a href='#' data-action='rejectPush' class='ipsButton ipsButton--small ipsButton--text i-color_white i-flex_00'>{{#lang}}notificationsNoThanks{{/lang}}</a> </div> <p class='i-font-size_-2 i-margin-block_2 ipsHide' data-role='promptMessage'> {{#lang}}notificationsAllowPrompt{{/lang}} </p> </div> </div> </div> </div>");ips.templates.set('core.notifications.pending'," <span class='i-color_soft'>{{#lang}}notificationsEnabling{{/lang}}</span>");ips.templates.set('core.notifications.success'," <span class='i-color_positive'><i class='fa-solid fa-check'></i> {{#lang}}notificationsEnabled{{/lang}}</span>");ips.templates.set('core.notifications.fail'," <span class='i-color_negative'><i class='fa-solid fa-xmark'></i> {{#lang}}notificationsFailed{{/lang}}</span>");ips.templates.set('core.notifications.notSupported'," <span class='i-color_soft'><i class='fa-solid fa-xmark'></i> {{#lang}}notificationsNotSupported{{/lang}}</span>");ips.templates.set('core.notifications.checking'," <span class='i-color_soft'>{{#lang}}notificationsChecking{{/lang}}</span>");ips.templates.set('system.warningpenalty.nomodify'," <ul class='ipsList ipsList--bullets' id='elWarningPenalties'> {{#penalties}} <li>{{.}}</li> {{/penalties}} </ul>");ips.templates.set('core.edittags.default'," <div class='i-padding_3'> <span><i class='ipsLoadingIcon'></i> {{#lang}}loading{{/lang}}</span> </div>");ips.templates.set('core.onlineUser.linked',"<li> <a href='{{memberUrl}}' data-ipsHover data-ipsHover-target='{{memberHovercardUrl}}'>{{{formattedName}}}</a></li>");ips.templates.set('core.iconpicker.wrap',`
|
||||
`);ips.templates.set('licenseRenewal.wrapper'," <div class='acpLicenseRenewal' data-role='licenseRenewal'> <div class='acpLicenseRenewal_wrap'> <div class='acpLicenseRenewal_inner'> <div class='acpLicenseRenewal_content i-padding_3'> <h4 class='i-font-size_3 i-font-weight_600 i-color_hard i-margin-bottom_2' data-role='mainTitle'>{{#lang}}licenseRenewalTitle{{/lang}}</h4> <p class='i-color_soft'>{{#lang}}licenseRenewalText{{/lang}}</p> <div class='i-margin-top_2 i-flex i-align-items_center i-gap_1 i-font-weight_500'><input type='checkbox' checked='checked' name='hideRenewalNotice' id='hideRenewalNotice' class='ipsInput ipsInput--toggle'> <label for='hideRenewalNotice'>{{#lang}}licenseRenewalCheckbox{{/lang}}</label></div> </div> <ul class='ipsButtons i-background_2 i-border-top_1 i-border-end-start-radius_box i-border-end-end-radius_box i-padding_2'> <li> <a href='#' class='ipsButton ipsButton--inherit' data-action='closeLicenseRenewal'>{{#lang}}licenseRenewalNo{{/lang}}</a> </li> <li> <a href='#' class='ipsButton ipsButton--primary' data-role='survey' data-action='closeLicenseRenewal' target='_blank'>{{#lang}}licenseRenewalYes{{/lang}}</a> </li> </ul> </div> </div> </div>");ips.templates.set('core.browserNotification.prompt'," <div class='cNotifcationPrompt'> <div class='i-padding_3'> <div class='ipsPhotoPanel ipsPhotoPanel--mini'> <span class='cNotifcationPrompt_icon'></span> <div> <a href='#' class='cNotifcationPrompt_dismiss' data-role=\"dismissNotification\">×</a> <h3 class='cNotifcationPrompt_title i-font-size_2 ipsType_sectionHead'>{{#lang}}notificationsCallout{{/lang}}</h3> <p class='cNotifcationPrompt_text i-margin-top_2'> {{#lang}}notificationsDefaultBlurb{{/lang}} </p> <div class='ipsButtons i-margin-top_3'> <button data-action='browserNotificationPrompt' class='ipsButton ipsButton--small ipsButton--soft ipsButton--wide'>{{#lang}}notificationsAllow{{/lang}}</button> </div> <p class='i-font-size_-2 i-margin-block_2 ipsHide' data-role='promptMessage'> {{#lang}}notificationsAllowPrompt{{/lang}} </p> </div> </div> </div> </div>");ips.templates.set('core.browserNotification.missingSubscription'," <div class='cNotifcationPrompt'> <div class='i-padding_3'> <div class='ipsPhotoPanel ipsPhotoPanel--mini'> <span class='cNotifcationPrompt_icon'></span> <div> <a href='#' class='cNotifcationPrompt_dismiss' data-role=\"dismissNotification\">×</a> <h3 class='cNotifcationPrompt_title i-font-size_2 ipsType_sectionHead'>{{#lang}}notificationsCalloutPush{{/lang}}</h3> <p class='cNotifcationPrompt_text i-margin-block_2'> {{#lang}}notificationsDefaultBlurb{{/lang}} </p> <p class='cNotifcationPrompt_text i-font-size_-2 i-margin-block_2'> {{#lang}}notificationsUpgradeBlurb{{/lang}} </p> <div class='ipsButtons i-margin-top_3'> <button data-action='browserNotificationPrompt' class='ipsButton ipsButton--small ipsButton--soft i-flex_11'>{{#lang}}notificationsAllow{{/lang}}</button> <a href='#' data-action='rejectPush' class='ipsButton ipsButton--small ipsButton--text i-color_white i-flex_00'>{{#lang}}notificationsNoThanks{{/lang}}</a> </div> <p class='i-font-size_-2 i-margin-block_2 ipsHide' data-role='promptMessage'> {{#lang}}notificationsAllowPrompt{{/lang}} </p> </div> </div> </div> </div>");ips.templates.set('core.notifications.pending'," <span class='i-color_soft'>{{#lang}}notificationsEnabling{{/lang}}</span>");ips.templates.set('core.notifications.success'," <span class='i-color_positive'><i class='fa-solid fa-check'></i> {{#lang}}notificationsEnabled{{/lang}}</span>");ips.templates.set('core.notifications.fail'," <span class='i-color_negative'><i class='fa-solid fa-xmark'></i> {{#lang}}notificationsFailed{{/lang}}</span>");ips.templates.set('core.notifications.notSupported'," <span class='i-color_soft'><i class='fa-solid fa-xmark'></i> {{#lang}}notificationsNotSupported{{/lang}}</span>");ips.templates.set('core.notifications.checking'," <span class='i-color_soft'>{{#lang}}notificationsChecking{{/lang}}</span>");ips.templates.set('system.warningpenalty.nomodify'," <ul class='ipsList ipsList--bullets' id='elWarningPenalties'> {{#penalties}} <li>{{.}}</li> {{/penalties}} </ul>");ips.templates.set('core.edittags.default'," <div class='i-padding_3'> <span><i class='ipsLoadingIcon'></i> {{#lang}}loading{{/lang}}</span> </div>");ips.templates.set('core.onlineUser.linked',"<li data-memberId='{{memberId}}'> <a href='{{memberUrl}}' data-ipsHover data-ipsHover-target='{{memberHovercardUrl}}'>{{{formattedName}}}</a></li>");ips.templates.set('core.iconpicker.wrap',`
|
||||
<form action="#" class="ipsIconPicker">
|
||||
<div class="ipsIconPicker__tabs">
|
||||
<div data-role="tabs">
|
||||
@@ -613,7 +613,8 @@ $(elem||document).trigger('dialogContentLoaded',{elemID:elemID,dialogID:dialogID
|
||||
deferred.reject();}).always(function(){});return deferred.promise();},_buildDialog=function(){if(dialogBuilt){return;}
|
||||
var offset=0;$('body').append(ips.templates.render('core.dialog.main',{'class':options.className,title:options.title||'',id:dialogID,fixed:options.fixed,size:options.size,close:options.close,extraClass:options.extraClass}));dialog=$('#'+dialogID);dialog.css({zIndex:ips.ui.zIndex(),});_positionDialog();dialog.on('click','[data-action="dialogClose"]',function(e){$(dialog).trigger('closeDialog',{dialogID:dialogID,originalEvent:e});});$(dialog).on('closeDialog',function(e,data){hide();});if(options.close){dialog.on('mouseup',function(e){if(e.target==dialog.get(0)){modalEvent.up=true;}});dialog.on('mousedown',function(e){if(e.target==dialog.get(0)){modalEvent.down=true;}});dialog.on('click',function(e){if((!modalEvent.up||(dialog.get(0)==e.target&&modalEvent.down))&&dialog.find('> div').get(0)!=e.target&&!$.contains(dialog.find('> div').get(0),e.target)&&$.contains(document,e.target)){$(dialog).trigger('closeDialog',{dialogID:dialogID,originalEvent:e});}
|
||||
modalEvent={up:false,down:false};});}
|
||||
if(options.remoteVerify||options.remoteSubmit){dialog.find('.'+options.className+'_content').on('submit',function(e){_ajaxFormSubmit(e,$(this));});}
|
||||
dialog.get(0)?.addEventListener('submit',async(e)=>{let target=e.target;while(target instanceof HTMLElement&&target!==dialog.get(0)){if(target instanceof HTMLFormElement&&target.matches('form[data-form-is-download]')){e.preventDefault();e.stopPropagation();e.stopImmediatePropagation();const formData=new FormData(target);await ips.utils.fileDownload.download({url:target.action,formData,blobName:target.dataset.formDownloadName||dialog.find('.ipsDialog_title').text()||'blob'});await hide();break;}
|
||||
target=target.parentElement;}},{capture:true});if(options.remoteVerify||options.remoteSubmit){dialog.find('.'+options.className+'_content').on('submit',function(e){_ajaxFormSubmit(e,$(this));});}
|
||||
dialogBuilt=true;},_positionDialog=function(){if(dialog&&!options.fixed){var win=$(window);var offset=win.scrollTop();dialog.css({top:offset+'px'});}},_buildModal=function(){modal=ips.ui.getModal();modal.css({zIndex:ips.ui.zIndex()});},_ajaxFormSubmit=function(e,form){if(!($(form)?.get?.(0)instanceof HTMLFormElement)){form=$(e.target)}
|
||||
if(!($(form).get(0)instanceof HTMLFormElement)){return;}
|
||||
if(form.attr('data-bypassValidation')&&!options.remoteSubmit){return;}
|
||||
@@ -696,7 +697,8 @@ setTimeout(()=>fillTextarea())
|
||||
setTimeout(()=>{try{$(elem).get(0).dispatchEvent(new CustomEvent("ips:editorAfterInit",{bubbles:true,cancelable:false,detail:{elem:$(elem).get(0),textArea,content:textArea.innerText,options:config,instance}}));}catch(e){e.meessage="Something went wrong dispatching ips:editorAfterInit event on the page:\n"+e.message;Debug.error(e);}
|
||||
fillTextarea();},100)}
|
||||
const onTransaction=config.onTransaction;config.onTransaction=_.debounce(function(...args){instance=instance||args[0]?.editor;fillTextarea();try{onTransaction?.call?.(this,...args);}catch(e){e.message="Something went wrong in an onTransaction call to the editor"+e.message;Debug.error(e);}},200,{leading:false,trailing:true});const onUpdate=config.onUpdate;config.onUpdate=function(...args){try{onUpdate?.call?.(this,...args);}catch(e){e.message="Failed to run the onUpdate event listener:\n"+e.message;Debug.error(e);}
|
||||
instance=instance||args[0]?.editor;config.onTransaction?.cancel();setTimeout(()=>{let canceled=false;const event=new CustomEvent('ips:editorUpdated',{bubbles:true,cancelable:true,detail:{elem:$(elem).get(0),textArea,instance,}});throttledComposeEvent();const origStopProp=event.stopPropagation;const origStopImmProp=event.stopImmediatePropagation;event.stopPropagation=(function(){canceled=true;origStopProp();}).bind(event)
|
||||
instance=instance||args[0]?.editor;console.log(instance,instance.getJSON())
|
||||
config.onTransaction?.cancel();setTimeout(()=>{let canceled=false;const event=new CustomEvent('ips:editorUpdated',{bubbles:true,cancelable:true,detail:{elem:$(elem).get(0),textArea,instance,}});throttledComposeEvent();const origStopProp=event.stopPropagation;const origStopImmProp=event.stopImmediatePropagation;event.stopPropagation=(function(){canceled=true;origStopProp();}).bind(event)
|
||||
event.stopImmediatePropagation=(function(){canceled=true;origStopImmProp();}).bind(event);$(elem).get(0).dispatchEvent(event)
|
||||
if(canceled){return;}
|
||||
fillTextarea()})}
|
||||
@@ -755,9 +757,9 @@ minimized=true;}}
|
||||
function insertQuotes(quotes){const _doInsert=function(){if(!instance)return;let toInsert="";for(const data of quotes){const html=data.quoteHtml.replace(/data-ipsLightbox(-group)?="([\w]+)?"/ig,'').trim();const quote=$(ips.templates.render('core.editor.quote',{citeurl:data.citeurl||'',citation:ips.utils.getCitation(data),contents:html}));for(let attr of['timestamp','userid','username','contentapp','contenttype','contentclass','contentid','contentcommentid']){if(data[attr]){quote.attr('data-ipsQuote-'+attr,data[attr]);}}
|
||||
toInsert+=quote.get(0).outerHTML}
|
||||
if(!toInsert){return;}
|
||||
instance.chain().insertContent(toInsert+"<p></p>").focus().run();};if(minimized){unminimize(function(){try{instance.chain().setContent('').run();elem.find('[data-role="autoSaveRestoreMessage"]').hide();}catch(err){}
|
||||
instance.chain().insertContent(toInsert+"<p></p>",{parseOptions:{preserveWhitespace:false}}).focus().run();};if(minimized){unminimize(function(){try{instance.chain().setContent('').run();elem.find('[data-role="autoSaveRestoreMessage"]').hide();}catch(err){}
|
||||
_doInsert();});}else{_doInsert();}}
|
||||
function insertHtml(html){instance.chain().insertContent(html).focus().run();}
|
||||
function insertHtml(html){instance.chain().insertContent(html,{parseOptions:{preserveWhitespace:false}}).focus().run();}
|
||||
function reset(){instance.chain().setContent(originalContent||'<p></p>').clearAutosave().run();$(elem).find('[data-ipsUploader]').trigger('resetUploader');if(options.minimized&&options.minimizeAfterReset){minimize();}
|
||||
clearTextarea();}
|
||||
function saveAndClearAutosave(){if(instance){instance?.commands.clearAutoSave?.()}else{ips.utils.db.remove('editorSave',options.autoSaveKey);}}
|
||||
@@ -1382,12 +1384,6 @@ lastItems=options.currentitems;TableOfContents.setItems(options.currentitems)}ca
|
||||
TableOfContents.instanceMap.set(realElem,new TableOfContents(realElem,options))}
|
||||
return TableOfContents.instanceMap.get(realElem)},refreshElems(){if(Array.isArray(lastItems)||lastItems===null){TableOfContents.setItems(lastItems,true);}},getInstance(elem){if(TableOfContents.instanceMap.has($(elem).get(0))){return TableOfContents.instanceMap.get($(elem).get(0))}
|
||||
return null;},createSelector(elem){return TableOfContents.createSelector(elem)},getOptions(){return TableOfContents.options}}})})(jQuery,_);
|
||||
;(function($,_,undefined){"use strict";ips.createModule('ips.ui.toggle',function(){var defaults={template:'core.forms.toggle'};var respond=function(elem,options){if(!$(elem).data('_toggle')){$(elem).data('_toggle',toggleObj(elem,_.defaults(options,defaults)));}};ips.ui.registerWidget('toggle',ips.ui.toggle,['template']);return{respond:respond};});var toggleObj=function(elem,options,e){var checkID=$(elem).identify().attr('id'),wrapper;var init=function(){var status=$(elem).prop('checked'),className=(status)?'ipsToggle_on':'ipsToggle_off';$(elem).after(ips.templates.render(options.template,{id:checkID+'_wrapper',status:!!status,className:className})).hide();wrapper=$('#'+checkID+'_wrapper');wrapper.on('click',function(e){if(!$(elem).is(':disabled')){if($(elem).prop('checked')){_doToggle('off');}else{_doToggle('on');}
|
||||
$(elem).change();}
|
||||
e.preventDefault();}).on('keypress',_keyPress);if($(elem).is('[data-ipstooltip]')){wrapper.attr('data-ipsTooltip','').attr('title',$(elem).attr('title'));$(document).trigger('contentChange',[wrapper]);}
|
||||
if($(elem).is(':disabled')){wrapper.addClass('ipsToggle_disabled');}
|
||||
$(elem).on('change',function(e){if($(elem).is(':checked')){_doToggle('on');}else{_doToggle('off');}});},_doToggle=function(type){if(type=='off'){wrapper.removeClass('ipsToggle_on').addClass('ipsToggle_off').attr('aria-checked',false);elem.get(0).checked=false;}else{wrapper.removeClass('ipsToggle_off').addClass('ipsToggle_on').attr('aria-checked',true);elem.get(0).checked=true;}},_keyPress=function(e){if(e.keyCode==ips.ui.key.SPACE||e.keyCode==ips.ui.key.ENTER){e.preventDefault();if($(elem).prop('checked')){_doToggle('off');}else{_doToggle('on');}
|
||||
$(elem).change();}};init();return{init:init}};}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";const endCachingDebounced=_.throttle((elem)=>{ips.utils.position.endCaching(elem);},100,{leading:false});ips.createModule('ips.ui.tooltip',function(){let _tooltip=null,_timer=[],_currentElem=null,_showTimeout;function respond(elem,options,e){clearTimeout(_showTimeout);if(ips.utils.events.isTouchDevice()){return;}
|
||||
if(!_tooltip){_createTooltipElement();}
|
||||
if(e.type==='mouseleave'||e.type==='blur'||e.type==='focusout'){_hide();}else{const content=_getContent(elem,options);if(content){ips.utils.position.startCaching();_showTimeout=setTimeout(()=>{_show(elem,options,content);endCachingDebounced();});}}}
|
||||
@@ -1645,6 +1641,9 @@ init();return{set,get:get,getByType:getByType,remove:remove,removeByType:removeB
|
||||
;(function($,_,undefined){"use strict";ips.createModule('ips.utils.events',function(){var manualEvent=function(element,ev){if(_.isObject(element)){element.each(function(){_fireEvent(this,ev);});}else{_fireEvent(element,ev);}},isTouchDevice=function(){return(('ontouchstart'in window)||(navigator.MaxTouchPoints>0)||(navigator.msMaxTouchPoints>0));},getVisibilityEvent=function(){if(!_.isUndefined(document.hidden)){return'visibilitychange';}else if(!_.isUndefined(document.mozHidden)){return'mozvisibilitychange';}else if(!_.isUndefined(document.msHidden)){return'msvisibilitychange';}else if(!_.isUndefined(document.webkitHidden)){return'webkitvisibilitychange';}
|
||||
return'_unsupported';},getVisibilityProp=function(){if(!_.isUndefined(document.hidden)){return'hidden';}else if(!_.isUndefined(document.mozHidden)){return'mozHidden';}else if(!_.isUndefined(document.msHidden)){return'msHidden';}else if(!_.isUndefined(document.webkitHidden)){return'webkitHidden';}
|
||||
return undefined;},_fireEvent=function(element,ev){if(document.createEvent){var evObj=document.createEvent('MouseEvents');evObj.initEvent(ev,true,false);element.dispatchEvent(evObj);}else if(document.createEventObject){var evObj=document.createEventObject();element.fireEvent('on'+evt,evObj);}};return{manualEvent:manualEvent,isTouchDevice:isTouchDevice,getVisibilityEvent:getVisibilityEvent,getVisibilityProp:getVisibilityProp};});}(jQuery,_));;
|
||||
;(function($,_){"use strict";ips.createModule('ips.utils.fileDownload',function(){return{download({url,blobName,onProgress,formData,forceBlobName=false}){return new Promise((resolve,reject)=>{const xhr=new XMLHttpRequest();let blob;xhr.open(formData?'POST':'GET',url,true);xhr.responseType="arraybuffer";xhr.onload=function(e){blob=new Blob([this.response]);};xhr.onprogress=function(e){onProgress?.call(this,e);};xhr.onerror=function(e){reject(e);}
|
||||
xhr.onloadend=function(e){try{const tempLink=document.createElement('a');let href=window.URL.createObjectURL(blob);tempLink.href=href;tempLink.setAttribute('hidden','');let contentDispositionName=this.getResponseHeader('content-disposition')?.match(/filename="(.+)"/i)?.[1];if(forceBlobName||!contentDispositionName){contentDispositionName=blobName;}else{contentDispositionName=decodeURIComponent(contentDispositionName);}
|
||||
tempLink.setAttribute('download',contentDispositionName);document.body.appendChild(tempLink);tempLink.click();window.URL.revokeObjectURL(href);setTimeout(()=>{tempLink.remove();resolve();});}catch(e){reject(e);}};if(formData){xhr.send(formData);}else{xhr.send();}});}};});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.createModule('ips.utils.form',function(){var serializeAsObject=function(jQueryObj,customSerializers){var asArray=jQueryObj.serializeArray();var output={};_.each(asArray,function(val){var outValue=val.value;if(customSerializers&&!_.isUndefined(customSerializers[val.name])&&_.isFunction(customSerializers[val.name])){outValue=customSerializers[val.name](val.name,val.value);}
|
||||
var keys=_splitFieldName(val.name);_addValueToKey(output,keys,outValue);});return output;};var _splitFieldName=function(name){var parts=name.split('[');parts=_.map(parts,function(part){return part.replace(/\]/g,'')});if(parts[0]===''){parts.shift();}
|
||||
return parts;},_addValueToKey=function(output,keys,value){if(!_.isObject(output)){output={};}
|
||||
@@ -1772,7 +1771,7 @@ this._highlightIndex=0;this._searchString=query;if(refresh&&this._visible){retur
|
||||
resolve()})})}}
|
||||
async search(){const results=this._currentTab==='emoji'?(await this.searchEmojis()):(await this.searchFontAwesome())
|
||||
return(this._searchString!==''||this.panelMode)?{'Search Results':[...Object.values(results)].flat()}:results}
|
||||
async searchEmojis(){const store=this._searchString.trim()?(await EmojiSearchTree.search(this._searchString,this.panelMode||this.anchor instanceof Element)):(await EmojiSearchTree.loadEmojiStore(this.panelMode||this.anchor instanceof Element));const out={};for(const category in store){out[category]=[...Object.keys(store[category].emojis)].map(unicode=>{const emojiData=store[category].emojis[unicode]
|
||||
async searchEmojis(){const store=this._searchString.trim()?(await EmojiSearchTree.search(this._searchString,this.panelMode||this.anchor instanceof Element)):(await EmojiSearchTree.loadEmojiStore(this.panelMode||this.anchor instanceof Element||this.container instanceof Element));const out={};for(const category in store){out[category]=[...Object.keys(store[category].emojis)].map(unicode=>{const emojiData=store[category].emojis[unicode]
|
||||
let hairStyle=this._emojiHairStyle||'';let skinTone=this._emojiSkinTone||'';return{raw:EmojiSearchTree.codePointsToString(emojiData.unicode,Number(skinTone)||null,Number(hairStyle)||null),skinTone,hairStyle,image:emojiData.image?.image2x||emojiData.image?.image,key:`${unicode}:${emojiData.skinTones ? skinTone : ''}:${emojiData.hairStyles ? hairStyle : ''}`,title:emojiData.description,type:'emoji'}})}
|
||||
return out}
|
||||
getEmojiTypes(){const stUnicode=EmojiSearchTree.emojiCodepointMap['270B'].unicode;const hsUnicode=EmojiSearchTree.emojiCodepointMap['1F9D1'].unicode;return[{type:'skin',current:this._emojiSkinTone||'',options:[['',''],...Object.entries(EmojiSearchTree.skinTones)].map(i=>({value:i[0].toString(),label:EmojiSearchTree.codePointsToString(stUnicode,i[0]?`${Number(i[0]).toString(16)}`:null,this._emojiHairStyle),title:i[1]}))},{type:'hair',current:this._emojiHairStyle||'',options:[['',''],...Object.entries(EmojiSearchTree.hairStyles)].map(i=>({value:i[0].toString(),label:EmojiSearchTree.codePointsToString(hsUnicode,this._emojiSkinTone,i[0]?`${Number(i[0]).toString(16)}`:null),title:i[1]}))}];}
|
||||
|
||||
Reference in new issue
Block a user