1834 lines
78 KiB
JavaScript
1834 lines
78 KiB
JavaScript
/**
|
||
* 2017-2019 Zemez
|
||
*
|
||
* JX Mega Layout
|
||
*
|
||
* NOTICE OF LICENSE
|
||
*
|
||
* This source file is subject to the General Public License (GPL 2.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/GPL-2.0
|
||
*
|
||
* DISCLAIMER
|
||
*
|
||
* Do not edit or add to this file if you wish to upgrade the module to newer
|
||
* versions in the future.
|
||
*
|
||
* @author Zemez (Alexander Grosul & Alexander Pervakov)
|
||
* @copyright 2017-2019 Zemez
|
||
* @license http://opensource.org/licenses/GPL-2.0 General Public License (GPL 2.0)
|
||
*/
|
||
$(document).ready(function(e) {
|
||
jxml.init();
|
||
$(document).on('change', '.jxmegalayout-styles input:not([type="radio"])', function(e) {
|
||
jxml.validate.styleInput($(this));
|
||
return false;
|
||
});
|
||
var section_name = $('#jxml-sections>ul>li.active').attr('data-section-name');
|
||
$('.jxmegalayout-nav > li:not(.jxml-tools_tab , .jxml-sections)').hide();
|
||
$('.jxmegalayout-nav > li[data-section="' + section_name + '"]').show();
|
||
$('#selectLayoutArchive').live('click', function(e) {
|
||
$('#layoutArchive').trigger('click');
|
||
});
|
||
$('#selectExtraContentArchive').live('click', function(e) {
|
||
$('#extraContentArchive').trigger('click');
|
||
});
|
||
$('#extraContentArchive').live('change', function(e) {
|
||
$('#import_extra_content_form').find('.alert').addClass('hidden');
|
||
if ($(this)[0].files !== undefined) {
|
||
var files = $(this)[0].files;
|
||
var name = '';
|
||
$.each(files, function(index, value) {
|
||
name += value.name + ', ';
|
||
});
|
||
$('#extraContentArchiveName').val(name.slice(0, -2));
|
||
} else {
|
||
var name = $(this).val().split(/[\\/]/);
|
||
$('#extraContentArchiveName').val(name[name.length - 1]);
|
||
}
|
||
e.preventDefault();
|
||
var file = $('#extraContentArchive')[0].files[0];
|
||
if (file.name != 'extracontent.zip') {
|
||
$('#import_extra_content_form').find('.alert').removeClass('hidden');
|
||
|
||
return;
|
||
}
|
||
var form_data = new FormData();
|
||
form_data.append('file', file);
|
||
sendExtraContentImportArchive(form_data, file.name, file.size);
|
||
});
|
||
function sendExtraContentImportArchive(file, fileName, fileSize) {
|
||
var xhr = new XMLHttpRequest();
|
||
xhr.open('POST', jxml_theme_url + '&ajax&action=importExtraContent', false);
|
||
xhr.setRequestHeader("Cache-Control", "no-cache");
|
||
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
|
||
xhr.setRequestHeader('X-FILE-NAME', fileName);
|
||
xhr.setRequestHeader('X-FILE-SIZE', fileSize);
|
||
xhr.send(file);
|
||
if (xhr.status == 200) {
|
||
if (JSON.parse(xhr.response).status) {
|
||
jxml.ajax.extraContentReturnHome();
|
||
} else {
|
||
$('#import_extra_content_form').append('<p class="alert alert-danger">'+JSON.parse(xhr.response).message+'</p>');
|
||
}
|
||
}
|
||
}
|
||
$('.iframe-btn').fancybox({
|
||
'width' : 900,
|
||
'height' : 600,
|
||
'type' : 'iframe',
|
||
'autoScale' : false,
|
||
'autoDimensions' : false,
|
||
'fitToView' : false,
|
||
'autoSize' : false,
|
||
onUpdate : function() {
|
||
$('.fancybox-iframe').contents().find('a.link').data('field_id', $(this.element).data("input-name"));
|
||
$('.fancybox-iframe').contents().find('a.link').attr('data-field_id', $(this.element).data("input-name"));
|
||
},
|
||
afterShow : function() {
|
||
$('.fancybox-iframe').contents().find('a.link').data('field_id', $(this.element).data("input-name"));
|
||
$('.fancybox-iframe').contents().find('a.link').attr('data-field_id', $(this.element).data("input-name"));
|
||
},
|
||
afterClose : function() {
|
||
setTimeout(function() {
|
||
$('.edit-styles.active').trigger('click')
|
||
}, 50);
|
||
}
|
||
});
|
||
|
||
// display list of extra content during a slider management. Display content related to the selected type (HTML, Banner, etc.)
|
||
$(document).on('change', 'select#extra-content-types-list', function(e) {
|
||
$('.extra-content-types-list').addClass('hidden');
|
||
$('.add-extra-content-slider').addClass('disabled');
|
||
$('.extra-content-types-list[name="'+$(this).val()+'"]').removeClass('hidden').val('');
|
||
});
|
||
|
||
// display/hide add button in slider management(in order to avoid an empty slide creation)
|
||
$(document).on('change keyup', 'select.extra-content-types-list, input.extra-content-types-list', function(e){
|
||
if ($(this).val()) {
|
||
if ($.isNumeric($(this).val())) {
|
||
$(this).removeClass('error');
|
||
$('.add-extra-content-slider').removeClass('disabled');
|
||
} else {
|
||
$(this).addClass('error');
|
||
$('.add-extra-content-slider').addClass('disabled');
|
||
}
|
||
} else {
|
||
$('.add-extra-content-slider').addClass('disabled');
|
||
}
|
||
});
|
||
|
||
// determine a behaviour of an "add-extra-content-slider" button
|
||
$(document).on('click', '.add-extra-content-slider', function(e) {
|
||
e.preventDefault;
|
||
var type = $('select#extra-content-types-list').val();
|
||
var content = $('.extra-content-types-list[name="'+type+'"]').val();
|
||
var name = $('.extra-content-types-list[name="'+type+'"] option:selected').text();
|
||
if (!name.length) {
|
||
name = $('input.extra-content-types-list[name="'+type+'"]').val();
|
||
}
|
||
if ($(this).hasClass('disabled') || !type || !content) {
|
||
return;
|
||
} else {
|
||
$('#extra-content-slider-slides').append('<div class="item col-lg-12"><div class="row"><span class="type col-lg-2">'+type+'</span><span class="name col-lg-8">'+name+'</span><span class="button col-lg-2"><a href="#" class="btn btn-danger remove-extra-content-slider"><i class="icon icon-remove"></i></a></span><input name="slides[]" value="'+type+'-'+content+'" type="hidden" /></div></div>');
|
||
return false;
|
||
}
|
||
});
|
||
$(document).on('click', '.remove-extra-content-slider', function(e) {
|
||
$(this).closest('.item').remove();
|
||
return false;
|
||
});
|
||
|
||
// selects in the extra content choosing pop-up
|
||
$(document).on('change', 'select[name="extra_content_type"]', function(e) {
|
||
$('.extra-content-type-selector').addClass('hidden');
|
||
$('.extra-content-type-selector[name="'+$(this).val()+'"]').removeClass('hidden');
|
||
});
|
||
|
||
// this part responses for avoiding double selecting in theme builder layouts form
|
||
$(document).on('change', '#theme-builder-layouts input[type="checkbox"]', function(e) {
|
||
var check = false;
|
||
if ($(this).is(':checked')) {
|
||
check = true;
|
||
}
|
||
$(this).closest('#theme-builder-layouts').find('[data-page-type="'+$(this).attr('name')+'"] input[type="checkbox"]').each(function() {
|
||
$(this).attr('checked', false);
|
||
});
|
||
|
||
$(this).attr('checked', check);
|
||
});
|
||
|
||
// hover effect when choose theme in builder
|
||
$(document).on({
|
||
mouseenter: function(){
|
||
var w = $(this).parent('div').outerWidth(true);
|
||
var h = $(this).parent('div').outerHeight(true);
|
||
$(this).children('.action-wrapper').css('width', w+'px');
|
||
$(this).children('.action-wrapper').css('height', h+'px');
|
||
$(this).children('.action-wrapper').show();
|
||
},
|
||
mouseleave: function(){
|
||
$(this).children('.action-wrapper').hide();
|
||
}
|
||
}, '.thumbnail-wrapper');
|
||
});
|
||
function fancyBoxOpen(type, data, action, content, classes, active) {
|
||
if (type == 'wrapper') {
|
||
jxmegalayout_content = getWrapperSettings(data);
|
||
} else if (type == 'row') {
|
||
jxmegalayout_content = getRowSettings(data);
|
||
} else if (type == 'col') {
|
||
jxmegalayout_content = getColSettings(data, action);
|
||
} else if (type == 'module') {
|
||
jxmegalayout_content = getModulesList(data, classes, active);
|
||
} else if (type == 'content') {
|
||
jxmegalayout_content = getExtraContent(data);
|
||
} else if (type == 'message') {
|
||
jxmegalayout_content = content
|
||
}
|
||
$.fancybox.open({
|
||
type : 'inline',
|
||
autoScale : true,
|
||
minHeight : 30,
|
||
minWidth : 320,
|
||
maxWidth : 815,
|
||
padding : 0,
|
||
content : '<div class="bootstrap jxml-popup">' + jxmegalayout_content + '</div>',
|
||
helpers : {
|
||
overlay : {
|
||
locked : false
|
||
}
|
||
},
|
||
afterClose : function() {
|
||
$('.button-container a:not(.edit-styles)').removeClass('active');
|
||
}
|
||
});
|
||
}
|
||
function getWrapperSettings(data) {
|
||
if (!data) {
|
||
data = '';
|
||
}
|
||
jxmegalayout_wrapper_content = '';
|
||
jxmegalayout_wrapper_content += '<h2 class="popup-heading">' + jxml_wrapper_heading + '</h2>';
|
||
jxmegalayout_wrapper_content += '<div class="form-group popup-content">';
|
||
jxmegalayout_wrapper_content += '<label for="wrapper-classes">' + jxml_row_classese_text + '</label>';
|
||
jxmegalayout_wrapper_content += '<input name="wrapper-classes" value="' + data + '" class="form-control" />';
|
||
jxmegalayout_wrapper_content += '</div>';
|
||
jxmegalayout_wrapper_content += '<div class="popup-btns">';
|
||
jxmegalayout_wrapper_content += '<a href="#" class="edit-wrapper-confirm btn btn-success">' + jxml_confirm_text + '</a>';
|
||
jxmegalayout_wrapper_content += '</div>';
|
||
return jxmegalayout_wrapper_content;
|
||
}
|
||
function getRowSettings(data) {
|
||
if (!data) {
|
||
data = '';
|
||
}
|
||
jxmegalayout_row_content = '';
|
||
jxmegalayout_row_content += '<h2 class="popup-heading">' + jxml_row_heading + '</h2>';
|
||
jxmegalayout_row_content += '<div class="form-group popup-content">';
|
||
jxmegalayout_row_content += '<label for="row-classes">' + jxml_row_classese_text + '</label>';
|
||
jxmegalayout_row_content += '<input name="row-classes" value="' + data + '" class="form-control" />';
|
||
jxmegalayout_row_content += '</div>';
|
||
jxmegalayout_row_content += '<div class="popup-btns">';
|
||
jxmegalayout_row_content += '<a href="#" class="edit-row-confirm btn btn-success">' + jxml_confirm_text + '</a>';
|
||
jxmegalayout_row_content += '</div>';
|
||
return jxmegalayout_row_content;
|
||
}
|
||
function getModulesList(data, classes, active) {
|
||
jxml_modules_select = '';
|
||
jxml_modules_select += '<h2 class="popup-heading">' + jxml_module_heading + '</h2>';
|
||
jxml_modules_select += '<div class="form-group popup-content">';
|
||
jxml_modules_select += '<div class="form-group">';
|
||
jxml_modules_select += '<label>' + jxml_sp_class_text + '</label>';
|
||
jxml_modules_select += '<input class="form-control" name="module-classes" value="' + data + '" />';
|
||
jxml_modules_select += '</div>';
|
||
if (classes) {
|
||
jxml_modules_select += '<label>' + jxml_sp_css_text + '</label>';
|
||
jxml_modules_select += '<select class="form-control" name="module-css">';
|
||
jxml_modules_select += '<option></option>';
|
||
for (i = 0; i < classes.length; i++) {
|
||
var name = classes[i].split('.');
|
||
var selected = '';
|
||
if (active && active == name[0]) {
|
||
selected = 'selected="selected"';
|
||
}
|
||
jxml_modules_select += '<option ' + selected + ' value="' + name[0] + '">' + name[0] + '</option>';
|
||
}
|
||
jxml_modules_select += '</select>';
|
||
}
|
||
jxml_modules_select += '</div>';
|
||
jxml_modules_select += '<div class="popup-btns">';
|
||
jxml_modules_select += '<a href="#" class="edit-module-confirm btn btn-success">' + jxml_confirm_text + '</a>';
|
||
jxml_modules_select += '</div>';
|
||
return jxml_modules_select;
|
||
}
|
||
function getExtraContent(data) {
|
||
jxml_modules_select = '';
|
||
jxml_modules_select += '<h2 class="popup-heading">' + jxml_module_heading + '</h2>';
|
||
jxml_modules_select += '<div class="form-group popup-content">';
|
||
jxml_modules_select += '<div class="form-group">';
|
||
jxml_modules_select += '<label>' + jxml_sp_class_text + '</label>';
|
||
jxml_modules_select += '<input class="form-control" name="extra-content-classes" value="' + data + '" />';
|
||
jxml_modules_select += '</div>';
|
||
jxml_modules_select += '</div>';
|
||
jxml_modules_select += '<div class="popup-btns">';
|
||
jxml_modules_select += '<a href="#" class="edit-extra-content-confirm btn btn-success">' + jxml_confirm_text + '</a>';
|
||
jxml_modules_select += '</div>';
|
||
return jxml_modules_select;
|
||
}
|
||
function getColSettings(data, action) {
|
||
specific_class = data.attr('data-specific-class');
|
||
if (typeof (specific_class) == 'undefined') {
|
||
specific_class = '';
|
||
}
|
||
jxml_cols_dimensions = [data.attr('data-col'), data.attr('data-col-xs'), data.attr('data-col-sm'), data.attr('data-col-md'), data.attr('data-col-lg'), data.attr('data-col-xl'), data.attr('data-col-xxl')];
|
||
jxml_cols_select = '';
|
||
jxml_cols_sizes = ['', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 'auto'];
|
||
jxml_cols_types = ['col', 'col-sm', 'col-md', 'col-lg', 'col-xl', 'col-xxl'];
|
||
jxml_cols_select += '<h2 class="popup-heading">' + jxml_col_heading + '</h2>';
|
||
jxml_cols_select += '<div class="form-group popup-content">';
|
||
jxml_cols_select += '<div class="form-wrapper form-group">';
|
||
jxml_cols_select += '<label>' + jxml_sp_class_text + '</label>';
|
||
jxml_cols_select += '<input class="form-control" name="col-specific-class" value="' + specific_class + '" />';
|
||
jxml_cols_select += '</div>';
|
||
jxml_cols_select += '<div class="form-wrapper row">';
|
||
selected_item = '';
|
||
for (i = 0; i < jxml_cols_types.length; i++) {
|
||
jxml_cols_select += '<div class="col-md-2">';
|
||
jxml_cols_select += '<label>' + jxml_cols_types[i] + '*</label>';
|
||
jxml_cols_select += '<select class="form-group" name="jxml-cols-' + jxml_cols_types[i] + '">';
|
||
jxml_cols_select += '<option value=""></option>';
|
||
for (k = 0; k < jxml_cols_sizes.length; k++) {
|
||
if (jxml_cols_sizes[k]) {
|
||
if ($.inArray(jxml_cols_types[i] + '-' + jxml_cols_sizes[k], jxml_cols_dimensions) != -1) {
|
||
selected_item = 'selected=selected';
|
||
}
|
||
} else {
|
||
if ($.inArray(jxml_cols_types[i], jxml_cols_dimensions) != -1) {
|
||
selected_item = 'selected=selected';
|
||
}
|
||
}
|
||
if (jxml_cols_sizes[k] == '') {
|
||
jxml_cols_select += '<option ' + selected_item + ' value="' + jxml_cols_types[i] + '">' + jxml_cols_types[i] + '</option>';
|
||
} else {
|
||
jxml_cols_select += '<option ' + selected_item + ' value="' + jxml_cols_types[i] + '-' + jxml_cols_sizes[k] + '">' + jxml_cols_types[i] + '-' + jxml_cols_sizes[k] + '</option>';
|
||
}
|
||
selected_item = '';
|
||
}
|
||
jxml_cols_select += '</select>';
|
||
jxml_cols_select += '</div>';
|
||
}
|
||
jxml_cols_select += '</div>';
|
||
jxml_cols_select += '</div>';
|
||
jxml_cols_select += '<div class="popup-btns">';
|
||
if (action == 'edit') {
|
||
jxml_cols_select += '<a href="#" class="edit-column-confirm btn btn-success">' + jxml_confirm_text + '</a>';
|
||
} else {
|
||
jxml_cols_select += '<a href="#" class="add-column-confirm btn btn-success">' + jxml_confirm_text + '</a>';
|
||
}
|
||
jxml_cols_select += '</div>';
|
||
return jxml_cols_select;
|
||
}
|
||
|
||
function getFormElements(form) {
|
||
var fields = {};
|
||
form.find('input').each(function() {
|
||
fields[$(this).attr('name')] = $(this).attr('value');
|
||
});
|
||
form.find('textarea').each(function() {
|
||
fields[$(this).attr('name')] = tinyMCE.get($(this).attr('id')).getContent();
|
||
});
|
||
|
||
return fields;
|
||
}
|
||
|
||
//jxml obj
|
||
jxml = {
|
||
ajax : {
|
||
request : function(sendData, successFunction, elem, errorFunction) {
|
||
elem = elem || null;
|
||
errorFunction = errorFunction || function(response) {
|
||
};
|
||
successFunction = successFunction || function(response) {
|
||
};
|
||
$.ajax({
|
||
type : 'POST',
|
||
url : jxml_theme_url + '&ajax',
|
||
headers : {"cache-control" : "no-cache"},
|
||
dataType : 'json',
|
||
async : false,
|
||
data : sendData,
|
||
error : function(response) {
|
||
errorFunction(response, sendData, elem);
|
||
},
|
||
success : function(response) {
|
||
successFunction(response, sendData, elem);
|
||
}
|
||
});
|
||
},
|
||
/* this method has been developed in order to implement banners uploading.
|
||
The cause is that we need different ajax settings for forms management and the
|
||
previous method "request" doesn't support it */
|
||
formDataRequest: function(sendData, successFunction, elem, errorFunction) {
|
||
elem = elem || null;
|
||
errorFunction = errorFunction || function(response) {
|
||
};
|
||
successFunction = successFunction || function(response) {
|
||
};
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: jxml_theme_url + '&ajax',
|
||
headers: {"cache-control" : "no-cache"},
|
||
dataType : 'json',
|
||
processData: false,
|
||
contentType: false,
|
||
data : sendData,
|
||
error : function(response) {
|
||
errorFunction(response, sendData, elem);
|
||
},
|
||
success : function(response) {
|
||
successFunction(response, sendData, elem);
|
||
}
|
||
});
|
||
},
|
||
optimizeMessage : function() {
|
||
data = {
|
||
action : 'optimizeMessage'
|
||
};
|
||
this.request(data, this.optimizeMessageSuccess);
|
||
},
|
||
optimizeMessageSuccess : function(response) {
|
||
if (response.status == 'true') {
|
||
JXMEGALAYOUT_OPTIMIZE = false;
|
||
if (JXMEGALAYOUT_SHOW_MESSAGES) {
|
||
$('.alertMessage').removeClass('hidden');
|
||
app.jxmegalayoutNeedOptimization = true;
|
||
}
|
||
}
|
||
},
|
||
addModuleConfirmation : function(elem) {
|
||
hook_name = elem.find('input[name="jxml_hook_name"]').val();
|
||
id_layout = elem.find('input[name="jxml_id_layout"]').val();
|
||
data = {
|
||
action : 'addModuleConfirmation',
|
||
hook_name : hook_name,
|
||
id_layout : id_layout
|
||
};
|
||
this.request(data, this.addModuleConfirmationSuccess);
|
||
},
|
||
addModuleConfirmationSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
fancyBoxOpen('message', '', '', response.message);
|
||
} else {
|
||
showErrorMessage(response.message);
|
||
}
|
||
},
|
||
addExtraContentConfirmation : function(elem) {
|
||
hook_name = elem.find('input[name="jxml_hook_name"]').val();
|
||
id_layout = elem.find('input[name="jxml_id_layout"]').val();
|
||
data = {
|
||
action : 'addExtraContentConfirmation',
|
||
hook_name : hook_name,
|
||
id_layout : id_layout
|
||
};
|
||
this.request(data, this.addExtraContentConfirmationSuccess);
|
||
},
|
||
addExtraContentConfirmationSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
fancyBoxOpen('message', '', '', response.message);
|
||
} else {
|
||
showErrorMessage(response.message);
|
||
}
|
||
},
|
||
enableLayout : function(hook_name, id_layout, pages, layout_status) {
|
||
data = {
|
||
action : 'enableLayout',
|
||
id_layout : id_layout,
|
||
hook_name : hook_name,
|
||
pages : pages,
|
||
layout_status : layout_status
|
||
};
|
||
this.request(data, this.enableLayoutSuccess);
|
||
},
|
||
enableLayoutSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
var jxbtns_disable = $('.jxlist-layout-btns[data-layout-id="' + data.id_layout + '"]').find('.disable-layout');
|
||
var jxbtns_enable = $('.jxlist-layout-btns[data-layout-id="' + data.id_layout + '"]').find('.use-layout');
|
||
var jxlist = $('.jxml-layouts-list[data-list-id="' + data.hook_name + '"]');
|
||
var jxlistgroup = $('.jxlist-group-item[data-layout-id="' + data.id_layout + '"]');
|
||
if (response.type == 'all') {
|
||
jxbtns_disable.removeClass('hidden');
|
||
jxbtns_enable.addClass('hidden');
|
||
jxlist.find('i.icon-star.visible').addClass('hidden');
|
||
$('.jxlist-group-item[data-layout-id="' + data.id_layout + '"]').find('i.icon-star').removeClass('hidden').addClass('visible');
|
||
} else if (response.type == 'sub') {
|
||
jxbtns_disable.removeClass('hidden');
|
||
jxbtns_enable.addClass('hidden');
|
||
jxlistgroup.find('i.icon-star-half-empty').removeClass('hidden').addClass('visible');
|
||
jxlistgroup.find('i.icon-star').removeClass('visible').addClass('hidden');
|
||
} else if (response.type == 'clear') {
|
||
jxlistgroup.find('i.icon-star-half-empty').removeClass('visible').addClass('hidden');
|
||
}
|
||
showSuccessMessage(response.message);
|
||
jxml.ajax.optimizeMessage();
|
||
} else {
|
||
showErrorMessage(response.message);
|
||
}
|
||
},
|
||
disableLayout : function(id_layout) {
|
||
data = {
|
||
action : 'disableLayout',
|
||
id_layout : id_layout
|
||
};
|
||
this.request(data, this.disableLayoutSuccess);
|
||
},
|
||
disableLayoutSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
$('.jxlist-layout-btns[data-layout-id="' + data.id_layout + '"]').find('.disable-layout').addClass('hidden');
|
||
$('.jxlist-layout-btns[data-layout-id="' + data.id_layout + '"]').find('.use-layout').removeClass('hidden');
|
||
$('.jxlist-group-item[data-layout-id="' + data.id_layout + '"]').find('i').addClass('hidden');
|
||
showSuccessMessage(response.message);
|
||
jxml.ajax.optimizeMessage();
|
||
} else {
|
||
showErrorMessage(response.message);
|
||
}
|
||
},
|
||
renameLayout : function(id_layout, layout_name) {
|
||
data = {
|
||
action : 'renameLayout',
|
||
id_layout : id_layout,
|
||
layout_name : layout_name
|
||
};
|
||
this.request(data, this.renameLayoutSuccess);
|
||
},
|
||
renameLayoutSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
$.fancybox.close();
|
||
$('.jxlist-group li[data-layout-id="' + data.id_layout + '"]').parent().prev('button').text(data.layout_name);
|
||
$('.jxmegalayout-admin[data-layout-id="' + data.id_layout + '"]').find('.jxmlmegalayout-layout-name').text(data.layout_name);
|
||
$('.jxlist-group li[data-layout-id="' + data.id_layout + '"]').find('i').each(function() {
|
||
var jxml_active_icon_class = $(this).attr('class');
|
||
$('.jxlist-group li[data-layout-id="' + data.id_layout + '"]').children('a').html(data.layout_name + '<i class="' + jxml_active_icon_class + '"></i>');
|
||
});
|
||
showSuccessMessage(response.message);
|
||
} else {
|
||
if (response.type != 'popup') {
|
||
$.fancybox.close();
|
||
showErrorMessage(response.message);
|
||
} else {
|
||
$('.fancybox-inner .popup-btns').find('p.alert').remove();
|
||
$('.fancybox-inner .popup-btns').prepend('<p class="alert alert-danger text-left">' + response.message + '</p>');
|
||
}
|
||
}
|
||
},
|
||
getLayoutRenameConfirmation : function(id_layout) {
|
||
data = {
|
||
action : 'getLayoutRenameConfirmation',
|
||
id_layout : id_layout
|
||
};
|
||
this.request(data, this.getLayoutRenameConfirmationSuccess);
|
||
},
|
||
getLayoutRenameConfirmationSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
fancyBoxOpen('message', '', '', response.message);
|
||
} else {
|
||
showErrorMessage(response.message);
|
||
}
|
||
},
|
||
removeLayout : function(id_layout, hook_name) {
|
||
data = {
|
||
action : 'removeLayout',
|
||
id_layout : id_layout,
|
||
hook_name : hook_name
|
||
};
|
||
this.request(data, this.removeLayoutSuccess);
|
||
},
|
||
removeLayoutSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
jxml_hook_layout_list = $('.jxlist-group[data-list-id="' + data.hook_name + '"]');
|
||
$('.jxlist-group li[data-layout-id="' + data.id_layout + '"]').remove();
|
||
$('.jxmegalayout-admin[data-layout-id="' + data.id_layout + '"]').remove();
|
||
$('.jxlist-group[data-list-id="' + data.hook_name + '"] li').eq(0).trigger('click');
|
||
if (jxml_hook_layout_list.find('li').length < 1) {
|
||
jxml_hook_layout_list.prev('button').remove();
|
||
jxml_hook_layout_list.closest('.jxmegalayout-lsettins').find('.jxlist-layout-btns').remove();
|
||
jxml_hook_layout_list.closest('.jxmegalayout-lsettins').find('.btn-group').remove();
|
||
jxml_hook_layout_list.closest('.jxmegalayout-lsettins').find('.jxmegalayout-availible-pages').remove();
|
||
}
|
||
showSuccessMessage(response.message);
|
||
jxml.ajax.optimizeMessage();
|
||
} else {
|
||
showErrorMessage(response.message);
|
||
}
|
||
},
|
||
getLayoutRemoveConfirmation : function(id_layout) {
|
||
data = {
|
||
action : 'getLayoutRemoveConfirmation',
|
||
id_layout : id_layout
|
||
};
|
||
this.request(data, this.getLayoutRemoveConfirmationSuccess);
|
||
},
|
||
getLayoutRemoveConfirmationSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
fancyBoxOpen('message', '', '', response.message)
|
||
} else {
|
||
showErrorMessage(response.message);
|
||
}
|
||
},
|
||
loadLayoutContent : function(elem) {
|
||
jxml_layout_container = elem.closest('.tab-pane').find('.layout-container');
|
||
jxml_layout_container.html('');
|
||
jxml_layout_container.append('<p class="loading col-xs-12">' + jxml_loading_text + '</p>');
|
||
data = {
|
||
action : 'loadLayoutContent',
|
||
id_layout : elem.attr('data-layout-id')
|
||
};
|
||
this.request(data, this.loadLayoutContentSuccess);
|
||
},
|
||
loadLayoutContentSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
jxml_layout_container.append(response.layout);
|
||
jxml_layout_container.prev('.jxmegalayout-lsettins').find('.jxlist-layout-buttons').html(response.layout_buttons);
|
||
jxml_layout_container.find('p.loading').remove();
|
||
$('.jxml-layouts-list').removeClass('loading');
|
||
jxml.sortInit();
|
||
jxml.tooltipInit();
|
||
jxml.multiselectInit();
|
||
} else {
|
||
showErrorMessage(response.message);
|
||
}
|
||
},
|
||
addLayout : function(elem, layout_name) {
|
||
hook_name = elem.attr('data-hook-name');
|
||
data = {
|
||
action : 'addLayout',
|
||
hook_name : hook_name,
|
||
layout_name : layout_name
|
||
};
|
||
this.request(data, this.addLayoutSuccess);
|
||
},
|
||
addLayoutSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
$.fancybox.close();
|
||
if ($('.jxlist-group[data-list-id="' + data.hook_name + '"] li').length < 1) {
|
||
$('.jxlist-group[data-list-id="' + data.hook_name + '"]').before('<button class="btn btn-default' + ' dropdown-toggle" type="button" id="dropdownMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">' + data.layout_name + '</button>');
|
||
}
|
||
$('.jxlist-group[data-list-id="' + data.hook_name + '"]').append('<li data-layout-id="' + response.id_layout + '" class="jxlist-group-item"><a href="#">' + data.layout_name + '<i class="icon-check hidden pull-right"></i></a></li>');
|
||
$('.jxlist-group li[data-layout-id="' + response.id_layout + '"]').trigger('click');
|
||
showSuccessMessage(response.message);
|
||
} else {
|
||
if (response.type != 'popup') {
|
||
$.fancybox.close();
|
||
showErrorMessage(response.message);
|
||
} else {
|
||
$('.fancybox-inner .popup-btns').find('p.alert').remove();
|
||
$('.fancybox-inner .popup-btns').prepend('<p class="alert alert-danger text-left">' + response.message + '</p>');
|
||
}
|
||
}
|
||
},
|
||
addLayoutForm : function(elem) {
|
||
hook_name = elem.attr('data-hook-name');
|
||
data = {
|
||
action : 'addLayoutForm',
|
||
hook_name : hook_name
|
||
};
|
||
this.request(data, this.addLayoutFormSuccess);
|
||
},
|
||
addLayoutFormSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
fancyBoxOpen('message', '', '', response.response_msg);
|
||
}
|
||
},
|
||
loadExtraContent : function(elem) {
|
||
$('#extra_content_layout').append('<span class="ajax_running-1"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
item_type = elem.context.dataset.contentType;
|
||
data = {
|
||
action : 'loadExtraContent',
|
||
item_type : item_type
|
||
};
|
||
|
||
if (elem.context.dataset.contentId != undefined && elem.context.dataset.contentId) {
|
||
data['id_item'] = elem.context.dataset.contentId;
|
||
}
|
||
|
||
this.request(data, this.loadExtraContentSuccess);
|
||
},
|
||
loadExtraContentSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
jxml.ajax.refreshExtraContentContainer(response.content);
|
||
}
|
||
},
|
||
extraContentReturnHome: function() {
|
||
$('#extra_content_layout').append('<span class="ajax_running-1"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
data = {
|
||
action : 'loadTool',
|
||
tool_name : 'extra_content'
|
||
};
|
||
|
||
this.request(data, this.extraContentReturnHomeSuccess);
|
||
},
|
||
extraContentReturnHomeSuccess: function(response) {
|
||
if (response.status == 'true') {
|
||
jxml.ajax.refreshExtraContentContainer(response.rawData);
|
||
}
|
||
},
|
||
loadThemesContent : function(elem) {
|
||
$('#theme_child_layout').append('<span class="ajax_running-1"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
parent_theme = elem.context.dataset.themeName;
|
||
child_theme = elem.context.dataset.childThemeName;
|
||
theme_action = elem.context.dataset.action;
|
||
data = {
|
||
action : 'loadThemesContent',
|
||
theme : parent_theme,
|
||
child_theme: child_theme,
|
||
theme_action: theme_action
|
||
};
|
||
|
||
this.request(data, this.loadThemesContentSuccess);
|
||
},
|
||
loadThemesContentSuccess : function(response, data, elem) {
|
||
if (response.status) {
|
||
jxml.ajax.refreshThemeContainer(response.content);
|
||
}
|
||
},
|
||
refreshThemeContainer : function(content) {
|
||
var themeContainer = $('#theme_child_layout');
|
||
themeContainer.html(content);
|
||
themeContainer.find('.ajax_running-1').remove();
|
||
},
|
||
refreshExtraContentContainer : function(content) {
|
||
var extraContentContainer = $('#extra_content_layout');
|
||
extraContentContainer.html(content);
|
||
extraContentContainer.find('.ajax_running-1').remove();
|
||
},
|
||
saveExtraContent : function(elem) {
|
||
$('#theme_child_layout').append('<span class="ajax_running-1"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
var form = elem.closest('form');
|
||
var contentType = elem.attr('name');
|
||
if (contentType == 'updateBanner' || contentType == 'updateSlider') {
|
||
var data = new FormData(form.get(0));
|
||
data.append('action', 'saveExtraItem');
|
||
// add data from textarea fields which use tinyMCE
|
||
form.find('textarea').each(function() {
|
||
data.append($(this).attr('name'), tinyMCE.get($(this).attr('id')).getContent());
|
||
});
|
||
this.formDataRequest(data, this.saveExtraContentSuccess);
|
||
} else {
|
||
data = getFormElements(form);
|
||
data['action'] = 'saveExtraItem';
|
||
this.request(data, this.saveExtraContentSuccess);
|
||
}
|
||
},
|
||
saveExtraContentSuccess : function(response, data, elem) {
|
||
if (response.status == 'invalid') {
|
||
jxml.ajax.invalidExtraContentMessage(response.content);
|
||
} else if (response.status == 'success') {
|
||
jxml.ajax.refreshExtraContentContainer(response.content);
|
||
} else {
|
||
jxml.ajax.refreshExtraContentContainer(response.content);
|
||
}
|
||
},
|
||
invalidExtraContentMessage : function(message) {
|
||
$('#extra_content_layout').find('.ajax_running-1').remove();
|
||
$('#extra_content_layout #configuration_form').find('.errors-box').remove();
|
||
$('#extra_content_layout #configuration_form .form-wrapper').prepend(message);
|
||
},
|
||
removeExtraContent : function(elem) {
|
||
$('#extra_content_layout').append('<span class="ajax_running-1"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
item_type = elem.context.dataset.contentType;
|
||
id_item = elem.context.dataset.contentId;
|
||
data = {
|
||
action : 'removeExtraItem',
|
||
item_type : item_type,
|
||
id_extra_item : id_item
|
||
};
|
||
|
||
this.request(data, this.removeExtraContentSuccess, elem);
|
||
},
|
||
removeExtraContentSuccess : function(response, data, elem) {
|
||
$('#extra_content_layout').find('.ajax_running-1').remove();
|
||
if (response.status == 'true') {
|
||
$('#extra_content_container').find('.errors-box').remove();
|
||
$('#extra_content_container .active').prepend(response.content.report);
|
||
if (response.content.status = 'success') {
|
||
elem.closest('li').remove();
|
||
}
|
||
}
|
||
},
|
||
exportExtraContent: function() {
|
||
$('#extra_content_layout').append('<span class="ajax_running-1"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
data = {
|
||
action : 'exportExtraContent'
|
||
};
|
||
|
||
this.request(data, this.exportExtraContentSuccess);
|
||
},
|
||
exportExtraContentSuccess : function(response) {
|
||
$('#extra_content_layout').find('.ajax_running-1').remove();
|
||
if (response.status) {
|
||
$('#extra_content_container').find('.errors-box').remove();
|
||
if (response.href) {
|
||
location.href = response.href;
|
||
}
|
||
}
|
||
},
|
||
importExtraContent: function() {
|
||
$('#extra_content_layout').append('<span class="ajax_running-1"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
data = {
|
||
action : 'importExtraContentForm'
|
||
};
|
||
|
||
this.request(data, this.importExtraContentFormSuccess);
|
||
},
|
||
importExtraContentFormSuccess : function(response) {
|
||
$('#extra_content_layout').find('.ajax_running-1').remove();
|
||
if (response.status) {
|
||
jxml.ajax.refreshExtraContentContainer(response.content);
|
||
}
|
||
},
|
||
saveBuilderTheme : function(elem) {
|
||
$('#theme_child_layout').append('<span class="ajax_running-1"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
var layouts = {};
|
||
$('#theme-builder-layouts input[type="checkbox"]:checked').each(function() {
|
||
layouts[$(this).attr('name')] = { 'name' : $(this).val(), 'version' : $(this).attr('data-layout-version')};
|
||
});
|
||
|
||
data = {
|
||
action: 'saveBuilderTheme',
|
||
parent_theme: elem.context.dataset.themeName,
|
||
theme_name: $('#theme_child_layout input[name="theme_name"]').val(),
|
||
theme_public_name: $('#theme_child_layout input[name="theme_public_name"]').val(),
|
||
layouts: layouts
|
||
};
|
||
|
||
this.request(data, this.saveBuilderThemeSuccess);
|
||
},
|
||
saveBuilderThemeSuccess : function(response, data, elem) {
|
||
if (response.status) {
|
||
jxml.ajax.refreshThemeContainer(response.content);
|
||
} else {
|
||
jxml.ajax.invalidBuilderThemeMessage(response.content);
|
||
}
|
||
},
|
||
invalidBuilderThemeMessage : function(message) {
|
||
$('#theme_child_layout').find('.ajax_running-1').remove();
|
||
$('#theme_child_layout').find('.module_error').closest('.bootstrap').remove();
|
||
$('#theme_child_layout .form-wrapper').prepend(message);
|
||
},
|
||
removeBuilderTheme : function(elem) {
|
||
$('#theme_child_layout').append('<span class="ajax_running-1"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
theme = elem.context.dataset.themeName;
|
||
parent_theme = elem.context.dataset.parentTheme;
|
||
data = {
|
||
action : 'removeBuilderTheme',
|
||
theme_name : theme,
|
||
parent_theme : parent_theme
|
||
};
|
||
this.request(data, this.removeBuilderThemeSuccess, elem);
|
||
},
|
||
removeBuilderThemeSuccess : function(response, data, elem) {
|
||
$('#theme_child_layout').find('.ajax_running-1').remove();
|
||
if (response.status) {
|
||
jxml.ajax.refreshThemeContainer(response.content);
|
||
} else {
|
||
jxml.ajax.invalidBuilderThemeMessage(response.content);
|
||
}
|
||
},
|
||
updateParentTheme: function(elem) {
|
||
$('#theme_child_layout').append('<span class="ajax_running-1"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
parent_theme = elem.context.dataset.themeName;
|
||
data = {
|
||
action : 'updateParentTheme',
|
||
parent_theme : parent_theme
|
||
};
|
||
this.request(data, this.updateParentThemeSuccess, elem);
|
||
},
|
||
updateParentThemeSuccess : function(response, data, elem) {
|
||
$('#theme_child_layout').find('.ajax_running-1').remove();
|
||
if (response.status) {
|
||
$('#update-parent-theme').remove();
|
||
$('#theme-update-message').html(response.content);
|
||
} else {
|
||
$('#theme-update-message').html(response.content);
|
||
}
|
||
},
|
||
updateParentThemeLibrary: function(elem) {
|
||
$('#theme_child_layout').append('<span class="ajax_running-1"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
parent_theme = elem.context.dataset.themeName;
|
||
data = {
|
||
action : 'updateParentThemeLibrary',
|
||
parent_theme : parent_theme
|
||
};
|
||
this.request(data, this.updateParentThemeLibrarySuccess, elem);
|
||
},
|
||
updateParentThemeLibrarySuccess : function(response, data, elem) {
|
||
$('#theme_child_layout').find('.ajax_running-1').remove();
|
||
if (response.status) {
|
||
$('#theme-update-message').html(response.content);
|
||
$('#update-parent-theme-library').remove();
|
||
} else {
|
||
$('#theme-update-message').html(response.content);
|
||
}
|
||
},
|
||
deleteLayoutItem : function(elem) {
|
||
id_item = elem.attr('data-id');
|
||
jxml_itemsdel_ids = [id_item];
|
||
$(elem).find('div').each(function() {
|
||
jxml_itemsdel_ids.push($(this).attr('data-id'));
|
||
});
|
||
data = {
|
||
action : 'deleteLayoutItem',
|
||
id_item : jxml_itemsdel_ids
|
||
};
|
||
this.request(data, this.deleteLayoutItemSuccess);
|
||
},
|
||
deleteLayoutItemSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
$('div[data-id="' + data.id_item[0] + '"]').remove();
|
||
showSuccessMessage(response.response_msg);
|
||
jxml.ajax.optimizeMessage();
|
||
return;
|
||
}
|
||
showErrorMessage(response.response_msg);
|
||
},
|
||
clearItemStyles : function(elem, id_unique) {
|
||
elem.find('select, input:not([type="hidden"])').val('').attr('style', '');
|
||
data = {
|
||
action : 'clearItemStyles',
|
||
id_unique : id_unique
|
||
};
|
||
this.request(data, this.clearItemStylesSuccess, elem, this.clearItemStylesError);
|
||
},
|
||
clearItemStylesSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
elem.find('.alert').remove();
|
||
elem.prepend('<p class="alert alert-success">' + response.message + '<button class="close" aria-label="close" data-dismiss="alert" type="button">×</button></p>');
|
||
return;
|
||
}
|
||
showErrorMessage(response.response_msg);
|
||
},
|
||
clearItemStylesError : function(response, data, elem) {
|
||
elem.find('.alert').remove();
|
||
},
|
||
saveItemStyles : function(elem, id_unique, data) {
|
||
data = {
|
||
action : 'saveItemStyles',
|
||
id_unique : id_unique,
|
||
data : data
|
||
};
|
||
this.request(data, this.saveItemStylesSuccess, elem, this.saveItemStylesError);
|
||
},
|
||
saveItemStylesSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
elem.find('.alert').remove();
|
||
elem.prepend('<p class="alert alert-success">' + response.message + '<button class="close" aria-label="close" data-dismiss="alert" type="button">×</button></p>');
|
||
return;
|
||
}
|
||
showErrorMessage(response.response_msg);
|
||
},
|
||
saveItemStylesError : function(response, data, elem) {
|
||
elem.find('.alert').remove();
|
||
},
|
||
getItemStyles : function(id_unique) {
|
||
data = {
|
||
action : 'getItemStyles',
|
||
id_unique : id_unique
|
||
};
|
||
this.request(data, this.getItemStylesSuccess);
|
||
},
|
||
getItemStylesSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
fancyBoxOpen('message', '', '', response.content);
|
||
$('.jxml_color_input').mColorPicker();
|
||
jxml_jxp_img = $('.jxpanel-content').find('input[id="flmbgimg"]').val();
|
||
if (jxml_jxp_img.length) {
|
||
jxml_jxp_img = jxml_jxp_img.substring(jxml_jxp_img.indexOf('/img/cms') + 1);
|
||
$('input[name="background-image"]').val('url(../../../../../' + jxml_jxp_img + ')');
|
||
$('.jxpanel-content').find('input[id="flmbgimg"]').val('');
|
||
}
|
||
return;
|
||
}
|
||
},
|
||
updateSortOrders : function(elem) {
|
||
jxml_itemsorder_ids = {};
|
||
elem.find('> div.sortable, > span > div.sortable').each(function() {
|
||
jxml_itemsorder_ids[$(this).attr('data-id')] = $(this).attr('data-sort-order');
|
||
});
|
||
data = {
|
||
action : 'updateLayoutItemsOrder',
|
||
data : jxml_itemsorder_ids
|
||
};
|
||
this.request(data, this.updateSortOrdersSuccess);
|
||
},
|
||
updateSortOrdersSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
showSuccessMessage(response.response_msg);
|
||
return;
|
||
}
|
||
showErrorMessage(response.response_msg);
|
||
},
|
||
saveLayoutItem : function(id_item, elem, type, type_class, specific_class, col, col_xs, col_sm, col_md, col_lg, col_xl, col_xxl, module_name, public_module_name, origin_hook, extra_css) {
|
||
type_class = type_class || '';
|
||
public_module_name = public_module_name || null;
|
||
jxml_edit_item = id_item;
|
||
id_parent = jxml.get.parentId(elem);
|
||
id_layout = elem.closest('.layout-container').find('input[name="jxml_id_layout"]').val();
|
||
sort_order = jxml.get.sortOrder(elem);
|
||
if (jxml_edit_item) {
|
||
sort_order = elem.attr('data-sort-order');
|
||
id_parent = elem.attr('data-parent-id');
|
||
}
|
||
|
||
if (typeof (specific_class) == 'undefined') {
|
||
specific_class = '';
|
||
}
|
||
itemData = {
|
||
'id_layout' : id_layout,
|
||
'id_parent' : id_parent,
|
||
'type' : type,
|
||
'sort_order' : sort_order,
|
||
'specific_class' : specific_class,
|
||
'col' : col,
|
||
'col_xs' : col_xs ? col_xs : '',
|
||
'col_sm' : col_sm,
|
||
'col_md' : col_md,
|
||
'col_lg' : col_lg,
|
||
'col_xl' : col_xl,
|
||
'col_xxl' : col_xxl,
|
||
'module_name' : module_name,
|
||
'origin_hook' : origin_hook,
|
||
'extra_css' : extra_css
|
||
};
|
||
data = {
|
||
action : 'updateLayoutItem',
|
||
id_item : id_item,
|
||
data : itemData
|
||
};
|
||
this.request(data, this.saveLayoutItemSuccess, elem);
|
||
},
|
||
saveLayoutItemSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
if (!jxml_edit_item) {
|
||
if (!elem.hasClass('min-level')) {
|
||
elem.closest('article').append(response.content);
|
||
} else {
|
||
elem.closest('article').find('.add-buttons').before(response.content);
|
||
}
|
||
jxml.sortInit();
|
||
jxml.tooltipInit();
|
||
jxml.multiselectInit();
|
||
}
|
||
jxml.ajax.optimizeMessage();
|
||
showSuccessMessage(response.response_msg);
|
||
return;
|
||
}
|
||
showErrorMessage(response.response_msg);
|
||
},
|
||
optionOptimize : function(elem) {
|
||
data = {
|
||
action : 'updateOptionOptimize',
|
||
};
|
||
elem.append('<span class="ajax_running"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
this.request(data, this.optionOptimizeSuccess, elem);
|
||
},
|
||
optionOptimizeSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
showSuccessMessage(response.response_msg);
|
||
elem.find('.ajax_running').remove();
|
||
$('.alertMessage').addClass('hidden');
|
||
JXMEGALAYOUT_OPTIMIZE = true;
|
||
}
|
||
},
|
||
optionDeoptimize : function(elem) {
|
||
data = {
|
||
action : 'updateoptionDeoptimize',
|
||
};
|
||
elem.append('<span class="ajax_running"><i class="icon-refresh icon-spin icon-fw"></i></span>');
|
||
this.request(data, this.optionDeoptimizeSuccess, elem);
|
||
},
|
||
optionDeoptimizeSuccess : function(response, data, elem) {
|
||
if (response.status == 'true') {
|
||
showSuccessMessage(response.response_msg);
|
||
elem.find('.ajax_running').remove();
|
||
if (JXMEGALAYOUT_SHOW_MESSAGES) {
|
||
$('.alertMessage').removeClass('hidden');
|
||
}
|
||
JXMEGALAYOUT_OPTIMIZE = false;
|
||
}
|
||
}
|
||
},
|
||
events : {
|
||
docClick : function(elemSelector, innerFunc) {
|
||
$(document).on('click', elemSelector, function(e) {
|
||
innerFunc($(this));
|
||
e.preventDefault();
|
||
});
|
||
},
|
||
loadExtraContent : function() {
|
||
this.docClick('#add_extra_content, #extra-content-buttons ul li a, #extra_content_container a.edit-item', function(elem) {
|
||
setTimeout(function() {
|
||
jxml.ajax.loadExtraContent(elem)
|
||
}, 100);
|
||
return false;
|
||
});
|
||
},
|
||
extraContentReturnHome : function() {
|
||
this.docClick('#extra_content_layout #configuration_form_cancel_btn, a.return-btn, button.return-btn', function(elem) {
|
||
setTimeout(function() {
|
||
jxml.ajax.extraContentReturnHome(elem)
|
||
}, 100);
|
||
return false;
|
||
});
|
||
},
|
||
loadThemesContent : function() {
|
||
this.docClick('#manage-theme, .theme-builder-process', function(elem) {
|
||
setTimeout(function() {
|
||
jxml.ajax.loadThemesContent(elem)
|
||
}, 100);
|
||
return false;
|
||
});
|
||
},
|
||
saveExtraContent : function() {
|
||
this.docClick('#extra_content_layout #configuration_form_submit_btn', function(elem) {
|
||
setTimeout(function() {
|
||
jxml.ajax.saveExtraContent(elem)
|
||
}, 100);
|
||
});
|
||
},
|
||
removeExtraContent : function() {
|
||
this.docClick('#extra_content_container a.remove-extra-item', function(elem) {
|
||
setTimeout(function() {
|
||
jxml.ajax.removeExtraContent(elem)
|
||
}, 100);
|
||
return false;
|
||
});
|
||
},
|
||
exportExtraContent : function() {
|
||
this.docClick('#export_extra_content', function(elem) {
|
||
setTimeout(function() {
|
||
jxml.ajax.exportExtraContent(elem)
|
||
}, 100);
|
||
return false;
|
||
});
|
||
},
|
||
importExtraContent : function() {
|
||
this.docClick('#import_extra_content', function(elem) {
|
||
setTimeout(function() {
|
||
jxml.ajax.importExtraContent(elem)
|
||
}, 100);
|
||
return false;
|
||
});
|
||
},
|
||
saveBuilderTheme: function() {
|
||
this.docClick('#save-builder-theme', function(elem) {
|
||
setTimeout(function() {
|
||
jxml.ajax.saveBuilderTheme(elem)
|
||
}, 100);
|
||
});
|
||
},
|
||
removeBuilderTheme: function() {
|
||
this.docClick('#remove-builder-theme', function(elem) {
|
||
setTimeout(function() {
|
||
jxml.ajax.removeBuilderTheme(elem)
|
||
}, 100);
|
||
});
|
||
},
|
||
updateParentTheme: function() {
|
||
this.docClick('#update-parent-theme', function(elem) {
|
||
$('#theme-update-message').html('');
|
||
setTimeout(function() {
|
||
jxml.ajax.updateParentTheme(elem)
|
||
}, 100);
|
||
});
|
||
},
|
||
updateParentThemeLibrary: function() {
|
||
this.docClick('#update-parent-theme-library', function(elem) {
|
||
$('#theme-update-message').html('');
|
||
setTimeout(function() {
|
||
jxml.ajax.updateParentThemeLibrary(elem)
|
||
}, 100);
|
||
});
|
||
},
|
||
addLayoutForm : function() {
|
||
this.docClick('.add_layout', function(elem) {
|
||
jxml.ajax.addLayoutForm(elem);
|
||
});
|
||
},
|
||
addLayout : function() {
|
||
this.docClick('.save-layout', function(elem) {
|
||
layout_name = $('input[name="layout_name"]').attr('value');
|
||
if (jxml.validate.layoutName(layout_name)) {
|
||
jxml.ajax.addLayout(elem, layout_name);
|
||
} else {
|
||
error_container = elem.parent('div');
|
||
error_container.find('p.alert').remove();
|
||
error_container.prepend('<p class="alert alert-warning text-left">' + jxml_layout_validate_error_text + '</p>');
|
||
}
|
||
});
|
||
},
|
||
loadLayoutContent : function() {
|
||
this.docClick('.jxml-layouts-list .jxlist-group-item:not(.active)', function(elem) {
|
||
parent_element = elem.parent();
|
||
parent_element.find('li').removeClass('active');
|
||
parent_element.addClass('loading');
|
||
elem.addClass('active');
|
||
parent_element.prev('button').text(elem.find('a').text());
|
||
jxml.ajax.loadLayoutContent(elem);
|
||
});
|
||
},
|
||
addModuleConfirmation : function() {
|
||
this.docClick('.add-module', function(elem) {
|
||
parentElem = elem.parents('.jxpanel-content');
|
||
$('.add-module').removeClass('active');
|
||
elem.addClass('active');
|
||
jxml.ajax.addModuleConfirmation(parentElem);
|
||
});
|
||
},
|
||
addExtraContentConfirmation : function() {
|
||
this.docClick('.add-extra-content', function(elem) {
|
||
parentElem = elem.parents('.jxpanel-content');
|
||
$('.add-extra-content').removeClass('active');
|
||
elem.addClass('active');
|
||
jxml.ajax.addExtraContentConfirmation(parentElem);
|
||
});
|
||
},
|
||
deleteLayoutItem : function() {
|
||
this.docClick('.remove-item', function(elem) {
|
||
jxml.ajax.deleteLayoutItem(elem.closest('div:not(.button-container)'));
|
||
});
|
||
},
|
||
disableLayout : function() {
|
||
this.docClick('.disable-layout', function(elem) {
|
||
var id_layout = elem.attr('data-layout-id');
|
||
jxml.ajax.disableLayout(id_layout);
|
||
});
|
||
},
|
||
enableLayout : function() {
|
||
this.docClick('.use-layout', function(elem) {
|
||
var hook_name = elem.parents('.jxpanel-content').find('input[name="jxml_hook_name"]').val();
|
||
var id_layout = elem.attr('data-layout-id');
|
||
var pages = elem.parents('.jxpanel-content').find('select[name="jxmegalayout-availible-pages"]').val();
|
||
jxml.ajax.enableLayout(hook_name, id_layout, pages, 1);
|
||
});
|
||
},
|
||
cleanImage : function() {
|
||
this.docClick('a.clear-image', function(elem) {
|
||
elem.parents('.input-group').find('input').val('');
|
||
});
|
||
},
|
||
cleanImageNone : function() {
|
||
this.docClick('a.clear-image-none', function(elem) {
|
||
elem.parents('.input-group').find('input').val('none');
|
||
});
|
||
},
|
||
cleanItemStyles : function() {
|
||
this.docClick('.clear-styles', function(elem) {
|
||
elem = elem.parents('.form-wrapper');
|
||
element_id_unique = elem.find('input[name="id_unique"]').val();
|
||
jxml.ajax.clearItemStyles(elem, element_id_unique);
|
||
});
|
||
},
|
||
saveItemStyles : function() {
|
||
this.docClick('.save-styles', function(elem) {
|
||
jxml_item_styles = {};
|
||
elem = elem.parents('.form-wrapper');
|
||
element_id_unique = elem.find('input[name="id_unique"]').val();
|
||
elem.find('select, input:not([name="id_unique"])').each(function(e) {
|
||
if (jxml_style_value = $(this).val()) {
|
||
if ($(this).attr('type') == 'radio') {
|
||
if (typeof($(this).attr('checked')) != 'undefined') {
|
||
jxml_item_styles[$(this).attr('name')] = jxml_style_value;
|
||
}
|
||
} else {
|
||
jxml_item_styles[$(this).attr('name')] = jxml_style_value;
|
||
}
|
||
}
|
||
});
|
||
jxml.ajax.saveItemStyles(elem, element_id_unique, jxml_item_styles);
|
||
});
|
||
},
|
||
editItemStyles : function() {
|
||
this.docClick('.edit-styles', function(elem) {
|
||
$('.edit-styles').removeClass('active');
|
||
elem.addClass('active');
|
||
element_id_unique = elem.closest('div:not(.button-container)').attr('data-id-unique');
|
||
jxml.ajax.getItemStyles(element_id_unique);
|
||
});
|
||
},
|
||
getLayoutRemoveConfirmation : function() {
|
||
this.docClick('.remove-layout', function(elem) {
|
||
jxml.ajax.getLayoutRemoveConfirmation(elem.attr('data-layout-id'));
|
||
});
|
||
},
|
||
removeLayout : function() {
|
||
this.docClick('.remove-layout-confirm', function(elem) {
|
||
hook_name = $('.nav.nav-tabs li.active a.layouts-tab').attr('data-tab-name');
|
||
jxml.ajax.removeLayout(elem.attr('data-layout-id'), hook_name);
|
||
$.fancybox.close();
|
||
});
|
||
},
|
||
getLayoutRenameConfirmation : function() {
|
||
this.docClick('.edit-layout', function(elem) {
|
||
jxml.ajax.getLayoutRenameConfirmation(elem.attr('data-layout-id'));
|
||
});
|
||
},
|
||
renameLayout : function() {
|
||
this.docClick('.edit-layout-confirm', function(elem) {
|
||
layout_name = elem.closest('.jxml-popup').find('input[name="layout_name"]').attr('value');
|
||
if (jxml.validate.layoutName(layout_name)) {
|
||
jxml.ajax.renameLayout(elem.attr('data-layout-id'), layout_name);
|
||
} else {
|
||
error_container = elem.parent('div');
|
||
error_container.find('p.alert').remove();
|
||
error_container.prepend('<p class="alert alert-warning text-left">' + jxml_layout_validate_error_text + '</p>');
|
||
}
|
||
});
|
||
},
|
||
addWrapper : function() {
|
||
this.docClick('.add-wrapper', function(elem) {
|
||
jxml.layout.add.wrapper(elem);
|
||
});
|
||
},
|
||
editWrapper : function() {
|
||
this.docClick('.edit-wrapper-confirm', function(elem) {
|
||
parentElem = elem.closest('.jxml-popup');
|
||
parentElem.find('.alert').remove();
|
||
specific_class = parentElem.find('input[name="wrapper-classes"]').val().trim();
|
||
if (error = jxml.validate.spClasses(specific_class)) {
|
||
parentElem.prepend(error);
|
||
return;
|
||
}
|
||
jxml.layout.edit.wrapper($('.edit-wrapper.active').closest('div:not(.button-container)'), specific_class);
|
||
$.fancybox.close($('.edit-wrapper').removeClass('active'));
|
||
});
|
||
},
|
||
editWrapperConfirmation : function() {
|
||
this.docClick('.edit-wrapper', function(elem) {
|
||
$('.edit-wrapper').removeClass('active');
|
||
elem.addClass('active');
|
||
fancyBoxOpen('wrapper', elem.closest('div:not(.button-container)').attr('data-specific-class'));
|
||
});
|
||
},
|
||
addRow : function() {
|
||
this.docClick('.add-row', function(elem) {
|
||
jxml.layout.add.row(elem);
|
||
});
|
||
},
|
||
editRowConfirmation : function() {
|
||
this.docClick('.edit-row', function(elem) {
|
||
$('.edit-row').removeClass('active');
|
||
elem.addClass('active');
|
||
fancyBoxOpen('row', elem.closest('div:not(.button-container)').attr('data-specific-class'));
|
||
});
|
||
},
|
||
editRow : function() {
|
||
this.docClick('.edit-row-confirm', function(elem) {
|
||
parentElem = elem.closest('.jxml-popup');
|
||
parentElem.find('.alert').remove();
|
||
specific_class = parentElem.find('input[name="row-classes"]').val().trim();
|
||
if (error = jxml.validate.spClasses(specific_class)) {
|
||
parentElem.prepend(error);
|
||
return;
|
||
}
|
||
jxml.layout.edit.row($('.edit-row.active').closest('div:not(.button-container)'), specific_class);
|
||
$.fancybox.close($('.edit-row').removeClass('active'));
|
||
});
|
||
},
|
||
addColumnConfirmation : function() {
|
||
this.docClick('.add-column', function(elem) {
|
||
$('.add-column').removeClass('active');
|
||
elem.addClass('active');
|
||
fancyBoxOpen('col', elem);
|
||
});
|
||
},
|
||
editColumnConfirmation : function() {
|
||
this.docClick('.edit-column', function(elem) {
|
||
$('.edit-column').removeClass('active');
|
||
elem.addClass('active');
|
||
fancyBoxOpen('col', elem.closest('div:not(.button-container)'), 'edit');
|
||
});
|
||
},
|
||
addColumn : function() {
|
||
this.docClick('.add-column-confirm', function(elem) {
|
||
parentElem = elem.closest('.jxml-popup');
|
||
specific_class = parentElem.find('input[name="col-specific-class"]').val().trim();
|
||
c_ = parentElem.find('select[name="jxml-cols-col"]').val();
|
||
xs_ = parentElem.find('select[name="jxml-cols-col-xs"]').val();
|
||
sm_ = parentElem.find('select[name="jxml-cols-col-sm"]').val();
|
||
md_ = parentElem.find('select[name="jxml-cols-col-md"]').val();
|
||
lg_ = parentElem.find('select[name="jxml-cols-col-lg"]').val();
|
||
xl_ = parentElem.find('select[name="jxml-cols-col-xl"]').val();
|
||
xxl_ = parentElem.find('select[name="jxml-cols-col-xxl"]').val();
|
||
if (error = jxml.validate.spClasses(specific_class)) {
|
||
parentElem.prepend(error);
|
||
return;
|
||
} else if (c_ == '' && xs_ == '' && sm_ == '' && md_ == '' && lg_ == '' && xl_ == '' && xxl_ == '') {
|
||
parentElem.prepend('<p class="alert alert-danger">' + jxml_cols_validate_error + '</p>');
|
||
return;
|
||
}
|
||
jxml.layout.add.col($('.add-column.active'), specific_class, c_, xs_, sm_, md_, lg_, xl_, xxl_);
|
||
$.fancybox.close($('.add-column').removeClass('active'));
|
||
});
|
||
},
|
||
editColumn : function() {
|
||
this.docClick('.edit-column-confirm', function(elem) {
|
||
parentElem = elem.closest('.jxml-popup');
|
||
specific_class = parentElem.find('input[name="col-specific-class"]').val().trim();
|
||
c_ = parentElem.find('select[name="jxml-cols-col"]').val();
|
||
xs_ = parentElem.find('select[name="jxml-cols-col-xs"]').val();
|
||
sm_ = parentElem.find('select[name="jxml-cols-col-sm"]').val();
|
||
md_ = parentElem.find('select[name="jxml-cols-col-md"]').val();
|
||
lg_ = parentElem.find('select[name="jxml-cols-col-lg"]').val();
|
||
xl_ = parentElem.find('select[name="jxml-cols-col-xl"]').val();
|
||
xxl_ = parentElem.find('select[name="jxml-cols-col-xxl"]').val();
|
||
if (error = jxml.validate.spClasses(specific_class)) {
|
||
parentElem.prepend(error);
|
||
return;
|
||
} else if (c_ == '' && xs_ == '' && sm_ == '' && md_ == '' && lg_ == '' && xl_ == '' && xxl_ == '') {
|
||
parentElem.prepend('<p class="alert alert-danger">' + jxml_cols_validate_error + '</p>');
|
||
return;
|
||
}
|
||
jxml.layout.edit.col($('.edit-column.active').closest('div:not(.button-container)'), specific_class, c_, xs_, sm_, md_, lg_, xl_, xxl_);
|
||
$.fancybox.close($('.edit-column').removeClass('active'));
|
||
});
|
||
},
|
||
addModule : function() {
|
||
this.docClick('.add-module-confirm', function(elem) {
|
||
parentElem = elem.closest('.jxml-popup');
|
||
specific_class = parentElem.find('input[name="module-classes"]').val().trim();
|
||
data_select_id = parentElem.find('select').attr('data-select-id');
|
||
module_name = parentElem.find('select[name="jxml_module_' + data_select_id + '"]').val();
|
||
public_module_name = parentElem.find('select[name="jxml_module_' + data_select_id + '"] option[value="' + module_name + '"]').text();
|
||
origin_hook = parentElem.find('select[name="jxml_module_' + data_select_id + '"] option[value="' + module_name + '"]:selected').attr('data-origin-hook');
|
||
if (error = jxml.validate.spClasses(specific_class)) {
|
||
parentElem.prepend(error);
|
||
return;
|
||
}
|
||
jxml.layout.add.module($('.add-module.active'), specific_class, module_name, public_module_name, origin_hook);
|
||
$.fancybox.close($('.add-module').removeClass('active'));
|
||
});
|
||
},
|
||
editModuleConfirmation : function() {
|
||
this.docClick('.edit-module', function(elem) {
|
||
$('.edit-module').removeClass('active');
|
||
elem.addClass('active');
|
||
var unique_id = elem.parents('div.module').attr('data-id-unique')
|
||
$.ajax({
|
||
type : 'POST',
|
||
url : jxml_theme_url + '&ajax',
|
||
headers : {"cache-control" : "no-cache"},
|
||
dataType : 'json',
|
||
async : false,
|
||
data : {
|
||
action : 'getCssClassesByUnique',
|
||
unique_id : unique_id
|
||
},
|
||
success : function(response) {
|
||
fancyBoxOpen('module', elem.closest('div:not(.button-container)').attr('data-specific-class'), 'edit', '', response.classes, response.active);
|
||
}
|
||
});
|
||
});
|
||
},
|
||
editModule : function() {
|
||
this.docClick('.edit-module-confirm', function(elem) {
|
||
parentElem = elem.closest('.jxml-popup');
|
||
var specific_class = parentElem.find('input[name="module-classes"]').val().trim();
|
||
if (error = jxml.validate.spClasses(specific_class)) {
|
||
parentElem.prepend(error);
|
||
return;
|
||
}
|
||
var extra_css = parentElem.find('select[name="module-css"]').val();
|
||
if (typeof(extra_css) == 'undefined') {
|
||
extra_css = '';
|
||
}
|
||
jxml.layout.edit.module($('.edit-module.active').closest('div:not(.button-container)'), specific_class, '', '', '', extra_css);
|
||
$.fancybox.close($('.edit-module').removeClass('active'));
|
||
});
|
||
},
|
||
addExtraContent : function() {
|
||
this.docClick('.add-extra-content-confirm', function(elem) {
|
||
parentElem.find('p.alert').remove();
|
||
parentElem = elem.closest('.jxml-popup');
|
||
var contentID = parseInt(parentElem.find('.extra-content-type-selector[name="'+parentElem.find('select[name="extra_content_type"]').val()+'"]').val());
|
||
specific_class = parentElem.find('input[name="extra-content-classes"]').val().trim();
|
||
module_name = parentElem.find('select[name="extra_content_type"]').val() + '-' + contentID;
|
||
if (error = jxml.validate.spClasses(specific_class)) {
|
||
parentElem.prepend(error);
|
||
return;
|
||
}
|
||
if (Number.isInteger(contentID) == false) {
|
||
parentElem.prepend('<p class="alert alert-danger">' + jxml_id_validate_error + '</p>');
|
||
return;
|
||
}
|
||
jxml.layout.add.content($('.add-extra-content.active'), specific_class, module_name, '', '');
|
||
$.fancybox.close($('.add-module').removeClass('active'));
|
||
});
|
||
},
|
||
editExtraContentConfirmation : function() {
|
||
this.docClick('.edit-extra-content', function(elem) {
|
||
$('.edit-extra-content').removeClass('active');
|
||
elem.addClass('active');
|
||
var unique_id = elem.parents('div.extra-content').attr('data-id-unique')
|
||
$.ajax({
|
||
type : 'POST',
|
||
url : jxml_theme_url + '&ajax',
|
||
headers : {"cache-control" : "no-cache"},
|
||
dataType : 'json',
|
||
async : false,
|
||
data : {
|
||
action : 'getCssClassesByUnique',
|
||
unique_id : unique_id
|
||
},
|
||
success : function(response) {
|
||
fancyBoxOpen('content', elem.closest('div:not(.button-container)').attr('data-specific-class'), 'edit', '', response.classes, response.active);
|
||
}
|
||
});
|
||
});
|
||
},
|
||
editExtraContent : function() {
|
||
this.docClick('.edit-extra-content-confirm', function(elem) {
|
||
parentElem = elem.closest('.jxml-popup');
|
||
var specific_class = parentElem.find('input[name="extra-content-classes"]').val().trim();
|
||
if (error = jxml.validate.spClasses(specific_class)) {
|
||
parentElem.prepend(error);
|
||
return;
|
||
}
|
||
jxml.layout.edit.content($('.edit-extra-content.active').closest('div:not(.button-container)'), specific_class, '', '', '', '');
|
||
$.fancybox.close($('.edit-extra-content').removeClass('active'));
|
||
});
|
||
},
|
||
selectSection : function() {
|
||
this.docClick('#jxml-sections > ul > li', function(elem) {
|
||
var section_name = elem.attr('data-section-name');
|
||
var section_text = elem.find('a').text();
|
||
elem.parents('.dropdown').find('button').text(section_text);
|
||
$('#jxml-sections > ul > li.active').removeClass('active');
|
||
elem.addClass('active');
|
||
$('.jxmegalayout-nav > li:not(.jxml-tools_tab , .jxml-sections)').hide();
|
||
$('.jxmegalayout-nav > li[data-section="' + section_name + '"]').show();
|
||
$('.jxmegalayout-nav > li[data-section="' + section_name + '"]:first a').trigger('click');
|
||
});
|
||
},
|
||
optionOptimize : function() {
|
||
this.docClick('#optionOptimize', function(elem) {
|
||
jxml.ajax.optionOptimize(elem);
|
||
});
|
||
},
|
||
optionDeoptimize : function() {
|
||
this.docClick('#optionDeoptimize', function(elem) {
|
||
jxml.ajax.optionDeoptimize(elem);
|
||
});
|
||
},
|
||
init : function() {
|
||
this.loadExtraContent();
|
||
this.extraContentReturnHome();
|
||
this.loadThemesContent();
|
||
this.saveExtraContent();
|
||
this.removeExtraContent();
|
||
this.exportExtraContent();
|
||
this.importExtraContent();
|
||
this.saveBuilderTheme();
|
||
this.removeBuilderTheme();
|
||
this.updateParentTheme();
|
||
this.updateParentThemeLibrary();
|
||
this.addLayoutForm();
|
||
this.addLayout();
|
||
this.loadLayoutContent();
|
||
this.deleteLayoutItem();
|
||
this.disableLayout();
|
||
this.enableLayout();
|
||
this.cleanImage();
|
||
this.cleanImageNone();
|
||
this.cleanItemStyles();
|
||
this.saveItemStyles();
|
||
this.editItemStyles();
|
||
this.getLayoutRemoveConfirmation();
|
||
this.removeLayout();
|
||
this.getLayoutRenameConfirmation();
|
||
this.renameLayout();
|
||
this.addWrapper();
|
||
this.editWrapper();
|
||
this.editWrapperConfirmation();
|
||
this.addRow();
|
||
this.editRowConfirmation();
|
||
this.editRow();
|
||
this.addColumn();
|
||
this.editColumn();
|
||
this.addColumnConfirmation();
|
||
this.editColumnConfirmation();
|
||
this.addModuleConfirmation();
|
||
this.addExtraContentConfirmation();
|
||
this.editModuleConfirmation();
|
||
this.editExtraContentConfirmation();
|
||
this.addModule();
|
||
this.addExtraContent();
|
||
this.editModule();
|
||
this.editExtraContent();
|
||
this.selectSection();
|
||
this.optionOptimize();
|
||
this.optionDeoptimize();
|
||
}
|
||
},
|
||
validate : {
|
||
layoutName : function(name) {
|
||
if ($.trim(name) == '') {
|
||
return false;
|
||
}
|
||
for (i = 0; i < name.length; i++) {
|
||
if (i == 0 && name[i] == '-') {
|
||
return false;
|
||
}
|
||
if (/^[a-zA-Z0-9-]*$/.test(name[i]) == false) {
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
},
|
||
styleClr : function(content) {
|
||
colorProhibitedString = "~!@$%^&*_+=`{}[]|\:;'<>/?-";
|
||
for (i = 0; i < colorProhibitedString.length; i++) {
|
||
if (content.indexOf(colorProhibitedString[i]) != -1) {
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
},
|
||
styleShdw : function(content) {
|
||
prohibitedString = "~!@$%^&*_+=`{}[]|\:;'<>/?";
|
||
for (i = 0; i < prohibitedString.length; i++) {
|
||
if (content.indexOf(prohibitedString[i]) != -1) {
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
},
|
||
styleDmns : function(content) {
|
||
if (content == 0) {
|
||
return true;
|
||
}
|
||
dimension = content.substr(content.length - 2);
|
||
value = content.replace(dimension, '');
|
||
if (!dimension || (dimension != 'px' && dimension != 'em') || !$.isNumeric(value) || !value) {
|
||
return false;
|
||
}
|
||
return true;
|
||
},
|
||
styleCheckErrors : function() {
|
||
stylesBtn = $('.save-styles');
|
||
jxmlStyleErrors = false;
|
||
$('.jxmegalayout-styles').find('input').each(function() {
|
||
if ($(this).hasClass('error')) {
|
||
jxmlStyleErrors = true;
|
||
}
|
||
});
|
||
if (jxmlStyleErrors) {
|
||
stylesBtn.addClass('disabled');
|
||
} else {
|
||
stylesBtn.removeClass('disabled');
|
||
}
|
||
},
|
||
styleInput : function(elem) {
|
||
jxml_input_content = elem.val();
|
||
jxml_input_type = elem.attr('data-type');
|
||
if ($.trim(jxml_input_content) == '') {
|
||
elem.val('');
|
||
result = true;
|
||
} else if (jxml_input_type == 'dmns') {
|
||
result = this.styleDmns(jxml_input_content);
|
||
} else if (jxml_input_type == 'shdw') {
|
||
result = this.styleShdw(jxml_input_content);
|
||
} else if (jxml_input_type == 'clr') {
|
||
result = this.styleClr(jxml_input_content);
|
||
}
|
||
if (!result) {
|
||
elem.addClass('error');
|
||
} else {
|
||
elem.removeClass('error');
|
||
}
|
||
this.styleCheckErrors();
|
||
},
|
||
spClasses : function(clasess) {
|
||
jxml_prohibited_chars = "<>@!#$%^&*()+[]{}?:;|'\"\\,./~`=";
|
||
jxml_classes_to_validate = clasess.trim().split(' ');
|
||
if (jxml_classes_to_validate.length && jxml_classes_to_validate != '') {
|
||
for (i = 0; i < jxml_classes_to_validate.length; i++) {
|
||
if (!jxml_classes_to_validate[i][0].match(/^([a-z\(\)]+)$/i)) {
|
||
return '<p class="alert alert-danger">' + jxml_class_validate_error + '</p>';
|
||
}
|
||
for (k = 0; k < jxml_prohibited_chars.length; k++) {
|
||
if (jxml_classes_to_validate[i].indexOf(jxml_prohibited_chars[k]) > -1) {
|
||
return '<p class="alert alert-danger">' + jxml_class_validate_error + '<button class="close" aria-label="close" data-dismiss="alert" type="button">×</button></p>';
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
},
|
||
layout : {
|
||
add : {
|
||
wrapper : function(elem) {
|
||
jxml.ajax.saveLayoutItem(false, elem, 'wrapper', '', '', '', '', '', '', '', '', '', '', '', '', '');
|
||
},
|
||
row : function(elem) {
|
||
jxml.ajax.saveLayoutItem(false, elem, 'row', '', '', '', '', '', '', '', '', '', '', '', '', '');
|
||
},
|
||
col : function(elem, specific_class, col, col_xs, col_sm, col_md, col_lg, col_xl, col_xxl) {
|
||
classes = 'col ' + col + ' ' + col_xs + ' ' + col_sm + ' ' + col_md + ' ' + col_lg + ' ' + col_xl + ' ' + col_xxl + ' ' + specific_class;
|
||
jxml.ajax.saveLayoutItem(false, elem, 'col', classes, specific_class, col, col_xs, col_sm, col_md, col_lg, col_xl, col_xxl, '', '', '', '');
|
||
},
|
||
module : function(elem, specific_class, module_name, public_module_name, origin_hook) {
|
||
classes = 'module ' + specific_class;
|
||
jxml.ajax.saveLayoutItem(false, elem, 'module', classes, specific_class, '', '', '', '', '', '', '', module_name, public_module_name, origin_hook, '');
|
||
},
|
||
content : function(elem, specific_class, module_name, public_module_name, origin_hook) {
|
||
classes = 'content ' + specific_class;
|
||
jxml.ajax.saveLayoutItem(false, elem, 'content', classes, specific_class, '', '', '', '', '', '', '', module_name, public_module_name, origin_hook, '');
|
||
}
|
||
},
|
||
edit : {
|
||
wrapper : function(elem) {
|
||
id_element = elem.attr('data-id');
|
||
id_unique = elem.attr('data-id-unique');
|
||
classes = 'wrapper sortable ' + id_unique + ' ' + specific_class;
|
||
$('.jxmegalayout-admin .wrapper[data-id="' + id_element + '"]').attr('data-specific-class', specific_class).attr('class', classes);
|
||
$('.jxmegalayout-admin .wrapper[data-id="' + id_element + '"] > article > .button-container .element-name').find('.identificator').text('(' + specific_class.replace(' ', ' | ') + ')');
|
||
jxml.ajax.saveLayoutItem(id_element, elem, 'wrapper', classes, specific_class, '', '', '', '', '', '', '', '', '', '', '');
|
||
},
|
||
row : function(elem, specific_class) {
|
||
id_element = elem.attr('data-id');
|
||
id_unique = elem.attr('data-id-unique');
|
||
classes = 'row sortable ' + id_unique + ' ' + specific_class;
|
||
$('.jxmegalayout-admin .row[data-id="' + id_element + '"]').attr('data-specific-class', specific_class).attr('class', classes);
|
||
$('.jxmegalayout-admin .row[data-id="' + id_element + '"] > article > .button-container .element-name').find('.identificator').text('(' + specific_class.replace(' ', ' | ') + ')');
|
||
jxml.ajax.saveLayoutItem(id_element, elem, 'row', classes, specific_class, '', '', '', '', '', '', '', '', '', '', '');
|
||
},
|
||
col : function(elem, specific_class, col, col_xs, col_sm, col_md, col_lg, col_xl, col_xxl) {
|
||
id_element = elem.attr('data-id');
|
||
id_unique = elem.attr('data-id-unique');
|
||
classes = 'col sortable ' + id_unique + ' ' + col + ' ' + col_xs + ' ' + col_sm + ' ' + col_md + ' ' + col_lg + ' ' + col_xl + ' ' + col_xxl + ' ' + specific_class;
|
||
$('.jxmegalayout-admin .col[data-id="' + id_element + '"]').attr('data-specific-class', specific_class).attr('data-col', col).attr('data-col-xs', col_xs).attr('data-col-sm', col_sm).attr('data-col-md', col_md).attr('data-col-lg', col_lg).attr('data-col-xl', col_xl).attr('data-col-xxl', col_xxl).attr('class', classes);
|
||
$('.jxmegalayout-admin .col[data-id="' + id_element + '"] > article > .button-container .element-name').find('.identificator').text('(' + specific_class.replace(' ', ' | ') + ')');
|
||
jxml.ajax.saveLayoutItem(id_element, elem, 'col', classes, specific_class, col, col_xs, col_sm, col_md, col_lg, col_xl, col_xxl, '', '', '', '');
|
||
},
|
||
module : function(elem, specific_class, module_name, public_module_name, origin_hook, extra_css) {
|
||
id_element = elem.attr('data-id');
|
||
id_unique = elem.attr('data-id-unique');
|
||
module_name = elem.attr('data-module');
|
||
classes = 'module sortable ' + id_unique + ' ' + specific_class;
|
||
$('.jxmegalayout-admin .module[data-id="' + id_element + '"]').attr('data-specific-class', specific_class).attr('class', classes);
|
||
$('.jxmegalayout-admin .module[data-id="' + id_element + '"] > article > .button-container .module-name').find('.identificator').text('(' + specific_class.replace(' ', ' | ') + ')');
|
||
jxml.ajax.saveLayoutItem(id_element, elem, 'module', classes, specific_class, '', '', '', '', '', '', '', module_name, '', origin_hook, extra_css);
|
||
},
|
||
content : function(elem, specific_class, module_name, public_module_name, origin_hook, extra_css) {
|
||
id_element = elem.attr('data-id');
|
||
id_unique = elem.attr('data-id-unique');
|
||
module_name = elem.attr('data-extra-content');
|
||
classes = 'content sortable ' + id_unique + ' ' + specific_class;
|
||
$('.jxmegalayout-admin .content[data-id="' + id_element + '"]').attr('data-specific-class', specific_class).attr('class', classes);
|
||
$('.jxmegalayout-admin .content[data-id="' + id_element + '"] > article > .button-container .content-name').find('.identificator').text('(' + specific_class.replace(' ', ' | ') + ')');
|
||
jxml.ajax.saveLayoutItem(id_element, elem, 'content', classes, specific_class, '', '', '', '', '', '', '', module_name, '', origin_hook, extra_css);
|
||
}
|
||
}
|
||
},
|
||
sortInit : function() {
|
||
$('.jxmegalayout-admin, .jxmegalayout-admin article, .jxmegalayout-admin article article').sortable({
|
||
cursor : 'move',
|
||
items : '> div.col, > div.row, > div.wrapper, > div.module, > div.content, > span > div.row, > span > div.wrapper',
|
||
update : function(event, ui) {
|
||
$(this).find('> div.sortable').each(function(index) {
|
||
index = index + 1;
|
||
$(this).attr('data-sort-order', index);
|
||
$(this).find('.sort-order').text(index);
|
||
});
|
||
jxml.ajax.updateSortOrders($(this));
|
||
}
|
||
});
|
||
},
|
||
tooltipInit : function() {
|
||
$('span.module-name').tooltip(),
|
||
$('span.content-name').tooltip()
|
||
},
|
||
multiselectInit : function() {
|
||
$('.jxmegalayout-availible-pages').addClass('loaded');
|
||
$('.jxmegalayout-availible-pages').multiselect({
|
||
enableFiltering : true,
|
||
optionClass : function(element) {
|
||
return 'col-xs-6 col-sm-4';
|
||
},
|
||
buttonClass : 'btn btn-link',
|
||
nonSelectedText : jxml_multiselect_all_text,
|
||
filterPlaceholder : jxml_multiselect_search_text,
|
||
onDropdownShow : function(event) {
|
||
multiselect_temp = this.$button.parents('.jxlist-layout-buttons').find('select').val();
|
||
if (!multiselect_temp) {
|
||
multiselect_temp = '';
|
||
}
|
||
},
|
||
onDropdownHide : function(event) {
|
||
var elem = $('.jxlist-layout-buttons .btn-group.open');
|
||
var hook_name = elem.parents('.jxpanel-content').find('input[name="jxml_hook_name"]').val();
|
||
var id_layout = elem.parents('.jxlist-layout-buttons').find('.jxlist-layout-btns').attr('data-layout-id');
|
||
var pages = elem.parents('.jxpanel-content').find('select[name="jxmegalayout-availible-pages"]').val();
|
||
var layout_status = 0;
|
||
if (elem.parents('.jxpanel-content .jxlist-layout-buttons').find('a.use-layout').hasClass('hidden')) {
|
||
var layout_status = 1;
|
||
}
|
||
multiselect_now = this.$button.parents('.jxlist-layout-buttons').find('select').val();
|
||
if (!multiselect_now) {
|
||
multiselect_now = '';
|
||
if (!layout_status) {
|
||
pages = 'empty';
|
||
}
|
||
}
|
||
if (multiselect_temp.toString() != multiselect_now.toString()) {
|
||
jxml.ajax.enableLayout(hook_name, id_layout, pages, layout_status);
|
||
}
|
||
},
|
||
templates : {
|
||
filter : '<li class="multiselect-item filter"><div class="input-group"><span class="input-group-addon"><i class="icon icon-search"></i></span><input class="form-control multiselect-search" type="text"></div></li>',
|
||
filterClearBtn : '<span class="input-group-btn"><button class="btn btn-default multiselect-clear-filter" type="button"><i class="icon icon-remove-circle"></i></button></span>'
|
||
}
|
||
});
|
||
},
|
||
get : {
|
||
sortOrder : function(elem) {
|
||
sort_order = [];
|
||
elem.closest('article').find('> div.sortable').each(function() {
|
||
sort_order.push($(this).attr('data-sort-order'));
|
||
});
|
||
if ($.isEmptyObject(sort_order)) {
|
||
sort_order = 1;
|
||
} else {
|
||
sort_order = Math.max.apply(Math, sort_order) + 1;
|
||
}
|
||
return sort_order;
|
||
},
|
||
parentId : function(elem) {
|
||
parent_id = elem.closest('div:not(.button-container)').attr('data-id');
|
||
if (typeof (parent_id) == 'undefined' && !parent_id) {
|
||
parent_id = 0;
|
||
}
|
||
return parent_id;
|
||
},
|
||
elementId : function() {
|
||
ids_items = [];
|
||
$('.container').find('div[data-id]').each(function() {
|
||
ids_items.push($(this).attr('data-id'));
|
||
});
|
||
if ($.isEmptyObject(ids_items)) {
|
||
id_item = 1;
|
||
} else {
|
||
id_item = Math.max.apply(Math, ids_items) + 1;
|
||
}
|
||
return id_item;
|
||
}
|
||
},
|
||
init : function() {
|
||
this.sortInit();
|
||
this.tooltipInit();
|
||
this.multiselectInit();
|
||
this.events.init();
|
||
}
|
||
}; |