Changeset 3037245 for woocommerce-extra-checkout-fields-for-brazil
- Timestamp:
- 02/17/2024 07:14:14 PM (5 months ago)
- Location:
- woocommerce-extra-checkout-fields-for-brazil
- Files:
-
- 14 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
woocommerce-extra-checkout-fields-for-brazil/tags/4.0.2/assets/js/frontend/frontend.js
r2989546 r3037245 167 167 168 168 if ('BR' === current) { 169 if ('1' === bmwPublicParams.person_type) { 170 const personType = $( 171 '#billing_persontype' 172 ).val(); 173 169 if ('0' !== bmwPublicParams.person_type) { 170 let personType; 171 if (bmwPublicParams.person_type === '1') { 172 personType = $('#billing_persontype').val(); 173 } else { 174 // bwmPublicParams.person_type 2 means individuals, 3 means legal person 175 // offsetting it by one returns what we would expect from #billing_persontype 176 personType = ( 177 bmwPublicParams.person_type - 1 178 ).toString(); 179 } 174 180 handleFields(personType); 175 181 } -
woocommerce-extra-checkout-fields-for-brazil/tags/4.0.2/assets/js/frontend/frontend.min.js
r2989546 r3037245 1 jQuery(function(a){const b={init(){"0"!==bmwPublicParams.person_type&&this.person_type_fields(),"yes"===bmwPublicParams.maskedinput&&(a(document.body).on("change","#billing_country",function(){"BR"===a(this).val()?b.maskBilling():b.unmaskBilling()}),a(document.body).on("change","#shipping_country",function(){"BR"===a(this).val()?b.maskShipping():b.unmaskShipping()}),"BR"===a("#billing_country").val()&&b.maskBilling(),"BR"===a("#shipping_country").val()&&b.maskShipping(),this.maskGeneral()),"yes"===bmwPublicParams.mailcheck&&this.emailCheck(),a().select2&&a(".wc-ecfb-select").select2()},person_type_fields(){const b=function(b,c=!1){let d="BR";c&&(d=a("#billing_country").val()),a(".person-type-field").hide().removeClass("validate-required is-active woocommerce-validated"),a("#billing_persontype_field").show().addClass("is-active"),"1"===b&&("BR"===d?(a("#billing_cpf_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_rg_field").addClass("validate-required is-active woocommerce-validated").show()):(a("#billing_cpf_field").show().addClass("is-active"),a("#billing_rg_field").show().addClass("is-active"))),"2"===b&&("BR"===d?(a("#billing_company_field label .optional").remove(),a("#billing_company_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_cnpj_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_ie_field").addClass("validate-required is-active woocommerce-validated").show()):(a("#billing_company_field").addClass("is-active").show(),a("#billing_cnpj_field").addClass("is-active").show(),a("#billing_ie_field").addClass("is-active").show())),"BR"===d&&(a(".person-type-field label .required").remove(),a(".person-type-field label").append(" <abbr class=\"required\" title=\""+bmwPublicParams.required+"\">*</abbr>"))},c=function(c=!1){"1"===bmwPublicParams.person_type&&a("#billing_persontype").on("change",function(){const d=a(this).val();b(d,c)}).change()};"no"===bmwPublicParams.only_brazil?(a(".person-type-field label .required").remove(),a(".person-type-field label").append(" <abbr class=\"required\" title=\""+bmwPublicParams.required+"\">*</abbr>"),c()):(a(".person-type-field").removeClass("validate-required is-active woocommerce-validated"),a(".person-type-field label .required").remove(),c(!0),a("#billing_country").on("change",function(){const c=a(this).val();if(!("BR"===c))a(".person-type-field").removeClass("validate-required is-active woocommerce-validated"),a(".person-type-field label .required").remove();else if(" 1"===bmwPublicParams.person_type){const c=a("#billing_persontype").val();b(c)}}).change())},maskBilling(){b.maskPhone("#billing_phone, #billing_cellphone"),a("#billing_birthdate").mask("00/00/0000"),a("#billing_postcode").mask("00000-000"),a("#billing_phone, #billing_cellphone, #billing_birthdate, #billing_postcode").attr("type","tel")},unmaskBilling(){a("#billing_phone, #billing_cellphone, #billing_birthdate, #billing_postcode").unmask().attr("type","text")},maskShipping(){a("#shipping_postcode").mask("00000-000").attr("type","tel")},unmaskShipping(){a("#shipping_postcode").unmask().attr("type","text")},maskGeneral(){a("#billing_cpf, #credit-card-cpf").mask("000.000.000-00"),a("#billing_cnpj").mask("00.000.000/0000-00"),b.maskPhone("#credit-card-phone")},maskPhone(b){const c=a(b),d=function(a){return 11===a.replace(/\D/g,"").length?"(00) 00000-0000":"(00) 0000-00009"};c.mask(d,{onKeyPress(a,b,c,e){c.mask(d.apply({},arguments),e)}})},emailCheck(){const b=bmwPublicParams.suggest_text;1>a("#wcbcf-mailsuggest").length&&a("#billing_email").after("<div id=\"wcbcf-mailsuggest\"></div>"),a("#billing_email").on("blur",function(){a("#wcbcf-mailsuggest").html(""),a(this).mailcheck({suggested(c,d){a("#wcbcf-mailsuggest").html(b.replace("%hint%",d.full))}})}),a("#wcbcf-mailsuggest").css({color:"#c00",fontSize:"small"})}};b.init()});1 jQuery(function(a){const b={init(){"0"!==bmwPublicParams.person_type&&this.person_type_fields(),"yes"===bmwPublicParams.maskedinput&&(a(document.body).on("change","#billing_country",function(){"BR"===a(this).val()?b.maskBilling():b.unmaskBilling()}),a(document.body).on("change","#shipping_country",function(){"BR"===a(this).val()?b.maskShipping():b.unmaskShipping()}),"BR"===a("#billing_country").val()&&b.maskBilling(),"BR"===a("#shipping_country").val()&&b.maskShipping(),this.maskGeneral()),"yes"===bmwPublicParams.mailcheck&&this.emailCheck(),a().select2&&a(".wc-ecfb-select").select2()},person_type_fields(){const b=function(b,c=!1){let d="BR";c&&(d=a("#billing_country").val()),a(".person-type-field").hide().removeClass("validate-required is-active woocommerce-validated"),a("#billing_persontype_field").show().addClass("is-active"),"1"===b&&("BR"===d?(a("#billing_cpf_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_rg_field").addClass("validate-required is-active woocommerce-validated").show()):(a("#billing_cpf_field").show().addClass("is-active"),a("#billing_rg_field").show().addClass("is-active"))),"2"===b&&("BR"===d?(a("#billing_company_field label .optional").remove(),a("#billing_company_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_cnpj_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_ie_field").addClass("validate-required is-active woocommerce-validated").show()):(a("#billing_company_field").addClass("is-active").show(),a("#billing_cnpj_field").addClass("is-active").show(),a("#billing_ie_field").addClass("is-active").show())),"BR"===d&&(a(".person-type-field label .required").remove(),a(".person-type-field label").append(" <abbr class=\"required\" title=\""+bmwPublicParams.required+"\">*</abbr>"))},c=function(c=!1){"1"===bmwPublicParams.person_type&&a("#billing_persontype").on("change",function(){const d=a(this).val();b(d,c)}).change()};"no"===bmwPublicParams.only_brazil?(a(".person-type-field label .required").remove(),a(".person-type-field label").append(" <abbr class=\"required\" title=\""+bmwPublicParams.required+"\">*</abbr>"),c()):(a(".person-type-field").removeClass("validate-required is-active woocommerce-validated"),a(".person-type-field label .required").remove(),c(!0),a("#billing_country").on("change",function(){const c=a(this).val();if(!("BR"===c))a(".person-type-field").removeClass("validate-required is-active woocommerce-validated"),a(".person-type-field label .required").remove();else if("b(c)}}).change())},maskBilling(){b.maskPhone("#billing_phone, #billing_cellphone"),a("#billing_birthdate").mask("00/00/0000"),a("#billing_postcode").mask("00000-000"),a("#billing_phone, #billing_cellphone, #billing_birthdate, #billing_postcode").attr("type","tel")},unmaskBilling(){a("#billing_phone, #billing_cellphone, #billing_birthdate, #billing_postcode").unmask().attr("type","text")},maskShipping(){a("#shipping_postcode").mask("00000-000").attr("type","tel")},unmaskShipping(){a("#shipping_postcode").unmask().attr("type","text")},maskGeneral(){a("#billing_cpf, #credit-card-cpf").mask("000.000.000-00"),a("#billing_cnpj").mask("00.000.000/0000-00"),b.maskPhone("#credit-card-phone")},maskPhone(b){const c=a(b),d=function(a){return 11===a.replace(/\D/g,"").length?"(00) 00000-0000":"(00) 0000-00009"};c.mask(d,{onKeyPress(a,b,c,e){c.mask(d.apply({},arguments),e)}})},emailCheck(){const b=bmwPublicParams.suggest_text;1>a("#wcbcf-mailsuggest").length&&a("#billing_email").after("<div id=\"wcbcf-mailsuggest\"></div>"),a("#billing_email").on("blur",function(){a("#wcbcf-mailsuggest").html(""),a(this).mailcheck({suggested(c,d){a("#wcbcf-mailsuggest").html(b.replace("%hint%",d.full))}})}),a("#wcbcf-mailsuggest").css({color:"#c00",fontSize:"small"})}};b.init()}); -
woocommerce-extra-checkout-fields-for-brazil/tags/4.0.2/includes/class-extra-checkout-fields-for-brazil-front-end.php
r3037238 r3037245 83 83 'mailcheck' => isset( $settings['mailcheck'] ) ? 'yes' : 'no', 84 84 'maskedinput' => isset( $settings['maskedinput'] ) ? 'yes' : 'no', 85 'person_type' => absint( $settings['person_type'] ),85 'person_type' => , 86 86 'only_brazil' => isset( $settings['only_brazil'] ) ? 'yes' : 'no', 87 87 /* translators: %hint%: email hint */ -
woocommerce-extra-checkout-fields-for-brazil/tags/4.0.2/includes/class-extra-checkout-fields-for-brazil.php
r3037238 r3037245 20 20 * @var string 21 21 */ 22 const VERSION = '4.0. 1';22 const VERSION = '4.0.'; 23 23 24 24 /** -
woocommerce-extra-checkout-fields-for-brazil/tags/4.0.2/languages/woocommerce-extra-checkout-fields-for-brazil.pot
r3037238 r3037245 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Brazilian Market on WooCommerce 4.0. 1\n"5 "Project-Id-Version: Brazilian Market on WooCommerce 4.0.\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-extra-checkout-fields-for-brazil\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2024-02-17T1 5:23:33-03:00\n"12 "POT-Creation-Date: 2024-02-17T1-03:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.7.1\n" -
woocommerce-extra-checkout-fields-for-brazil/tags/4.0.2/readme.txt
r3037238 r3037245 5 5 Requires at least: 4.0 6 6 Tested up to: 6.4 7 Stable tag: 4.0. 17 Stable tag: 4.0. 8 8 Requires PHP: 5.6 9 9 License: GPLv2 or later … … 66 66 67 67 == Changelog == 68 69 70 71 68 72 69 73 = 4.0.1 - 2024/02/17 = -
woocommerce-extra-checkout-fields-for-brazil/tags/4.0.2/woocommerce-extra-checkout-fields-for-brazil.php
r3037238 r3037245 6 6 * Author: Claudio Sanches 7 7 * Author URI: https://claudiosanches.com 8 * Version: 4.0. 18 * Version: 4.0. 9 9 * Requires at least: 4.0 10 10 * Requires PHP: 5.6 -
woocommerce-extra-checkout-fields-for-brazil/trunk/assets/js/frontend/frontend.js
r2989546 r3037245 167 167 168 168 if ('BR' === current) { 169 if ('1' === bmwPublicParams.person_type) { 170 const personType = $( 171 '#billing_persontype' 172 ).val(); 173 169 if ('0' !== bmwPublicParams.person_type) { 170 let personType; 171 if (bmwPublicParams.person_type === '1') { 172 personType = $('#billing_persontype').val(); 173 } else { 174 // bwmPublicParams.person_type 2 means individuals, 3 means legal person 175 // offsetting it by one returns what we would expect from #billing_persontype 176 personType = ( 177 bmwPublicParams.person_type - 1 178 ).toString(); 179 } 174 180 handleFields(personType); 175 181 } -
woocommerce-extra-checkout-fields-for-brazil/trunk/assets/js/frontend/frontend.min.js
r2989546 r3037245 1 jQuery(function(a){const b={init(){"0"!==bmwPublicParams.person_type&&this.person_type_fields(),"yes"===bmwPublicParams.maskedinput&&(a(document.body).on("change","#billing_country",function(){"BR"===a(this).val()?b.maskBilling():b.unmaskBilling()}),a(document.body).on("change","#shipping_country",function(){"BR"===a(this).val()?b.maskShipping():b.unmaskShipping()}),"BR"===a("#billing_country").val()&&b.maskBilling(),"BR"===a("#shipping_country").val()&&b.maskShipping(),this.maskGeneral()),"yes"===bmwPublicParams.mailcheck&&this.emailCheck(),a().select2&&a(".wc-ecfb-select").select2()},person_type_fields(){const b=function(b,c=!1){let d="BR";c&&(d=a("#billing_country").val()),a(".person-type-field").hide().removeClass("validate-required is-active woocommerce-validated"),a("#billing_persontype_field").show().addClass("is-active"),"1"===b&&("BR"===d?(a("#billing_cpf_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_rg_field").addClass("validate-required is-active woocommerce-validated").show()):(a("#billing_cpf_field").show().addClass("is-active"),a("#billing_rg_field").show().addClass("is-active"))),"2"===b&&("BR"===d?(a("#billing_company_field label .optional").remove(),a("#billing_company_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_cnpj_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_ie_field").addClass("validate-required is-active woocommerce-validated").show()):(a("#billing_company_field").addClass("is-active").show(),a("#billing_cnpj_field").addClass("is-active").show(),a("#billing_ie_field").addClass("is-active").show())),"BR"===d&&(a(".person-type-field label .required").remove(),a(".person-type-field label").append(" <abbr class=\"required\" title=\""+bmwPublicParams.required+"\">*</abbr>"))},c=function(c=!1){"1"===bmwPublicParams.person_type&&a("#billing_persontype").on("change",function(){const d=a(this).val();b(d,c)}).change()};"no"===bmwPublicParams.only_brazil?(a(".person-type-field label .required").remove(),a(".person-type-field label").append(" <abbr class=\"required\" title=\""+bmwPublicParams.required+"\">*</abbr>"),c()):(a(".person-type-field").removeClass("validate-required is-active woocommerce-validated"),a(".person-type-field label .required").remove(),c(!0),a("#billing_country").on("change",function(){const c=a(this).val();if(!("BR"===c))a(".person-type-field").removeClass("validate-required is-active woocommerce-validated"),a(".person-type-field label .required").remove();else if(" 1"===bmwPublicParams.person_type){const c=a("#billing_persontype").val();b(c)}}).change())},maskBilling(){b.maskPhone("#billing_phone, #billing_cellphone"),a("#billing_birthdate").mask("00/00/0000"),a("#billing_postcode").mask("00000-000"),a("#billing_phone, #billing_cellphone, #billing_birthdate, #billing_postcode").attr("type","tel")},unmaskBilling(){a("#billing_phone, #billing_cellphone, #billing_birthdate, #billing_postcode").unmask().attr("type","text")},maskShipping(){a("#shipping_postcode").mask("00000-000").attr("type","tel")},unmaskShipping(){a("#shipping_postcode").unmask().attr("type","text")},maskGeneral(){a("#billing_cpf, #credit-card-cpf").mask("000.000.000-00"),a("#billing_cnpj").mask("00.000.000/0000-00"),b.maskPhone("#credit-card-phone")},maskPhone(b){const c=a(b),d=function(a){return 11===a.replace(/\D/g,"").length?"(00) 00000-0000":"(00) 0000-00009"};c.mask(d,{onKeyPress(a,b,c,e){c.mask(d.apply({},arguments),e)}})},emailCheck(){const b=bmwPublicParams.suggest_text;1>a("#wcbcf-mailsuggest").length&&a("#billing_email").after("<div id=\"wcbcf-mailsuggest\"></div>"),a("#billing_email").on("blur",function(){a("#wcbcf-mailsuggest").html(""),a(this).mailcheck({suggested(c,d){a("#wcbcf-mailsuggest").html(b.replace("%hint%",d.full))}})}),a("#wcbcf-mailsuggest").css({color:"#c00",fontSize:"small"})}};b.init()});1 jQuery(function(a){const b={init(){"0"!==bmwPublicParams.person_type&&this.person_type_fields(),"yes"===bmwPublicParams.maskedinput&&(a(document.body).on("change","#billing_country",function(){"BR"===a(this).val()?b.maskBilling():b.unmaskBilling()}),a(document.body).on("change","#shipping_country",function(){"BR"===a(this).val()?b.maskShipping():b.unmaskShipping()}),"BR"===a("#billing_country").val()&&b.maskBilling(),"BR"===a("#shipping_country").val()&&b.maskShipping(),this.maskGeneral()),"yes"===bmwPublicParams.mailcheck&&this.emailCheck(),a().select2&&a(".wc-ecfb-select").select2()},person_type_fields(){const b=function(b,c=!1){let d="BR";c&&(d=a("#billing_country").val()),a(".person-type-field").hide().removeClass("validate-required is-active woocommerce-validated"),a("#billing_persontype_field").show().addClass("is-active"),"1"===b&&("BR"===d?(a("#billing_cpf_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_rg_field").addClass("validate-required is-active woocommerce-validated").show()):(a("#billing_cpf_field").show().addClass("is-active"),a("#billing_rg_field").show().addClass("is-active"))),"2"===b&&("BR"===d?(a("#billing_company_field label .optional").remove(),a("#billing_company_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_cnpj_field").addClass("validate-required is-active woocommerce-validated").show(),a("#billing_ie_field").addClass("validate-required is-active woocommerce-validated").show()):(a("#billing_company_field").addClass("is-active").show(),a("#billing_cnpj_field").addClass("is-active").show(),a("#billing_ie_field").addClass("is-active").show())),"BR"===d&&(a(".person-type-field label .required").remove(),a(".person-type-field label").append(" <abbr class=\"required\" title=\""+bmwPublicParams.required+"\">*</abbr>"))},c=function(c=!1){"1"===bmwPublicParams.person_type&&a("#billing_persontype").on("change",function(){const d=a(this).val();b(d,c)}).change()};"no"===bmwPublicParams.only_brazil?(a(".person-type-field label .required").remove(),a(".person-type-field label").append(" <abbr class=\"required\" title=\""+bmwPublicParams.required+"\">*</abbr>"),c()):(a(".person-type-field").removeClass("validate-required is-active woocommerce-validated"),a(".person-type-field label .required").remove(),c(!0),a("#billing_country").on("change",function(){const c=a(this).val();if(!("BR"===c))a(".person-type-field").removeClass("validate-required is-active woocommerce-validated"),a(".person-type-field label .required").remove();else if("b(c)}}).change())},maskBilling(){b.maskPhone("#billing_phone, #billing_cellphone"),a("#billing_birthdate").mask("00/00/0000"),a("#billing_postcode").mask("00000-000"),a("#billing_phone, #billing_cellphone, #billing_birthdate, #billing_postcode").attr("type","tel")},unmaskBilling(){a("#billing_phone, #billing_cellphone, #billing_birthdate, #billing_postcode").unmask().attr("type","text")},maskShipping(){a("#shipping_postcode").mask("00000-000").attr("type","tel")},unmaskShipping(){a("#shipping_postcode").unmask().attr("type","text")},maskGeneral(){a("#billing_cpf, #credit-card-cpf").mask("000.000.000-00"),a("#billing_cnpj").mask("00.000.000/0000-00"),b.maskPhone("#credit-card-phone")},maskPhone(b){const c=a(b),d=function(a){return 11===a.replace(/\D/g,"").length?"(00) 00000-0000":"(00) 0000-00009"};c.mask(d,{onKeyPress(a,b,c,e){c.mask(d.apply({},arguments),e)}})},emailCheck(){const b=bmwPublicParams.suggest_text;1>a("#wcbcf-mailsuggest").length&&a("#billing_email").after("<div id=\"wcbcf-mailsuggest\"></div>"),a("#billing_email").on("blur",function(){a("#wcbcf-mailsuggest").html(""),a(this).mailcheck({suggested(c,d){a("#wcbcf-mailsuggest").html(b.replace("%hint%",d.full))}})}),a("#wcbcf-mailsuggest").css({color:"#c00",fontSize:"small"})}};b.init()}); -
woocommerce-extra-checkout-fields-for-brazil/trunk/includes/class-extra-checkout-fields-for-brazil-front-end.php
r3037238 r3037245 83 83 'mailcheck' => isset( $settings['mailcheck'] ) ? 'yes' : 'no', 84 84 'maskedinput' => isset( $settings['maskedinput'] ) ? 'yes' : 'no', 85 'person_type' => absint( $settings['person_type'] ),85 'person_type' => , 86 86 'only_brazil' => isset( $settings['only_brazil'] ) ? 'yes' : 'no', 87 87 /* translators: %hint%: email hint */ -
woocommerce-extra-checkout-fields-for-brazil/trunk/includes/class-extra-checkout-fields-for-brazil.php
r3037238 r3037245 20 20 * @var string 21 21 */ 22 const VERSION = '4.0. 1';22 const VERSION = '4.0.'; 23 23 24 24 /** -
woocommerce-extra-checkout-fields-for-brazil/trunk/languages/woocommerce-extra-checkout-fields-for-brazil.pot
r3037238 r3037245 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Brazilian Market on WooCommerce 4.0. 1\n"5 "Project-Id-Version: Brazilian Market on WooCommerce 4.0.\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-extra-checkout-fields-for-brazil\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2024-02-17T1 5:23:33-03:00\n"12 "POT-Creation-Date: 2024-02-17T1-03:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.7.1\n" -
woocommerce-extra-checkout-fields-for-brazil/trunk/readme.txt
r3037238 r3037245 5 5 Requires at least: 4.0 6 6 Tested up to: 6.4 7 Stable tag: 4.0. 17 Stable tag: 4.0. 8 8 Requires PHP: 5.6 9 9 License: GPLv2 or later … … 66 66 67 67 == Changelog == 68 69 70 71 68 72 69 73 = 4.0.1 - 2024/02/17 = -
woocommerce-extra-checkout-fields-for-brazil/trunk/woocommerce-extra-checkout-fields-for-brazil.php
r3037238 r3037245 6 6 * Author: Claudio Sanches 7 7 * Author URI: https://claudiosanches.com 8 * Version: 4.0. 18 * Version: 4.0. 9 9 * Requires at least: 4.0 10 10 * Requires PHP: 5.6
Note: See TracChangeset
for help on using the changeset viewer.