generator-craftskeleton
Version:
Starterkit for Craft CMS 2.x (Multi-Environment Configs with HeartyConfig, Gulp, and Bower for Dependencie-Management) made by interpunkt. ag
1 lines • 6.85 kB
JavaScript
!function(t){function e(n){if(i[n])return i[n].exports;var a=i[n]={exports:{},id:n,loaded:!1};return t[n].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var i={};return e.m=t,e.c=i,e.p="javascripts/",e(0)}([function(t,e,i){t.exports=i(1)},function(t,e){"use strict";!function(t){return t.Craft&&t.jQuery?void(Craft.CpFieldLinksPlugin={elementEditors:{},settings:{settingsClassSelector:"cpFieldLinks-settings",infoClassSelector:"cpFieldLinks-info",redirectKey:"_CpFieldLinksRedirectTo",actionInputKeys:['[value="fields/saveField"]','[value="sections/saveEntryType"]','[value="globals/saveSet"]','[value="categories/saveGroup"]','[value="commerce/productTypes/saveProductType"]'],sourceIdKeys:['[name="entryTypeId"]','[name="sectionId"]','[name="setId"]','[name="groupId"]','[name="typeId"]']},init:function(t){this.data=t,this.setPathAndRedirect();var e=(new Date).getTime(),i=function(){Craft.livePreview?(Craft.livePreview.on("enter",this.onLivePreviewEnter.bind(this)),Craft.livePreview.on("exit",this.onLivePreviewExit.bind(this))):(new Date).getTime()-e<2e3&&Garnish.requestAnimationFrame(i)}.bind(this);i(),Garnish.$doc.on("click","."+this.settings.settingsClassSelector+" a",this.onCpFieldLinksClick.bind(this)).on("click",".matrix .btn.add, .matrix .btn[data-type]",this.onMatrixBlockAddButtonClick.bind(this)).ajaxComplete(this.onAjaxComplete.bind(this)),this.render()},initElementEditor:function(){var t=(new Date).getTime(),e=function(){var i=(new Date).getTime(),n=$(".elementeditor:last"),a=n.length>0?n.closest(".hud"):!1,s=a&&a.length>0?a.data("elementEditor"):!1;s&&s.hud?(this.elementEditors[s._namespace]=s,s.hud.on("hide",$.proxy(this.destroyElementEditor,this,s)),Garnish.requestAnimationFrame(this.addFieldLinks.bind(this))):2e3>i-t&&Garnish.requestAnimationFrame(e)}.bind(this);e()},destroyElementEditor:function(t){this.elementEditors.hasOwnProperty(t._namespace)&&delete this.elementEditors[t._namespace]},setPathAndRedirect:function(){this.path=Craft.path;var t=Craft.getLocalStorage(this.settings.redirectKey);if(t){var e=$('input[type="hidden"][name="action"]').filter(this.settings.actionInputKeys.join(",")),i=$('input[type="hidden"][name="redirect"]');e.length>0&&i.length>0&&i.attr("value",t)}Craft.setLocalStorage(this.settings.redirectKey,null)},render:function(){$(".cpFieldLinks").remove(),$("[data-cpfieldlinks]").removeAttr("data-cpfieldlinks"),this.addSourceLink(),this.addFieldLinks()},addSourceLink:function(){var t,e=$('input[type="hidden"]').filter(this.settings.sourceIdKeys.join(",")),i={},n=!1;if(e.each(function(){i[$(this).attr("name")]=$(this).attr("value")}),this.data.baseEditEntryTypeUrl&&i.hasOwnProperty("sectionId")){n=this.data.baseEditEntryTypeUrl.replace("sectionId",i.sectionId),t=Craft.t("Entry Type");var a=$("#entryType").val()||!1;n+="/"+(a?a:this.data.entryTypeIds.hasOwnProperty(i.sectionId)?this.data.entryTypeIds[i.sectionId][0]:"")}else this.data.baseEditGlobalSetUrl&&i.hasOwnProperty("setId")&&0===$('input[type="hidden"][name="action"][value="globals/saveSet"]').length?(n=this.data.baseEditGlobalSetUrl+"/"+i.setId,t=Craft.t("Global Set")):this.data.baseEditCategoryGroupUrl&&i.hasOwnProperty("groupId")&&$('input[type="hidden"][name="action"][value="categories/saveCategory"]').length?(n=this.data.baseEditCategoryGroupUrl+"/"+i.groupId,t=Craft.t("Category Group")):this.data.baseEditCommerceProductTypeUrl&&i.hasOwnProperty("typeId")&&$('input[type="hidden"][name="action"][value="commerce/products/saveProduct"]').length&&(n=this.data.baseEditCommerceProductTypeUrl+"/"+i.typeId,t=Craft.t("Product Type"));if(n){var s=$(this.templates.editSourceBtn(n,t));switch(t){case Craft.t("Global Set"):s.appendTo($("#content"));break;case Craft.t("Entry Type"):case Craft.t("Category Group"):$("#settings").find(".field:last").append(s);break;case Craft.t("Product Type"):$("#meta-pane").find(".field:last").append(s);break;default:s.appendTo($("#main"))}}},addFieldLinks:function(){var t,e=this,i=[$(this.getFieldContextSelector())];if(this.elementEditors&&Object.keys(this.elementEditors).length)for(var n in this.elementEditors)i.push(this.elementEditors[n].$form);for(var a=0;a<i.length;++a)if(t=i[a],t&&t.length){var s,r,d=this.data.fields||{},l=t.find(".field:not([data-cpfieldlinks])").not(".matrixblock .field");l.each(function(){s=$(this),r=e.getFieldHandleFromAttribute(s.attr("id")),r&&d.hasOwnProperty(r)&&s.find(".heading:first label").after(e.templates.editFieldBtn(d[r])),s.attr("data-cpfieldlinks",!0)}),t.find(".variant-matrixblock:not([data-cpfieldlinks])").each(function(){$(this).attr("data-cpfieldlinks",!0).find(".field").each(function(){s=$(this),r=e.getFieldHandleFromAttribute(s.attr("id")),r&&d.hasOwnProperty(r)&&s.find(".heading:first label").after(e.templates.editFieldBtn(d[r]))})});var o,c,h,p=t.find(".matrixblock:not([data-cpfieldlinks])");p.each(function(){o=$(this),r=e.getFieldHandleFromAttribute(o.closest(".field").attr("id")),r&&d.hasOwnProperty(r)&&(c=o.data("id"),o.attr("data-cpfieldlinks",!0).find(".field").each(function(){s=$(this),h={id:d[r].id,handle:e.getFieldHandleFromAttribute(s.attr("id"))},s.find(".heading:first label").after(e.templates.editFieldBtn(h))}))})}},getFieldHandleFromAttribute:function(t){return t?(t=t.split("-"),t.length<3?!1:t[t.length-2]):!1},getFieldContextSelector:function(){return this.isLivePreview?".lp-editor":"#main"},templates:{editFieldBtn:function(t){return'<div class="cpFieldLinks cpFieldLinks-fieldEdit" aria-hidden="true"><div class="'+Craft.CpFieldLinksPlugin.settings.settingsClassSelector+'"><a href="'+Craft.CpFieldLinksPlugin.data.baseEditFieldUrl+"/"+t.id+'" class="settings icon" role="button" aria-label="Edit field" tabindex="-1"></a></div><div class="'+Craft.CpFieldLinksPlugin.settings.infoClassSelector+'"><p><code>'+t.handle+"</code></p></div></div>"},editSourceBtn:function(t,e){return'<div class="cpFieldLinks cpFieldLinks-sourceEdit"><div class="cpFieldLinks-wrapper"><div class="'+Craft.CpFieldLinksPlugin.settings.settingsClassSelector+'"><a href="'+t+'" class="settings icon" role="button" aria-label="Edit '+(e||"element source")+'"></a></div><div class="'+Craft.CpFieldLinksPlugin.settings.infoClassSelector+'"><p><span>Edit '+(e||"element source")+"</span></p></div></div></div>"}},onLivePreviewEnter:function(){this.isLivePreview=!0,Garnish.requestAnimationFrame(function(){this.addFieldLinks()}.bind(this))},onLivePreviewExit:function(){this.isLivePreview=!1,Garnish.requestAnimationFrame(function(){this.addFieldLinks()}.bind(this))},onCpFieldLinksClick:function(t){Craft.setLocalStorage(this.settings.redirectKey,Craft.path)},onMatrixBlockAddButtonClick:function(t){Garnish.requestAnimationFrame(function(){this.addFieldLinks()}.bind(this))},onAjaxComplete:function(t,e,i){(i.url.indexOf("switchEntryType")>-1||Craft.path!==this.path)&&this.render()}}):!1}(window)}]);