317 lines
11 KiB
JavaScript
317 lines
11 KiB
JavaScript
// move menu up
|
|
var x = $('.modulecontainer').parent();
|
|
x.children('.col-lg-2').removeClass('col-lg-2').addClass('col-lg-12')
|
|
.children('.tabs').children('.list-group').addClass('list-group-horizontal')
|
|
.parent().parent().children('.panel').hide();
|
|
x.children('.col-lg-10').removeClass('col-lg-10').addClass('col-lg-12');
|
|
|
|
window.optionsToLoad = 0;
|
|
|
|
function waitForOptions() {
|
|
if (window.optionsToLoad > 0) {
|
|
setTimeout('waitForOptions()', 200);
|
|
return;
|
|
}
|
|
|
|
$('.full-screen-loader').fadeOut();
|
|
$('.bootstrap#footer').show();
|
|
|
|
checkMaxInputVars();
|
|
}
|
|
|
|
/**
|
|
* Watch max input vars reached
|
|
*/
|
|
var checkMaxInputVars = function () {
|
|
if (typeof maxInputVars === 'undefined') {
|
|
console.error("pshowimporter: maxInputVars not defined!");
|
|
return;
|
|
}
|
|
if (typeof maxInputVarsMsg === 'undefined') {
|
|
console.error("pshowimporter: maxInputVarsMsg not defined!");
|
|
return;
|
|
}
|
|
|
|
var qty = $('form#matchingFields').find('input,select,textarea').length;
|
|
|
|
if (qty > maxInputVars) {
|
|
alert(maxInputVarsMsg);
|
|
}
|
|
};
|
|
$(function () {
|
|
|
|
$(document).on('change', 'form#matchingFields select', function () {
|
|
checkMaxInputVars();
|
|
});
|
|
|
|
});
|
|
|
|
// object tag
|
|
$(function () {
|
|
|
|
$('button[name="matchfields"]').on('click', function (e) {
|
|
e.preventDefault();
|
|
|
|
var objectTag = $('select[name="matched[objectTag]"]').val();
|
|
|
|
if (typeof objectTag === 'undefined') {
|
|
return false;
|
|
}
|
|
|
|
$('.full-screen-loader').fadeIn();
|
|
$('.bootstrap#footer').hide();
|
|
|
|
$(this).addClass('disabled');
|
|
|
|
objectTag = objectTag.substring(0, objectTag.length - 1);
|
|
|
|
console.log(document.location.href + "&step=2&ajaxgetbytag=" + objectTag);
|
|
|
|
$.get(document.location.href + "&step=2&ajaxgetbytag=" + objectTag, function (data) {
|
|
$('#objectTag');//.removeClass('active');
|
|
$('.fieldsBox').html(data);//.addClass('active');
|
|
$('#saveAndNext').removeClass('hidden');
|
|
|
|
$('ul[role="tablist"] li:nth-child(2) a').click();
|
|
|
|
$('button[name="matchfields"]').removeClass('disabled');
|
|
|
|
$('.fieldsBox > table > tbody > tr').each(function () {
|
|
select = $(this).find('select');
|
|
|
|
if (select.length === 0)
|
|
return;
|
|
|
|
elems = $('.fieldsBox > table > tbody > tr select[name="' + select.attr('name') + '"]');
|
|
|
|
if (elems.length === 1)
|
|
return;
|
|
|
|
var i = 0;
|
|
elems.each(function () {
|
|
if (++i === 1)
|
|
return;
|
|
|
|
x = $(this).parent().parent();
|
|
x.prev().remove();
|
|
x.next().remove();
|
|
x.remove();
|
|
});
|
|
});
|
|
|
|
$('.objectTagRequired').removeClass('hidden');
|
|
|
|
var objectTagPath = '/' + objectTag.replace(/,/g, '/') + '/';
|
|
|
|
setTimeout(function () {
|
|
$('.putObjectTagHere').text(objectTagPath);
|
|
|
|
var prestaFields = $('select.prestashop_field');
|
|
window.optionsToLoad = prestaFields.length;
|
|
prestaFields.each(function () {
|
|
toggleFieldSettingsBtn($(this));
|
|
});
|
|
|
|
waitForOptions();
|
|
|
|
}, 1000);
|
|
});
|
|
|
|
console.log($('select[name="objectTag').val());
|
|
|
|
return false;
|
|
});
|
|
|
|
});
|
|
|
|
|
|
// field settings
|
|
|
|
function toggleFieldSettingsBtn(selectObj) {
|
|
if (selectObj.val() === 'none') {
|
|
selectObj.parent().next('td').find('.fieldSettingsBtn').eq(0)
|
|
.addClass('disabled')
|
|
.removeClass('btn-warning')
|
|
.removeClass('btn-success');
|
|
selectObj.parent().parent().next('tr').hide(500);
|
|
|
|
--window.optionsToLoad;
|
|
} else {
|
|
selectObj.parent().next('td').find('.fieldSettingsBtn').eq(0)
|
|
.removeClass('disabled')
|
|
.removeClass('btn-warning')
|
|
.removeClass('btn-success')
|
|
.addClass('btn-success');
|
|
|
|
var nameprefix = selectObj.attr('name').replace('[value]', '');
|
|
var url = document.location.href + '&page=getfieldsettingsform&fieldNamePrefix=' + nameprefix + '&field=' + selectObj.val();
|
|
var box = selectObj.parent().parent().next('tr').find('.field-settings');
|
|
|
|
box.html('<p> </p>\
|
|
<div class="ajax-loader">\
|
|
<div class="loader">\
|
|
<svg class="circular" viewBox="25 25 50 50">\
|
|
<circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="2" stroke-miterlimit="10"></circle>\
|
|
</svg>\
|
|
</div>\
|
|
</div>');
|
|
|
|
console.log(url);
|
|
|
|
$.get(url, function (response) {
|
|
box.html(response);
|
|
box.find('.panel').removeClass('panel').prepend('<p> </p>');
|
|
var data = box.find('#fieldset_0').html();
|
|
//console.log(data);
|
|
box.append(data).find('form').remove();
|
|
|
|
--window.optionsToLoad;
|
|
});
|
|
}
|
|
}
|
|
|
|
$(function () {
|
|
|
|
$(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 = 'matched[' + replacements.attr('data-type') + '][' + replacements.attr('data-md5') + '][options][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;
|
|
});
|
|
|
|
$(document).on('click', '.fieldSettingsBtn', function () {
|
|
|
|
var settingsBox = $(this).parent().parent().parent().parent().next('tr');
|
|
|
|
if (!settingsBox.is(':visible')) {
|
|
$(this).removeClass('btn-success').addClass('btn-warning');
|
|
} else {
|
|
$(this).removeClass('btn-warning').addClass('btn-success');
|
|
}
|
|
|
|
settingsBox.toggle(500);
|
|
|
|
});
|
|
|
|
$(document).on('change', 'select.prestashop_field', function () {
|
|
toggleFieldSettingsBtn($(this));
|
|
});
|
|
|
|
// real time file value changing
|
|
$(document).on('keyup', 'input.editValueJs', function () {
|
|
|
|
var label = $(this).parent().parent().parent().parent().parent().parent().prev('tr.info').find('.label-tooltip').eq(0);
|
|
var labelOrgVal = label.attr('data-original-value');
|
|
|
|
var editValueDiv = $(this).parent().parent().parent().find('input[type="text"],input[type="number"]');
|
|
|
|
var prepend = editValueDiv.eq(0).val();
|
|
var append = editValueDiv.eq(1).val();
|
|
var cutFromStart = parseInt(editValueDiv.eq(2).val());
|
|
var cutFromEnd = parseInt(editValueDiv.eq(3).val());
|
|
|
|
var labelNewVal = prepend;
|
|
|
|
if (!isNaN(cutFromStart))
|
|
labelNewVal += labelOrgVal.substr(cutFromStart);
|
|
else
|
|
labelNewVal += labelOrgVal;
|
|
|
|
if (!isNaN(cutFromEnd) && cutFromEnd > (labelNewVal.length - prepend.length))
|
|
cutFromEnd = (labelNewVal.length - prepend.length);
|
|
|
|
if (!isNaN(cutFromEnd))
|
|
labelNewVal = labelNewVal.substr(0, labelNewVal.length - cutFromEnd);
|
|
|
|
labelNewVal += append;
|
|
|
|
label.text(labelNewVal);
|
|
|
|
});
|
|
|
|
$(document).on('change', 'input.editValueJs', function () {
|
|
|
|
$(this).trigger('keyup');
|
|
|
|
});
|
|
|
|
}); |