woocommerce/assets/js/admin/settings-views-html-setting...

1 line
6.0 KiB
JavaScript
Raw Normal View History

2021-12-10 12:03:04 +00:00
!function(h,p,g,f){h(function(){String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")});var t=g.template("wc-tax-table-row"),o=g.template("wc-tax-table-row-empty"),s=g.template("wc-tax-table-pagination"),e=h(".wc_tax_rates"),c=h("#rates"),a=h(':input[name="save"]'),d=h("#rates-pagination"),n=h("#rates-search .wc-tax-rates-search-field"),i=h(".submit .button-primary[type=submit]"),r=Backbone.Model.extend({changes:{},setRateAttribute:function(t,e,a){var n=_.indexBy(this.get("rates"),"tax_rate_id"),i={};n[t][e]!==a&&(i[t]={},i[t][e]=a,n[t][e]=a),this.logChanges(i)},logChanges:function(t){var a=this.changes||{};_.each(t,function(t,e){a[e]=_.extend(a[e]||{tax_rate_id:e},t)}),this.changes=a,this.trigger("change:rates")},getFilteredRates:function(){var t=this.get("rates"),e=n.val().toLowerCase();return e.length&&(t=_.filter(t,function(t){return-1!==_.toArray(t).join(" ").toLowerCase().indexOf(e)})),t=_.sortBy(t,function(t){return parseInt(t.tax_rate_order,10)})},block:function(){h(".wc_tax_rates").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){h(".wc_tax_rates").unblock()},save:function(){var a=this;a.block(),Backbone.ajax({method:"POST",dataType:"json",url:f+(0<f.indexOf("?")?"&":"?")+"action=woocommerce_tax_rates_save_changes",data:{current_class:p.current_class,wc_tax_nonce:p.wc_tax_nonce,changes:a.changes},success:function(t,e){"success"===e&&t.success&&(l.set("rates",t.data.rates),l.trigger("change:rates"),l.changes={},l.trigger("saved:rates"),u.render()),a.unblock()}})}}),t=Backbone.View.extend({rowTemplate:t,per_page:p.limit,page:p.page,initialize:function(){var t=Math.ceil(_.toArray(this.model.get("rates")).length/this.per_page);this.qty_pages=0===t?1:t,this.page=this.sanitizePage(p.page),this.listenTo(this.model,"change:rates",this.setUnloadConfirmation),this.listenTo(this.model,"saved:rates",this.clearUnloadConfirmation),c.on("change autocompletechange",":input",{view:this},this.updateModelOnChange),n.on("keyup search",{view:this},this.onSearchField),d.on("click","a",{view:this},this.onPageChange),d.on("change","input",{view:this},this.onPageChange),h(window).on("beforeunload",{view:this},this.unloadConfirmation),i.on("click",{view:this},this.onSubmit),a.prop("disabled",!0),e.find(".insert").on("click",{view:this},this.onAddNewRow),e.find(".remove_tax_rates").on("click",{view:this},this.onDeleteRow),e.find(".export").on("click",{view:this},this.onExport)},render:function(){var t=this.model.getFilteredRates(),e=_.size(t),a=Math.ceil(e/this.per_page),n=0===e?0:this.per_page*(this.page-1),i=this.per_page*this.page,i=_.toArray(t).slice(n,i),r=this;this.$el.empty(),i.length?h.each(i,function(t,e){r.$el.append(r.rowTemplate(e))}):r.$el.append(o()),this.$el.find("td.country input").autocomplete({source:p.countries,minLength:2}),this.$el.find("td.state input").autocomplete({source:p.states,minLength:3}),this.$el.find("td.postcode input, td.city input").on("change",function(){h(this).attr("name",h(this).data("name"))}),1<a?d.html(s({qty_rates:e,current_page:this.page,qty_pages:a})):(d.empty(),r.page=1)},updateUrl:function(){var t,e;window.history.replaceState&&(t=p.base_url,e=n.val(),1<this.page&&(t+="&p="+encodeURIComponent(this.page)),e.length&&(t+="&s="+encodeURIComponent(e)),window.history.replaceState({},"",t))},onSubmit:function(t){t.data.view.model.save(),t.preventDefault()},onAddNewRow:function(t){var e,a=t.data.view,n=a.model,i=_.indexBy(n.get("rates"),"tax_rate_id"),r={},o=_.size(i),t=_.extend({},p.default_rate,{tax_rate_id:"new-"+o+"-"+Date.now(),newRow:!0}),o=c.children(".current");o.length?(o=o.last().data("id"),e=parseInt(i[o].tax_rate_order,10),t.tax_rate_order=1+e,o=_.filter(i,function(t){return parseInt(t.tax_rate_order,10)>e}),_.map(o,function(t){return t.tax_rate_order++,r[t.tax_rate_id]=_.extend(r[t.tax_rate_id]||{},{tax_rate_order:t.tax_rate_order}),t})):(t.tax_rate_order=1+_.max(_.pluck(i,"tax_rate_order"),function(t){return parseInt(t,10)}),a.page=a.qty_pages),i[t.tax_rate_id]=t,r[t.tax_rate_id]=t,n.set(