837 lines
30 KiB
JavaScript
837 lines
30 KiB
JavaScript
/**
|
|
* 2014-2017 IQIT-COMMERCE.COM
|
|
*
|
|
* NOTICE OF LICENSE
|
|
*
|
|
* @author IQIT-COMMERCE.COM <support@iqit-commerce.com>
|
|
* @copyright 2007-2017 IQIT-COMMERCE.COM
|
|
* @license GNU General Public License version 2
|
|
*
|
|
* You can not resell or redistribute this software.
|
|
*
|
|
*/
|
|
|
|
$(document).ready(function () {
|
|
|
|
var $myHorizontalTabs = $('#tabs1');
|
|
$myHorizontalTabs.sortable({
|
|
opacity: 0.6,
|
|
cursor: 'move',
|
|
update: function() {
|
|
var order = $(this).sortable('serialize') + "&action=updateHorizontalTabsPosition&ajax=true";
|
|
$.post(iqitsearch_url, order);
|
|
}
|
|
});
|
|
$myHorizontalTabs.hover(function() {
|
|
$(this).css("cursor","move");
|
|
},
|
|
function() {
|
|
$(this).css("cursor","auto");
|
|
});
|
|
|
|
var $myVerticalTabs = $('#tabs2');
|
|
$myVerticalTabs.sortable({
|
|
opacity: 0.6,
|
|
cursor: "move",
|
|
update: function() {
|
|
var order = $(this).sortable("serialize") + "&action=updateVerticalTabsPosition&ajax=true";
|
|
$.post(iqitsearch_url, order);
|
|
}
|
|
});
|
|
$myVerticalTabs.hover(function() {
|
|
$(this).css("cursor","move");
|
|
},
|
|
function() {
|
|
$(this).css("cursor","auto");
|
|
});
|
|
|
|
|
|
$('.list-wrapper').detach().prependTo('#list-container');
|
|
|
|
$('.icp-auto').iconpicker({
|
|
iconBaseClass: 'icon',
|
|
iconComponentBaseClass: 'icon',
|
|
iconClassPrefix: 'fa-'
|
|
});
|
|
|
|
var p_auto_settings = {
|
|
minChars: 1,
|
|
cache: 0,
|
|
source: function(term, response){
|
|
$.getJSON(iqitsearch_url, { q: term, ajax: true, action: 'SearchProducts' }, function(data){ response(data); });
|
|
},
|
|
renderItem: function (item, search){
|
|
return '<div class="autocomplete-suggestion" data-id="' + item.id + '" data-name="' + item.name + '">' +
|
|
'<img src="' + item.image + '" style="width: 30px; max-height: 100%; margin-right: 5px; border: 1px dotted #cecece; display: inline-block; vertical-align: middle;" />(ID: ' + item.id + ') ' + item.name + '</div>';
|
|
},
|
|
onSelect: function(e, term, item){
|
|
item.parents('.products-wrapper').first().find('.select-products-ids').first().append('<option value="' + item.data('id') + '">' + '(ID: ' + item.data('id') + ') ' + item.data('name') + '</option>');
|
|
}
|
|
};
|
|
|
|
$('.product-autocomplete').autoCompleteIq(p_auto_settings);
|
|
|
|
//fix for tinymce source code edit
|
|
$(document).on('focusin', function (e) {
|
|
if ($(e.target).closest(".mce-window").length) {
|
|
e.stopImmediatePropagation();
|
|
}
|
|
});
|
|
|
|
|
|
/**
|
|
* Grid creator
|
|
* type = 1 = row
|
|
* type = 2 = column
|
|
*/
|
|
|
|
|
|
//first rows sortable init
|
|
$('.first-rows-wrapper').sortable({
|
|
items: ".first_rows",
|
|
placeholder: "row-placeholder",
|
|
handle: ".dragger-handle"
|
|
});
|
|
//$( '.first-rows-wrapper' ).disableSelection();
|
|
|
|
//menu row sortable init
|
|
$('.menu_row').sortable({
|
|
items: ".menu_column",
|
|
handle: ".dragger-handle",
|
|
forcePlaceholderSize: true,
|
|
placeholder: "col-placeholder",
|
|
start: function (e, ui) {
|
|
ui.placeholder.height(ui.item.outerHeight());
|
|
ui.placeholder.addClass('col-xs-' + ui.item.data('width'));
|
|
},
|
|
connectWith: ".menu_row"
|
|
});
|
|
//$( '.menu_row' ).disableSelection();
|
|
|
|
//menu column sortable init
|
|
$('.menu_column').sortable({
|
|
items: ".menu_row",
|
|
handle: ".dragger-handle",
|
|
placeholder: "row-placeholder",
|
|
connectWith: ".menu_column"
|
|
});
|
|
//$( '.menu_column' ).disableSelection();
|
|
|
|
|
|
//bind sort update
|
|
$('.first-rows-wrapper').on('sortupdate', function (event, ui) {
|
|
|
|
tmpelementId1 = ui.item.data('elementId');
|
|
|
|
if (typeof ui.item.parent().data('elementId') === 'undefined') {
|
|
tmpparentId = 0;
|
|
}
|
|
;
|
|
|
|
tmpparentId = ui.item.parent().data('elementId');
|
|
|
|
if (submenu_content.hasOwnProperty(tmpelementId1)) {
|
|
submenu_content[tmpelementId1].parentId = tmpparentId;
|
|
}
|
|
|
|
updateElementsPositions();
|
|
});
|
|
|
|
//set column width
|
|
$('.grid_creator').on('change', '.select-column-width', function () {
|
|
$element = $(this).parent().parent().parent();
|
|
tmpelementId = $element.data('elementId');
|
|
|
|
$element.removeClass('col-xs-' + $element.data('width'));
|
|
$element.addClass('col-xs-' + this.value);
|
|
$element.data('width', this.value);
|
|
|
|
if (submenu_content.hasOwnProperty(tmpelementId)) {
|
|
submenu_content[tmpelementId].width = parseInt(this.value);
|
|
}
|
|
|
|
});
|
|
|
|
//open content modal
|
|
$('.grid_creator').on('click', '.column-content-edit', function () {
|
|
$($(this).parent().parent().find('.column-content-modal').first()).modal({
|
|
keyboard: false
|
|
});
|
|
|
|
});
|
|
|
|
//colum type
|
|
$('.grid_creator').on('change', '.select-column-content', function () {
|
|
$element = $(this).parents('.menu_column').first();
|
|
|
|
elmid = $element.data('elementId');
|
|
|
|
if (submenu_content.hasOwnProperty(elmid)) {
|
|
submenu_content[elmid].contentType = parseInt(this.value);
|
|
}
|
|
|
|
|
|
setContentForm($element, this.value);
|
|
|
|
|
|
});
|
|
|
|
//set content options
|
|
$('.grid_creator').on('hidden.bs.modal', '.column-content-modal', function (e) {
|
|
|
|
modid = $(this).parents('.menu_column').first().data('elementId');
|
|
|
|
if (submenu_content.hasOwnProperty(modid)) {
|
|
delete submenu_content[modid].content;
|
|
}
|
|
switch (parseInt($(this).find('.select-column-content').first().val())) {
|
|
case 1:
|
|
setHtmlContent(this, modid);
|
|
break;
|
|
case 2:
|
|
setCategoriesContent(this, modid);
|
|
break;
|
|
case 3:
|
|
setLinksContent(this, modid);
|
|
break;
|
|
case 4:
|
|
setProductsContent(this, modid);
|
|
break;
|
|
case 5:
|
|
setManufacturersContent(this, modid);
|
|
break;
|
|
case 6:
|
|
setImagesContent(this, modid);
|
|
break;
|
|
case 7:
|
|
setSuppliersContent(this, modid);
|
|
break;
|
|
}
|
|
|
|
setColumnStyle(this, modid);
|
|
});
|
|
|
|
|
|
function setCategoriesContent(modal, elmid) {
|
|
column_content = {};
|
|
|
|
if (ids = $(modal).find('.select-categories-ids').first().val()) {
|
|
column_content.ids = ids;
|
|
column_content.treep = parseInt($(modal).find('.select-categories-treep').first().val());
|
|
column_content.thumb = parseInt($(modal).find('.select-categories-thumb').first().val());
|
|
column_content.depth = parseInt($(modal).find('.select-categories-depth').first().val());
|
|
column_content.line = parseInt($(modal).find('.select-categories-line').first().val());
|
|
column_content.sublimit = parseInt($(modal).find('.select-categories-sublimit').first().val());
|
|
}
|
|
|
|
if (submenu_content.hasOwnProperty(elmid)) {
|
|
submenu_content[elmid].content = column_content;
|
|
}
|
|
|
|
}
|
|
|
|
function getMeta(url) {
|
|
var img = new Image();
|
|
img.src = url;
|
|
var size = {};
|
|
img.addEventListener("load", function () {
|
|
size['w'] = this.naturalWidth;
|
|
size['h'] = this.naturalHeight;
|
|
return size;
|
|
});
|
|
return size;
|
|
|
|
}
|
|
|
|
|
|
function setImagesContent(modal, elmid) {
|
|
column_content = {};
|
|
|
|
source = {};
|
|
href = {};
|
|
alt = {};
|
|
size = {};
|
|
|
|
if (typeof languages != "undefined") {
|
|
languages.forEach(function (jsLang) {
|
|
source[jsLang.id_lang] = $(modal).find('.image-source-' + jsLang.id_lang).first().val();
|
|
href[jsLang.id_lang] = $(modal).find('.image-href-' + jsLang.id_lang).first().val();
|
|
alt[jsLang.id_lang] = $(modal).find('.image-alt-' + jsLang.id_lang).first().val();
|
|
size[jsLang.id_lang] = getMeta(source[jsLang.id_lang]);
|
|
|
|
|
|
});
|
|
} else {
|
|
source[id_language] = $(modal).find('.image-source-' + id_language).first().val();
|
|
href[id_language] = $(modal).find('.image-href-' + id_language).first().val();
|
|
alt[id_language] = $(modal).find('.image-alt-' + id_language).first().val();
|
|
size[id_language] = getMeta(source[id_language]);
|
|
}
|
|
|
|
column_content.source = source;
|
|
column_content.href = href;
|
|
column_content.alt = alt;
|
|
column_content.size = size;
|
|
|
|
if (absolute = parseInt($(modal).find('.select-image-absolute').first().val())) {
|
|
column_content.absolute = 1;
|
|
column_content.i_a_t = $(modal).find('.image-absolute-t').first().val();
|
|
column_content.i_a_r = $(modal).find('.image-absolute-r').first().val();
|
|
column_content.i_a_b = $(modal).find('.image-absolute-b').first().val();
|
|
column_content.i_a_l = $(modal).find('.image-absolute-l').first().val();
|
|
}
|
|
|
|
if (submenu_content.hasOwnProperty(elmid)) {
|
|
submenu_content[elmid].content = column_content;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
function setProductsContent(modal, elmid) {
|
|
column_content = {};
|
|
|
|
if (ids = serialize_productsselect($(modal).find('.select-products-ids').first().find('option'))) {
|
|
column_content.ids = ids;
|
|
column_content.line = parseInt($(modal).find('.select-products-line').first().val());
|
|
column_content.view = parseInt($(modal).find('.select-products-view').first().val());
|
|
}
|
|
|
|
if (submenu_content.hasOwnProperty(elmid)) {
|
|
submenu_content[elmid].content = column_content;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
function setManufacturersContent(modal, elmid) {
|
|
column_content = {};
|
|
|
|
if (ids = $(modal).find('.select-manufacturers-ids').first().val()) {
|
|
column_content.ids = ids;
|
|
column_content.line = parseInt($(modal).find('.select-manufacturers-line').first().val());
|
|
}
|
|
|
|
if (submenu_content.hasOwnProperty(elmid)) {
|
|
submenu_content[elmid].content = column_content;
|
|
}
|
|
|
|
}
|
|
|
|
function setSuppliersContent(modal, elmid) {
|
|
column_content = {};
|
|
|
|
if (ids = $(modal).find('.select-suppliers-ids').first().val()) {
|
|
column_content.ids = ids;
|
|
column_content.line = parseInt($(modal).find('.select-suppliers-line').first().val());
|
|
}
|
|
|
|
if (submenu_content.hasOwnProperty(elmid)) {
|
|
submenu_content[elmid].content = column_content;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
function setLinksContent(modal, elmid) {
|
|
column_content = {};
|
|
|
|
if (ids = $(modal).find('.select-links-ids').first().val()) {
|
|
column_content.ids = ids;
|
|
column_content.view = parseInt($(modal).find('.select-links-view').first().val());
|
|
}
|
|
|
|
if (submenu_content.hasOwnProperty(elmid)) {
|
|
submenu_content[elmid].content = column_content;
|
|
}
|
|
|
|
}
|
|
|
|
function setHtmlContent(modal, elmid) {
|
|
column_content = {};
|
|
|
|
if (ids = $(modal).find('.select-customhtml').first().val()) {
|
|
column_content.ids = ids;
|
|
}
|
|
|
|
if (submenu_content.hasOwnProperty(elmid)) {
|
|
submenu_content[elmid].content = column_content;
|
|
}
|
|
|
|
}
|
|
|
|
function setColumnStyle(modal, elmid) {
|
|
submenu_style = {};
|
|
|
|
title = {};
|
|
href = {};
|
|
legend = {};
|
|
|
|
if (typeof languages != "undefined") {
|
|
languages.forEach(function (jsLang) {
|
|
title[jsLang.id_lang] = $(modal).find('.column-title-' + jsLang.id_lang).first().val();
|
|
href[jsLang.id_lang] = $(modal).find('.column-href-' + jsLang.id_lang).first().val();
|
|
legend[jsLang.id_lang] = $(modal).find('.column-legend-' + jsLang.id_lang).first().val();
|
|
});
|
|
} else {
|
|
title[id_language] = $(modal).find('.column-title-' + id_language).first().val();
|
|
href[id_language] = $(modal).find('.column-href-' + id_language).first().val();
|
|
legendf[id_language] = $(modal).find('.column-legen-' + id_language).first().val();
|
|
}
|
|
|
|
submenu_style.title = title;
|
|
submenu_style.href = href;
|
|
submenu_style.legend = legend;
|
|
|
|
|
|
if (bgcolor = $(modal).find('.column_bg_color').first().val())
|
|
submenu_style.bg_color = bgcolor;
|
|
|
|
if (legend_bg = $(modal).find('.legend_bg').first().val())
|
|
submenu_style.legend_bg = legend_bg;
|
|
|
|
if (legend_txt = $(modal).find('.legend_txt').first().val())
|
|
submenu_style.legend_txt = legend_txt;
|
|
|
|
if (title_borderc = $(modal).find('.title_borderc').first().val())
|
|
submenu_style.title_borderc = title_borderc;
|
|
|
|
if (title_color = $(modal).find('.title_color').first().val())
|
|
submenu_style.title_color = title_color;
|
|
|
|
if (title_colorh = $(modal).find('.title_colorh').first().val())
|
|
submenu_style.title_colorh = title_colorh;
|
|
|
|
if (txt_color = $(modal).find('.txt_color').first().val())
|
|
submenu_style.txt_color = txt_color;
|
|
|
|
if (txt_colorh = $(modal).find('.txt_colorh').first().val())
|
|
submenu_style.txt_colorh = txt_colorh;
|
|
|
|
|
|
if (br_top_st = parseInt($(modal).find('.br_top_st').first().val())) {
|
|
submenu_style.br_top_st = br_top_st;
|
|
submenu_style.br_top_wh = parseInt($(modal).find('.br_top_wh').first().val());
|
|
submenu_style.br_top_c = $(modal).find('.br_top_c').first().val();
|
|
}
|
|
|
|
if (br_right_st = parseInt($(modal).find('.br_right_st').first().val())) {
|
|
submenu_style.br_right_st = br_right_st;
|
|
submenu_style.br_right_wh = parseInt($(modal).find('.br_right_wh').first().val());
|
|
submenu_style.br_right_c = $(modal).find('.br_right_c').first().val();
|
|
}
|
|
|
|
if (br_bottom_st = parseInt($(modal).find('.br_bottom_st').first().val())) {
|
|
submenu_style.br_bottom_st = br_bottom_st;
|
|
submenu_style.br_bottom_wh = parseInt($(modal).find('.br_bottom_wh').first().val());
|
|
submenu_style.br_bottom_c = $(modal).find('.br_bottom_c').first().val();
|
|
}
|
|
|
|
if (br_left_st = parseInt($(modal).find('.br_left_st').first().val())) {
|
|
submenu_style.br_left_st = br_left_st;
|
|
submenu_style.br_left_wh = parseInt($(modal).find('.br_left_wh').first().val());
|
|
submenu_style.br_left_c = $(modal).find('.br_left_c').first().val();
|
|
}
|
|
|
|
//paddings
|
|
if ($(modal).find('.c-padding-top').first().prop('checked'))
|
|
submenu_style.c_p_t = 1;
|
|
|
|
if ($(modal).find('.c-padding-right').first().prop('checked'))
|
|
submenu_style.c_p_r = 1;
|
|
|
|
if ($(modal).find('.c-padding-bottom').first().prop('checked'))
|
|
submenu_style.c_p_b = 1;
|
|
|
|
if ($(modal).find('.c-padding-left').first().prop('checked'))
|
|
submenu_style.c_p_l = 1;
|
|
|
|
//margins
|
|
if ($(modal).find('.c-margin-top').first().prop('checked'))
|
|
submenu_style.c_m_t = 1;
|
|
|
|
if ($(modal).find('.c-margin-right').first().prop('checked'))
|
|
submenu_style.c_m_r = 1;
|
|
|
|
if ($(modal).find('.c-margin-bottom').first().prop('checked'))
|
|
submenu_style.c_m_b = 1;
|
|
|
|
if ($(modal).find('.c-margin-left').first().prop('checked'))
|
|
submenu_style.c_m_l = 1;
|
|
|
|
|
|
if (submenu_content.hasOwnProperty(elmid)) {
|
|
submenu_content[elmid].content_s = submenu_style;
|
|
}
|
|
|
|
}
|
|
|
|
function serialize_productsselect(element) {
|
|
options = [];
|
|
element.each(function (i) {
|
|
options[i] = $(this).val();
|
|
});
|
|
|
|
return uniqProducts(options);
|
|
|
|
}
|
|
|
|
function uniqProducts(a) {
|
|
var prims = {"boolean": {}, "number": {}, "string": {}}, objs = [];
|
|
|
|
return a.filter(function (item) {
|
|
var type = typeof item;
|
|
if (type in prims)
|
|
return prims[type].hasOwnProperty(item) ? false : (prims[type][item] = true);
|
|
else
|
|
return objs.indexOf(item) >= 0 ? false : objs.push(item);
|
|
});
|
|
}
|
|
|
|
function setContentForm($element, val) {
|
|
|
|
$element.find('.column-content-info').first().text($element.find('.select-column-content option[value="' + parseInt(val) + '"]').first().text());
|
|
|
|
switch (parseInt(val)) {
|
|
case 0:
|
|
$element.find('.content-options-wrapper').hide();
|
|
break;
|
|
case 1:
|
|
$element.find('.content-options-wrapper').not('.htmlcontent-wrapper').hide();
|
|
$element.find('.htmlcontent-wrapper').show();
|
|
break;
|
|
case 2:
|
|
$element.find('.content-options-wrapper').not('.categorytree-wrapper').hide();
|
|
$element.find('.categorytree-wrapper').show();
|
|
break;
|
|
case 3:
|
|
$element.find('.content-options-wrapper').not('.va-links-wrapper').hide();
|
|
$element.find('.va-links-wrapper').show();
|
|
break;
|
|
case 4:
|
|
$element.find('.content-options-wrapper').not('.products-wrapper').hide();
|
|
$element.find('.products-wrapper').show();
|
|
break;
|
|
case 5:
|
|
$element.find('.content-options-wrapper').not('.manufacturers-wrapper').hide();
|
|
$element.find('.manufacturers-wrapper').show();
|
|
break;
|
|
case 6:
|
|
$element.find('.content-options-wrapper').not('.column-image-wrapper').hide();
|
|
$element.find('.column-image-wrapper').show();
|
|
break;
|
|
case 7:
|
|
$element.find('.content-options-wrapper').not('.suppliers-wrapper').hide();
|
|
$element.find('.suppliers-wrapper').show();
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//init submenu elements
|
|
|
|
var submenu_content = {};
|
|
var elementId = 0;
|
|
|
|
if ($('#submenu-elements').length) {
|
|
var prev_submenu_val = $('#submenu-elements').val();
|
|
if (prev_submenu_val.length !== 0) {
|
|
var old_submenu_content = JSON.parse(prev_submenu_val);
|
|
$.extend(submenu_content, old_submenu_content);
|
|
|
|
var ids = $(".menu-element").map(function () {
|
|
return parseInt($(this).data('element-id'), 10);
|
|
}).get();
|
|
|
|
elementId = Math.max.apply(Math, ids);
|
|
|
|
}
|
|
}
|
|
|
|
$('.menu_column').each(function () {
|
|
|
|
$(this).find('.column_bg_color-' + $(this).data('element-id')).first().mColorPicker();
|
|
$(this).find('.legend_bg-' + $(this).data('element-id')).first().mColorPicker();
|
|
$(this).find('.legend_txt-' + $(this).data('element-id')).first().mColorPicker();
|
|
|
|
$(this).find('.br_top_c-' + $(this).data('element-id')).first().mColorPicker();
|
|
$(this).find('.br_right_c-' + $(this).data('element-id')).first().mColorPicker();
|
|
$(this).find('.br_bottom_c-' + $(this).data('element-id')).first().mColorPicker();
|
|
$(this).find('.br_left_c-' + $(this).data('element-id')).first().mColorPicker();
|
|
|
|
$(this).find('.title_borderc-' + $(this).data('element-id')).first().mColorPicker();
|
|
$(this).find('.title_color-' + $(this).data('element-id')).first().mColorPicker();
|
|
$(this).find('.title_colorh-' + $(this).data('element-id')).first().mColorPicker();
|
|
$(this).find('.txt_color-' + $(this).data('element-id')).first().mColorPicker();
|
|
$(this).find('.txt_colorh-' + $(this).data('element-id')).first().mColorPicker();
|
|
|
|
setContentForm($(this), $(this).data('contenttype'));
|
|
});
|
|
|
|
|
|
//add first row button
|
|
$('#buttons-sample').on('click', '.add-row-action', function () {
|
|
|
|
$parentElement = $(this).parent().parent().parent().find('.first-rows-wrapper');
|
|
$parentElement.append('<div data-element-type="1" data-depth="0" data-element-id="' + (++elementId) + '" class="row menu_row first_rows menu-element menu-element-id-' + (elementId) + '">' + $('#buttons-sample').html() + '</div>');
|
|
|
|
$('.menu-element-id-' + elementId).sortable({
|
|
items: ".menu_column",
|
|
handle: ".dragger-handle",
|
|
connectWith: ".menu_row",
|
|
placeholder: "col-placeholder",
|
|
});
|
|
//$( '.menu-element-id-' + elementId).disableSelection();
|
|
|
|
position = $parentElement.children().length;
|
|
|
|
var newElement = {
|
|
'elementId': elementId,
|
|
'type': 1,
|
|
'depth': 0,
|
|
'position': position,
|
|
'parentId': 0
|
|
};
|
|
|
|
submenu_content[elementId] = newElement;
|
|
});
|
|
|
|
//add row button
|
|
$('.grid_creator').on('click', '.menu-element .add-row-action', function () {
|
|
|
|
parentId = $(this).parent().parent().data("element-id");
|
|
depth = $(this).parent().parent().data("depth") + 1;
|
|
|
|
$parentElement = $(this).parent().parent();
|
|
$parentElement.append('<div data-element-type="1" data-depth="' + depth + '" data-element-id="' + (++elementId) + '" class="row menu_row menu-element menu-element-id-' + (elementId) + '">' + $('#buttons-sample').html() + ' </div>');
|
|
|
|
$('.menu-element-id-' + elementId).sortable({
|
|
items: ".menu_column",
|
|
handle: ".dragger-handle",
|
|
placeholder: "col-placeholder",
|
|
connectWith: ".menu_row"
|
|
});
|
|
//$( '.menu-element-id-' + elementId).disableSelection();
|
|
|
|
position = $parentElement.children().length;
|
|
|
|
var newElement = {
|
|
'elementId': elementId,
|
|
'type': 1,
|
|
'depth': depth,
|
|
'position': position,
|
|
'parentId': parentId
|
|
};
|
|
|
|
submenu_content[elementId] = newElement;
|
|
|
|
});
|
|
|
|
//clone column
|
|
$('.grid_creator').on('click', ' .duplicate-element-action', function () {
|
|
$brotherElement = $(this).parents('.menu-element').first();
|
|
brotherId = $brotherElement.data('element-id');
|
|
|
|
if (submenu_content.hasOwnProperty(brotherId)) {
|
|
|
|
clonedElement = clone(submenu_content[brotherId]);
|
|
clonedElement.elementId = ++elementId;
|
|
|
|
$cloneElement = $brotherElement.clone(true);
|
|
$cloneElement.data('element-id', elementId);
|
|
$cloneElement.removeClass('menu-element-id-' + brotherId);
|
|
$cloneElement.addClass('menu-element-id-' + elementId).appendTo($brotherElement.parent());
|
|
submenu_content[elementId] = clonedElement;
|
|
}
|
|
});
|
|
|
|
|
|
//add column button
|
|
$('.grid_creator').on('click', '.menu-element .add-column-action', function () {
|
|
parentId = $(this).parent().parent().data('element-id');
|
|
depth = $(this).parent().parent().data("depth") + 1;
|
|
|
|
$parentElement = $(this).parent().parent();
|
|
$parentElement.append('<div data-element-type="2" data-depth="' + depth + '" data-width="3" data-element-id="' + (++elementId) + '" class="col-xs-3 menu_column menu-element menu-element-id-' + (elementId) + '">' + $('#buttons-sample').html() + $('#column-content-sample').html() + '</div>');
|
|
|
|
$('.menu-element-id-' + elementId).sortable({
|
|
items: ".menu_row",
|
|
handle: ".dragger-handle",
|
|
placeholder: "row-placeholder",
|
|
connectWith: ".menu_column"
|
|
});
|
|
//$( '.menu-element-id-' + elementId).disableSelection();
|
|
|
|
position = $parentElement.children().length;
|
|
|
|
var newElement = {
|
|
'elementId': elementId,
|
|
'type': 2,
|
|
'depth': depth,
|
|
'width': 3,
|
|
'contentType': 0,
|
|
'position': position,
|
|
'parentId': parentId
|
|
};
|
|
$('.menu-element-id-' + elementId + ' .column_bg_color').addClass('column_bg_color-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .column_bg_color-' + elementId).mColorPicker();
|
|
|
|
$('.menu-element-id-' + elementId + ' .legend_bg').addClass('legend_bg-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .legend_bg-' + elementId).mColorPicker();
|
|
|
|
$('.menu-element-id-' + elementId + ' .legend_txt').addClass('legend_txt-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .legend_txt-' + elementId).mColorPicker();
|
|
|
|
$('.menu-element-id-' + elementId + ' .br_top_c').addClass('br_top_c-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .br_top_c-' + elementId).mColorPicker();
|
|
|
|
$('.menu-element-id-' + elementId + ' .br_right_c').addClass('br_right_c-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .br_right_c-' + elementId).mColorPicker();
|
|
|
|
$('.menu-element-id-' + elementId + ' .br_bottom_c').addClass('br_bottom_c-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .br_bottom_c-' + elementId).mColorPicker();
|
|
|
|
$('.menu-element-id-' + elementId + ' .br_left_c').addClass('br_left_c-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .br_left_c-' + elementId).mColorPicker();
|
|
|
|
$('.menu-element-id-' + elementId + ' .title_borderc').addClass('title_borderc-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .title_borderc-' + elementId).mColorPicker();
|
|
|
|
$('.menu-element-id-' + elementId + ' .title_color').addClass('title_color-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .title_color-' + elementId).mColorPicker();
|
|
|
|
$('.menu-element-id-' + elementId + ' .title_colorh').addClass('title_colorh-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .title_colorh-' + elementId).mColorPicker();
|
|
|
|
$('.menu-element-id-' + elementId + ' .txt_color').addClass('txt_color-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .txt_color-' + elementId).mColorPicker();
|
|
|
|
$('.menu-element-id-' + elementId + ' .txt_colorh').addClass('txt_colorh-' + elementId);
|
|
$('.menu-element-id-' + elementId + ' .txt_colorh-' + elementId).mColorPicker();
|
|
|
|
|
|
$('.menu-element-id-' + elementId + ' .image-source').attr('id', elementId + '-image-source-' + $(this).data('lang-id'));
|
|
|
|
|
|
$('.menu-element-id-' + elementId + ' .image-source').each(function () {
|
|
$(this).attr('id', elementId + '-image-source-' + $(this).data('lang-id'));
|
|
$(this).parent().find('.iframe-column-upload').data('input-name', elementId + '-image-source-' + $(this).data('lang-id'));
|
|
});
|
|
|
|
$('.menu-element-id-' + elementId + ' .rte').each(function () {
|
|
$(this).attr('id', elementId + '-htmlcontent-' + $(this).data('lang-id'));
|
|
|
|
});
|
|
|
|
|
|
submenu_content[elementId] = newElement;
|
|
setContentForm($('.menu-element-id-' + elementId), 0);
|
|
|
|
$('.menu-element-id-' + elementId + ' .product-autocomplete').autoCompleteIq(p_auto_settings);
|
|
|
|
});
|
|
|
|
//remove element button
|
|
$('.grid_creator').on('click', '.remove-element-action', function () {
|
|
deleteId = $(this).parent().parent().data('element-id');
|
|
$(this).parent().parent().remove();
|
|
|
|
delete submenu_content[deleteId];
|
|
deleteMenuElelement(deleteId)
|
|
});
|
|
|
|
//pass submenu to input field
|
|
$('button[name="submitAddTab"]').on("click", function () {
|
|
if ($.isEmptyObject(submenu_content))
|
|
$('#submenu-elements').val('');
|
|
else
|
|
$('#submenu-elements').val(encodeURIComponent(JSON.stringify(submenu_content)));
|
|
});
|
|
|
|
//remove product fromc olumn
|
|
$('.grid_creator').on('click', '.remove-products-ids', function () {
|
|
|
|
$(this).parent().find('.select-products-ids option:selected').each(function (i) {
|
|
$(this).remove();
|
|
});
|
|
|
|
});
|
|
|
|
//delete menu elements recursivly
|
|
function deleteMenuElelement(id) {
|
|
for (var key in submenu_content) {
|
|
if (submenu_content.hasOwnProperty(key)) {
|
|
if (submenu_content[key].parentId == id) {
|
|
tmpelid = submenu_content[key].elementId;
|
|
delete submenu_content[key];
|
|
deleteMenuElelement(tmpelid);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//update all menu positions after drag and drop
|
|
function updateElementsPositions() {
|
|
for (var key in submenu_content) {
|
|
if (submenu_content.hasOwnProperty(key)) {
|
|
submenu_content[key].position = $('.menu-element-id-' + submenu_content[key].elementId).index();
|
|
}
|
|
}
|
|
}
|
|
|
|
function clone(src) {
|
|
function mixin(dest, source, copyFunc) {
|
|
var name, s, i, empty = {};
|
|
for (name in source) {
|
|
// the (!(name in empty) || empty[name] !== s) condition avoids copying properties in "source"
|
|
// inherited from Object.prototype. For example, if dest has a custom toString() method,
|
|
// don't overwrite it with the toString() method that source inherited from Object.prototype
|
|
s = source[name];
|
|
if (!(name in dest) || (dest[name] !== s && (!(name in empty) || empty[name] !== s))) {
|
|
dest[name] = copyFunc ? copyFunc(s) : s;
|
|
}
|
|
}
|
|
return dest;
|
|
}
|
|
|
|
if (!src || typeof src != "object" || Object.prototype.toString.call(src) === "[object Function]") {
|
|
// null, undefined, any non-object, or function
|
|
return src; // anything
|
|
}
|
|
if (src.nodeType && "cloneNode" in src) {
|
|
// DOM Node
|
|
return src.cloneNode(true); // Node
|
|
}
|
|
if (src instanceof Date) {
|
|
// Date
|
|
return new Date(src.getTime()); // Date
|
|
}
|
|
if (src instanceof RegExp) {
|
|
// RegExp
|
|
return new RegExp(src); // RegExp
|
|
}
|
|
var r, i, l;
|
|
if (src instanceof Array) {
|
|
// array
|
|
r = [];
|
|
for (i = 0, l = src.length; i < l; ++i) {
|
|
if (i in src) {
|
|
r.push(clone(src[i]));
|
|
}
|
|
}
|
|
// we don't clone functions for performance reasons
|
|
// }else if(d.isFunction(src)){
|
|
// // function
|
|
// r = function(){ return src.apply(this, arguments); };
|
|
} else {
|
|
// generic objects
|
|
r = src.constructor ? new src.constructor() : {};
|
|
}
|
|
return mixin(r, src, clone);
|
|
|
|
}
|
|
|
|
|
|
});
|