From f145f1a45187dd02c09ce0e3a54beb83eecd5e15 Mon Sep 17 00:00:00 2001 From: Brett Porcelli Date: Sat, 30 Jul 2022 18:52:16 -0400 Subject: [PATCH] fix: exemption cert never loads if customer is guest --- assets/js/meta-box.js | 1 + assets/js/meta-box.min.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/js/meta-box.js b/assets/js/meta-box.js index 029bb601..98750f95 100644 --- a/assets/js/meta-box.js +++ b/assets/js/meta-box.js @@ -25,6 +25,7 @@ jQuery(function($) { _this.set('certificates', {}); if (!customerId) { + _this.set('loading', false); return; } diff --git a/assets/js/meta-box.min.js b/assets/js/meta-box.min.js index d2f3d8eb..7f523816 100644 --- a/assets/js/meta-box.min.js +++ b/assets/js/meta-box.min.js @@ -1 +1 @@ -jQuery(function(i){var e=Backbone.Model.extend({defaults:{certificates:{},customerId:"",customerProfileUrl:"",selectedCertificate:"",loading:!0,isEditable:!0},initialize:function(){this.loadCustomerCertificates(),this.setCustomerProfileUrl(),this.on("change:customerId",this.loadCustomerCertificates),this.on("change:customerId",this.setCustomerProfileUrl),this.on("change:certificates",this.maybeResetSelection)},loadCustomerCertificates:function(){var t=this,e=t.get("customerId");t.set("certificates",{}),e&&(t.set("loading",!0),e={action:"sst_get_certificates",nonce:SSTMetaBox.get_certificates_nonce,customerId:e},i.get(ajaxurl,e).then(function(e){t.set("certificates",e.data)}).catch(function(e){console.error("Failed to load certificates:",e.message)}).always(function(){t.set("loading",!1)}))},setCustomerProfileUrl:function(){var e=this.get("customerId");e?(e=SSTMetaBox.edit_user_url.replace("{user_id}",e),this.set("customerProfileUrl",e)):this.set("customerProfileUrl","")},maybeResetSelection:function(){var e=this.get("selectedCertificate");e&&(e in this.get("certificates")||this.set("selectedCertificate",""))}}),t=Backbone.View.extend({template:wp.template("exempt-cert-select"),events:{"change select":"updateSelectedCertificate","click .sst-view-certificate":"viewCertificate","click .sst-add-certificate":"addCertificate"},initialize:function(){this.listenTo(this.model,"change:loading change:customerId",this.render),this.listenTo(this.model,"change:certificates",this.updateDropdownOptions),this.listenTo(this.model,"change:selectedCertificate",this.toggleViewButton),jQuery(document).ajaxSend(this.filterRecalcRequest.bind(this))},render:function(){return this.$el.html(this.template(this.model.attributes)),this.initDropdown(),this.toggleViewButton(),this},initDropdown:function(){this.$("select").selectWoo({minimumResultsForSearch:1/0,placeholder:SSTMetaBox.i18n.none,allowClear:!0,data:this.getDropdownOptions()})},updateDropdownOptions:function(){this.model.get("loading")||this.initDropdown()},getDropdownOptions:function(){var e,t,i,s,a=this.model.get("certificates"),c=this.model.get("selectedCertificate"),r=[{id:"",text:SSTMetaBox.i18n.none,selected:""===c}];for(e in a)a.hasOwnProperty(e)&&(s=c===(i=(t=a[e]).CertificateID),r.push({id:i,text:t.Description,selected:s}));return r},updateSelectedCertificate:function(){this.model.set("selectedCertificate",this.$("select").val())},toggleViewButton:function(){var e=!!this.model.get("selectedCertificate");this.$(".sst-view-certificate").toggle(e)},viewCertificate:function(){var e=this.model.get("certificates")[this.model.get("selectedCertificate")];e&&jQuery(this).SSTBackboneModal({template:"sst-modal-view-certificate",variable:e})},addCertificate:function(){SST_Add_Certificate_Modal.open({address:this.getBillingAddress(),onAddCertificate:this.addCertificateHandler.bind(this)})},addCertificateHandler:function(e){jQuery("#sales_tax_meta").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var t=ajaxurl+"?action=sst_add_certificate",e={nonce:SST_Add_Certificate_Data.nonce,certificate:e,user_id:this.getCustomerId(),address:this.getBillingAddress()};jQuery.post(t,e).done(function(e){if(!e.success)throw new Error(e.data);a.set({selectedCertificate:e.data.certificate_id,certificates:e.data.certificates}),alert(SSTMetaBox.i18n.certificate_added)}).fail(function(e){alert(SSTMetaBox.i18n.add_certificate_failed+": "+e)}).always(function(){jQuery("#sales_tax_meta").unblock()})},getBillingAddress:function(){var e,t={first_name:"",last_name:"",address_1:"",address_2:"",city:"",state:"",postcode:""};for(e in t)t.hasOwnProperty(e)&&(t[e]=i("#_billing_"+e).val().trim());return t},getCustomerId:function(){return i("#customer_user").val()},filterRecalcRequest:function(e,t,i){var s;"string"==typeof i.data&&0<=i.data.indexOf("action=woocommerce_calc_line_taxes")&&(s=this.model.get("selectedCertificate"),i.data+="&exemption_certificate="+s)}}),s=i("button.calculate-action").is(":visible"),a=new e({customerId:i("#customer_user").val(),selectedCertificate:SSTMetaBox.selected_certificate,isEditable:s&&"pending"===SSTMetaBox.order_status});new t({el:i("#exempt-cert-select"),model:a}).render(),i("#customer_user").on("change",function(){a.set("customerId",i(this).val())})}); \ No newline at end of file +jQuery(function(i){var e=Backbone.Model.extend({defaults:{certificates:{},customerId:"",customerProfileUrl:"",selectedCertificate:"",loading:!0,isEditable:!0},initialize:function(){this.loadCustomerCertificates(),this.setCustomerProfileUrl(),this.on("change:customerId",this.loadCustomerCertificates),this.on("change:customerId",this.setCustomerProfileUrl),this.on("change:certificates",this.maybeResetSelection)},loadCustomerCertificates:function(){var t=this,e=t.get("customerId");t.set("certificates",{}),e?(t.set("loading",!0),e={action:"sst_get_certificates",nonce:SSTMetaBox.get_certificates_nonce,customerId:e},i.get(ajaxurl,e).then(function(e){t.set("certificates",e.data)}).catch(function(e){console.error("Failed to load certificates:",e.message)}).always(function(){t.set("loading",!1)})):t.set("loading",!1)},setCustomerProfileUrl:function(){var e=this.get("customerId");e?(e=SSTMetaBox.edit_user_url.replace("{user_id}",e),this.set("customerProfileUrl",e)):this.set("customerProfileUrl","")},maybeResetSelection:function(){var e=this.get("selectedCertificate");e&&(e in this.get("certificates")||this.set("selectedCertificate",""))}}),t=Backbone.View.extend({template:wp.template("exempt-cert-select"),events:{"change select":"updateSelectedCertificate","click .sst-view-certificate":"viewCertificate","click .sst-add-certificate":"addCertificate"},initialize:function(){this.listenTo(this.model,"change:loading change:customerId",this.render),this.listenTo(this.model,"change:certificates",this.updateDropdownOptions),this.listenTo(this.model,"change:selectedCertificate",this.toggleViewButton),jQuery(document).ajaxSend(this.filterRecalcRequest.bind(this))},render:function(){return this.$el.html(this.template(this.model.attributes)),this.initDropdown(),this.toggleViewButton(),this},initDropdown:function(){this.$("select").selectWoo({minimumResultsForSearch:1/0,placeholder:SSTMetaBox.i18n.none,allowClear:!0,data:this.getDropdownOptions()})},updateDropdownOptions:function(){this.model.get("loading")||this.initDropdown()},getDropdownOptions:function(){var e,t,i,s,a=this.model.get("certificates"),c=this.model.get("selectedCertificate"),r=[{id:"",text:SSTMetaBox.i18n.none,selected:""===c}];for(e in a)a.hasOwnProperty(e)&&(s=c===(i=(t=a[e]).CertificateID),r.push({id:i,text:t.Description,selected:s}));return r},updateSelectedCertificate:function(){this.model.set("selectedCertificate",this.$("select").val())},toggleViewButton:function(){var e=!!this.model.get("selectedCertificate");this.$(".sst-view-certificate").toggle(e)},viewCertificate:function(){var e=this.model.get("certificates")[this.model.get("selectedCertificate")];e&&jQuery(this).SSTBackboneModal({template:"sst-modal-view-certificate",variable:e})},addCertificate:function(){SST_Add_Certificate_Modal.open({address:this.getBillingAddress(),onAddCertificate:this.addCertificateHandler.bind(this)})},addCertificateHandler:function(e){jQuery("#sales_tax_meta").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var t=ajaxurl+"?action=sst_add_certificate",e={nonce:SST_Add_Certificate_Data.nonce,certificate:e,user_id:this.getCustomerId(),address:this.getBillingAddress()};jQuery.post(t,e).done(function(e){if(!e.success)throw new Error(e.data);a.set({selectedCertificate:e.data.certificate_id,certificates:e.data.certificates}),alert(SSTMetaBox.i18n.certificate_added)}).fail(function(e){alert(SSTMetaBox.i18n.add_certificate_failed+": "+e)}).always(function(){jQuery("#sales_tax_meta").unblock()})},getBillingAddress:function(){var e,t={first_name:"",last_name:"",address_1:"",address_2:"",city:"",state:"",postcode:""};for(e in t)t.hasOwnProperty(e)&&(t[e]=i("#_billing_"+e).val().trim());return t},getCustomerId:function(){return i("#customer_user").val()},filterRecalcRequest:function(e,t,i){var s;"string"==typeof i.data&&0<=i.data.indexOf("action=woocommerce_calc_line_taxes")&&(s=this.model.get("selectedCertificate"),i.data+="&exemption_certificate="+s)}}),s=i("button.calculate-action").is(":visible"),a=new e({customerId:i("#customer_user").val(),selectedCertificate:SSTMetaBox.selected_certificate,isEditable:s&&"pending"===SSTMetaBox.order_status});new t({el:i("#exempt-cert-select"),model:a}).render(),i("#customer_user").on("change",function(){a.set("customerId",i(this).val())})}); \ No newline at end of file