Plugin Directory

Changeset 3231847


Ignore:
Timestamp:
01/30/2025 08:41:30 AM (13 months ago)
Author:
samudaytech
Message:

updated to include show original button

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pii-tokenizer/trunk/assets/js/pii-tokenizer.js

    r3228741 r3231847  
    44     */
    55    function addTokenizeButtons() {
    6         // Look for forms on the page
    7                $('form').each(function () {
     6        $('form').each(function () {
    87            const form = $(this);
    98
     
    1413                    const label = field.attr('name').replace('_', ' ').replace(/\b\w/g, (c) => c.toUpperCase());
    1514                    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>
    1716                    `);
    1817                }
     
    2423                addressFields.last().after(`
    2524                    <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>
    2726                    </div>
    2827                `);
     
    3433    addTokenizeButtons();
    3534
    36     // Event handler for "Tokenize Profile Data" button
     35    // Event handler for "Tokenize/Detokenize Profile Data" button
    3736    $(document).on('click', '.pii-tokenize-field-button', function () {
    38                const button = $(this);
     37        const button = $(this);
    3938        const fieldName = button.data('field-name');
    4039        const field = $(`input[name="${fieldName}"]`);
    4140        const fieldValue = field.val();
    4241       
    43        
    4442        if (!fieldValue) {
    45             alert('Please enter a value to tokenize.');
     43            alert('Please enter a value.');
    4644            return;
    4745        }
    4846
     47        if (button.text().includes('Tokenize')) {
     48            // Save original value
     49            button.data('original', fieldValue);
    4950
    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, {
    5853                action: 'vlss_tokenize',
    5954                security: PIITokenizer.nonce,
    6055                data: fieldValue,
    61             },
    62             function (response) {
     56            }, function (response) {
    6357                if (response.success) {
    64                    
    6558                    field.val(response.data.token);
    66                     alert('Tokenization successful!');
     59                    button.text('Show Original');
    6760                } else {
    6861                    alert('Tokenization failed: ' + response.data.message);
    6962                }
    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        }
    7583    });
    7684
    77     // Event handler for "Tokenize Address" button
     85    // Event handler for "Tokenize/Detokenize Address" button
    7886    $(document).on('click', '.pii-tokenize-address-button', function () {
    79         const form = $(this).closest('form');
     87        const button = $(this);
     88        const form = button.closest('form');
    8089        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            });
    8296
    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));
    8899
    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        }
    105139    });
    106140});
Note: See TracChangeset for help on using the changeset viewer.