/*BEGIN header */ /*BEGIN admin/themes/default/js/album_selector.js */ let activeAlbumSelector=null;$(window).on('keypress',function(e){const haveAlbumSelector=$('#addLinkedAlbum').is(':visible');if(haveAlbumSelector&&e.key==="Enter"){e.preventDefault();}});class AlbumSelector{#in_admin_mode;#methodPwg;#limitParam;#isAlbumCreationChecked;#selectAlbum;#removeSelectedAlbum;#currentSelectedId;#searchCat;#cats;#selected_categories;#show_root_btn;#put_to_root;#current_cat;#title;#searchPlaceholder;#loading_add;static selectors={addLinkedAlbum:$('#addLinkedAlbum'),closeAlbumPopIn:$('#closeAlbumPopIn'),searchInput:$('#search-input-ab'),searchResult:$('#searchResult'),limitReached:$('.limitReached'),iconCancelInput:$('.search-cancel-linked-album'),relatedCategoriesDom:$('.related-categories-container .breadcrumb-item .remove-item'),iconSearchingSpin:$('.searching'),albumSelector:$('#linkedAlbumSelector'),albumCreate:$('#linkedAlbumCreate'),albumCheckBox:$('#album-create-check'),linkedAddAlbum:$('#linkedAddAlbum'),linkedModalTitle:$('#linkedModalTitle'),linkedAlbumSwitch:$('#linkedAlbumSwitch'),linkedAlbumSubTitle:$('#linkedAlbumSubtitle'),linkedAddNewAlbum:$('#linkedAddNewAlbum'),linkedAlbumInput:$('#linkedAlbumInput'),putToRoot:$('.put-to-root-container'),linkedAlbumCancel:$('#linkedAlbumCancel'),linkedAddAlbumErrors:$('#linkedAddAlbumErrors'),addAlbumErrors:$('.AddAlbumErrors'),putToRootBtn:$('#put-to-root'),linkedAlbumPopInContainer:$('.linkedAlbumPopInContainer'),};constructor({selectedCategoriesIds=[],selectAlbum=()=>{},removeSelectedAlbum=()=>{},showRootButton=false,adminMode=false,limitParam=50,currentAlbumId=0,modalTitle='',modalSearchPlaceholder='',}){this.instanceId=`AlbumSelector-${Math.random().toString(36).substring(2, 9)}`;this.#in_admin_mode=adminMode;this.#methodPwg=adminMode?'pwg.categories.getAdminList':'pwg.categories.getList';this.#limitParam=limitParam;this.#selected_categories=adminMode?[...selectedCategoriesIds]:selectedCategoriesIds.map(String);this.#isAlbumCreationChecked=false;this.#cats={};this.#searchCat={};this.#selectAlbum=(args)=>selectAlbum.call(null,{...args,newSelectedAlbum:this.#newSelectedAlbum.bind(this),addSelectedAlbum:this.#addSelectedAlbum.bind(this),getSelectedAlbum:this.get_selected_albums.bind(this),});this.#removeSelectedAlbum=(args)=>removeSelectedAlbum.call(null,{...args,getSelectedAlbum:this.get_selected_albums.bind(this),});this.#currentSelectedId='';this.#show_root_btn=showRootButton;this.#put_to_root=false;this.#current_cat=currentAlbumId;this.#title=modalTitle===''?str_album_modal_title:modalTitle;this.#searchPlaceholder=modalSearchPlaceholder===''?str_album_modal_placeholder:modalSearchPlaceholder;this.#loading_add=false;this.#init();}#init(){if(this.#in_admin_mode&&this.#show_root_btn){AlbumSelector.selectors.linkedAlbumPopInContainer.addClass('big');} if(!this.#show_root_btn){AlbumSelector.selectors.putToRoot.remove();} if(!this.#in_admin_mode){AlbumSelector.selectors.albumCreate.remove();AlbumSelector.selectors.linkedAlbumSwitch.remove();}} open(){if(activeAlbumSelector&&activeAlbumSelector!==this){activeAlbumSelector.close();} activeAlbumSelector=this;this.#open_album_selector();} close(){if(activeAlbumSelector===this){activeAlbumSelector=null;} this.#close_album_selector();} remove_selected_album(id){if(this.#selected_categories.includes(id)){const cat_to_remove_index=this.#selected_categories.indexOf(id);if(cat_to_remove_index>-1){this.#selected_categories.splice(cat_to_remove_index,1);}} this.#removeSelectedAlbum({id_album:id});} get_selected_albums(){return[...this.#selected_categories];} select_album(id){this.#selected_categories.push(id.toString());} resetAll(){this.#selected_categories=[];if(this.#in_admin_mode){this.#hard_reset_album_selector();}else{this.#reset_album_selector();}} hardUpdate(cats){this.#selected_categories=cats;}#newSelectedAlbum(){this.#selected_categories=this.#show_root_btn&&this.#put_to_root?['0']:[this.#currentSelectedId];}#addSelectedAlbum(){this.#selected_categories.push(this.#currentSelectedId);}#loadGeneralEvent(){const instanceAb=`.${this.instanceId}`;AlbumSelector.selectors.closeAlbumPopIn.off(`click${instanceAb}`).on(`click${instanceAb}`,()=>{this.#close_album_selector();});$(document).off(`keyup${instanceAb}`).on(`keyup${instanceAb}`,(e)=>{if(e.key==="Escape"&&AlbumSelector.selectors.addLinkedAlbum.is(":visible")){this.#close_album_selector();} if(e.key==='Enter'&&AlbumSelector.selectors.addLinkedAlbum.is(":visible")){if($('#linkedAddNewAlbum').is(':visible')){AlbumSelector.selectors.linkedAddNewAlbum.trigger(`click${instanceAb}`);}}});if(AlbumSelector.selectors.iconCancelInput.length){AlbumSelector.selectors.iconCancelInput.off(`click${instanceAb}`).on(`click${instanceAb}`,()=>{this.#reset_search_input(true);});} AlbumSelector.selectors.searchInput.off(`keyup${instanceAb}`).on(`keyup${instanceAb}`,(e)=>{const searchValue=AlbumSelector.selectors.searchInput.val();if(searchValue.length>0){AlbumSelector.selectors.iconCancelInput.show();}else{AlbumSelector.selectors.iconCancelInput.hide();} this.#perform_albums_search(searchValue);});if(this.#in_admin_mode){AlbumSelector.selectors.albumCheckBox.off(`change${instanceAb}`).on(`change${instanceAb}`,(e)=>{this.#isAlbumCreationChecked=$(e.currentTarget).is(':checked');this.#switch_album_creation();});} if(this.#show_root_btn){AlbumSelector.selectors.putToRootBtn.off(`click${instanceAb}`).on(`click${instanceAb}`,(e)=>{if(!this.#selected_categories.includes('0')){const curr=$(e.currentTarget);curr.addClass('notClickable');this.#put_to_root=true;this.#selectAlbum({album:{id:0,root:str_root}});this.#close_album_selector();}});}}#loadPickAlbumEvent(){const instanceAb=`.${this.instanceId}`;if(this.#isAlbumCreationChecked){$('.prefill-results-item').off(`click${instanceAb}`).on(`click${instanceAb}`,(e)=>{const curr=$(e.currentTarget);const cat_id=curr.attr('id');const cat=this.#cats[cat_id];this.#switch_album_view(cat);});}else{$('.prefill-results-item.available').off(`click${instanceAb}`).on(`click${instanceAb}`,(e)=>{const curr=$(e.currentTarget);const cat_id=curr.attr('id');const cat=this.#cats[cat_id];this.#currentSelectedId=cat.id;this.#selectAlbum({album:cat});this.#close_album_selector();});}}#loadSubCatEvent(){const instanceAb=`.${this.instanceId}`;$('.display-subcat').off(`click${instanceAb}`).on(`click${instanceAb}`,(e)=>{const curr=e.currentTarget;const cat_id=$(curr).prop('id');const cat=this.#cats[cat_id];if($(curr).hasClass('open')){$(curr).removeClass('open');$("#subcat-"+cat.id).fadeOut();}else if($("#subcat-"+cat.id).length){$(curr).addClass('open');$("#subcat-"+cat.id).fadeIn();}else{$("#"+cat_id+".display-subcat").removeClass('gallery-icon-up-open').addClass('gallery-icon-spin6 animate-spin');$("#"+cat_id+".search-result-item").after(`
`);this.#prefill_search_subcats(cat_id).then(()=>{$("#"+cat_id+".display-subcat").removeClass('gallery-icon-spin6 animate-spin').addClass('gallery-icon-up-open');$(curr).addClass('open');$("#subcat-"+cat.id).fadeIn();});}});}#loadFillResultEvent(tempSelect){const instanceAb=`.${this.instanceId}`;AlbumSelector.selectors.searchResult.find('.search-result-item').off(`click${instanceAb}`).on(`click${instanceAb}`,(e)=>{const curr=$(e.currentTarget);const cat_id=curr.attr('id');const cat=this.#searchCat[cat_id];const formated_cat_id=this.#in_admin_mode?cat.id:String(cat.id);if(!tempSelect.includes(formated_cat_id)){this.#currentSelectedId=cat.id;this.#selectAlbum({album:cat});this.#close_album_selector();}});}#setActive(){if(activeAlbumSelector&&activeAlbumSelector!==this){activeAlbumSelector.close();} activeAlbumSelector=this;}#open_album_selector(){this.#setActive();this.#loadGeneralEvent();if(this.#in_admin_mode){this.#hard_reset_album_selector();}else{this.#reset_album_selector();} if(this.#show_root_btn&&!this.#selected_categories.includes('0')){AlbumSelector.selectors.putToRootBtn.removeClass('notClickable');}else{AlbumSelector.selectors.putToRootBtn.addClass('notClickable');} AlbumSelector.selectors.linkedModalTitle.html(this.#title);AlbumSelector.selectors.searchInput.attr('placeholder',this.#searchPlaceholder);AlbumSelector.selectors.addLinkedAlbum.fadeIn();}#close_album_selector(){this.#cats={};this.#searchCat={};this.#currentSelectedId='';this.#put_to_root=false;this.#loading_add=false;this.#destroyEvent();AlbumSelector.selectors.addLinkedAlbum.fadeOut();}#reset_album_selector(){this.#prefill_search();this.#reset_search_input(false);AlbumSelector.selectors.limitReached.html(str_no_search_in_progress);AlbumSelector.selectors.albumSelector.show();}#hard_reset_album_selector(){AlbumSelector.selectors.albumCreate.hide();this.#hide_new_album_error();this.#reset_album_selector();AlbumSelector.selectors.linkedAlbumInput.val('');if(AlbumSelector.selectors.albumCheckBox.is(':checked')){AlbumSelector.selectors.albumCheckBox.trigger('click');} AlbumSelector.selectors.searchResult.show();AlbumSelector.selectors.linkedAlbumSwitch.show();}#reset_search_input(prefill){AlbumSelector.selectors.searchInput.val('');AlbumSelector.selectors.limitReached.show().html(str_no_search_in_progress);AlbumSelector.selectors.searchResult.empty();if(prefill){this.#prefill_search();}}#switch_album_creation(){this.#reset_album_selector();const instanceAb=`.${this.instanceId}`;if(this.#isAlbumCreationChecked){if(AlbumSelector.selectors.putToRoot.length){AlbumSelector.selectors.putToRoot.hide();} AlbumSelector.selectors.linkedModalTitle.hide();AlbumSelector.selectors.linkedModalTitle.html(str_create_and_select);AlbumSelector.selectors.linkedAddAlbum.show();AlbumSelector.selectors.linkedModalTitle.fadeIn();AlbumSelector.selectors.linkedAddAlbum.off(`click${instanceAb}`).on(`click${instanceAb}`,()=>{this.#switch_album_view('root');});}else{if(AlbumSelector.selectors.putToRoot.length){AlbumSelector.selectors.putToRoot.fadeIn();} AlbumSelector.selectors.linkedModalTitle.hide();AlbumSelector.selectors.linkedModalTitle.html(this.#title);AlbumSelector.selectors.linkedModalTitle.fadeIn();AlbumSelector.selectors.linkedAddAlbum.hide();AlbumSelector.selectors.linkedAddAlbum.off('click');}}#switch_album_view(cat){const instanceAb=`.${this.instanceId}`;AlbumSelector.selectors.albumSelector.hide();AlbumSelector.selectors.searchResult.hide();AlbumSelector.selectors.linkedAlbumSwitch.hide();AlbumSelector.selectors.albumCreate.fadeIn();AlbumSelector.selectors.linkedAlbumSubTitle.html(sprintf(str_add_subcat_of,cat==='root'?str_root_album_select:cat.name));AlbumSelector.selectors.linkedAddNewAlbum.off(`click${instanceAb}`).on(`click${instanceAb}`,()=>{this.#add_new_album(cat==='root'?cat:cat.id);});AlbumSelector.selectors.linkedAlbumCancel.off(`click${instanceAb}`).on(`click${instanceAb}`,()=>{this.#close_album_selector();});AlbumSelector.selectors.linkedAlbumInput.off(`input${instanceAb}`).on(`input${instanceAb}`,()=>{this.#hide_new_album_error();});}#hide_new_album_error(){AlbumSelector.selectors.addAlbumErrors.css('visibility','hidden');}#show_new_album_error(text){AlbumSelector.selectors.linkedAddAlbumErrors.html(text);AlbumSelector.selectors.addAlbumErrors.css('visibility','visible');}#select_new_album_and_close(cat){const tempThis=this;this.#currentSelectedId=cat.id;this.#selectAlbum({album:cat});this.#close_album_selector();}#destroyEvent(){const instanceAb=`.${this.instanceId}`;$(document).off(`keyup${instanceAb}`);$(document).off(`click${instanceAb}`);$(document).off(`change${instanceAb}`);$(document).off(`input${instanceAb}`);AlbumSelector.selectors.searchInput.off(`keyup${instanceAb}`);AlbumSelector.selectors.searchResult.find('.search-result-item').off(`click${instanceAb}`);$('.prefill-results-item').off(`click${instanceAb}`);$('.prefill-results-item.available').off(`click${instanceAb}`);}#prefill_results(rank,cats,limit){const isCreationMode=this.#isAlbumCreationChecked;const iconAlbum=this.#isAlbumCreationChecked?'icon-add-album':'gallery-icon-plus-circled';const tempSelectedCat=this.#current_cat?[...this.#selected_categories,this.#current_cat.toString()]:[...this.#selected_categories];this.#cats={...this.#cats,...Object.fromEntries(cats.map(c=>[c.id,c]))};let display_div=$('#subcat-'+rank);if('root'==rank){AlbumSelector.selectors.searchResult.empty();display_div=AlbumSelector.selectors.searchResult;}else{display_div=$('#subcat-'+rank);} cats.forEach(cat=>{let subcat='';if(cat.nb_categories>0){subcat=``} const isNotInSelectedCat=!tempSelectedCat.includes(cat.id);if(isCreationMode||isNotInSelectedCat){display_div.append(`${text}
`);}}#fill_results(cats){const iconAlbum=this.#isAlbumCreationChecked?'icon-add-album':'gallery-icon-plus-circled';const tempSelectedCat=this.#current_cat?[...this.#selected_categories,this.#current_cat.toString()]:[...this.#selected_categories];this.#searchCat=Object.fromEntries(cats.map(c=>[c.id,c]));AlbumSelector.selectors.searchResult.empty();cats.forEach(cat=>{const cat_name=this.#in_admin_mode?cat.fullname:cat.name;AlbumSelector.selectors.searchResult.append(`