|
1349 | 1349 | var tabSlug = tab.className.replace('super-tab-content super-tab-', ''); |
1350 | 1350 | tabSlug = tabSlug.replace('super-active', '').trim(); |
1351 | 1351 | if(tabSlug==='triggers' || tabSlug==='woocommerce' || tabSlug==='pdf' || tabSlug==='listings' || tabSlug==='stripe'){ |
1352 | | - var specificTab = true; |
| 1352 | + specificTab = true; |
1353 | 1353 | } |
1354 | 1354 | } |
1355 | 1355 | } |
|
1363 | 1363 | $settings = SUPER.get_tab_settings($settings, tabSlug); |
1364 | 1364 | }else{ |
1365 | 1365 | // Grab all settings anew |
1366 | | - var $settings = {}; |
| 1366 | + $settings = {}; |
1367 | 1367 | var includeGlobalValues = false; |
1368 | 1368 | if(string===false){ |
1369 | 1369 | includeGlobalValues = document.querySelector('input[name="retain_underlying_global_values"]').checked; |
|
1506 | 1506 | if (node.querySelector('.flag')) node.querySelector('.flag').remove(); |
1507 | 1507 | node.appendChild(cloneFlag); |
1508 | 1508 | }else{ |
1509 | | - var node = nodes[i].closest('label').querySelector('.sfui-subline'); |
| 1509 | + node = nodes[i].closest('label').querySelector('.sfui-subline'); |
1510 | 1510 | if(node){ |
1511 | | - var cloneFlag = flag.cloneNode(); |
| 1511 | + cloneFlag = flag.cloneNode(); |
1512 | 1512 | cloneFlag.title = 'Translation for ' + (i18n ? i18n : 'main language'); |
1513 | 1513 | if (node.querySelector('.flag')) node.querySelector('.flag').remove(); |
1514 | 1514 | node.appendChild(cloneFlag); |
|
1519 | 1519 | }; |
1520 | 1520 | SUPER.get_tab_settings = function(settings, slug, tab, data, returnData){ |
1521 | 1521 | if(typeof returnData === 'undefined') returnData = false; |
1522 | | - var nodes, i, i18n_data = null, field, fieldName, newField, mainLanguageValue, |
| 1522 | + var nodes, i, i18n_data = null, field, fieldName, newField, mainLanguageValue, value, translatedValue, p, i18n_input_field, i18n_value, repeaters, |
1523 | 1523 | i18n = document.querySelector('.super-create-form').dataset.i18n; |
1524 | 1524 | if(SUPER.ui.settings['_'+slug]){ |
1525 | 1525 | // Get the current country flag |
|
1582 | 1582 | current = current[parseInt(key)]; |
1583 | 1583 | } else if (typeof key === 'string') { |
1584 | 1584 | // Handle object property (remove [] suffix if present) |
1585 | | - var cleanKey = key.replace(/\[\]$/, ''); |
| 1585 | + cleanKey = key.replace(/\[\]$/, ''); |
1586 | 1586 | current = current[cleanKey]; |
1587 | 1587 | } |
1588 | 1588 | } else { |
|
1596 | 1596 | } |
1597 | 1597 | // Now look for the fieldName in the current object |
1598 | 1598 | if (current && typeof current === 'object' && current[fieldName]) { |
1599 | | - var translatedValue = current[fieldName]; |
| 1599 | + translatedValue = current[fieldName]; |
1600 | 1600 | // If translatedValue is an object (like {"am": "New question1nl"}), |
1601 | 1601 | // get the value for the current language code |
1602 | 1602 | if(typeof translatedValue === 'object' && translatedValue[i18n]){ |
|
1660 | 1660 |
|
1661 | 1661 | // Populate fields with i18n data |
1662 | 1662 | if(SUPER.ui.settings['_'+slug].i18n){ |
1663 | | - var i18n_data = JSON.parse(JSON.stringify(SUPER.ui.settings['_'+slug].i18n)); |
| 1663 | + i18n_data = JSON.parse(JSON.stringify(SUPER.ui.settings['_'+slug].i18n)); |
1664 | 1664 | if(i18n_data[i18n]){ |
1665 | 1665 | for(i = 0; i < nodes.length; i++){ |
1666 | | - var value = nodes[i].value; |
1667 | | - var translatedValue = SUPER.ui.i18n.getTranslatedValue(nodes[i], i18n_data, i18n, tab); |
| 1666 | + value = nodes[i].value; |
| 1667 | + translatedValue = SUPER.ui.i18n.getTranslatedValue(nodes[i], i18n_data, i18n, tab); |
1668 | 1668 | if(translatedValue!==null){ |
1669 | 1669 | k = nodes[i].name.split('.').pop(); |
1670 | 1670 | if(!i18n_data[k]){ |
|
1727 | 1727 | return settings; |
1728 | 1728 | } |
1729 | 1729 | // Get the current country flag |
1730 | | - var flag = document.querySelector(':scope .super-tabs > .super-tab-builder > .flag'); |
| 1730 | + flag = document.querySelector(':scope .super-tabs > .super-tab-builder > .flag'); |
1731 | 1731 | // Remember the original value for translatable settings |
1732 | 1732 | nodes = tab.querySelectorAll('.sfui-i18n [name]'); |
1733 | 1733 | SUPER.add_country_flags(i18n, flag, nodes); |
|
1739 | 1739 | } |
1740 | 1740 | if (nodes[i].type === 'textarea') { |
1741 | 1741 | if (tinymce.get(nodes[i].id)) { |
1742 | | - var value = tinymce.get(nodes[i].id).getContent(); |
| 1742 | + value = tinymce.get(nodes[i].id).getContent(); |
1743 | 1743 | } else { |
1744 | | - var value = nodes[i].value; |
| 1744 | + value = nodes[i].value; |
1745 | 1745 | } |
1746 | | - var field = document.createElement('textarea'); |
| 1746 | + field = document.createElement('textarea'); |
1747 | 1747 | } else { |
1748 | | - var value = nodes[i].value; |
| 1748 | + value = nodes[i].value; |
1749 | 1749 | if (nodes[i].type === 'checkbox') { |
1750 | 1750 | value = nodes[i].checked ? 'true' : 'false'; |
1751 | 1751 | } |
1752 | | - var field = document.createElement('input'); |
| 1752 | + field = document.createElement('input'); |
1753 | 1753 | field.type = 'hidden'; |
1754 | 1754 | } |
1755 | 1755 | field.value = value; |
|
1767 | 1767 |
|
1768 | 1768 | // Adjust the number of repeater items based on i18n_data |
1769 | 1769 | if (SUPER.ui.i18n.translating && (slug==='triggers' || slug==='stripe') && tab.classList.contains('super-tab-content')){ |
1770 | | - var p = tab; |
| 1770 | + p = tab; |
1771 | 1771 | // Initialize i18n_data if not already done |
1772 | 1772 | // tmp if (i18n_data === null) { |
1773 | 1773 | // tmp var i18n_input_field = p.querySelector('[name="i18n"]'); |
|
1803 | 1803 | } |
1804 | 1804 | i18n_data = SUPER.ui.settings['_'+slug].i18n; |
1805 | 1805 | // Adjust repeater items based on i18n_data |
1806 | | - var repeaters = tab.querySelectorAll('[data-r]'); |
| 1806 | + repeaters = tab.querySelectorAll('[data-r]'); |
1807 | 1807 | repeaters.forEach(function(repeater) { |
1808 | 1808 | var key = repeater.getAttribute('data-r'); |
1809 | 1809 | if (i18n_data[i18n] && i18n_data[i18n][key]) { |
|
1825 | 1825 | }); |
1826 | 1826 | } |
1827 | 1827 | // First grab all settings that are not inside a repeater element |
1828 | | - var i, k, nodes = tab.querySelectorAll('[data-g], [data-r], [name]'); |
| 1828 | + var k; |
| 1829 | + nodes = tab.querySelectorAll('[data-g], [data-r], [name]'); |
1829 | 1830 | for (i = 0; i < nodes.length; i++) { |
1830 | 1831 | if (nodes[i].classList.contains('sf-processed')) { |
1831 | 1832 | continue; |
|
1855 | 1856 | if (SUPER.ui.i18n.translating && nodes[i].closest('.sfui-setting').classList.contains('sfui-i18n')) { |
1856 | 1857 | // Try to grab existing translated string |
1857 | 1858 | if (i18n_data === null) { |
1858 | | - var p = (nodes[i].closest('[data-g="data"]') ? nodes[i].closest('[data-g="data"]') : nodes[i].closest('.super-tab-content')); |
| 1859 | + p = (nodes[i].closest('[data-g="data"]') ? nodes[i].closest('[data-g="data"]') : nodes[i].closest('.super-tab-content')); |
1859 | 1860 | if (p.classList.contains('super-tab-content')) { |
1860 | | - var i18n_input_field = p.querySelector('[name="i18n"]'); |
| 1861 | + i18n_input_field = p.querySelector('[name="i18n"]'); |
1861 | 1862 | } else { |
1862 | | - var i18n_input_field = p.nextElementSibling.querySelector('[name="i18n"]'); |
| 1863 | + i18n_input_field = p.nextElementSibling.querySelector('[name="i18n"]'); |
1863 | 1864 | } |
1864 | 1865 | if(i18n_input_field){ |
1865 | | - var i18n_value = i18n_input_field.value.trim(); |
| 1866 | + i18n_value = i18n_input_field.value.trim(); |
1866 | 1867 | i18n_input_field.classList.remove('sfui-red'); |
1867 | 1868 | if (i18n_value === '') { |
1868 | | - var i18n_data = {}; |
| 1869 | + i18n_data = {}; |
1869 | 1870 | i18n_data[i18n] = {}; |
1870 | 1871 | } else { |
1871 | 1872 | try { |
1872 | | - var i18n_data = JSON.parse(i18n_value); |
| 1873 | + i18n_data = JSON.parse(i18n_value); |
1873 | 1874 | var changed = false; |
1874 | 1875 | Object.keys(i18n_data).forEach(function(key) { |
1875 | 1876 | if (Array.isArray(i18n_data[key])) { |
|
1883 | 1884 | } |
1884 | 1885 | catch (e) { |
1885 | 1886 | console.error(e); |
1886 | | - var i18n_data = {}; |
| 1887 | + i18n_data = {}; |
1887 | 1888 | i18n_data[i18n] = {}; |
1888 | 1889 | i18n_input_field.classList.add('sfui-red'); |
1889 | 1890 | } |
|
1929 | 1930 | // tmp } |
1930 | 1931 | // tmp } |
1931 | 1932 | } else { |
1932 | | - var value = nodes[i].value; |
| 1933 | + value = nodes[i].value; |
1933 | 1934 | var type = nodes[i].type; |
1934 | 1935 | k = nodes[i].name.split('.').pop(); |
1935 | 1936 | if (type === 'checkbox') value = nodes[i].checked; |
|
1974 | 1975 | SUPER.ui.settings['_'+slug].i18n[SUPER.ui.i18n.lastLanguage] = data.i18n[SUPER.ui.i18n.lastLanguage]; |
1975 | 1976 | data = SUPER.ui.settings['_'+slug]; |
1976 | 1977 | // Adjust repeater items based on i18n_data |
1977 | | - var repeaters = tab.querySelectorAll('[data-r]'); |
| 1978 | + repeaters = tab.querySelectorAll('[data-r]'); |
1978 | 1979 | repeaters.forEach(function(repeater) { |
1979 | 1980 | var key = repeater.getAttribute('data-r'); |
1980 | 1981 | if (data[key]) { |
|
4154 | 4155 | } |
4155 | 4156 | }); |
4156 | 4157 | } |
4157 | | - var slug = 'triggers'; |
4158 | | - var tab = document.querySelector('.super-tab-'+slug); |
| 4158 | + slug = 'triggers'; |
| 4159 | + tab = document.querySelector('.super-tab-'+slug); |
4159 | 4160 | if(typeof SUPER.ui.settings['_' + slug]!=='undefined' && slug==='triggers'){ |
4160 | | - var x = SUPER.ui.settings['_'+slug]; |
| 4161 | + x = SUPER.ui.settings['_'+slug]; |
4161 | 4162 | // Adjust repeater items based on i18n_data |
4162 | | - var repeaters = tab.querySelectorAll('[data-r]'); |
| 4163 | + repeaters = tab.querySelectorAll('[data-r]'); |
4163 | 4164 | repeaters.forEach(function(repeater) { |
4164 | 4165 | var key = repeater.getAttribute('data-r'); |
4165 | 4166 | if (x[key]) { |
|
7031 | 7032 | }); |
7032 | 7033 | } |
7033 | 7034 | } |
7034 | | - |
7035 | | - // Handle mouse enter/leave for pausing updates |
7036 | | - var pausedPreviews = new Set(); |
7037 | | - |
| 7035 | + |
| 7036 | + // Handle mouse enter/leave for pausing updates (pausedPreviews already declared above) |
| 7037 | + |
7038 | 7038 | $doc.on('mouseenter', '.super-email-preview', function() { |
7039 | 7039 | pausedPreviews.add(this); |
7040 | 7040 | console.log('Paused updates for email preview (mouse enter)'); |
|
7341 | 7341 | // Not enough space, revert to normal positioning |
7342 | 7342 | return; |
7343 | 7343 | } |
7344 | | - |
| 7344 | + |
7345 | 7345 | // Set min-height on parent toggle to prevent scrollbar issues |
7346 | | - var parentToggle = emailPreview.closest('.sfui-toggle'); |
| 7346 | + parentToggle = emailPreview.closest('.sfui-toggle'); |
7347 | 7347 | if (parentToggle) { |
7348 | 7348 | var currentHeight = parentToggle.offsetHeight; |
7349 | 7349 | parentToggle.style.minHeight = Math.max(400, currentHeight) + 'px'; |
|
0 commit comments