# HG changeset patch # User Thierry Florac # Date 1553273223 -3600 # Node ID 393e4f1812e1febc1dec757132e8959c4a527b92 # Parent 38e2977b726b908b097bac07cedc224169d58740 Small updates in themes and collections management diff -r 38e2977b726b -r 393e4f1812e1 src/pyams_content/features/search/zmi/theme.py --- a/src/pyams_content/features/search/zmi/theme.py Fri Mar 22 17:46:49 2019 +0100 +++ b/src/pyams_content/features/search/zmi/theme.py Fri Mar 22 17:47:03 2019 +0100 @@ -14,17 +14,19 @@ from z3c.form import field +from pyams_content import _ +from pyams_content.component.theme import ICollectionsManager, ICollectionsManagerTarget, IThemesManager, \ + IThemesManagerTarget from pyams_content.features.search import ISearchFolder from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION -from pyams_content.shared.view.interfaces import IViewTagsSettings, IViewThemesSettings, IViewCollectionsSettings -from pyams_content.shared.view.zmi.theme import ViewTagsEditForm, ViewThemesEditForm, ViewCollectionsEditForm +from pyams_content.shared.view.interfaces import IViewCollectionsSettings, IViewTagsSettings, IViewThemesSettings +from pyams_content.shared.view.zmi.theme import ViewCollectionsEditForm, ViewTagsEditForm, ViewThemesEditForm from pyams_form.form import ajax_config from pyams_pagelet.pagelet import pagelet_config from pyams_skin.layer import IPyAMSLayer from pyams_thesaurus.zmi.widget import ThesaurusTermsTreeFieldWidget from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION - -from pyams_content import _ +from pyams_utils.traversing import get_parent @pagelet_config(name='tags.html', context=ISearchFolder, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) @@ -54,9 +56,15 @@ fields['themes'].widgetFactory = ThesaurusTermsTreeFieldWidget def updateWidgets(self, prefix=None): - super(SearchFolderThemesEditForm, self).updateWidgets(prefix) + super(ViewThemesEditForm, self).updateWidgets(prefix) if 'themes' in self.widgets: - self.widgets['themes'].label_css_class = 'hidden' + target = get_parent(self.context, IThemesManagerTarget) + manager = IThemesManager(target) + widget = self.widgets['themes'] + widget.label_css_class = 'hidden' + widget.input_css_class = 'col-md-12' + widget.thesaurus_name = manager.thesaurus_name + widget.extract_name = manager.extract_name @pagelet_config(name='collections.html', context=ISearchFolder, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) @@ -70,6 +78,12 @@ fields['collections'].widgetFactory = ThesaurusTermsTreeFieldWidget def updateWidgets(self, prefix=None): - super(SearchFolderCollectionsEditForm, self).updateWidgets(prefix) + super(ViewCollectionsEditForm, self).updateWidgets(prefix) if 'collections' in self.widgets: - self.widgets['collections'].label_css_class = 'hidden' + target = get_parent(self.context, ICollectionsManagerTarget) + manager = ICollectionsManager(target) + widget = self.widgets['collections'] + widget.label_css_class = 'hidden' + widget.input_css_class = 'col-md-12' + widget.thesaurus_name = manager.thesaurus_name + widget.extract_name = manager.extract_name diff -r 38e2977b726b -r 393e4f1812e1 src/pyams_content/shared/site/manager.py --- a/src/pyams_content/shared/site/manager.py Fri Mar 22 17:46:49 2019 +0100 +++ b/src/pyams_content/shared/site/manager.py Fri Mar 22 17:47:03 2019 +0100 @@ -20,9 +20,10 @@ from zope.schema.fieldproperty import FieldProperty from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary +from pyams_content import _ from pyams_content.component.illustration import IIllustrationTarget, ILinkIllustrationTarget from pyams_content.component.paragraph.interfaces import IParagraphFactorySettings -from pyams_content.component.theme.interfaces import IThemesManagerTarget +from pyams_content.component.theme.interfaces import ICollectionsManagerTarget, IThemesManagerTarget from pyams_content.features.footer.interfaces import IFooterTarget from pyams_content.features.header.interfaces import IHeaderTarget from pyams_content.features.preview.interfaces import IPreviewTarget @@ -45,11 +46,9 @@ from pyams_utils.traversing import get_parent from pyams_utils.vocabulary import vocabulary_config -from pyams_content import _ - -@implementer(ISiteManager, IParagraphFactorySettings, IThemesManagerTarget, IPictogramManagerTarget, - IIllustrationTarget, ILinkIllustrationTarget, IPortalContext, IHeaderTarget, +@implementer(ISiteManager, IParagraphFactorySettings, IThemesManagerTarget, ICollectionsManagerTarget, + IPictogramManagerTarget, IIllustrationTarget, ILinkIllustrationTarget, IPortalContext, IHeaderTarget, IFooterTarget, IPreviewTarget) class SiteManager(SiteContainerMixin, OrderedContainer, BaseSharedTool, UserSkinnableContent): """Site manager persistent class""" diff -r 38e2977b726b -r 393e4f1812e1 src/pyams_content/shared/view/zmi/theme.py --- a/src/pyams_content/shared/view/zmi/theme.py Fri Mar 22 17:46:49 2019 +0100 +++ b/src/pyams_content/shared/view/zmi/theme.py Fri Mar 22 17:47:03 2019 +0100 @@ -12,36 +12,29 @@ __docformat__ = 'restructuredtext' - -# import standard library +from z3c.form import button, field +from z3c.form.browser.checkbox import SingleCheckBoxFieldWidget +from z3c.form.interfaces import INPUT_MODE +from zope.interface import Interface, implementer -# import interfaces +from pyams_content import _ +from pyams_content.component.theme import ICollectionsManager, ITagsManager, IThemesManager from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION -from pyams_content.shared.view.interfaces import IWfView, IViewThemesSettings, IViewsManager, IViewTagsSettings, \ - IViewCollectionsSettings -from pyams_form.interfaces.form import IWidgetForm, IUncheckedEditFormButtons +from pyams_content.shared.view.interfaces import IViewCollectionsSettings, IViewTagsSettings, IViewThemesSettings, \ + IViewsManager, IWfView +from pyams_form.form import ajax_config +from pyams_form.interfaces.form import IUncheckedEditFormButtons, IWidgetForm +from pyams_pagelet.pagelet import pagelet_config from pyams_skin.interfaces import IInnerPage from pyams_skin.layer import IPyAMSLayer -from pyams_thesaurus.interfaces.thesaurus import IThesaurusContextManager -from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION -from pyams_zmi.interfaces.menu import IPropertiesMenu -from pyams_zmi.layer import IAdminLayer -from z3c.form.interfaces import INPUT_MODE - -# import packages -from pyams_content.component.theme import ITagsManager -from pyams_form.form import ajax_config -from pyams_pagelet.pagelet import pagelet_config from pyams_skin.viewlet.menu import MenuItem from pyams_thesaurus.zmi.widget import ThesaurusTermsTreeFieldWidget +from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION from pyams_utils.registry import get_utility from pyams_viewlet.viewlet import viewlet_config from pyams_zmi.form import AdminEditForm -from z3c.form import field, button -from z3c.form.browser.checkbox import SingleCheckBoxFieldWidget -from zope.interface import implementer, Interface - -from pyams_content import _ +from pyams_zmi.interfaces.menu import IPropertiesMenu +from pyams_zmi.layer import IAdminLayer # @@ -128,7 +121,7 @@ def updateWidgets(self, prefix=None): super(ViewThemesEditForm, self).updateWidgets(prefix) if 'themes' in self.widgets: - manager = IThesaurusContextManager(get_utility(IViewsManager)) + manager = IThemesManager(get_utility(IViewsManager)) widget = self.widgets['themes'] widget.label_css_class = 'control-label col-md-2' widget.input_css_class = 'col-md-12' @@ -174,7 +167,7 @@ def updateWidgets(self, prefix=None): super(ViewCollectionsEditForm, self).updateWidgets(prefix) if 'collections' in self.widgets: - manager = IThesaurusContextManager(get_utility(IViewsManager)) + manager = ICollectionsManager(get_utility(IViewsManager)) widget = self.widgets['collections'] widget.label_css_class = 'control-label col-md-2' widget.input_css_class = 'col-md-12' diff -r 38e2977b726b -r 393e4f1812e1 src/pyams_content/zmi/resources/js/pyams_content.js --- a/src/pyams_content/zmi/resources/js/pyams_content.js Fri Mar 22 17:46:49 2019 +0100 +++ b/src/pyams_content/zmi/resources/js/pyams_content.js Fri Mar 22 17:47:03 2019 +0100 @@ -467,11 +467,18 @@ */ themes: { - initExtracts: function(element) { - var thesaurus = $('select[name="manager_themes.widgets.thesaurus_name:list"]', element); + updateThesaurus: function(event) { + debugger; + var form = $(this).parents('form'); + // clear extract name + var extract = $('select[name$=".extract_name:list"]', form); + var plugin = extract.data('select2'); + extract.empty(); + extract.select2('data', null); + plugin.results.empty(); + // check thesaurus for new extracts + var thesaurus = $('select[name$=".thesaurus_name:list"]', form); var thesaurus_name = thesaurus.val(); - var extract = $('select[name="manager_themes.widgets.extract_name:list"]', element); - var extract_name = extract.val(); if (thesaurus_name) { MyAMS.jsonrpc.post('getExtracts', {thesaurus_name: thesaurus_name}, @@ -480,33 +487,12 @@ extract.empty(); $(data.result).each(function() { $('').attr('value', this.id) - .attr('selected', this.id === extract_name) .text(this.text) .appendTo(extract); }); - }); - } - }, - - getExtracts: function(event) { - var select = $(event.currentTarget); - var form = select.parents('form'); - var thesaurus_name = $('select[name="manager_themes.widgets.thesaurus_name:list"]', form).val(); - var extract = $('select[name="manager_themes.widgets.extract_name:list"]', form); - var plugin = extract.data('select2'); - if (thesaurus_name && (thesaurus_name !== '--NOVALUE--')) { - MyAMS.jsonrpc.post('getExtracts', - {thesaurus_name: thesaurus_name}, - {url: '/api/thesaurus/json'}, - function(data) { - plugin.results.empty(); plugin.opts.populateResults.call(plugin, plugin.results, data.result, {term: ''}); }); - } else { - extract.select2('data', null); - plugin.results.empty(); - plugin.opts.populateResults.call(plugin, plugin.results, [], {term: ''}); } } }, diff -r 38e2977b726b -r 393e4f1812e1 src/pyams_content/zmi/resources/js/pyams_content.min.js --- a/src/pyams_content/zmi/resources/js/pyams_content.min.js Fri Mar 22 17:46:49 2019 +0100 +++ b/src/pyams_content/zmi/resources/js/pyams_content.min.js Fri Mar 22 17:47:03 2019 +0100 @@ -1,1 +1,1 @@ -!function(t,e){"use strict";var a=e.MyAMS,i={widget:{treeview:{selectFolder:function(e,a){t(e.target).siblings('input[type="hidden"]').val(a.id)},unselectFolder:function(e,a){t(e.target).siblings('input[type="hidden"]').val(null)}}},TinyMCE:{initEditor:function(t){tinyMCE.addI18n("fr",{"Link list":"Liste de liens","Toggle h3 header":"En-tête H3","Toggle h4 header":"En-tête H4","Insert internal link":"Insérer un lien interne","Link title":"Texte à afficher","Internal number":"N° interne","Custom styles":"Styles spécifiques"}),tinymce.PluginManager.add("internal_links",function(t,e){t.addButton("internal_links",{icon:"cloud-check",tooltip:"Insert internal link",image:"/--static--/pyams_content/img/internal-link.png",stateSelector:'a[href^="oid://"]',onclick:function(){var e={},a=t.dom,i=t.selection,n=i.getNode(),s=a.getParent(n,"a[href]");e.text=s?s.innerText||s.textContent:i.getContent({format:"text"}),e.href=s?a.getAttrib(s,"href"):"",t.windowManager.open({title:"Insert internal link",body:[{type:"textbox",name:"oid",label:"Internal number",value:e.href,onchange:function(){e.href=this.value()}},{type:"textbox",name:"title",label:"Link title",value:e.text,onchange:function(){e.text=this.value()}}],onsubmit:function(n){t.focus(),e.href?s?("innerText"in s?s.innerText=e.text:s.textContent=e.text,a.setAttribs(s,{href:e.href}),i.select(s),t.undoManager.add()):t.insertContent(''+n.data.title+""):t.execCommand("unlink")}})}})}),tinyMCE.PluginManager.add("headers",function(t,e){["h3","h4"].forEach(function(e){t.addButton("header-"+e,{tooltip:"Toggle "+e+" header",text:e.toUpperCase(),onClick:function(){t.execCommand("mceToggleFormat",!1,e)},onPostRender:function(){var a=this,i=function(){t.formatter.formatChanged(e,function(t){a.active(t)})};t.formatter?i():t.on("init",i)}})})}),t.paste_as_text=!0,t.image_list=i.TinyMCE.getImagesList,t.link_list=i.TinyMCE.getLinksList,t.style_formats=[{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];var e=this.data();return e.amsTinymceEditorStyles&&t.style_formats.push({title:"Custom styles",items:e.amsTinymceEditorStyles}),t.plugins+=" internal_links headers",t.toolbar1&&(t.toolbar1="undo redo | pastetext | header-h3 header-h4 styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent"),t.toolbar2&&(t.toolbar2="forecolor backcolor | charmap internal_links link | fullscreen preview print | code"),t},getImagesList:function(e){var i=t(document.activeElement).parents("form");if(i.exists()){var n=i.attr("data-ams-form-handler")||i.attr("action"),s=n.substr(0,n.lastIndexOf("/")+1);return a.ajax.post(s+"get-images-list.json",{},e)}},getLinksList:function(e){var i=t(document.activeElement).parents("form");if(i.exists()){var n=i.attr("data-ams-form-handler")||i.attr("action"),s=n.substr(0,n.lastIndexOf("/")+1);return a.ajax.post(s+"get-links-list.json",{},e)}}},galleries:{addMediaCallback:function(e){var a=t(".gallery",t('[id="'+e.parent+'"]')),n=a.siblings(".switcher");n.parents("fieldset:first").hasClass("switched")&&n.click();for(var s=0;s  '+a.i18n.DELETE_WARNING,buttons:a.i18n.BTN_OK_CANCEL},function(t){if(t===a.i18n.BTN_OK){var i=e.parents(".gallery").data("ams-location"),n=e.parents(".media"),s=n.data("ams-element-name");a.ajax.post(i+"/delete-element.json",{object_name:s},function(t,e){n.remove(),t.handle_json&&a.ajax.handleJSON(t)})}})}},afterFancyboxLoad:function(t,e){t.element.hasClass("not-visible")&&t.inner.prepend('
')}},illustration:{addIllustration:function(){var e=t(this),a=e.parents(".btn-group").siblings("legend.switcher");t("i.fa-plus",a).click(),e.hide(),t('input[type="file"]',a.siblings(".form-group:first")).click()}},paragraphs:{preReload:function(){i.paragraphs.switched=t("i.switch.fa-minus-square-o","#paragraphs_list").parents("tr").listattr("id")},postReload:function(){t(i.paragraphs.switched).each(function(){t("i.switch.fa-plus-square-o",'[id="'+this+'"]').parents("div").first().click()}),delete i.paragraphs.switched},refreshParagraph:function(e){var a=t('tr[id="'+e.object_id+'"]');t("span.title",a).html(e.title||" - - - - - - - -")},switchEditor:function(e){var i=t(this),n=t("i.switch",i),s=i.parents("td"),r=t(".editor",s),o=i.parents("tr");if(n.hasClass("fa-plus-square-o")){var l=o.parents("table");r.html('

