woocommerce/assets/js/admin/wc-shipping-zone-methods.mi...

1 line
8.5 KiB
JavaScript
Raw Permalink Normal View History

2021-12-10 12:03:04 +00:00
!function(h,c,r,p){h(function(){var s=h(".wc-shipping-zone-methods"),e=h(".wc-shipping-zone-method-rows"),n=h(".wc-shipping-zone-method-save"),o=r.template("wc-shipping-zone-method-row"),i=r.template("wc-shipping-zone-method-row-blank"),t=Backbone.Model.extend({changes:{},logChanges:function(e){var o=this.changes||{};_.each(e.methods,function(e,n){o.methods=o.methods||{methods:{}},o.methods[n]=_.extend(o.methods[n]||{instance_id:n},e)}),"undefined"!=typeof e.zone_name&&(o.zone_name=e.zone_name),"undefined"!=typeof e.zone_locations&&(o.zone_locations=e.zone_locations),"undefined"!=typeof e.zone_postcodes&&(o.zone_postcodes=e.zone_postcodes),this.changes=o,this.trigger("change:methods")},save:function(){h.post(p+(0<p.indexOf("?")?"&":"?")+"action=woocommerce_shipping_zone_methods_save_changes",{wc_shipping_zones_nonce:c.wc_shipping_zones_nonce,changes:this.changes,zone_id:c.zone_id},this.onSaveResponse,"json")},onSaveResponse:function(e,n){"success"===n&&(e.success?(e.data.zone_id!==c.zone_id&&(c.zone_id=e.data.zone_id,window.history.pushState&&window.history.pushState({},"","admin.php?page=wc-settings&tab=shipping&zone_id="+e.data.zone_id)),d.set("methods",e.data.methods),d.trigger("change:methods"),d.changes={},d.trigger("saved:methods"),window.onbeforeunload=null):window.alert(c.strings.save_failed))}}),o=Backbone.View.extend({rowTemplate:o,initialize:function(){this.listenTo(this.model,"change:methods",this.setUnloadConfirmation),this.listenTo(this.model,"saved:methods",this.clearUnloadConfirmation),this.listenTo(this.model,"saved:methods",this.render),e.on("change",{view:this},this.updateModelOnChange),e.on("sortupdate",{view:this},this.updateModelOnSort),h(window).on("beforeunload",{view:this},this.unloadConfirmation),n.on("click",{view:this},this.onSubmit),h(document.body).on("input change","#zone_name, #zone_locations, #zone_postcodes",{view:this},this.onUpdateZone),h(document.body).on("click",".wc-shipping-zone-method-settings",{view:this},this.onConfigureShippingMethod),h(document.body).on("click",".wc-shipping-zone-add-method",{view:this},this.onAddShippingMethod),h(document.body).on("wc_backbone_modal_response",this.onConfigureShippingMethodSubmitted),h(document.body).on("wc_backbone_modal_response",this.onAddShippingMethodSubmitted),h(document.body).on("change",".wc-shipping-zone-method-selector select",this.onChangeShippingMethodSelector),h(document.body).on("click",".wc-shipping-zone-postcodes-toggle",this.onTogglePostcodes)},onUpdateZone:function(e){var n=e.data.view,o=n.model,t=h(this).val(),i=h(e.target).data("attribute"),s={};e.preventDefault(),s[i]=t,o.set(i,t),o.logChanges(s),n.render()},block:function(){h(this.el).block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){h(this.el).unblock()},render:function(){var e=_.indexBy(this.model.get("methods"),"instance_id"),n=this.model.get("zone_name"),t=this;h(".wc-shipping-zone-name").text(n||c.strings.default_zone_name),this.$el.empty(),this.unblock(),_.size(e)?(e=_.sortBy(e,function(e){return parseInt(e.method_order,10)}),h.each(e,function(e,n){"yes"===n.enabled?n.enabled_icon='<span class="woocommerce-input-toggle woocommerce-input-toggle--enabled">'+c.strings.yes+"</span>":n.enabled_icon='<span class="woocommerce-input-toggle woocommerce-input-toggle--disabled">'+c.strings.no+"</span>",t.$el.append(t.rowTemplate(n));var o=t.$el.find('tr[data-id="'+n.instance_id+'"]');n.has_settings||(o.find(".wc-shipping-zone-method-title > a").replaceWith("<span>"+o.find(".wc-shipping-zone-method-title > a").text()+"</span>"),n=o.find(".wc-shipping-zone-method-delete"),o.find(".wc-shipping-zone-method-title .row-actions").empty().html(n))}),this.$el.find(".wc-shipping-zone-method-delete").on("click",{view:this},this.onDeleteRow),this.$el.find(".wc-shipping-zone-method-enabled a").on("click",{view:this},this.onToggleEnabled)):t.$el.append(i),this.initTooltips()},initTooltips:function(){h("#tiptip_holder").removeAttr("style"),h("#tiptip_arrow").removeAttr("style"),h(".tips").tipTip({attribute:"data-tip",fadeIn:50,fadeOut:50,delay:50})},onSubmi