%PDF- %PDF-
| Direktori : /var/www/projetos/stb.ind.br/wp-content/plugins/webp-express/lib/options/js/0.19.0/ |
| Current File : /var/www/projetos/stb.ind.br/wp-content/plugins/webp-express/lib/options/js/0.19.0/converters.js |
// 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') + '">';
//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.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>';
} else {
// + converter['id'] + ' is not operational<br>';
//html += 'not operational. ';
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>';
}
}
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_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, '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';
}
}