'),a.ajax.post(l.data("ams-location")+"/get-paragraph-editor.json",{object_name:o.data("ams-element-name")},function(t){r.html(t),t&&(a.initContent(r),n.removeClass("fa-plus-square-o").addClass("fa-minus-square-o"),o.data("ams-disabled-handlers",!0),a.skin.scrollTo(r,{offset:r.height()-o.height()}))})}else a.skin.cleanContainer(r),r.empty(),n.removeClass("fa-minus-square-o").addClass("fa-plus-square-o"),o.removeData("ams-disabled-handlers")},switchLastEditor:function(e){var a=t('table[id="'+e+'"]'),i=t("tr:last",a);t('[data-ams-click-handler="PyAMS_content.paragraphs.switchEditor"]',i).click()},switchAllEditors:function(e){var i=t(this),n=t("i",i),s=i.parents("table");n.hasClass("fa-plus-square-o")?(n.removeClass("fa-plus-square-o").addClass("fa-cog fa-spin"),a.ajax.post(s.data("ams-location")+"/get-paragraphs-editors.json",{},function(e){for(var i in e)if(e.hasOwnProperty(i)){var r=t('tr[data-ams-element-name="'+i+'"]',s),o=t(".editor",r);o.is(":empty")&&o.html(e[i]),t(".fa-plus-square-o",r).removeClass("fa-plus-square-o").addClass("fa-minus-square-o"),r.data("ams-disabled-handlers",!0)}t("i.fa-plus-square-o",t("tbody",s)).exists()||n.removeClass("fa-cog fa-spin").addClass("fa-minus-square-o"),a.initContent(s)})):(t(".editor",s).each(function(){a.skin.cleanContainer(t(this)),t(this).empty()}),t(".fa-minus-square-o",s).removeClass("fa-minus-square-o").addClass("fa-plus-square-o"),t("tr",s).removeData("ams-disabled-handlers"))},updateToolbar:function(e){var i=t('tr[id="'+e.object_id+'"]'),n=t(".title-toolbar",i);n.replaceWith(e.toolbar_tag),n=t(".title-toolbar",i),a.initContent(n)},updateMarkers:function(e){var i=t('tr[id="'+e.object_id+'"]'),n=t(".title-toolbar",i),s=t("DIV.action."+e.marker_type,n);s.exists()?s.replaceWith(e.marker_tag):t(e.marker_tag).appendTo(n),e.marker_tag&&(s=t("DIV.action."+e.marker_type,n),a.initContent(s)),a.helpers.sort(n,"weight")}},pictograms:{initManagerSelection:function(){var e=t(this),a=t('input[type="hidden"]',t(".selected-pictograms",e)).listattr("value");return{selected:JSON.stringify(a)}},switchPictogram:function(){var e=t(this),a=e.parents(".pictograms"),i=a.parents(".pictograms-manager");a.hasClass("available-pictograms")?t(".selected-pictograms",i).append(e):t(".available-pictograms",i).append(e)}},themes:{initExtracts:function(e){var i=t('select[name="manager_themes.widgets.thesaurus_name:list"]',e).val(),n=t('select[name="manager_themes.widgets.extract_name:list"]',e),s=n.val();i&&a.jsonrpc.post("getExtracts",{thesaurus_name:i},{url:"/api/thesaurus/json"},function(e){n.empty(),t(e.result).each(function(){t("").attr("value",this.id).attr("selected",this.id===s).text(this.text).appendTo(n)})})},getExtracts:function(e){var i=t(e.currentTarget).parents("form"),n=t('select[name="manager_themes.widgets.thesaurus_name:list"]',i).val(),s=t('select[name="manager_themes.widgets.extract_name:list"]',i),r=s.data("select2");n&&"--NOVALUE--"!==n?a.jsonrpc.post("getExtracts",{thesaurus_name:n},{url:"/api/thesaurus/json"},function(t){r.results.empty(),r.opts.populateResults.call(r,r.results,t.result,{term:""})}):(s.select2("data",null),r.results.empty(),r.opts.populateResults.call(r,r.results,[],{term:""}))}},fields:{refreshField:function(e){var a=t('table[id="form_fields_list"]'),i=t('tr[data-ams-element-name="'+e.object_name+'"]',a);t("td:nth-child(4)",i).html(e.title)}},imgmap:{init:function(){var e=t(this);a.ajax.check(t.fn.canvasAreaDraw,"/--static--/pyams_content/js/jquery-canvasAreaDraw"+a.devext+".js",function(){e.canvasAreaDraw({imageUrl:e.data("ams-image-url")})})},initPreview:function(){var e=t(this);a.ajax.check(t.fn.mapster,"/--static--/pyams_content/js/jquery-imagemapster-1.2.10"+a.devext+".js",function(){e.mapster({fillColor:"ff0000",fillOpacity:.35,selected:!0,highlight:!0,staticState:!0})})}},site:{switchVisibility:function(){return function(){var e=t(this),i=e.parents("tr").first();a.ajax.post(i.data("ams-location")+"/switch-content-visibility.json",{object_name:i.data("ams-element-name")},function(a,i){var n="fa-eye";a.visible||(n+="-slash"),a.published||(n+=" text-danger"),t("i",e).attr("class","fa fa-fw "+n)})}}},review:{timer:null,timer_duration:{general:3e4,chat:5e3},initComments:function(e){var n=t(".chat-body",e);n.animate({scrollTop:n[0].scrollHeight},1e3),clearInterval(i.review.timer),i.review.timer=setInterval(i.review.updateComments,i.review.timer_duration.chat),a.skin.registerCleanCallback(i.review.cleanCommentsCallback)},cleanCommentsCallback:function(){clearInterval(i.review.timer),i.review.timer=setInterval(i.review.updateComments,i.review.timer_duration.general)},updateComments:function(){var e,i=t(".badge",'nav a[href="#review-comments.html"]'),n=t(".chat-body",".widget-body");e=n.exists()?t(".message",n).length:parseInt(i.text()),a.ajax.post("get-last-review-comments.json",{count:e},function(a){n.exists()&&i.removeClass("bg-color-danger").addClass("bg-color-info"),e!==a.count&&(i.text(a.count).removeClass("hidden"),n.exists()&&(t(".messages",n).append(a.content),n.animate({scrollTop:n[0].scrollHeight},1e3)),n.exists()||i.removeClass("bg-color-info").addClass("bg-color-danger").animate({padding:"3px 12px 2px","margin-right":"9px"},"slow",function(){t(this).animate({padding:"3px 6px 2px","margin-right":"15px"},"slow")}))})},initCommentData:function(e){var a=t(".chat-body",".widget-body");return{count:t(".message",a).length}},addCommentAction:function(){return function(){t('textarea[name="comment"]').focus()}},addCommentCallback:function(e){var a=t(this),i=a.parents(".widget-body");t(".messages",i).append(e.content),t('textarea[name="comment"]',a).val("");var n=t(".chat-body",i);n.animate({scrollTop:n[0].scrollHeight},1e3),t(".badge",'nav a[href="#review-comments.html"]').text(e.count).removeClass("hidden")}},header:{submitEditForm:function(){var e=t(this).parents("form").first();a.form.submit(e,{form_data:{autosubmit:!0}})}},footer:{submitEditForm:function(){var e=t(this).parents("form").first();a.form.submit(e,{form_data:{autosubmit:!0}})}},profile:{switchFavorite:function(){var e=t(this),i=e.data("sequence-oid");a.ajax.post("switch-user-favorite.json",{oid:i},function(t,a){t.favorite?e.removeClass("fa-star-o").addClass("fa-star"):e.removeClass("fa-star").addClass("fa-star-o")})}}};t(".badge",'nav a[href="#review-comments.html"]').exists()&&(i.review.timer=setInterval(i.review.updateComments,i.review.timer_duration.general)),e.PyAMS_content=i}(jQuery,this); +!function(t,e){"use strict";var a=e.MyAMS,i={widget:{treeview:{selectFolder:function(e,a){t(e.target).siblings('input[type="hidden"]').val(a.id)},unselectFolder:function(e,a){t(e.target).siblings('input[type="hidden"]').val(null)}}},TinyMCE:{initEditor:function(t){tinyMCE.addI18n("fr",{"Link list":"Liste de liens","Toggle h3 header":"En-tête H3","Toggle h4 header":"En-tête H4","Insert internal link":"Insérer un lien interne","Link title":"Texte à afficher","Internal number":"N° interne","Custom styles":"Styles spécifiques"}),tinymce.PluginManager.add("internal_links",function(t,e){t.addButton("internal_links",{icon:"cloud-check",tooltip:"Insert internal link",image:"/--static--/pyams_content/img/internal-link.png",stateSelector:'a[href^="oid://"]',onclick:function(){var e={},a=t.dom,i=t.selection,n=i.getNode(),s=a.getParent(n,"a[href]");e.text=s?s.innerText||s.textContent:i.getContent({format:"text"}),e.href=s?a.getAttrib(s,"href"):"",t.windowManager.open({title:"Insert internal link",body:[{type:"textbox",name:"oid",label:"Internal number",value:e.href,onchange:function(){e.href=this.value()}},{type:"textbox",name:"title",label:"Link title",value:e.text,onchange:function(){e.text=this.value()}}],onsubmit:function(n){t.focus(),e.href?s?("innerText"in s?s.innerText=e.text:s.textContent=e.text,a.setAttribs(s,{href:e.href}),i.select(s),t.undoManager.add()):t.insertContent(''+n.data.title+""):t.execCommand("unlink")}})}})}),tinyMCE.PluginManager.add("headers",function(t,e){["h3","h4"].forEach(function(e){t.addButton("header-"+e,{tooltip:"Toggle "+e+" header",text:e.toUpperCase(),onClick:function(){t.execCommand("mceToggleFormat",!1,e)},onPostRender:function(){var a=this,i=function(){t.formatter.formatChanged(e,function(t){a.active(t)})};t.formatter?i():t.on("init",i)}})})}),t.paste_as_text=!0,t.image_list=i.TinyMCE.getImagesList,t.link_list=i.TinyMCE.getLinksList,t.style_formats=[{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];var e=this.data();return e.amsTinymceEditorStyles&&t.style_formats.push({title:"Custom styles",items:e.amsTinymceEditorStyles}),t.plugins+=" internal_links headers",t.toolbar1&&(t.toolbar1="undo redo | pastetext | header-h3 header-h4 styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent"),t.toolbar2&&(t.toolbar2="forecolor backcolor | charmap internal_links link | fullscreen preview print | code"),t},getImagesList:function(e){var i=t(document.activeElement).parents("form");if(i.exists()){var n=i.attr("data-ams-form-handler")||i.attr("action"),s=n.substr(0,n.lastIndexOf("/")+1);return a.ajax.post(s+"get-images-list.json",{},e)}},getLinksList:function(e){var i=t(document.activeElement).parents("form");if(i.exists()){var n=i.attr("data-ams-form-handler")||i.attr("action"),s=n.substr(0,n.lastIndexOf("/")+1);return a.ajax.post(s+"get-links-list.json",{},e)}}},galleries:{addMediaCallback:function(e){var a=t(".gallery",t('[id="'+e.parent+'"]')),n=a.siblings(".switcher");n.parents("fieldset:first").hasClass("switched")&&n.click();for(var s=0;s  '+a.i18n.DELETE_WARNING,buttons:a.i18n.BTN_OK_CANCEL},function(t){if(t===a.i18n.BTN_OK){var i=e.parents(".gallery").data("ams-location"),n=e.parents(".media"),s=n.data("ams-element-name");a.ajax.post(i+"/delete-element.json",{object_name:s},function(t,e){n.remove(),t.handle_json&&a.ajax.handleJSON(t)})}})}},afterFancyboxLoad:function(t,e){t.element.hasClass("not-visible")&&t.inner.prepend('
')}},illustration:{addIllustration:function(){var e=t(this),a=e.parents(".btn-group").siblings("legend.switcher");t("i.fa-plus",a).click(),e.hide(),t('input[type="file"]',a.siblings(".form-group:first")).click()}},paragraphs:{preReload:function(){i.paragraphs.switched=t("i.switch.fa-minus-square-o","#paragraphs_list").parents("tr").listattr("id")},postReload:function(){t(i.paragraphs.switched).each(function(){t("i.switch.fa-plus-square-o",'[id="'+this+'"]').parents("div").first().click()}),delete i.paragraphs.switched},refreshParagraph:function(e){var a=t('tr[id="'+e.object_id+'"]');t("span.title",a).html(e.title||" - - - - - - - -")},switchEditor:function(e){var i=t(this),n=t("i.switch",i),s=i.parents("td"),r=t(".editor",s),o=i.parents("tr");if(n.hasClass("fa-plus-square-o")){var l=o.parents("table");r.html('

'),a.ajax.post(l.data("ams-location")+"/get-paragraph-editor.json",{object_name:o.data("ams-element-name")},function(t){r.html(t),t&&(a.initContent(r),n.removeClass("fa-plus-square-o").addClass("fa-minus-square-o"),o.data("ams-disabled-handlers",!0),a.skin.scrollTo(r,{offset:r.height()-o.height()}))})}else a.skin.cleanContainer(r),r.empty(),n.removeClass("fa-minus-square-o").addClass("fa-plus-square-o"),o.removeData("ams-disabled-handlers")},switchLastEditor:function(e){var a=t('table[id="'+e+'"]'),i=t("tr:last",a);t('[data-ams-click-handler="PyAMS_content.paragraphs.switchEditor"]',i).click()},switchAllEditors:function(e){var i=t(this),n=t("i",i),s=i.parents("table");n.hasClass("fa-plus-square-o")?(n.removeClass("fa-plus-square-o").addClass("fa-cog fa-spin"),a.ajax.post(s.data("ams-location")+"/get-paragraphs-editors.json",{},function(e){for(var i in e)if(e.hasOwnProperty(i)){var r=t('tr[data-ams-element-name="'+i+'"]',s),o=t(".editor",r);o.is(":empty")&&o.html(e[i]),t(".fa-plus-square-o",r).removeClass("fa-plus-square-o").addClass("fa-minus-square-o"),r.data("ams-disabled-handlers",!0)}t("i.fa-plus-square-o",t("tbody",s)).exists()||n.removeClass("fa-cog fa-spin").addClass("fa-minus-square-o"),a.initContent(s)})):(t(".editor",s).each(function(){a.skin.cleanContainer(t(this)),t(this).empty()}),t(".fa-minus-square-o",s).removeClass("fa-minus-square-o").addClass("fa-plus-square-o"),t("tr",s).removeData("ams-disabled-handlers"))},updateToolbar:function(e){var i=t('tr[id="'+e.object_id+'"]'),n=t(".title-toolbar",i);n.replaceWith(e.toolbar_tag),n=t(".title-toolbar",i),a.initContent(n)},updateMarkers:function(e){var i=t('tr[id="'+e.object_id+'"]'),n=t(".title-toolbar",i),s=t("DIV.action."+e.marker_type,n);s.exists()?s.replaceWith(e.marker_tag):t(e.marker_tag).appendTo(n),e.marker_tag&&(s=t("DIV.action."+e.marker_type,n),a.initContent(s)),a.helpers.sort(n,"weight")}},pictograms:{initManagerSelection:function(){var e=t(this),a=t('input[type="hidden"]',t(".selected-pictograms",e)).listattr("value");return{selected:JSON.stringify(a)}},switchPictogram:function(){var e=t(this),a=e.parents(".pictograms"),i=a.parents(".pictograms-manager");a.hasClass("available-pictograms")?t(".selected-pictograms",i).append(e):t(".available-pictograms",i).append(e)}},themes:{updateThesaurus:function(e){var i=t(this).parents("form"),n=t('select[name$=".extract_name:list"]',i),s=n.data("select2");n.empty(),n.select2("data",null),s.results.empty();var r=t('select[name$=".thesaurus_name:list"]',i).val();r&&a.jsonrpc.post("getExtracts",{thesaurus_name:r},{url:"/api/thesaurus/json"},function(e){n.empty(),t(e.result).each(function(){t("").attr("value",this.id).text(this.text).appendTo(n)}),s.opts.populateResults.call(s,s.results,e.result,{term:""})})}},fields:{refreshField:function(e){var a=t('table[id="form_fields_list"]'),i=t('tr[data-ams-element-name="'+e.object_name+'"]',a);t("td:nth-child(4)",i).html(e.title)}},imgmap:{init:function(){var e=t(this);a.ajax.check(t.fn.canvasAreaDraw,"/--static--/pyams_content/js/jquery-canvasAreaDraw"+a.devext+".js",function(){e.canvasAreaDraw({imageUrl:e.data("ams-image-url")})})},initPreview:function(){var e=t(this);a.ajax.check(t.fn.mapster,"/--static--/pyams_content/js/jquery-imagemapster-1.2.10"+a.devext+".js",function(){e.mapster({fillColor:"ff0000",fillOpacity:.35,selected:!0,highlight:!0,staticState:!0})})}},site:{switchVisibility:function(){return function(){var e=t(this),i=e.parents("tr").first();a.ajax.post(i.data("ams-location")+"/switch-content-visibility.json",{object_name:i.data("ams-element-name")},function(a,i){var n="fa-eye";a.visible||(n+="-slash"),a.published||(n+=" text-danger"),t("i",e).attr("class","fa fa-fw "+n)})}}},review:{timer:null,timer_duration:{general:3e4,chat:5e3},initComments:function(e){var n=t(".chat-body",e);n.animate({scrollTop:n[0].scrollHeight},1e3),clearInterval(i.review.timer),i.review.timer=setInterval(i.review.updateComments,i.review.timer_duration.chat),a.skin.registerCleanCallback(i.review.cleanCommentsCallback)},cleanCommentsCallback:function(){clearInterval(i.review.timer),i.review.timer=setInterval(i.review.updateComments,i.review.timer_duration.general)},updateComments:function(){var e,i=t(".badge",'nav a[href="#review-comments.html"]'),n=t(".chat-body",".widget-body");e=n.exists()?t(".message",n).length:parseInt(i.text()),a.ajax.post("get-last-review-comments.json",{count:e},function(a){n.exists()&&i.removeClass("bg-color-danger").addClass("bg-color-info"),e!==a.count&&(i.text(a.count).removeClass("hidden"),n.exists()&&(t(".messages",n).append(a.content),n.animate({scrollTop:n[0].scrollHeight},1e3)),n.exists()||i.removeClass("bg-color-info").addClass("bg-color-danger").animate({padding:"3px 12px 2px","margin-right":"9px"},"slow",function(){t(this).animate({padding:"3px 6px 2px","margin-right":"15px"},"slow")}))})},initCommentData:function(e){var a=t(".chat-body",".widget-body");return{count:t(".message",a).length}},addCommentAction:function(){return function(){t('textarea[name="comment"]').focus()}},addCommentCallback:function(e){var a=t(this),i=a.parents(".widget-body");t(".messages",i).append(e.content),t('textarea[name="comment"]',a).val("");var n=t(".chat-body",i);n.animate({scrollTop:n[0].scrollHeight},1e3),t(".badge",'nav a[href="#review-comments.html"]').text(e.count).removeClass("hidden")}},header:{submitEditForm:function(){var e=t(this).parents("form").first();a.form.submit(e,{form_data:{autosubmit:!0}})}},footer:{submitEditForm:function(){var e=t(this).parents("form").first();a.form.submit(e,{form_data:{autosubmit:!0}})}},profile:{switchFavorite:function(){var e=t(this),i=e.data("sequence-oid");a.ajax.post("switch-user-favorite.json",{oid:i},function(t,a){t.favorite?e.removeClass("fa-star-o").addClass("fa-star"):e.removeClass("fa-star").addClass("fa-star-o")})}}};t(".badge",'nav a[href="#review-comments.html"]').exists()&&(i.review.timer=setInterval(i.review.updateComments,i.review.timer_duration.general)),e.PyAMS_content=i}(jQuery,this);