Files
WebP-eXpress/lib/options/js/converters.js
Malin 37cf714058 WebP Express CloudHost.es Fix v0.25.9-cloudhost
 Fixed bulk conversion getting stuck on missing files
 Added robust error handling and timeout protection
 Improved JavaScript response parsing
 Added file existence validation
 Fixed missing PHP class imports
 Added comprehensive try-catch error recovery

🔧 Key fixes:
- File existence checks before conversion attempts
- 30-second timeout protection per file
- Graceful handling of 500 errors and JSON parsing issues
- Automatic continuation to next file on failures
- Cache busting for JavaScript updates

🎯 Result: Bulk conversion now completes successfully even with missing files

🚀 Generated with Claude Code (https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-23 10:22:32 +02:00

558 lines
26 KiB
JavaScript

// Map of converters (are updated with updateConvertersMap)
window.convertersMap = {};
window.currentlyEditing = '';
function getConversionMethodDescription(converterId) {
var descriptions = {
'cwebp': 'cwebp',
'wpc': 'Remote WebP Express',
'ewww': 'ewww cloud converter',
'gd': 'Gd extension',
'imagick': 'Imagick (PHP extension)',
'gmagick': 'Gmagick (PHP extension)',
'imagemagick': 'ImageMagick',
'graphicsmagick': 'GraphicsMagick',
'vips': 'Vips',
'ffmpeg': 'ffmpeg',
};
if (descriptions[converterId]) {
return descriptions[converterId];
}
return converterId;
}
function generateConverterHTML(converter) {
html = '<li data-id="' + converter['id'] + '" class="' + (converter.deactivated ? 'deactivated' : '') + ' ' + (converter.working ? 'operational' : 'not-operational') + ' ' + (converter.warnings ? 'has-warnings' : '') + '">';
//html += '<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="17px" height="17px" viewBox="0 0 100.000000 100.000000" preserveAspectRatio="xMidYMid meet"><g transform="translate(0.000000,100.000000) scale(0.100000,-0.100000)" fill="#444444" stroke="none"><path d="M415 920 l-80 -80 165 0 165 0 -80 80 c-44 44 -82 80 -85 80 -3 0 -41 -36 -85 -80z"/><path d="M0 695 l0 -45 500 0 500 0 0 45 0 45 -500 0 -500 0 0 -45z"/><path d="M0 500 l0 -40 500 0 500 0 0 40 0 40 -500 0 -500 0 0 -40z"/><path d="M0 305 l0 -45 500 0 500 0 0 45 0 45 -500 0 -500 0 0 -45z"/><path d="M418 78 l82 -83 82 83 83 82 -165 0 -165 0 83 -82z"/></g></svg>';
// html += '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 9H4v2h16V9zM4 15h16v-2H4v2z"/></svg>';
// html += '<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 100.000000 100.000000" preserveAspectRatio="xMidYMid meet"><g transform="translate(0.000000,100.000000) scale(0.100000,-0.100000)" fill="#888888" stroke="none"><path d="M415 920 l-80 -80 165 0 165 0 -80 80 c-44 44 -82 80 -85 80 -3 0 -41 -36 -85 -80z"/><path d="M0 695 l0 -45 500 0 500 0 0 45 0 45 -500 0 -500 0 0 -45z"/><path d="M0 500 l0 -40 500 0 500 0 0 40 0 40 -500 0 -500 0 0 -40z"/><path d="M0 305 l0 -45 500 0 500 0 0 45 0 45 -500 0 -500 0 0 -45z"/><path d="M418 78 l82 -83 82 83 83 82 -165 0 -165 0 83 -82z"/></g></svg>';
html += '<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18"><path d="M2 13.5h14V12H2v1.5zm0-4h14V8H2v1.5zM2 4v1.5h14V4H2z"/></svg>';
html += '<div class="text">';
html += getConversionMethodDescription(converter['id']);
html += '</div>';
html += '<a class="configure-converter btn" onclick="configureConverter(\'' + converter['id'] + '\')">configure</a>';
html += '<a class="test-converter btn" onclick="testConverter(\'' + converter['id'] + '\')">test</a>';
if (converter.deactivated) {
html += '<a class="activate-converter btn" onclick=activateConverter(\'' + converter['id'] + '\')>activate</a>';
}
else {
html += '<a class="deactivate-converter btn" onclick=deactivateConverter(\'' + converter['id'] + '\')>deactivate</a>';
}
html += '<div class="status">';
if (converter['error']) {
html += '<svg id="status_not_ok" width="19" height="19" title="not operational" version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500.000000 500.000000" preserveAspectRatio="xMidYMid meet">';
html += '<g fill="currentcolor" stroke="none" transform="translate(0.000000,500.000000) scale(0.100000,-0.100000)"><path d="M2315 4800 c-479 -35 -928 -217 -1303 -527 -352 -293 -615 -702 -738 -1151 -104 -380 -104 -824 0 -1204 107 -389 302 -724 591 -1013 354 -354 785 -572 1279 -646 196 -30 476 -30 672 0 494 74 925 292 1279 646 354 354 571 784 646 1279 30 197 30 475 0 672 -75 495 -292 925 -646 1279 -289 289 -624 484 -1013 591 -228 62 -528 91 -767 74z m353 -511 c458 -50 874 -272 1170 -624 417 -497 536 -1174 308 -1763 -56 -145 -176 -367 -235 -434 -4 -4 -566 552 -1250 1236 l-1243 1243 94 60 c354 229 754 327 1156 282z m864 -3200 c-67 -59 -289 -179 -434 -235 -946 -366 -2024 172 -2322 1158 -47 155 -66 276 -73 453 -13 362 84 704 290 1023 l60 94 1243 -1243 c684 -684 1240 -1246 1236 -1250z"/></g></svg>';
html += '<div class="popup">';
html += webpexpress_escapeHTML(converter['error']);
html += '</div>';
} else if (converter['warnings']) {
/*html += '<svg id="status_warning" width="19" height="19" version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 478.125 478.125">';
html += '<g fill="currentcolor"">';
html += '<circle cx="239.904" cy="314.721" r="35.878"/>';
html += '<path d="M256.657,127.525h-31.9c-10.557,0-19.125,8.645-19.125,19.125v101.975c0,10.48,8.645,19.125,19.125,19.125h31.9c10.48,0,19.125-8.645,19.125-19.125V146.65C275.782,136.17,267.138,127.525,256.657,127.525z"/>';
html += '<path d="M239.062,0C106.947,0,0,106.947,0,239.062s106.947,239.062,239.062,239.062c132.115,0,239.062-106.947,239.062-239.062S371.178,0,239.062,0z M239.292,409.734c-94.171,0-170.595-76.348-170.595-170.596c0-94.248,76.347-170.595,170.595-170.595s170.595,76.347,170.595,170.595C409.887,333.387,333.464,409.734,239.292,409.734z"/>';
html += '</g></svg>';*/
html += '<svg id="status_warning" width="19" height="19" version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 123.996 123.996">';
html += '<circle cx="62" cy="67" r="35" color="black"/>';
html += '<g fill="currentcolor">';
html += '<path d="M9.821,118.048h104.4c7.3,0,12-7.7,8.7-14.2l-52.2-92.5c-3.601-7.199-13.9-7.199-17.5,0l-52.2,92.5C-2.179,110.348,2.521,118.048,9.821,118.048z M70.222,96.548c0,4.8-3.5,8.5-8.5,8.5s-8.5-3.7-8.5-8.5v-0.2c0-4.8,3.5-8.5,8.5-8.5s8.5,3.7,8.5,8.5V96.548z M57.121,34.048h9.801c2.699,0,4.3,2.3,4,5.2l-4.301,37.6c-0.3,2.7-2.1,4.4-4.6,4.4s-4.3-1.7-4.6-4.4l-4.301-37.6C52.821,36.348,54.422,34.048,57.121,34.048z"/>';
html += '</g></svg>';
html += '<div class="popup">';
if (converter['warnings'].join) {
if (converter['warnings'].filter) {
// remove duplicate warnings
converter['warnings'] = converter['warnings'].filter(function(item, pos, self) {
return self.indexOf(item) == pos;
})
}
html += '<p>Warnings were issued:</p>';
for (var i = 0; i<converter['warnings'].length; i++) {
html += '<p>' + webpexpress_escapeHTML(converter['warnings'][i]) + '</p>';
}
// TODO: Tell him to deactivate the converter - or perhaps do it automatically?
html += '<p>check conversion log for more insight (ie by clicking the "test" link a little left of this warning triangle)</p>';
}
html += '</div>';
} else if (converter.working) {
html += '<svg id="status_ok" width="19" height="19" version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256.000000 256.000000" preserveAspectRatio="xMidYMid meet">';
html += '<g fill="currentcolor" stroke="none" transform="translate(0.000000,256.000000) scale(0.100000,-0.100000)"><path d="M1064 2545 c-406 -72 -744 -324 -927 -690 -96 -193 -127 -333 -127 -575 0 -243 33 -387 133 -585 177 -351 518 -606 907 -676 118 -22 393 -17 511 8 110 24 252 78 356 136 327 183 569 525 628 887 19 122 19 338 0 460 -81 498 -483 914 -990 1025 -101 22 -389 28 -491 10z m814 -745 c39 -27 73 -59 77 -70 9 -27 10 -25 -372 -590 -345 -510 -357 -524 -420 -512 -19 4 -98 74 -250 225 -123 121 -225 228 -228 238 -3 10 1 31 9 47 20 40 125 132 149 132 11 0 79 -59 162 -140 79 -77 146 -140 149 -140 3 0 38 48 78 108 95 143 465 678 496 720 35 46 64 42 150 -18z"/></g></svg>';
//html += '<div class="popup">' + converter['id'] + ' is operational</div>';
html += '<div class="popup">Operational</div>';
}
html += '</div>';
html += '</li>';
return html;
}
/* Set ids on global converters object */
function setTemporaryIdsOnConverters() {
if (window.converters == undefined) {
console.log('window.converters is undefined. Strange. Please report!');
return;
}
var numConverterInstances = [];
for (var i=0; i<window.converters.length; i++) {
var converter = converters[i]['converter'];
if (numConverterInstances[converter]) {
numConverterInstances[converter]++;
window.converters[i]['id'] = converter + '-' + numConverterInstances[converter];
}
else {
numConverterInstances[converter] = 1;
window.converters[i]['id'] = converter;
}
}
//alert(JSON.stringify(window.converters));
updateConvertersMap();
}
function updateConvertersMap() {
var map = {};
for (var i=0; i<window.converters.length; i++) {
var converter = window.converters[i];
map[converter['id']] = converter;
}
window.convertersMap = map;
}
function reorderConverters(order) {
// Create new converter array
var result = [];
for (var i=0; i<order.length; i++) {
result.push(window.convertersMap[order[i]]);
}
//alert(JSON.stringify(result));
window.converters = result;
updateInputValue();
}
/* Update the hidden input containing all the data */
function updateInputValue() {
document.getElementsByName('converters')[0].value = JSON.stringify(window.converters);
}
function setConvertersHTML() {
var html = '';
setTemporaryIdsOnConverters();
if (document.getElementById('converters') == null) {
alert('document.getElementById("converters") returns null. Strange! Please report.');
return;
}
for (var i=0; i<window.converters.length; i++) {
var converter = converters[i];
html += generateConverterHTML(converter);
}
var el = document.getElementById('converters');
el.innerHTML = html;
var sortable = Sortable.create(el, {
onChoose: function() {
document.getElementById('converters').className = 'dragging';
},
onUnchoose: function() {
document.getElementById('converters').className = '';
},
store: {
get: function() {
var order = [];
for (var i=0; i<window.converters.length; i++) {
order.push(window.converters[i]['id']);
}
return order;
},
set: function(sortable) {
var order = sortable.toArray();
reorderConverters(order);
}
}
});
updateInputValue();
}
document.addEventListener('DOMContentLoaded', function() {
setConvertersHTML();
});
function wpe_addCloudConverter(converter) {
}
function isConverterOptionSet(converter, optionName) {
if ((converter['options'] == undefined) || (converter['options'][optionName] == undefined)) {
return false;
}
return true;
}
function getConverterOption(converter, optionName, defaultValue) {
if ((converter['options'] == undefined) || (converter['options'][optionName] == undefined)) {
return defaultValue;
}
return converter['options'][optionName];
}
function setConverterOption(converter, optionName, value) {
if (converter['options'] == undefined) {
converter['options'] = {};
}
converter['options'][optionName] = value;
}
function deleteConverterOption(converter, optionName) {
if (converter['options'] == undefined) {
converter['options'] = {};
}
delete converter['options'][optionName];
}
function configureConverter(id) {
var converter = window.convertersMap[id];
window.currentlyEditing = id;
/*
Removed (#243)
var q = getConverterOption(converter, 'quality', 'auto');
if (document.getElementById(id + '_quality')) {
document.getElementById(id + '_quality').value = q;
document.getElementById(id + '_max_quality_div').style['display'] = (q == 'auto' ? 'block' : 'none');
document.getElementById(id + '_max_quality').value = getConverterOption(converter, 'max-quality', 85);
}
*/
switch (converter['converter']) {
case 'ewww':
document.getElementById('ewww_api_key').value = getConverterOption(converter, 'api-key', '');
document.getElementById('ewww_api_key_2').value = getConverterOption(converter, 'api-key-2', '');
break;
case 'wpc':
document.getElementById('wpc_api_url').value = getConverterOption(converter, 'api-url', '');
/* api key in configuration file can be:
- never set (null)
- set to be empty ('')
- set to be something.
If never set, we show a password input.
If set to empty, we also show a password input.
There is no need to differentiate. between never set and empty
If set to something, we show a link "Change"
In Config::getConfigForOptionsPage, we remove the api key from javascript array.
if api key is non-empty, a "_api-key-non-empty" field is set.
*/
document.getElementById('wpc_new_api_key').value = '';
if (getConverterOption(converter, '_api-key-non-empty', false)) {
// api key is set to something...
document.getElementById('wpc_change_api_key').style.display = 'inline';
document.getElementById('wpc_new_api_key').style.display = 'none';
} else {
// api key is empty (or not set)
document.getElementById('wpc_new_api_key').style.display = 'inline';
document.getElementById('wpc_change_api_key').style.display = 'none';
}
apiVersion = getConverterOption(converter, 'api-version', 0);
// if api version isn't set, then either
// - It is running on old api 0. In that case, URL is set
// - Wpc has never been configured. In that case, URL is not set,
// and we should not mention api 0 (we should set apiVersion to 1)
if (!isConverterOptionSet(converter, 'api-version')) {
if (getConverterOption(converter, 'api-url', '') == '') {
apiVersion = 1;
}
}
document.getElementById('wpc_api_version').value = apiVersion.toString();
if (apiVersion != 0) {
}
if (apiVersion == 0) {
document.getElementById('wpc_secret').value = getConverterOption(converter, 'secret', '');
} else {
// Only show api version dropdown if configured to run on old api
// There is no going back!
document.getElementById('wpc_api_version_div').style.display = 'none';
}
document.getElementById('wpc_crypt_api_key_in_transfer').checked = getConverterOption(converter, 'crypt-api-key-in-transfer', true);
// Hide/show the fields for the api version
wpcApiVersionChanged();
//document.getElementById('wpc_secret').value = getConverterOption(converter, 'secret', '');
//document.getElementById('wpc_url_2').value = getConverterOption(converter, 'url-2', '');
//document.getElementById('wpc_secret_2').value = getConverterOption(converter, 'secret-2', '');
//wpcUpdateWebServicesHTML();
break;
case 'gd':
document.getElementById('gd_skip_pngs').checked = getConverterOption(converter, 'skip-pngs', false);
break;
case 'cwebp':
document.getElementById('cwebp_use_nice').checked = getConverterOption(converter, 'use-nice', true);
document.getElementById('cwebp_method').value = getConverterOption(converter, 'method', '');
document.getElementById('cwebp_try_common_system_paths').checked = getConverterOption(converter, 'try-common-system-paths', '');
document.getElementById('cwebp_skip_these_precompiled_binaries').value = getConverterOption(converter, 'skip-these-precompiled-binaries', '');
document.getElementById('cwebp_try_supplied_binary').checked = getConverterOption(converter, 'try-supplied-binary-for-os', '');
document.getElementById('cwebp_set_size').checked = getConverterOption(converter, 'set-size', '');
document.getElementById('cwebp_size_in_percentage').value = getConverterOption(converter, 'size-in-percentage', '');
document.getElementById('cwebp_command_line_options').value = getConverterOption(converter, 'command-line-options', '');
break;
case 'imagemagick':
document.getElementById('imagemagick_use_nice').checked = getConverterOption(converter, 'use-nice', true);
break;
case 'graphicsmagick':
document.getElementById('graphicsmagick_use_nice').checked = getConverterOption(converter, 'use-nice', true);
break;
case 'vips':
document.getElementById('vips_smart_subsample').checked = getConverterOption(converter, 'smart-subsample', false);
document.getElementById('vips_preset').value = getConverterOption(converter, 'preset', 'disable');
break;
case 'ffmpeg':
document.getElementById('ffmpeg_use_nice').checked = getConverterOption(converter, 'use-nice', true);
document.getElementById('ffmpeg_method').value = getConverterOption(converter, 'method', '');
break;
}
tb_show("Configure " + converter['id'] + ' converter', '#TB_inline?inlineId=' + converter['converter']);
}
function updateConverterOptions() {
var id = window.currentlyEditing;
var converter = window.convertersMap[id];
/*
Removed (#243)
if (document.getElementById(id + '_quality')) {
var q = document.getElementById(id + '_quality').value;
if (q == 'auto') {
setConverterOption(converter, 'quality', 'auto');
setConverterOption(converter, 'max-quality', document.getElementById(id + '_max_quality').value);
} else {
setConverterOption(converter, 'quality', 'inherit');
deleteConverterOption(converter, 'max-quality');
}
} else {
deleteConverterOption(converter, 'quality');
deleteConverterOption(converter, 'max-quality');
}
*/
switch (converter['converter']) {
case 'ewww':
setConverterOption(converter, 'api-key', document.getElementById('ewww_api_key').value);
setConverterOption(converter, 'api-key-2', document.getElementById('ewww_api_key_2').value);
break;
case 'wpc':
setConverterOption(converter, 'api-url', document.getElementById('wpc_api_url').value);
//setConverterOption(converter, 'secret', document.getElementById('wpc_secret').value);
//setConverterOption(converter, 'url-2', document.getElementById('wpc_url_2').value);
//setConverterOption(converter, 'secret-2', document.getElementById('wpc_secret_2').value);*/
var apiVersion = parseInt(document.getElementById('wpc_api_version').value, 10);
setConverterOption(converter, 'api-version', apiVersion);
if (apiVersion == '0') {
setConverterOption(converter, 'secret', document.getElementById('wpc_secret').value);
} else {
deleteConverterOption(converter, 'secret');
setConverterOption(converter, 'crypt-api-key-in-transfer', document.getElementById('wpc_crypt_api_key_in_transfer').checked);
}
if (document.getElementById('wpc_new_api_key').style.display == 'inline') {
// password field is shown. Store the value
setConverterOption(converter, 'new-api-key', document.getElementById('wpc_new_api_key').value);
} else {
// password field is not shown. Remove "new-api-key" value, indicating there is no new value
//setConverterOption(converter, 'new-api-key', '');
deleteConverterOption(converter, 'new-api-key');
}
break;
case 'gd':
setConverterOption(converter, 'skip-pngs', document.getElementById('gd_skip_pngs').checked);
break;
case 'cwebp':
setConverterOption(converter, 'use-nice', document.getElementById('cwebp_use_nice').checked);
var methodString = document.getElementById('cwebp_method').value;
var methodNum = (methodString == '') ? 6 : parseInt(methodString, 10);
setConverterOption(converter, 'method', methodNum);
setConverterOption(converter, 'skip-these-precompiled-binaries', document.getElementById('cwebp_skip_these_precompiled_binaries').value);
setConverterOption(converter, 'try-common-system-paths', document.getElementById('cwebp_try_common_system_paths').checked);
setConverterOption(converter, 'try-supplied-binary-for-os', document.getElementById('cwebp_try_supplied_binary').checked);
setConverterOption(converter, 'set-size', document.getElementById('cwebp_set_size').checked);
var sizeInPercentageString = document.getElementById('cwebp_size_in_percentage').value;
var sizeInPercentageNumber = (sizeInPercentageString == '') ? '' : parseInt(sizeInPercentageString, 10);
setConverterOption(converter, 'size-in-percentage', sizeInPercentageNumber);
setConverterOption(converter, 'command-line-options', document.getElementById('cwebp_command_line_options').value);
break;
case 'imagemagick':
setConverterOption(converter, 'use-nice', document.getElementById('imagemagick_use_nice').checked);
break;
case 'graphicsmagick':
setConverterOption(converter, 'use-nice', document.getElementById('graphicsmagick_use_nice').checked);
break;
case 'vips':
setConverterOption(converter, 'smart-subsample', document.getElementById('vips_smart_subsample').checked);
var vipsPreset = document.getElementById('vips_preset').value;
if (vipsPreset == 'disable') {
deleteConverterOption(converter, 'preset');
} else {
setConverterOption(converter, 'preset', vipsPreset);
}
break;
case 'ffmpeg':
setConverterOption(converter, 'use-nice', document.getElementById('ffmpeg_use_nice').checked);
var methodString = document.getElementById('ffmpeg_method').value;
var methodNum = (methodString == '') ? 6 : parseInt(methodString, 10);
setConverterOption(converter, 'method', methodNum);
break;
}
updateInputValue();
tb_remove();
}
function updateConverterOptionsAndSave() {
updateConverterOptions();
document.getElementById('webpexpress_settings').submit();
}
/** Encode path before adding to querystring.
* Paths in querystring triggers LFI warning in Wordfence.
* By encoding it, Wordpfence will not detect our misdeed!
*
* see https://github.com/rosell-dk/webp-express/issues/87
*/
function encodePathforQS(path) {
return path.replace('/', '**');
}
function testConverter(id) {
openTestConvertPopup(id);
return;
}
/*
function removeConverter(id) {
for (var i=0; i<window.converters.length; i++) {
if (window.converters[i]['id'] == id) {
window.converters.splice(i, 1);
setConvertersHTML();
break;
}
}
}*/
function addConverter(id) {
window.converters.push({
converter: id
});
setConvertersHTML();
tb_remove();
}
function deactivateConverter(id) {
window.convertersMap[id].deactivated = true;
setConvertersHTML();
}
function activateConverter(id) {
delete window.convertersMap[id].deactivated
setConvertersHTML();
}
/* WPC */
/* ------------- */
/*
function converterQualityChanged(converterId) {
var q = document.getElementById(converterId + '_quality').value;
document.getElementById(converterId + '_max_quality_div').style['display'] = (q == 'auto' ? 'block' : 'none');
}*/
function wpcShowAwaitingApprovalPopup() {
closeDasPopup();
openDasPopup('wpc_awaiting_approval_popup', 500, 350);
/*
window.pollRequestApprovalTid = window.setInterval(function() {
//openDasPopup('wpc_successfully_connected_popup', 500, 350);
}, 1500);*/
}
function wpcRequestAccess() {
var url = document.getElementById('wpc_request_access_url').value;
url = 'http://we0/wordpress/webp-express-server';
jQuery.post(window.ajaxurl, {
'action': 'webpexpress_request_access',
}, function(response) {
if (response && (response.substr(0,1) == '{')) {
var r = JSON.parse(response);
if (r['success']) {
wpcShowAwaitingApprovalPopup()
} else {
alert(r['errorMessage']);
}
}
});
}
function openWpcConnectPopup() {
openDasPopup('wpc_connect_popup', 500, 350);
}
function wpcChangeApiKey() {
document.getElementById('wpc_new_api_key').style.display = 'inline';
document.getElementById('wpc_change_api_key').style.display = 'none';
}
function wpcApiVersionChanged() {
var apiVersion = parseInt(document.getElementById('wpc_api_version').value, 10);
if (apiVersion == 0) {
document.getElementById('wpc_crypt_api_key_in_transfer_div').style.display = 'none';
document.getElementById('wpc_api_key_label_1').style.display = 'inline-block';
document.getElementById('wpc_api_key_label_2').style.display = 'none';
document.getElementById('wpc_secret_div').style.display = 'block';
document.getElementById('wpc_api_key_div').style.display = 'none';
} else {
document.getElementById('wpc_crypt_api_key_in_transfer_div').style.display = 'block';
document.getElementById('wpc_api_key_label_1').style.display = 'none';
document.getElementById('wpc_api_key_label_2').style.display = 'inline-block';
document.getElementById('wpc_secret_div').style.display = 'none';
document.getElementById('wpc_api_key_div').style.display = 'block';
}
}