Files
interblue.pl/modules/pshowimporter/views/js/config_additional.js
2024-10-25 14:16:28 +02:00

150 lines
6.9 KiB
JavaScript

$(function () {
$('button.convertCsvReplacement').on('click', function (e) {
e.preventDefault();
var csv = $('textarea.replacements-csv-convert').val();
var rows = csv.split("\n");
for (var i in rows) {
$('.addReplacement').trigger('click');
var cells = rows[i].split('";"');
cells[0] = cells[0].substr(1, cells[0].length);
cells[1] = cells[1].substr(0, cells[1].length - 1);
$('.replacements .replacement:last-child input.find').val(cells[0]);
$('.replacements .replacement:last-child input.replace').val(cells[1]);
}
return false;
});
$(document).on('click', '.removeReplacement', function (e) {
e.preventDefault();
var replacementsInfo = $(this).parent().parent().parent().parent().parent().parent().find('.replacements-info').eq(0);
if (($(this).parent().parent().parent().parent().parent().parent().find('.replacement').length - 1) > 0) {
replacementsInfo.addClass('hidden');
} else {
replacementsInfo.removeClass('hidden');
}
$(this).parent().parent().parent().parent().remove();
return false;
});
$(document).on('click', '.addReplacement', function (e) {
e.preventDefault();
var replacementsInfo = $(this).parent().parent().parent().find('.replacements-info').eq(0);
if (!replacementsInfo.hasClass('hidden')) {
replacementsInfo.addClass('hidden');
}
var replacements = $(this).parent().parent().parent().find('.replacements').eq(0);
var nameKey = 'replacement[' + replacementCounter + ']';
var html = '<div class="form-group replacement">\
<div class="row">\
<div class="col-xs-6">\
<div class="form-group">\
<label class="control-label col-xs-3" for="' + nameKey + '[find]">\
' + lang_find + '\
</label>\
<div class="col-xs-9">\
<input type="text" name="' + nameKey + '[find]" id="' + nameKey + '[find]"\
class="form-control find" value="" placeholder="Enter value to replace">\
</div>\
</div>\
<div class="form-group">\
<label class="control-label col-xs-3" for="' + nameKey + '[replace]">\
' + lang_replace + '\
</label>\
<div class="col-xs-9">\
<input type="text" name="' + nameKey + '[replace]" id="' + nameKey + '[replace]"\
class="form-control replace" value="" placeholder="Enter new value">\
</div>\
</div>\
</div>\
<div class="col-xs-6">\
<div class="form-group">\
<label class="control-label col-lg-6">\
' + lang_regex + '\
<span class="label-tooltip" onclick="fancyMsgBox(\'' + lang_regex_info + '\');">?</span>\
</label>\
<div class="col-lg-6">\
<span class="switch prestashop-switch fixed-width-md">\
<input type="radio" name="' + nameKey + '[regex]" \
id="' + nameKey + '[regex]_on" value="1">\
<label for="' + nameKey + '[regex]_on">Yes</label>\
<input type="radio" name="' + nameKey + '[regex]" \
id="' + nameKey + '[regex]_off" value="0"checked="checked">\
<label for="' + nameKey + '[regex]_off">No</label>\
<a class="slide-button btn"></a>\
</span>\
</div>\
</div>\
<div class="form-group">\
<button class="removeReplacement btn btn-danger btn-sm pull-right">\
<i class="icon-trash"></i> Remove\
</button>\
</div>\
</div>\
</div>\
<hr>\
</div>';
++replacementCounter;
replacements.append(html);
return false;
});
// conditions
var token = document.location.href.split('&token=')[1].split('&')[0];
var file = document.location.href.split('&file=')[1].split('&')[0];
$.get("index.php?controller=PShowImporterConfig&token=" + token + "&page=getsavedconditions&file=" + file, function (conditions) {
conditions = JSON.parse(conditions);
for (var k in conditions) {
addConditionToTable(conditions[k].field, conditions[k].condition, conditions[k].value, conditions[k].action);
}
});
$(document).on('click', '.btn-addCondition', function (e) {
e.preventDefault();
var field = $('select#condition_field').val();
var condition = $('select#condition_condition').val();
var value = $('input#condition_value').val();
var action = $('select#condition_action').val();
addConditionToTable(field, condition, value, action);
return false;
});
$(document).on('click', '.btn-delCondition', function (e) {
e.preventDefault();
$(this).parent().parent().remove();
return false;
});
});
var conditionsCounter = 0;
/**
* Add condition to conditions table
*
* @param string field
* @param string condition
* @param string value
* @param string action
*/
function addConditionToTable(field, condition, value, action) {
//if (field === '' || condition === '' || value === '' || action === '') {
// alert("Fill all fields");
// return;
//}
var conditions_table = $('tbody.conditions-table');
var nameKey = 'conditions[' + conditionsCounter + ']';
var tr = "<tr>";
tr += "<td>" + field + "<input type='hidden' name='" + nameKey + "[field]' value='" + field + "'></td>";
tr += "<td>" + condition + "<input type='hidden' name='" + nameKey + "[condition]' value='" + condition + "'></td>";
tr += "<td>" + value + "<input type='hidden' name='" + nameKey + "[value]' value='" + value + "'></td>";
tr += "<td>" + action + "<input type='hidden' name='" + nameKey + "[action]' value='" + action + "'></td>";
tr += "<td class=\"fixed-width-md\">\
<button class=\"btn-delCondition btn btn-default\">\
<i class=\"icon-trash\"></i> Remove\
</button>\
</td>";
tr += "</tr>";
++conditionsCounter;
conditions_table.append(tr);
}