2 lines
18 KiB
JavaScript
2 lines
18 KiB
JavaScript
!function($){acf.pro=acf.model.extend({actions:{refresh:"refresh"},filters:{get_fields:"get_fields"},get_fields:function(t){return t=t.not(".acf-clone .acf-field")},refresh:function(t){var e=this;return t=t||!1,t&&t.is("tr")?void e.render_table(t.closest("table")):void $(".acf-table",t).each(function(){e.render_table($(this))})},render_table:function(t){var e=t.find("> thead th.acf-th"),a=1,i=100;e.exists()&&(e.each(function(){var e=$(this),a=e.attr("data-key"),i=t.find('td[data-key="'+a+'"]');i.removeClass("appear-empty"),e.removeClass("hidden-by-conditional-logic"),i.exists()&&(0==i.not(".hidden-by-conditional-logic").length?e.addClass("hidden-by-conditional-logic"):i.filter(".hidden-by-conditional-logic").addClass("appear-empty"))}),e.css("width","auto"),e=e.not(".hidden-by-conditional-logic"),a=e.length,e.filter("[data-width]").each(function(){var t=parseInt($(this).attr("data-width"));i-=t,$(this).css("width",t+"%")}),e=e.not("[data-width]"),e.each(function(){var t=i/e.length;$(this).css("width",t+"%")}),t.find(".acf-row .acf-field.-collapsed-target").removeAttr("colspan"),t.find(".acf-row.-collapsed .acf-field.-collapsed-target").attr("colspan",a))}})}(jQuery),function($){acf.fields.repeater=acf.field.extend({type:"repeater",$el:null,$input:null,$table:null,$tbody:null,$clone:null,actions:{ready:"initialize",append:"initialize",show:"show"},events:{'click a[data-event="add-row"]':"_add",'click a[data-event="remove-row"]':"_remove",'click a[data-event="collapse-row"]':"_collapse","mouseenter td.order":"_mouseenter"},focus:function(){this.$el=this.$field.find(".acf-repeater:first"),this.$input=this.$field.find("input:first"),this.$table=this.$field.find("table:first"),this.$tbody=this.$table.children("tbody"),this.$clone=this.$tbody.children("tr.acf-clone"),this.o=acf.get_data(this.$el),this.o.min=this.o.min||0,this.o.max=this.o.max||0},initialize:function(){this.$clone.find("input, textarea, select").attr("disabled","disabled"),this.render()},show:function(){this.$tbody.find(".acf-field:visible").each(function(){acf.do_action("show_field",$(this))})},count:function(){return this.$tbody.children().length-1},render:function(){this.$tbody.children().each(function(t){$(this).find("> td.order > span").html(t+1)}),0==this.count()?this.$el.addClass("-empty"):this.$el.removeClass("-empty"),this.o.max>0&&this.count()>=this.o.max?this.$el.find("> .acf-actions .button").addClass("disabled"):this.$el.find("> .acf-actions .button").removeClass("disabled")},add:function(t){if(t=t||this.$clone,this.o.max>0&&this.count()>=this.o.max)return alert(acf._e("repeater","max").replace("{max}",this.o.max)),!1;var e=this.$field;return $el=acf.duplicate(this.$clone),$el.removeClass("acf-clone"),$el.find("input, textarea, select").not(".acf-disabled").removeAttr("disabled"),t.before($el),this.doFocus(e),this.render(),acf.validation.remove_error(this.$field),this.sync(),$el},remove:function(t){var e=this;return this.count()<=this.o.min?(alert(acf._e("repeater","min").replace("{min}",this.o.min)),!1):(acf.do_action("remove",t),void acf.remove_tr(t,function(){e.$input.trigger("change"),e.render(),e.sync(),acf.do_action("refresh",e.$field)}))},sync:function(){var t="collapsed_"+this.$field.data("key"),e=[];this.$tbody.children().each(function(t){$(this).hasClass("-collapsed")&&e.push(t)}),acf.update_user_setting(t,e.join(","))},_mouseenter:function(t){if(!this.$tbody.hasClass("ui-sortable")&&1!=this.o.max){var e=this;this.$tbody.sortable({items:"> tr",handle:"> td.order",forceHelperSize:!0,forcePlaceholderSize:!0,scroll:!0,start:function(t,e){acf.do_action("sortstart",e.item,e.placeholder)},stop:function(t,a){e.render(),acf.do_action("sortstop",a.item,a.placeholder)},update:function(t,a){e.$input.trigger("change")}})}},_add:function(t){$row=!1,t.$el.hasClass("acf-icon")&&($row=t.$el.closest(".acf-row")),this.add($row)},_remove:function(t){this.remove(t.$el.closest(".acf-row"))},_collapse:function(t){var e=t.$el.closest(".acf-row"),a=this.$field;e.hasClass("-collapsed")?(e.removeClass("-collapsed"),acf.do_action("show",e,"collapse")):(e.addClass("-collapsed"),acf.do_action("hide",e,"collapse")),this.set("$field",a).sync(),acf.do_action("refresh",this.$field)}})}(jQuery),function($){acf.fields.flexible_content=acf.field.extend({type:"flexible_content",$el:null,$input:null,$values:null,$clones:null,actions:{ready:"initialize",append:"initialize",show:"show"},events:{'click [data-event="add-layout"]':"_open",'click [data-event="remove-layout"]':"_remove",'click [data-event="collapse-layout"]':"_collapse","click .acf-fc-layout-handle":"_collapse","click .acf-fc-popup a":"_add","blur .acf-fc-popup .focus":"_close","mouseenter .acf-fc-layout-handle":"_mouseenter"},focus:function(){this.$el=this.$field.find(".acf-flexible-content:first"),this.$input=this.$el.siblings("input"),this.$values=this.$el.children(".values"),this.$clones=this.$el.children(".clones"),this.o=acf.get_data(this.$el),this.o.min=this.o.min||0,this.o.max=this.o.max||0},count:function(){return this.$values.children(".layout").length},initialize:function(){this.$clones.find("input, textarea, select").attr("disabled","disabled"),this.render()},show:function(){this.$values.find(".acf-field:visible").each(function(){acf.do_action("show_field",$(this))})},render:function(){var t=this;this.$values.children(".layout").each(function(t){$(this).find("> .acf-fc-layout-handle .acf-fc-layout-order").html(t+1)}),0==this.count()?this.$el.addClass("empty"):this.$el.removeClass("empty"),this.o.max>0&&this.count()>=this.o.max?this.$el.find("> .acf-actions .button").addClass("disabled"):this.$el.find("> .acf-actions .button").removeClass("disabled")},render_layout:function(t){},validate_add:function(t){if(this.o.max>0&&this.count()>=this.o.max){var e=1==this.o.max?"layout":"layouts",a=acf._e("flexible_content","max");return a=a.replace("{max}",this.o.max),a=a.replace("{identifier}",acf._e("flexible_content",e)),alert(a),!1}var i=$(this.$el.children(".tmpl-popup").html()),l=i.find('[data-layout="'+t+'"]'),s=parseInt(l.attr("data-max")),n=this.$values.children('.layout[data-layout="'+t+'"]').length;if(s>0&&n>=s){var e=1==s?"layout":"layouts",a=acf._e("flexible_content","max_layout");return a=a.replace("{max}",n),a=a.replace("{label}",'"'+l.text()+'"'),a=a.replace("{identifier}",acf._e("flexible_content",e)),alert(a),!1}return!0},validate_remove:function(t){if(this.o.min>0&&this.count()<=this.o.min){var e=1==this.o.min?"layout":"layouts",a=acf._e("flexible_content","min")+", "+acf._e("flexible_content","remove");return a=a.replace("{min}",this.o.min),a=a.replace("{identifier}",acf._e("flexible_content",e)),a=a.replace("{layout}",acf._e("flexible_content","layout")),confirm(a)}var i=$(this.$el.children(".tmpl-popup").html()),l=i.find('[data-layout="'+t+'"]'),s=parseInt(l.attr("data-min")),n=this.$values.children('.layout[data-layout="'+t+'"]').length;if(s>0&&s>=n){var e=1==s?"layout":"layouts",a=acf._e("flexible_content","min_layout")+", "+acf._e("flexible_content","remove");return a=a.replace("{min}",n),a=a.replace("{label}",'"'+l.text()+'"'),a=a.replace("{identifier}",acf._e("flexible_content",e)),a=a.replace("{layout}",acf._e("flexible_content","layout")),confirm(a)}return!0},sync:function(){var t="collapsed_"+this.$field.data("key"),e=[];this.$values.children(".layout").each(function(t){$(this).hasClass("-collapsed")&&e.push(t)}),acf.update_user_setting(t,e.join(","))},add:function(t,e){if(e=e||!1,!this.validate_add(t))return!1;var a=this.$field,i=this.$clones.children('.layout[data-layout="'+t+'"]');$el=acf.duplicate(i),$el.find("input, textarea, select").not(".acf-disabled").removeAttr("disabled"),this.$el.children(".no-value-message").hide(),e?e.before($el):this.$values.append($el),this.doFocus(a),this.render(),acf.validation.remove_error(this.$field),this.sync()},_mouseenter:function(t){if(!this.$values.hasClass("ui-sortable")&&1!=this.o.max){var e=this;this.$values.sortable({items:"> .layout",handle:"> .acf-fc-layout-handle",forceHelperSize:!0,forcePlaceholderSize:!0,scroll:!0,start:function(t,e){acf.do_action("sortstart",e.item,e.placeholder)},stop:function(t,a){e.render(),acf.do_action("sortstop",a.item,a.placeholder)},update:function(t,a){e.$input.trigger("change")}})}},_open:function(t){var e=this.$values,a=$(this.$el.children(".tmpl-popup").html());a.find("a").each(function(){var t=parseInt($(this).attr("data-min")),a=parseInt($(this).attr("data-max")),i=$(this).attr("data-layout"),l=$(this).text(),s=e.children('.layout[data-layout="'+i+'"]').length,n=$(this).children(".status");if(a>0){var c=a-s,o=acf._e("flexible_content","available"),r=1==c?"layout":"layouts",o=o.replace("{available}",c);o=o.replace("{max}",a),o=o.replace("{label}",'"'+l+'"'),o=o.replace("{identifier}",acf._e("flexible_content",r)),n.show().text(c).attr("title",o),0==c&&n.addClass("warning")}if(t>0){var d=t-s,o=acf._e("flexible_content","required"),r=1==d?"layout":"layouts",o=o.replace("{required}",d);o=o.replace("{min}",t),o=o.replace("{label}",'"'+l+'"'),o=o.replace("{identifier}",acf._e("flexible_content",r)),d>0&&n.addClass("warning").show().text(d).attr("title",o)}}),t.$el.after(a),t.$el.closest(".acf-fc-layout-controlls").exists()&&a.closest(".layout").addClass("-open"),a.css({"margin-top":0-a.height()-t.$el.outerHeight()-14,"margin-left":(t.$el.outerWidth()-a.width())/2});var i=a.offset().top;30>i&&(a.css({"margin-top":15}),a.find(".bit").addClass("top")),a.children(".focus").trigger("focus")},_close:function(t){var e=t.$el.parent(),a=e.closest(".layout");a.removeClass("-open"),setTimeout(function(){e.remove()},200)},_add:function(t){var e=t.$el.closest(".acf-fc-popup"),a=t.$el.attr("data-layout"),i=!1;e.closest(".acf-fc-layout-controlls").exists()&&(i=e.closest(".layout")),this.add(a,i)},_remove:function(t){var e=this,a=t.$el.closest(".layout");if(this.validate_remove(a.attr("data-layout"))){var i=0,l=this.$el.children(".no-value-message");0==a.siblings(".layout").length&&(i=l.outerHeight()),acf.do_action("remove",a),acf.remove_el(a,function(){e.render(),e.$input.trigger("change"),i>0&&l.show(),e.sync()},i)}},_collapse:function(t){var e=t.$el.closest(".layout");e.hasClass("-collapsed")?(e.removeClass("-collapsed"),acf.do_action("refresh",e)):e.addClass("-collapsed"),this.sync();var a=acf.serialize(e);$.extend(a,{action:"acf/fields/flexible_content/layout_title",field_key:this.$field.data("key"),post_id:acf.get("post_id"),i:e.index(),layout:e.data("layout")}),$.ajax({url:acf.get("ajaxurl"),dataType:"html",type:"post",data:a,success:function(t){t&&e.find("> .acf-fc-layout-handle").html(t)}})}})}(jQuery),function($){acf.fields.gallery=acf.field.extend({type:"gallery",$el:null,$main:null,$side:null,$attachments:null,$input:null,actions:{ready:"initialize",append:"initialize",submit:"close_sidebar",show:"resize"},events:{"click .acf-gallery-attachment":"_select","click .acf-gallery-add":"_add","click .acf-gallery-remove":"_remove","click .acf-gallery-close":"_close","change .acf-gallery-sort":"_sort","click .acf-gallery-edit":"_edit","click .acf-gallery-update":"_update","change .acf-gallery-side input":"_update","change .acf-gallery-side textarea":"_update","change .acf-gallery-side select":"_update"},focus:function(){this.$el=this.$field.find(".acf-gallery:first"),this.$main=this.$el.children(".acf-gallery-main"),this.$side=this.$el.children(".acf-gallery-side"),this.$attachments=this.$main.children(".acf-gallery-attachments"),this.$input=this.$el.find("input:first"),this.o=acf.get_data(this.$el),this.o.min=this.o.min||0,this.o.max=this.o.max||0},initialize:function(){var t=this,e=this.$field;this.$attachments.unbind("sortable").sortable({items:".acf-gallery-attachment",forceHelperSize:!0,forcePlaceholderSize:!0,scroll:!0,start:function(t,e){e.placeholder.html(e.item.html()),e.placeholder.removeAttr("style"),acf.do_action("sortstart",e.item,e.placeholder)},stop:function(t,e){acf.do_action("sortstop",e.item,e.placeholder)}}),this.$el.unbind("resizable").resizable({handles:"s",minHeight:200,stop:function(t,e){acf.update_user_setting("gallery_height",e.size.height)}}),$(window).on("resize",function(){t.set("$field",e).resize()}),this.render(),this.resize()},resize:function(){for(var t=100,e=175,a=4,i=this.$el.width(),l=4;20>l;l++){var s=i/l;if(s>t&&e>s){a=l;break}}a=Math.min(a,8),this.$el.attr("data-columns",a)},render:function(){var t=this.$main.find(".acf-gallery-sort"),e=this.$main.find(".acf-gallery-add");this.o.max>0&&this.count()>=this.o.max?e.addClass("disabled"):e.removeClass("disabled"),this.count()?t.removeClass("disabled"):t.addClass("disabled")},open_sidebar:function(){this.$el.addClass("sidebar-open"),this.$main.find(".acf-gallery-sort").hide();var t=this.$el.width()/3;t=parseInt(t),t=Math.max(t,350),this.$side.children(".acf-gallery-side-inner").css({width:t-1}),this.$side.animate({width:t-1},250),this.$main.animate({right:t},250)},_close:function(t){this.close_sidebar()},close_sidebar:function(){this.$el.removeClass("sidebar-open");var t=this.$el.find(".acf-gallery-sort");this.get_attachment("active").removeClass("active"),this.$side.find("input, textarea, select").attr("disabled","disabled"),this.$main.animate({right:0},250),this.$side.animate({width:0},250,function(){t.show(),$(this).find(".acf-gallery-side-data").html("")})},count:function(){return this.get_attachments().length},get_attachments:function(){return this.$attachments.children(".acf-gallery-attachment")},get_attachment:function(t){return t=t||0,t="active"===t?".active":'[data-id="'+t+'"]',this.$attachments.children(".acf-gallery-attachment"+t)},render_attachment:function(t){t=this.prepare(t);var e=this.get_attachment(t.id),a=e.find(".margin"),i=e.find("img"),l=e.find(".filename"),s=e.find('input[type="hidden"]'),n=t.url;"image"==t.type?l.remove():(n=acf.maybe_get(t,"thumb.src"),l.text(t.filename)),n||(n=acf._e("media","default_icon"),e.addClass("-icon")),i.attr({src:n,alt:t.alt,title:t.title}),acf.val(s,t.id)},_add:function(t){if(this.o.max>0&&this.count()>=this.o.max)return void acf.validation.add_warning(this.$field,acf._e("gallery","max"));var e=this,a=this.$field,i=acf.media.popup({title:acf._e("gallery","select"),mode:"select",type:"",field:this.$field.data("key"),multiple:"add",library:this.o.library,mime_types:this.o.mime_types,select:function(t,i){e.set("$field",a).add_attachment(t,i)}});i.on("content:activate:browse",function(){e.render_collection(i),i.content.get().collection.on("reset add",function(){e.render_collection(i)})})},add_attachment:function(t,e){if(e=e||0,t=this.prepare(t),!(this.o.max>0&&this.count()>=this.o.max||this.get_attachment(t.id).exists())){var a=this.$el.find('input[type="hidden"]:first').attr("name"),i=['<div class="acf-gallery-attachment acf-soh" data-id="'+t.id+'">','<input type="hidden" value="'+t.id+'" name="'+a+'[]">','<div class="margin" title="">','<div class="thumbnail">','<img src="" alt="">',"</div>",'<div class="filename"></div>',"</div>",'<div class="actions acf-soh-target">','<a href="#" class="acf-icon -cancel dark acf-gallery-remove" data-id="'+t.id+'"></a>',"</div>","</div>"].join(""),l=$(i);if(this.$attachments.append(l),"prepend"===this.o.insert){var s=this.$attachments.children(":eq("+e+")");s.exists()&&s.before(l)}this.render_attachment(t),this.render(),this.$input.trigger("change")}},_select:function(t){var e=t.$el.data("id");this.select_attachment(e)},select_attachment:function(t){var e=this.get_attachment(t);e.hasClass("active")||(this.get_attachment("active").removeClass("active"),e.addClass("active"),this.fetch(t),this.open_sidebar())},prepare:function(t){if(t=t||{},t._valid)return t;var e={id:"",url:"",alt:"",title:"",filename:""};return t.id&&(e=t.attributes,e.url=acf.maybe_get(e,"sizes.medium.url",e.url)),e._valid=!0,e},fetch:function(t){var e=acf.prepare_for_ajax({action:"acf/fields/gallery/get_attachment",field_key:this.$field.data("key"),nonce:acf.get("nonce"),post_id:acf.get("post_id"),id:t});if(this.$el.data("xhr")&&this.$el.data("xhr").abort(),"string"==typeof t&&0===t.indexOf("_")){var a=this.get_attachment(t).find('input[type="hidden"]').val();a=$.parseJSON(a),e.attachment=a}var i=$.ajax({url:acf.get("ajaxurl"),dataType:"html",type:"post",cache:!1,data:e,context:this,success:this.fetch_success});this.$el.data("xhr",i)},fetch_success:function(t){if(t){var e=this.$side.find(".acf-gallery-side-data");e.html(t),e.find(".compat-field-acf-form-data").remove();var a=e.find("> .compat-attachment-fields > tbody > tr").detach();e.find("> table.form-table > tbody").append(a),e.find("> .compat-attachment-fields").remove(),acf.do_action("append",e)}},_sort:function(t){var e=t.$el.val();if(e){var a=acf.prepare_for_ajax({action:"acf/fields/gallery/get_sort_order",field_key:this.$field.data("key"),post_id:acf.get("post_id"),ids:[],sort:e});this.get_attachments().each(function(){var t=$(this).attr("data-id");t&&a.ids.push(t)});var i=$.ajax({url:acf.get("ajaxurl"),dataType:"json",type:"post",cache:!1,data:a,context:this,success:this._sort_success})}},_sort_success:function(t){if(acf.is_ajax_success(t)){t.data.reverse();for(i in t.data){var e=t.data[i],a=this.get_attachment(e);this.$attachments.prepend(a)}}},_update:function(){var t=this.$side.find(".acf-gallery-update"),e=this.$side.find(".acf-gallery-edit"),a=this.$side.find(".acf-gallery-side-data"),i=e.data("id"),l=acf.serialize_form(a);return t.attr("disabled")?!1:(t.attr("disabled","disabled"),t.before('<i class="acf-loading"></i>'),l.action="acf/fields/gallery/update_attachment",acf.prepare_for_ajax(l),void $.ajax({url:acf.get("ajaxurl"),data:l,type:"post",dataType:"json",complete:function(e){t.removeAttr("disabled"),t.prev(".acf-loading").remove()}}))},_remove:function(t){t.stopPropagation();var e=t.$el.data("id");this.remove_attachment(e)},remove_attachment:function(t){this.close_sidebar(),this.get_attachment(t).remove(),this.render(),this.$input.trigger("change")},_edit:function(t){var e=t.$el.data("id");this.edit_attachment(e)},edit_attachment:function(t){var e=this,a=this.$field,i=acf.media.popup({mode:"edit",title:acf._e("image","edit"),button:acf._e("image","update"),attachment:t,select:function(i){e.set("$field",a).render_attachment(i),e.fetch(t)}})},render_collection:function(t){var e=this;setTimeout(function(){var a=t.content.get().$el;if(collection=t.content.get().collection||null,collection){var i=-1;collection.each(function(t){i++;var l=a.find(".attachments > .attachment:eq("+i+")");e.get_attachment(t.id).exists()&&(t.off("selection:single"),l.addClass("acf-selected"))})}},10)}})}(jQuery);
|