/** * 2007-2018 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA * @copyright 2007-2018 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA * * Don't forget to prefix your containers with your own identifier * to avoid any conflicts with others containers. */ $(window).ready(function() { controller_url = controller_url.replace(/\amp;/g,''); if (!isPs17) { ad = 'test'; iso = 'en'; } $('#CB-OPACITY').bootstrapSlider(); $("#CB-OPACITY").on("slide", function(slideEvt) { $(".cookiebanner-number").val(slideEvt.value); }); $('.cookiebanner-number').bind('input', function() { $('#CB-OPACITY').bootstrapSlider('setValue', $(this).val()); }); tinySetup({ height: 100, editor_selector : "autoload_rte", plugins : 'code advlist autolink link lists charmap print textcolor colorpicker style', }); $('#product1').select2({ placeholder: select2placeholder, allowClear: true }); $('#product2').select2({ placeholder: select2placeholder, allowClear: true }); $(document).on('click', '#saveAssignProduct', function (e) { var id_image = $(this).attr('data-id-image'); var id_product1 = $('#product1').val(); var id_product2 = $('#product2').val(); $.ajax({ type: 'POST', url: controller_url, dataType: 'JSON', data: { action: 'AssignProduct', ajax: true, id_image: id_image, id_product1: id_product1, id_product2: id_product2 }, success: function(data) { generateCache(); showSuccessMessage(msgAssignProduct); }, error: function(err) { console.log(err); } }); }); $(window).keydown(function(event){ if(event.keyCode == 13) { event.preventDefault(); var tag = $("input[name=PS_INSTA_SEARCH]").val(); getTag(tag); } }); $(document).on('click', '.switch', function (e) { var toggleOption = $(this).children(':first').attr('name'); var isChecked = $("input[name='"+toggleOption+"']:checked").val(); if (isChecked == 1) { $('#'+toggleOption).removeClass('hide'); } else { $('#'+toggleOption).addClass('hide'); } }); $(document).on('click', '.input_img', function () { if ($(this).hasClass('js-show-all')) { $('.confirm_deny').slideDown(); } else { $('.confirm_deny').slideUp(); } }); $(document).on('click', '.input_upload_img', function () { if ($(this).hasClass('js-upload-img')) { $('#upload-image').slideDown(); } else { $('#upload-image').slideUp(); $('#upload-image').removeClass('hide'); } }); vImagePreselection = new Vue({ el: '#image-preselection', delimiters: ["((","))"], data: { items: '', paginate: ['items'], search : false, }, components: { }, methods: { getTag: function () { var tag = $("input[name=PS_INSTA_SEARCH]").val(); getTag(tag); }, addImage: function (idMedia, index) { imageData = this.items[index]; addImage(imageData, index); }, removeImage: function (idMedia, index) { removeImageByIdMedia(idMedia, index); }, } }); function getObjects(obj, key, val, index) { var objects = []; var result = index; for (var i in obj) { if (!obj.hasOwnProperty(i)) continue; if (typeof obj[i] == 'object') { objects = objects.concat(getObjects(obj[i], key, val, i)); } else if (i == key && obj[key] == val) { result = index; vImagePreselection.items[result].isActive = 0; //vImagePreselection.paginate.items.list[index].isActive = 0; } } } function getImages() { $.ajax({ type: 'POST', dataType: 'JSON', url: controller_url, data: { ajax: true, action: 'GetImages', }, success: function(data) { vImageManager.imageList = data; }, error: function(err) { console.log(err); } }); } function getTag(tagName) { $.ajax({ type: 'POST', dataType: 'JSON', url: controller_url, data: { ajax: true, action: 'GetTag', tagName: tagName, }, success: function(data) { vImagePreselection.items = data; vImagePreselection.search = true; }, error: function(err) { console.log(err); } }); } function addImage(imageData, index) { $.ajax({ type: 'POST', dataType: 'JSON', url: controller_url, data: { ajax: true, action: 'AddImage', imageData: imageData, }, success: function(data) { vImagePreselection.paginate.items.list[index].isActive = 1; getImages(); generateCache(); showSuccessMessage(msgAddImage); }, error: function(err) { console.log(err); } }); } function disableImage(id, index) { $.ajax({ type: 'POST', dataType: 'JSON', url: controller_url, data: { ajax: true, action: 'DisableImage', id: id, }, success: function(data) { if (data == 'disable') { showSuccessMessage(msgDisableImage); vImageManager.imageList[index].isActive = 0; } else { vImageManager.imageList[index].isActive = 1; showSuccessMessage(msgEnableImage); } generateCache(); }, error: function(err) { console.log(err); } }); } function removeImageByIdMedia(idMedia, index) { $.ajax({ type: 'POST', dataType: 'JSON', url: controller_url, data: { ajax: true, action: 'RemoveImageByIdMedia', idMedia: idMedia, }, success: function(data) { //vImagePreselection.items[index].isActive = 0; vImagePreselection.paginate.items.list[index].isActive = 0; getImages(); generateCache(); showSuccessMessage(msgRemoveImage); }, error: function(err) { console.log(err); } }); } function removeImageById(id, idMedia) { $.ajax({ type: 'POST', dataType: 'JSON', url: controller_url, data: { ajax: true, action: 'RemoveImageById', id: id, }, success: function(data) { getObjects(vImagePreselection.items, 'id', idMedia); getImages(); generateCache(); showSuccessMessage(msgRemoveImage); }, error: function(err) { console.log(err); } }); } function getAssignedProduct(idImage) { $.ajax({ type: 'POST', dataType: 'JSON', url: controller_url, data: { ajax: true, action: 'GetAssignedProduct', id_image: idImage, }, success: function(data) { $('#product1').val(data[0].product1).trigger('change'); $('#product2').val(data[0].product2).trigger('change'); }, error: function(err) { console.log(err); } }); } function generateCache() { $.ajax({ type: 'POST', dataType: 'JSON', url: controller_url, data: { ajax: true, action: 'GenerateCache', }, success: function(data) { }, error: function(err) { console.log(err); } }); } $(document).on('change', '.slide_image', function (e) { readURL(this, $(this).attr('data-preview')); }); function readURL(input, id) { if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (e) { if ($('#'+id).hasClass('hide')) { $('#'+id).removeClass('hide'); } $('#'+id).attr('src', e.target.result); } reader.readAsDataURL(input.files[0]); $(".slide_url").attr('value', input.files[0].name); } } $(".slide_url").each(function() { var str = $(this).attr('value'); var delimiter = '/'; var split = str.split(delimiter); var image_name = split[split.length-1]; $(this).attr('value', image_name); }); $(document).on('change', ':file', function() { var input = $(this), numFiles = input.get(0).files ? input.get(0).files.length : 1, label = input.val().replace(/\\/g, '/').replace(/.*\//, ''); input.trigger('fileselect', [numFiles, label]); }); $(':file').on('fileselect', function(event, numFiles, label) { var input = $(this).parents('.input-group').find(':text'), log = numFiles > 1 ? numFiles + ' files selected' : label; if(input.length) { input.val(log); } else { if(log) alert(log); } }); });