Changeset 3231847
- Timestamp:
- 01/30/2025 08:41:30 AM (13 months ago)
- File:
-
- 1 edited
-
pii-tokenizer/trunk/assets/js/pii-tokenizer.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
pii-tokenizer/trunk/assets/js/pii-tokenizer.js
r3228741 r3231847 4 4 */ 5 5 function addTokenizeButtons() { 6 // Look for forms on the page 7 $('form').each(function () { 6 $('form').each(function () { 8 7 const form = $(this); 9 8 … … 14 13 const label = field.attr('name').replace('_', ' ').replace(/\b\w/g, (c) => c.toUpperCase()); 15 14 field.after(` 16 <button type="button" class="pii-tokenize-field-button" data-field-name="${field.attr('name')}" >Tokenize ${label}</button>15 <button type="button" class="pii-tokenize-field-button" data-field-name="${field.attr('name')}" data-original="">Tokenize ${label}</button> 17 16 `); 18 17 } … … 24 23 addressFields.last().after(` 25 24 <div class="pii-address-tokenization"> 26 <button type="button" class="pii-tokenize-address-button" >Tokenize Address</button>25 <button type="button" class="pii-tokenize-address-button" data-original="">Tokenize Address</button> 27 26 </div> 28 27 `); … … 34 33 addTokenizeButtons(); 35 34 36 // Event handler for "Tokenize Profile Data" button35 // Event handler for "Tokenize/Detokenize Profile Data" button 37 36 $(document).on('click', '.pii-tokenize-field-button', function () { 38 const button = $(this);37 const button = $(this); 39 38 const fieldName = button.data('field-name'); 40 39 const field = $(`input[name="${fieldName}"]`); 41 40 const fieldValue = field.val(); 42 41 43 44 42 if (!fieldValue) { 45 alert('Please enter a value to tokenize.');43 alert('Please enter a value.'); 46 44 return; 47 45 } 48 46 47 if (button.text().includes('Tokenize')) { 48 // Save original value 49 button.data('original', fieldValue); 49 50 50 51 // Make the AJAX request to tokenize the data 52 $.post( 53 54 55 56 PIITokenizer.ajax_url, 57 { 51 // Tokenization API request 52 $.post(PIITokenizer.ajax_url, { 58 53 action: 'vlss_tokenize', 59 54 security: PIITokenizer.nonce, 60 55 data: fieldValue, 61 }, 62 function (response) { 56 }, function (response) { 63 57 if (response.success) { 64 65 58 field.val(response.data.token); 66 alert('Tokenization successful!');59 button.text('Show Original'); 67 60 } else { 68 61 alert('Tokenization failed: ' + response.data.message); 69 62 } 70 } 71 ).fail(function () { 72 alert('An error occurred while tokenizing the data.'); 73 }); 74 63 }).fail(function () { 64 alert('An error occurred while tokenizing the data.'); 65 }); 66 } else { 67 // Detokenization API request 68 $.post(PIITokenizer.ajax_url, { 69 action: 'vlss_detokenize', 70 security: PIITokenizer.nonce, 71 data: field.val(), 72 }, function (response) { 73 if (response.success) { 74 field.val(button.data('original')); 75 button.text('Tokenize'); 76 } else { 77 alert('Detokenization failed: ' + response.data.message); 78 } 79 }).fail(function () { 80 alert('An error occurred while detokenizing the data.'); 81 }); 82 } 75 83 }); 76 84 77 // Event handler for "Tokenize Address" button85 // Event handler for "Tokenize/Detokenize Address" button 78 86 $(document).on('click', '.pii-tokenize-address-button', function () { 79 const form = $(this).closest('form'); 87 const button = $(this); 88 const form = button.closest('form'); 80 89 const addressFields = form.find('input[name*="address"], input[name*="city"], input[name*="state"], input[name*="zip"], input[name*="country"]'); 81 const addressData = {}; 90 91 if (button.text().includes('Tokenize')) { 92 const addressData = {}; 93 addressFields.each(function () { 94 addressData[$(this).attr('name')] = $(this).val(); 95 }); 82 96 83 addressFields.each(function () { 84 const fieldName = $(this).attr('name'); 85 const fieldValue = $(this).val(); 86 addressData[fieldName] = fieldValue; 87 }); 97 // Save original address values 98 button.data('original', JSON.stringify(addressData)); 88 99 89 $.post(PIITokenizer.ajax_url, { 90 action: 'vlss_tokenize_address', 91 security: PIITokenizer.nonce, 92 data: addressData, 93 }, function (response) { 94 if (response.success) { 95 addressFields.each(function () { 96 const fieldName = $(this).attr('name'); 97 if (response.data.tokenized[fieldName]) { 98 $(this).val(response.data.tokenized[fieldName]); 99 } 100 }); 101 } else { 102 alert(response.data.message); 103 } 104 }); 100 // Tokenization API request 101 $.post(PIITokenizer.ajax_url, { 102 action: 'vlss_tokenize_address', 103 security: PIITokenizer.nonce, 104 data: addressData, 105 }, function (response) { 106 if (response.success) { 107 addressFields.each(function () { 108 $(this).val(response.data.tokenized[$(this).attr('name')]); 109 }); 110 button.text('Show Original Address'); 111 } else { 112 alert(response.data.message); 113 } 114 }).fail(function () { 115 alert('An error occurred while tokenizing the address.'); 116 }); 117 } else { 118 // Retrieve original address values 119 const originalData = JSON.parse(button.data('original')); 120 121 // Detokenization API request 122 $.post(PIITokenizer.ajax_url, { 123 action: 'vlss_detokenize_address', 124 security: PIITokenizer.nonce, 125 data: originalData, 126 }, function (response) { 127 if (response.success) { 128 addressFields.each(function () { 129 $(this).val(originalData[$(this).attr('name')]); 130 }); 131 button.text('Tokenize Address'); 132 } else { 133 alert(response.data.message); 134 } 135 }).fail(function () { 136 alert('An error occurred while detokenizing the address.'); 137 }); 138 } 105 139 }); 106 140 });
Note: See TracChangeset
for help on using the changeset viewer.