Files
kalsport.pl/modules/appagebuilder/views/js/admin/home.js
2024-11-05 12:22:50 +01:00

2976 lines
135 KiB
JavaScript

/**
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description:
*/
imgId = null; // using for store object image select a source in function select image
function log(message) {
console.log(message);
}
function htmlentities(str) {
var textarea = document.createElement("textarea");
textarea.innerHTML = str;
return textarea.innerHTML;
}
function htmlentitiesDecode(str) {
var textarea = document.createElement("textarea");
textarea.innerHTML = str;
return textarea.value;
}
(function ($) {
$.fn.apPageBuilder = function () {
this.currentElement = null;
this.ajaxShortCodeUrl = null;
this.ajaxHomeUrl = null;
this.shortCodeField = null;
this.shortcodeInfos = null;
this.languages = null;
this.lang_id = 0;
this.classWidget = 'ui-widget ui-widget-content ui-helper-clearfix ui-corner-all';
this.classWidgetHeader = 'ui-widget-header ui-corner-all';
this.widthSupport = null;
this.arrayCol = null;
this.windowWidth = 0;
this.imgController = null;
this.parentId = null;
this.profileId = null;
this.process = function (DATAFORM, DATAINFO, LANGS) {
var $globalthis = this;
$globalthis.windowWidth = $(window).width();
$globalthis.shortcodeInfos = jQuery.parseJSON(DATAINFO);
$globalthis.languages = jQuery.parseJSON(LANGS);
$globalthis.initDataFrom(DATAFORM);
$globalthis.widthSupport = ["1", "2", "2.4", "3", "4", "5", "4.8", "6", "7", "7.2", "8", "9", "9.6", "10", "11", "12"];
$globalthis.arrayCol = ["sp", "xs", "sm", "md", "lg", "xl"];
$globalthis.initColumnSetting();
$globalthis.setGroupAction();
$globalthis.sortable();
$globalthis.setButtonAction();
$globalthis.submitForm();
// Load form after come back from live edit mode
var type = window.location.href.split('#');
var hash = '';
if (type.length > 1) {
hash = type[1];
var btn = $("." + hash).find(".btn-edit");
//$(btn).trigger("click");
}
//$globalthis.setRowAction();
};
this.initDataFrom = function (data) {
var $globalthis = this;
if (data != '{}') {
dataObj = jQuery.parseJSON(data);
Object.keys(dataObj).forEach(function (key) {
$('.' + key).data('form', dataObj[key]);
//DONGND:: install data animation for column and group
if (typeof dataObj[key].animation != 'undefined')
{
if ($('.' + key).find('.animation-button').first().length)
{
var animation_bt = $('.' + key).find('.animation-button').first();
var animation_type = dataObj[key].animation ? dataObj[key].animation : 'none';
var animation_delay = dataObj[key].animation_delay ? dataObj[key].animation_delay : 1;
var animation_duration = dataObj[key].animation_duration ? dataObj[key].animation_duration : 1;
var animation_iteration_count = dataObj[key].animation_iteration_count ? dataObj[key].animation_iteration_count : 1;
var animation_infinite = dataObj[key].animation_infinite ? dataObj[key].animation_infinite : 0;
$globalthis.assignConfigAnimation(animation_bt, animation_type, animation_delay, animation_duration, animation_iteration_count, animation_infinite);
}
}
});
//DONGND:: fix can't click tab 1 when create new widget tab
$('.ApTabs:not(#default_ApTabs)').each(function(){
var activeTabId = $(this).data('form').active_tab;
if (activeTabId != '' && parseInt(activeTabId))
{
$(this).find('.nav-tabs a').eq(parseInt(activeTabId)-1).tab('show');
}
});
//DONGND:: fix can't click tab 1 when create new widget tab
$('.ApAjaxTabs:not(#default_ApAjaxTabs)').each(function(){
var activeTabId = $(this).data('form').active_tab;
if (activeTabId != '' && parseInt(activeTabId))
{
$(this).find('.nav-tabs a').eq(parseInt(activeTabId)-1).tab('show');
}
})
}
};
this.getColDefault = function () {
return {xl:12, lg: 12, md: 12, sm: 12, xs: 12, sp: 12};
};
//set action for group
this.setGroupAction = function () {
//duplicate group
$('.gaction-duplicate').click(function () {
var duplicate = $(this).closest('.group-row').clone(1);
//remove tooltip because wrong position
$('.tooltip', $(duplicate)).remove();
$('.label-tooltip', $(duplicate)).tooltip('disable');
$('.hook-content-footer', $(this).closest('.hook-content')).before(duplicate);
});
$('.number-column').click(function () {
column = $(this).data('cols');
});
$('.gaction-toggle').click(function () {
$(this).closest('.group-row').find('.group-content').first().toggle('clip');
});
};
//sort group
this.sortable = function () {
var $globalthis = this;
$(".hook-content").sortable({
connectWith: ".hook-content",
handle: ".gaction-drag"
});
$(".group-row").addClass($globalthis.classWidget)
.find(".gaction-drag").addClass($globalthis.classWidgetHeader);
$(".hook-content .group-content").sortable({
connectWith: ".group-content",
handle: ".caction-drag"
});
$(".column-row").addClass($globalthis.classWidget)
.find(".caction-drag").addClass($globalthis.classWidgetHeader);
$(".group-content .column-content").sortable({
connectWith: ".column-content",
handle: ".waction-drag"
});
$(".widget-row").addClass($globalthis.classWidget)
.find(".waction-drag").addClass($globalthis.classWidgetHeader);
$(".subwidget-content").sortable({
connectWith: ".subwidget-content",
handle: ".waction-drag"
});
// $( ".widget-row" ).addClass( $globalthis.classWidget )
// .find( ".waction-drag" ).addClass( $globalthis.classWidgetHeader );
};
this.downloadFile = function (filename, result) {
//csvData = 'data:application/xml;charset=utf-8,' + result;
//console.log(result);
$("#export_process")
.attr({
'download': filename,
'href': result,
'target': '_blank'
});
$("#export_process").get(0).click();
};
//general action
this.setButtonAction = function () {
var $globalthis = this;
$globalthis.initControllInRow();
this.createColumn = function (obj, currentId) {
var widthCol = $(obj).data('width');
var classActive = $globalthis.returnWidthClass();
var col = $(obj).data('col');
var realValue = widthCol.toString().replace('.', '-');
for (var i = 1; i <= col; i++) {
wrapper = currentId;///$($globalthis.currentElement).find('.group-content').first();
column = $('#default_column').clone();
var cls = $(column).attr("class");
//column-row col-sp-12 col-xs-12 col-sm-12 col-md-12 col-lg-12 ui-widget ui-widget-content ui-helper-clearfix ui-corner-all
cls = cls.replace("col-xl-12", "col-xl-" + realValue);
cls = cls.replace("col-lg-12", "col-lg-" + realValue);
cls = cls.replace("col-md-12", "col-md-" + realValue);
cls = cls.replace("col-sm-12", "col-sm-" + realValue);
cls = cls.replace("col-xs-12", "col-xs-" + realValue);
cls = cls.replace("col-sp-12", "col-sp-" + realValue);
$(column).attr("class", cls);
objColumn = {form_id: "form_" + $globalthis.getRandomNumber()};
objColumn.sm = widthCol;
objColumn.xs = widthCol;
objColumn.sp = widthCol;
if (classActive == "md" || classActive == "lg" || classActive == "xl") {
objColumn.md = widthCol;
objColumn.lg = widthCol;
objColumn.xl = widthCol;
}
//jQuery.extend(objColumn, $globalthis.getColDefault());
$(column).data("form", objColumn);
column.removeAttr('id');
wrapper.append(column);
$globalthis.getNumberColumnInClass(column, classActive);
$(".label-tooltip").tooltip();
}
}
$(document).on("click", ".column-add", function () {
$globalthis.createColumn(this, $globalthis.currentElement);
});
$(document).on("click", ".group-add", function () {
var item = $(this).data("col");
currentE = $globalthis.currentElement;
// Create a group blank
if (item == 0) {
group = $("#default_row").clone();
group.removeAttr('id');
//var html = $(group).find(".group-controll-right").html();
//$(group).find(".group-controll-right").html(html);
$(group).data("form", {form_id: "form_" + $globalthis.getRandomNumber(), 'class': 'row'});
$(currentE).before(group);
$globalthis.initControllInRow();
}
// Display popup list Widget for add new a widget
else if (item == 1) {
// This code similar event click to button:
// $(".btn-new-widget").trigger("click");
var url = $globalthis.ajaxHomeUrl + '&ajax=1&action=renderList';
var data = '';
$("#ap_loading").show();
$.ajax({
type: 'POST',
headers: {"cache-control": "no-cache"},
url: url,
async: true,
data: data,
dataType: 'json',
cache: false,
success: function (json) {
$("#ap_loading").hide();
if (json && json.hasError == true){
alert(json.errors);
}else{
$("#txt-search").show();
$('#myModalLabel').html($('#myModalLabel').data('addnew'));
$('#modal_form .modal-body').html(json.result);
$('#modal_form .modal-footer').hide();
$('#modal_form').modal('show');
$('#modal_form').removeClass('modal-edit').addClass('modal-new');
$globalthis.setFormAction();
$globalthis.initControllInRow();
$("#txt-search").focus();
$globalthis.initIsotopAction();
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ap_loading").hide();
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
}
});
} else {
group = $("#default_row").clone();
group.removeAttr('id');
//var html = $(group).find(".group-controll-right").html();
//$(group).find(".group-controll-right").html(html);
$(group).data("form", {form_id: "form_" + $globalthis.getRandomNumber(), 'class': 'row'});
$(currentE).before(group);
$globalthis.createColumn(this, group);
$globalthis.initControllInRow();
}
});
$(document).on("click", ".btn-select-profile", function () {
if (!confirm($("#form_content").data('select')))
return false;
});
$(document).on("click", ".btn-back-to-list", function () {
currentElement = $globalthis.currentElement;
//add new in column
if ($(currentElement).hasClass('column-content') || $(currentElement).hasClass('subwidget-content')) {
$(currentElement).parent().find('.btn-new-widget').first().trigger('click');
}
//add new in group
else {
$(currentElement).parent().find('.hook-content-footer .btn-new-widget').trigger('click');
}
});
//save widget
$(document).on("click", ".btn-savewidget", function () {
hideFormLevel2();
currentElement = $globalthis.currentElement;
//add new widget
if ($("#modal_form").hasClass("modal-new")) {
//add new widget in column
if ($(currentElement).hasClass('column-content')) {
$globalthis.saveWidget('column');
}
else if ($(currentElement).hasClass('subwidget-content')) {
$globalthis.saveWidget('column');
}
//add new widget in hook
else {
$globalthis.saveWidget('hook');
}
} else {
$globalthis.saveWidget('update');
}
$globalthis.currentElement = null;
$(".label-tooltip").tooltip();
$('#modal_form').modal('hide');
$globalthis.initControllInRow();
});
$(document).on("click", ".btn-fwidth", function () {
$('#home_wrapper').css('width', $(this).data('width'));
btnElement = $(this);
$('.btn-fwidth').removeClass('active');
$(this).addClass('active');
//reset
if ($(this).hasClass('width-default')) {
$globalthis.windowWidth = $(window).width();
$('#home_wrapper').attr('class', 'default');
} else {
$('#home_wrapper').attr('class', 'col-' + $globalthis.returnWidthClass(parseInt($(this).data('width'))));
$globalthis.windowWidth = $(this).data('width');
}
classVal = $globalthis.returnWidthClass();
$(".column-row", $('#home_wrapper')).each(function () {
valueFra = $(this).data("form")[classVal];
$(".apbtn-width .width-val", $(this)).attr("class", "width-val ap-w-" + valueFra.toString().replace(".", "-"));
});
$globalthis.initColumnSetting();
});
$(document).on("click", ".btn-import", function () {
$("#ap_loading").show();
var url = $globalthis.ajaxHomeUrl + '&ajax=1&action=showImportForm&idProfile=' + $globalthis.profileId;
var data = '';
$.ajax({
type: 'POST',
headers: {"cache-control": "no-cache"},
url: url,
async: true,
data: data,
dataType: 'json',
cache: false,
success: function (json)
{
$("#ap_loading").hide();
if (json && json.hasError == true){
alert(json.errors);
}else{
$("#txt-search").hide();
$('#myModalLabel').html($('#myModalLabel').data('addnew'));
//fix bug prestashop 1.7.6.2 can not get address_token
if (typeof address_token === "undefined") {
var match = RegExp('[?&]' + 'token' + '=([^&]*)').exec(window.location.search);
address_token = match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
$('#modal_form .modal-body').html(json.result);
$('#modal_form .modal-footer').hide();
$('#modal_form').modal('show');
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ap_loading").hide();
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
}
});
});
$(document).on("click", ".btn-export", function () {
var objects = new Object();
type = $(this).data("type");
var position = '';
if (type == "group") {
objHook = {};
objHook.groups = {};
objHook.groups[0] = $globalthis.getHookSubmit($(this).closest('.group-row'));
objects[0] = objHook;
} else if (type == "position") {
position = $(this).data("position");
type = "position-" + position;
var id = "#position-" + $(this).data("position") + " .hook-wrapper";
$(id).each(function (iHook) {
//hook object contain group
var objHook = {};
objHook.name = $(this).data('hook');
objHook.position = $(this).data('hook');
objHook.groups = {};
$('.group-row', $(this)).each(function (iGroup) {
objHook.groups[iGroup] = $globalthis.getHookSubmit(this);
});
objects[iHook] = objHook;
});
} else if (type == "all") {
$('.hook-wrapper').each(function (iHook) {
//hook object contain group
var objHook = {};
objHook.name = $(this).data('hook');
objHook.position = $(this).data('hook');
objHook.groups = {};
$('.group-row', $(this)).each(function (iGroup) {
objHook.groups[iGroup] = $globalthis.getHookSubmit(this);
});
objects[iHook] = objHook;
});
} else {
objHook = {};
objHook.groups = {};
$('.group-row', $('.' + type)).each(function (iGroup) {
objHook.groups[iGroup] = $globalthis.getHookSubmit(this);
});
objects[0] = objHook;
}
data = 'dataForm=' + JSON.stringify(objects);
$("#ap_loading").show();
url = $globalthis.ajaxHomeUrl + '&action=export&type=' + type;
$.ajax({
type: 'POST',
headers: {"cache-control": "no-cache"},
url: url,
async: true,
cache: false,
data: data,
dataType: 'json',
cache: false,
success: function (json)
{
$("#ap_loading").hide();
if (json && json.hasError == true){
alert(json.errors);
}else{
if (type == 'all')
type = 'appagebuilderhome';
$globalthis.downloadFile(type + '.xml', json.result);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ap_loading").hide();
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
}
});
});
//delete group
$(document).on("click", ".btn-delete", function () {
if (!confirm($("#form_content").data("delete")))
return false;
// Deleta a panel
if ($(this).hasClass("tabcontent-action") && $(this).hasClass("accordions")) {
// Check this must be have greater than 2 accordions
var cover = $(this).closest(".panel-group");
if ($(cover).find(".panel").length < 3) {
alert("Can not delete when have 2 panel");
return;
}
// remove
if ($(this).closest('.panel-default').length > 0) {
$(this).closest('.panel-default').remove();
return;
}
}
// Deleta tab
if ($(this).hasClass("tabcontent-action") && $(this).hasClass("tab")) {
// Check this must be have greater than 2 tabs
var tabcontent = $(this).closest(".tab-content");
var limit = $(tabcontent).find("#default_tabcontent").length > 0 ? 4 : 3;
if ($(tabcontent).find(".tab-pane").length < limit) {
alert("Can not delete when have " + (limit - 1) + " tabs");
return;
}
// remove
tabId = $(this).closest(".tab-pane").attr('id');
$('a[href$="' + tabId + '"]:first()').closest("li").remove();
$("#" + tabId).remove();
return;
}
if ($(this).hasClass("accordions")) {
if ($(this).closest('.panel-default').length > 0) {
$(this).closest('.panel-default').remove();
}
}
if ($(this).data("for") == undefined) {
if ($(this).hasClass("group-action")) {
$(this).closest(".group-row").remove();
} else if ($(this).hasClass("column-action")) {
$(this).closest(".column-row").remove();
} else {
// Delete group of tag, accordion
$(this).closest(".widget-row").remove();
}
}
else {
$(this).closest($(this).data("for")).remove();
}
});
//edit group
$(document).on("click", ".btn-edit", function () {
if (typeof $(this).data('type') == 'undefined') {
var type = $(this).closest('.widget-row').data("type");
}else
var type = $(this).data("type");
if (type.indexOf("apSub") == 0) {
if (type == "apSubAccordions") {
idContainer = $(this).closest('.widget-container-content').attr("id");
} else {
idContainer = $(this).closest('.widget-wrapper-content').attr("id");
}
type = type.replace("Sub", "") + "&subTab";
$globalthis.currentElement = $('a[href*="' + idContainer + '"]', $(this).closest(".widget-row"));
} else {
if ($(this).data('for') == undefined) {
if (type == "ApRow") {
$globalthis.currentElement = $(this).closest(".group-row");
} else if (type == "ApColumn") {
$globalthis.currentElement = $(this).closest(".column-row");
} else {
$globalthis.currentElement = $(this).parent().parent();
}
}
else
$globalthis.currentElement = $(this).closest($(this).data('for'));
}
var url = $globalthis.ajaxShortCodeUrl;
if (type === "apModule") {
url += '&ajax=1&edit&type_shortcode=any&type=module';
} else if (type === "ApRow") {
var hook_name = $(this).closest("[data-hook]").attr('data-hook');
url += '&ajax=1&edit&type_shortcode=' + type + "&type=widget" + "&id_appagebuilder_profiles=" + $globalthis.profileId + "&hook_name=" + hook_name;
} else {
url += '&ajax=1&edit&type_shortcode=' + type + "&type=widget";
}
var obj = $($globalthis.currentElement).data("form");
var data = '';
if (obj)
Object.keys(obj).forEach(function (key) {
//if value is url
vkey = obj[key];
if((obj[key]+'').indexOf('//') >= 0){
vkey = vkey.replace("%2F", "_AP2F_");
}
data += (data ? "&" : "") + key + "=" + vkey;
});
$("#txt-search").hide();
$("#ap_loading").show();
// Store parent id
if (type == "apSubAccordions" || type == "apAccordions&subTab") {
$globalthis.parentId = $(this).closest(".panel-group").attr("id");
}
$.ajax({
type: 'POST',
headers: {"cache-control": "no-cache"},
url: url,
async: true,
cache: false,
data: data,
success: function (data) {
data = data.replace(/_APNEWLINE_/g, "&#10;");
$("#ap_loading").hide();
$('#myModalLabel').html($('#myModalLabel').data('edit') + " " + type.replace('ap_', ''));
//fix bug prestashop 1.7.6.2 can not get address_token
if (typeof address_token === "undefined") {
var match = RegExp('[?&]' + 'token' + '=([^&]*)').exec(window.location.search);
address_token = match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
$('#modal_form .modal-footer').show();
$('#modal_form .modal-body').html(data);
$('#modal_form').removeClass('modal-new').addClass('modal-edit');
// FIX BUG : ApCategory khong save duoc icon cu, khi thay icon cho 1 category khac
// resetSelectedImage();
//$('#modal_form').modal('show');
$("#modal_form").modal({
"backdrop": "static"
});
if (type == "ApFullSlider" || type == "ApBlockCarousel") {
initFullSlider("edit");
}
if (type == "ApBlockLink") {
$globalthis.initBlockLink("edit");
}
if (type == "ApCounter") {
$globalthis.initCounter("edit");
}
hideFormLevel2();
$globalthis.setFormAction();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ap_loading").hide();
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
}
});
});
$(document).on("click", ".btn-new-widget", function () {
var url = $globalthis.ajaxHomeUrl + '&ajax=1&action=renderList';
if ($(this).hasClass('tabcontent-action'))
{
url += '&subTab=1'
}
if ($(this).hasClass('reload-module'))
{
url += '&reloadModule=1'
}
var data = '';
if ($(this).hasClass('column-action')) {
$globalthis.currentElement = $(this).closest('.column-row').find('.column-content').first();
} else if ($(this).hasClass('tabcontent-action')) {
if ($(this).hasClass('accordion'))
$globalthis.currentElement = $(this).closest('.panel-collapse').find('.subwidget-content').first();
else
$globalthis.currentElement = $(this).closest('.tab-pane').find('.subwidget-content').first();
} else {
$globalthis.currentElement = $(this).closest('.hook-content-footer');
}
$("#ap_loading").show();
$.ajax({
type: 'POST',
headers: {"cache-control": "no-cache"},
url: url,
async: true,
data: data,
dataType: 'json',
cache: false,
success: function (json) {
$("#ap_loading").hide();
//fix bug prestashop 1.7.6.2 can not get address_token
if (typeof address_token === "undefined") {
var match = RegExp('[?&]' + 'token' + '=([^&]*)').exec(window.location.search);
address_token = match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
if (json && json.hasError == true){
alert(json.errors);
}else{
$("#txt-search").show();
$('#myModalLabel').html($('#myModalLabel').data('addnew'));
$('#modal_form .modal-body').html(json.result);
$('#modal_form .modal-footer').hide();
$('#modal_form').modal('show');
$('#modal_form').removeClass('modal-edit').addClass('modal-new');
$globalthis.setFormAction();
$("#txt-search").focus();
$globalthis.initIsotopAction();
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ap_loading").hide();
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
}
});
});
$("#modal_form").on('shown.bs.modal', function () {
$("#txt-search").focus();
})
$(document).on("click", ".btn-status", function () {
if ($(this).data("for") == undefined) {
if ($(this).hasClass("group-action")) {
$globalthis.currentElement = $(this).closest(".group-row");
} else if ($(this).hasClass("column-action")) {
$globalthis.currentElement = $(this).closest(".column-row");
} else {
$globalthis.currentElement = $(this).closest(".widget-row");
}
}
else
$globalthis.currentElement = $(this).closest($(this).data("for"));
objForm = $globalthis.currentElement.data("form");
if ($(this).hasClass("deactive")) {
$(this).removeClass("deactive").addClass("active");
objForm.active = 1;
$(this).children().removeClass("icon-remove");
$(this).children().addClass("icon-ok");
} else {
$(this).removeClass("active").addClass("deactive");
objForm.active = 0;
$(this).children().addClass("icon-remove");
$(this).children().removeClass("icon-ok");
// icon-remove
}
if ($($globalthis.currentElement).hasClass("deactive")) {
$($globalthis.currentElement).removeClass("deactive").addClass("active");
}else{
$($globalthis.currentElement).removeClass("active").addClass("deactive");
}
objForm = $globalthis.currentElement.data('form', objForm);
});
$(document).on("click", '.all-devicesd', function(){
if ($(this).data("for") == undefined) {
if ($(this).closest(".column-row").length) {
$globalthis.currentElement = $(this).closest(".column-row");
} else {
$globalthis.currentElement = $(this).closest(".group-row");
}
}else{
$globalthis.currentElement = $(this).closest($(this).data("for"));
}
objForm = $globalthis.currentElement.data("form");
if($(this).hasClass("deactive")){
$(this).removeClass("deactive").addClass("active");
objForm.active = 1;
$(this).children().removeClass("icon-remove").addClass("icon-ok");
$(this).attr('data-original-title','Disable Group');
}else{
$(this).removeClass("active").addClass("deactive");
objForm.active = 0;
$(this).children().removeClass("icon-ok").addClass("icon-remove");
$(this).attr('data-original-title','Enable Group');
}
if ($($globalthis.currentElement).hasClass("deactive")) {
$($globalthis.currentElement).removeClass("deactive").addClass("active");
}else{
$($globalthis.currentElement).removeClass("active").addClass("deactive");
}
objForm = $globalthis.currentElement.data('form', objForm);
});
$(document).on("click", '.devicesd-active .btn-group', function(){
if ($(this).data("for") == undefined) {
if ($(this).parent().hasClass("group-action")) {
$globalthis.currentElement = $(this).closest(".group-row");
} else if ($(this).parent().hasClass("column-action")) {
$globalthis.currentElement = $(this).closest(".column-row");
} else {
$globalthis.currentElement = $(this).closest(".widget-row");
}
}else{
$globalthis.currentElement = $(this).closest($(this).data("for"));
}
objForm = $globalthis.currentElement.data("form");
objForm.active_desktop = $globalthis.currentElement.hasClass("active-desktop") ? 1 : 0,
objForm.active_tablet = $globalthis.currentElement.hasClass("active-tablet") ? 1 : 0,
objForm.active_mobile = $globalthis.currentElement.hasClass("active-mobile") ? 1 : 0;
if($(this).attr('device') == 'desktop') {
if($(this).hasClass('deactive-desktop')){
$(this).removeClass("deactive-desktop").addClass("active-desktop");
objForm.active_desktop = 1;
$(this).children().css('opacity','1');
$(this).attr('data-original-title','Disable Group On Desktop');
$($globalthis.currentElement).removeClass("deactive-desktop").addClass("active-desktop");
}else{
$(this).removeClass("active-desktop").addClass("deactive-desktop");
objForm.active_desktop = 0;
$(this).attr('data-original-title','Enable Group On Desktop');
$($globalthis.currentElement).removeClass("active-desktop").addClass("deactive-desktop");
}
} else if($(this).attr('device') == 'tablet') {
if($(this).hasClass('deactive-tablet')){
$(this).removeClass("deactive-tablet").addClass("active-tablet");
objForm.active_tablet = 1;
$(this).children().css('opacity','1');
$(this).attr('data-original-title','Disable Group On Tablet');
$($globalthis.currentElement).removeClass("deactive-tablet").addClass("active-tablet");
}else{
$(this).removeClass("active-tablet").addClass("deactive-tablet");
objForm.active_tablet = 0;
$(this).attr('data-original-title','Enable Group On Tablet');
$($globalthis.currentElement).removeClass("active-tablet").addClass("deactive-tablet");
}
} else {
if($(this).hasClass('deactive-mobile')){
$(this).removeClass("deactive-mobile").addClass("active-mobile");
objForm.active_mobile = 1;
$(this).children().css('opacity','1');
$(this).attr('data-original-title','Disable Group On Mobile');
$($globalthis.currentElement).removeClass("deactive-mobile").addClass("active-mobile");
}else{
$(this).removeClass("active-mobile").addClass("deactive-mobile");
objForm.active_mobile = 0;
$(this).attr('data-original-title','Enable Group On Mobile');
$($globalthis.currentElement).removeClass("active-mobile").addClass("deactive-mobile");
}
}
objForm = $globalthis.currentElement.data('form', objForm);
});
$(document).on("click", ".leo-group-devicesd .leo-devicesd", function(){
if($(this).hasClass('leo-active-devicesd')){
$(this).removeClass('leo-active-devicesd');
}else{
$(".leo-group-devicesd .leo-devicesd").removeClass('leo-active-devicesd');
$(this).addClass('leo-active-devicesd');
}
if($(this).attr('data-original-title') == 'Show all'){
$('.group-row.deactive').removeClass('hidden');
$('.column-row.deactive').removeClass('hidden');
$('.widget-row.deactive').removeClass('hidden');
$('#home_wrapper').attr('class', 'default');
$('#home_wrapper').css('width', 'auto');
}else{
$('.group-row.deactive').addClass('hidden');
$('.column-row.deactive').addClass('hidden');
$('.widget-row.deactive').addClass('hidden');
$('#home_wrapper').css('width', $(this).data('width'));
$('#home_wrapper').attr('class', 'col-' + $globalthis.returnWidthClass(parseInt($(this).data('width'))));
}
if($(this).hasClass('width-desktop')){
$('.width-tablet.leo-devicesd').attr('data-original-title','Show only on tablet');
$('.width-mobile.leo-devicesd').attr('data-original-title','Show only on mobile');
if ($(this).attr('data-original-title') == 'Show all'){
$('.deactive-desktop').removeClass('hidden');
$(this).attr('data-original-title','Show only on desktop');
}else{
$('.deactive-desktop').addClass('hidden');
$(this).attr('data-original-title','Show all');
$('.deactive-tablet').removeClass('hidden');
$('.deactive-mobile').removeClass('hidden');
}
} else if($(this).hasClass('width-tablet')){
$('.width-desktop.leo-devicesd').attr('data-original-title','Show only on desktop');
$('.width-mobile.leo-devicesd').attr('data-original-title','Show only on mobile');
if ($(this).attr('data-original-title') == 'Show all'){
$('.deactive-tablet').removeClass('hidden');
$(this).attr('data-original-title','Show only on tablet');
}else{
$('.deactive-tablet').addClass('hidden');
$(this).attr('data-original-title','Show all');
$('.deactive-desktop').removeClass('hidden');
$('.deactive-mobile').removeClass('hidden');
}
}else if($(this).hasClass('width-mobile')){
$('.width-tablet.leo-devicesd').attr('data-original-title','Show only on tablet');
$('.width-desktop.leo-devicesd').attr('data-original-title','Show only on desktop');
if ($(this).attr('data-original-title') == 'Show all'){
$('.deactive-mobile').removeClass('hidden');
$(this).attr('data-original-title','Show only on mobile');
}else{
$('.deactive-mobile').addClass('hidden');
$(this).attr('data-original-title','Show all');
$('.deactive-desktop').removeClass('hidden');
$('.deactive-tablet').removeClass('hidden');
}
}
});
$(document).on("click", ".btn-change-colwidth", function () {
cla = $globalthis.returnWidthClass();
elementColumn = $(this).closest('.column-row');
objColumn = $(elementColumn).data('form');
valueColToNum = objColumn[cla].toString().replace("-", ".");
val = $(this).data("value");
// console.log(cla + '--' + valueColToNum + 'claa' + cla);
if (val == 1 && parseFloat(valueColToNum) >= 12) {
alert($("#form_content").data("increase"));
return false;
}
if (val == -1 && parseFloat(valueColToNum) <= 1) {
alert($("#form_content").data("reduce"));
return false;
}
//get index of current width
indexW = jQuery.inArray(valueColToNum.toString(), $globalthis.widthSupport);
indexW = parseInt(indexW) + val;
//get new width
objColumn[cla] = $globalthis.widthSupport[indexW];
//set class again
classColumn = $globalthis.getClassColumn(objColumn);
$(elementColumn).attr("class", classColumn);
$(".apbtn-width .width-val", $(elementColumn)).attr("class", "width-val ap-w-" + objColumn[cla].toString().replace(".", "-"));
$(elementColumn).data("form", objColumn);
$globalthis.getNumberColumnInClass(elementColumn, $globalthis.returnWidthClass());
return false;
});
$(document).on("click", ".change-colwidth", function () {
cla = $globalthis.returnWidthClass();
width = $(this).data('width');
elementColumn = $(this).closest('.column-row');
objColumn = $(elementColumn).data('form');
//get new width
objColumn[cla] = width;
//set class again
classColumn = $globalthis.getClassColumn(objColumn);
$(elementColumn).attr("class", classColumn);
$(".apbtn-width .width-val", $(elementColumn)).attr("class", "width-val ap-w-" + objColumn[cla].toString().replace(".", "-"));
$(elementColumn).data("form", objColumn);
$(this).closest("ul").find("li").removeClass("selected");
$(this).closest("li").addClass("selected");
$globalthis.getNumberColumnInClass(elementColumn, $globalthis.returnWidthClass());
return false;
});
$(document).on("click", ".btn-add-tab", function () {
//nav-tabs tab-content
widget = $(this).closest('.widget-row');
tabID = "tab_" + $globalthis.getRandomNumber();
tab = $("#default_tabnav").clone(1);
tab.removeAttr("id");
$(tab).find('a').attr('href', '#' + tabID);
$(this).parent().before(tab);
var ObjectTab = {form_id: "form_" + $globalthis.getRandomNumber()};
ObjectTab.id = tabID;
ObjectTab["css_class"] = "";
ObjectTab["override_folder"] = "";
titleTab = $.trim($(tab).find('a').html());
Object.keys($globalthis.languages).forEach(function (key) {
ObjectTab["title_" + $globalthis.languages[key]] = titleTab;
});
$(tab).find('a').data("form", ObjectTab);
tabContent = $("#default_tabcontent").clone(1);
tabContent.attr('id', tabID);
$('.tab-pane', $(widget)).removeClass('active');
$(tabContent).addClass('active');
$('.tab-content', $(widget)).append(tabContent);
$(tab).tab('show');
$(tab).trigger('click');
$(tab).addClass('active');
return false;
});
$(document).on("click", ".btn-add-accordion", function () {
//nav-tabs tab-content
panel = $(this).closest('.panel-group');
//$('.panel-collapse', $(panel)).collapse();
panelDefault = $(panel).find('.panel-default').first().clone();
var parent = $(panel).find('.panel-default').first().find(".panel-title a").data("parent");
collapseID = "collapse-" + $globalthis.getRandomNumber();
$('.panel-title a', $(panelDefault)).html('New Accordion');
$('.panel-title a', $(panelDefault)).attr('href', "#" + collapseID);
$('.panel-title a', $(panelDefault)).data("parent", parent.replace("#", ""));
$('.panel-collapse', $(panelDefault)).attr('id', collapseID);
$('.panel-collapse .subwidget-content', $(panelDefault)).html('');
ObjectForm = $globalthis.assignDataForm($(panel).find('.panel-default').first().find(".panel-title a"), collapseID);
//ObjectForm = $globalthis.assignDataForm($('.panel-title a',$(panelDefault)), collapseID);
// var ObjectForm = {form_id:"form_"+$globalthis.getRandomNumber()};
// ObjectForm['parent_id'] = parent;
// ObjectForm['id'] = collapseID;
// ObjectForm['title_1'] = 'New Accordion';
ObjectForm['title_' + $globalthis.lang_id] = "New Accordion";
$('.panel-title a', $(panelDefault)).data('form', ObjectForm);
$(this).before(panelDefault);
});
$(document).on("click", ".btn-duplicate", function () {
parent = $(this).parent().parent();
//dublicate widget
if ($(parent).hasClass('widget-row')) {
if ($(this).hasClass('widget-action')) {
duplicate = $(parent).clone(1);
ObjectForm = $globalthis.assignDataForm(duplicate);
$(duplicate).data('form', ObjectForm);
$(parent).parent().append(duplicate);
}
}
//duplicate accordion
if ($(parent).hasClass('panel-body')) {
panel = $(parent).closest('.panel').clone(1);
panelGroup = $(parent).closest('.panel-group');
$globalthis.changWidgetFormID(panel);
$globalthis.changeAccordionPanel(panel);
$(panelGroup).parent().find('.btn-add-accordion').before(panel);
}
//duplicate accordions
if ($(parent).hasClass("ApAccordions")) {
widgetRow = $(parent).clone(1);
accId = "accordion_" + $globalthis.getRandomNumber();
ObjectForm = $globalthis.assignDataForm(widgetRow, accId);
$(widgetRow).data('form', ObjectForm);
$(widgetRow).attr('id', accId);
$(widgetRow).attr('class', 'widget-row ApAccordions ' + $globalthis.classWidget + ' ' + ObjectForm.form_id);
$globalthis.changWidgetFormID(widgetRow);
$globalthis.changeAccordionPanel(widgetRow, accId);
$(parent).closest('.column-content').append(widgetRow);
}
//duplicate tab
if ($(parent).hasClass('tab-pane')) {
widgetRow = $(parent).closest('.widget-row');
//duplicate tab content
tabContent = $(parent).clone(1);
tabId = "tab_" + $globalthis.getRandomNumber();
$globalthis.changWidgetFormID(tabContent);
hrefOld = "#" + tabContent.attr('id');
$(tabContent).attr('id', tabId);
$(parent).closest('.tab-content').append(tabContent);
$('.tab-pane', $(parent).removeClass('active'));
$(tabContent).addClass('active');
$(parent).parent().append(tabContent);
//duplicate a
tabTile = $(widgetRow).find('a[href*="' + hrefOld + '"]').parent().clone(1);
tab = $(tabTile).find('a').first();
$(tab).attr('href', '#' + tabId);
ObjectForm = $globalthis.assignDataForm(tab, tabId);
$(tab).data('form', ObjectForm);
$(parent).closest('.widget-row').find('.tab-button').before(tabTile);
$(tab).tab('show');
$(tab).trigger('click');
$(tab).addClass('active');
}
//duplicate tabs
if ($(parent).hasClass('ApTabs')) {
widgetRow = $(parent).clone(1);
ObjectForm = $globalthis.assignDataForm(widgetRow);
$(widgetRow).data('form', ObjectForm);
$(widgetRow).attr('class', 'widget-row ApTabs ' + $globalthis.classWidget + ' ' + ObjectForm.form_id);
$globalthis.changWidgetFormID(widgetRow);
$globalthis.changeTabs(widgetRow);
$(parent).closest('.column-content').append(widgetRow);
}
//duplicate column
if ($(parent).hasClass('for-column-row')) {
var parentColumn = $(parent).closest(".column-row");
column = $(parentColumn).clone(1);
column = $globalthis.changeDatacolumn(column);
$(parentColumn).parent().append(column);
}
//duplicate group
if ($(parent).hasClass('for-group-row')) {
var parentGroup = $(parent).closest(".group-row");
group = $(parentGroup).clone(1);
ObjectForm = $globalthis.assignDataForm(group);
$(group).data('form', ObjectForm);
$('.column-row', $(group)).each(function () {
$globalthis.changeDatacolumn(this);
});
$(parentGroup).parent().find('.hook-content-footer').before(group);
}
$('.label-tooltip', $($(parent).parent())).tooltip('disable');
$('.tooltip', $($(parent).parent())).remove();
});
$(document).on("click", ".choose-img", function (e) {
e.preventDefault();
var link = $(this);
// Store object image for hold the destination after select back
imgId = $(link).data("for");
$.ajax({
url: $(link).attr("href"),
beforeSend: function () {
$("#ap_loading").show();
},
success: function (response) {
//fix bug prestashop 1.7.6.2 can not get address_token
if (typeof address_token === "undefined") {
var match = RegExp('[?&]' + 'token' + '=([^&]*)').exec(window.location.search);
address_token = match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
$("#modal_select_image .modal-body").html(response);
$("#modal_select_image .modal-body").css('min-height', $(window).height() * 0.8);
$("#modal_select_image").modal('show');
$(".img-link").tooltip();
},
complete: function () {
$("#ap_loading").hide();
}
});
return false;
});
$(document).on("click", ".selectImg.lang .reset-img", function (e) {
e.preventDefault();
$(this).closest('.translatable-field').find('.img-thumbnail').attr('src', '');
$(this).closest('.translatable-field').find('.img-value').attr('value', '_JS_EMPTY_VALUE_');
$(this).closest('.translatable-field').find('.img-thumbnail').hide();
return false;
});
$(document).on("click", ".selectImg.lang .reset-allimg", function (e) {
e.preventDefault();
$(this).closest('.form-group').find('.img-thumbnail').attr('src', '');
$(this).closest('.form-group').find('.img-value').attr('value', '_JS_EMPTY_VALUE_');
$(this).closest('.form-group').find('.img-thumbnail').hide();
return false;
});
$(document).on("click", ".image-manager .img-link", function (e) {
e.stopPropagation();
var img = $(this).find("img");
$("#s-image").removeClass("hidden");
var name = $(img).attr("src");
$(imgId).val($(img).attr("data-name"));
var div = $(imgId).closest("div");
imgDest = $(div).find("img");
var widget = $(img).attr("data-widget");
if(widget == "ApImage360")
{
// ADD code Image 360 : insert image to form
var idRow = 1;
var arr = $("#total_slider").val().split("|");
arr.sort(function(a, b) { return a - b; });
for(var i = 0; i < arr.length; i++) {
if(idRow != arr[i]) {
break;
}
idRow++;
}
var image_name = "image360_" + idRow;
var html = '';
html += '<div class="col-lg-9">';
html += ' <div class="col-lg-5"><img data-position="" data-name="' +$(img).attr("data-name")+ '" class="img-thumbnail" src="' + name + '">';
html += ' <input type="hidden" value="' +$(img).attr("data-name")+ '" class="ApImage360" id="'+image_name+'" name="'+image_name+'"></div>';
html += '<div class="col-lg-4">'+$(img).attr("data-name")+'</div>';
html += '</div>';
html += '<div class="col-lg-3" style="text-align: right;">';
html += ' <button type="button" class="btn-delete-fullslider btn btn-danger"><i class="icon-trash"></i> Delete</button>';
html += '</div>';
$("#list-slider").append("<li id='" + idRow + "'>" + html + "</li>");
updateListIdFullSlider();
}else{
if (imgDest.length > 0)
{
$(imgDest).attr("src", $(img).attr("src"));
$(imgDest).data("img", $(img).data("name"));
$(imgDest).show();
if ($(imgDest).attr("widget") === "ApCategoryImage"){
$(imgDest).closest(".list-image").find(".remove-img").removeClass("hidden");
$(imgDest).removeClass("hidden");
$(imgDest).attr("src-url", $(img).data("name"));
$(imgDest).data('img', $(img).attr("data-name"));
updateStatusCheck(imgDest);
}
}else{
$(div).prepend("<img src='" + $(img).attr("src") + "' class='img-thumbnail' data-img='" + $(img).attr("data-name") + "'/>");
}
}
$("#modal_select_image").modal('hide');
return false;
});
$(document).on("click", ".remove-img", function (e) {
e.stopPropagation();
var img = $(this).closest(".list-image").find("img");
$(img).attr("src-url", "");
$(img).attr("src", "");
$(img).addClass("hidden");
$(this).parent().find('.image_link_cat').val("");
updateStatusCheck(img);
});
$(".tree-folder-name input:checkbox").change(function () {
$(this).find("input:checkbox").removeAttr("checked");
});
//DONGND:: add event for section select animation to group and column
$(document).on("click", ".animation-button", function (e) {
var animation_wrapper = $(this).siblings('.animation-wrapper');
if (!$(this).hasClass('active'))
{
$(".animation-button.active").siblings('.animation-wrapper').hide();
$(".animation-button.active").removeClass('active');
//DONGND:: load config by data
$(this).addClass('active');
var animation_type = $(this).data('animation-type');
var animation_delay = $(this).data('animation-delay');
var animation_duration = $(this).data('animation-duration');
var animation_iteration_count = $(this).data('animation-iteration-count');
var animation_infinite = $(this).data('animation-infinite');
if (typeof animation_delay != 'undefined')
{
animation_wrapper.find('.animation_delay').val(animation_delay);
}
else
{
animation_wrapper.find('.animation_delay').val(1);
}
if (typeof animation_duration != 'undefined')
{
animation_wrapper.find('.animation_duration').val(animation_duration);
}
else
{
animation_wrapper.find('.animation_duration').val(1);
}
if (typeof animation_iteration_count != 'undefined')
{
animation_wrapper.find('.animation_iteration_count').val(animation_iteration_count);
}
else
{
animation_wrapper.find('.animation_iteration_count').val(1);
}
if (animation_infinite == 1)
{
animation_wrapper.find('.animation_infinite').attr( 'checked', 'checked' );
}
else
{
animation_wrapper.removeAttr('checked');
}
//DONGND:: change offset to right with column small
if ($(window).width()-$(this).offset().left < animation_wrapper.width())
{
animation_wrapper.addClass('offset-right');
}
animation_wrapper.show();
if (typeof animation_type != 'undefined')
{
animation_wrapper.find('.animation_select').val(animation_type).trigger('change');
}
else
{
animation_wrapper.find('.animation_select').val('none').trigger('change');
}
// animation_wrapper.find('.animate-it').trigger('click');
}
else
{
$(this).removeClass('active');
animation_wrapper.hide();
animation_wrapper.removeClass('offset-right');
animation_wrapper.find('.animationSandbox').removeClass().removeAttr('style').addClass('animationSandbox');
}
});
//DONGND:: save config of animation to data form of column/group
$(document).on("click", ".btn-save-animation", function (e) {
var obj_parent = $(this).parents('.animation-wrapper');
var animation_bt = obj_parent.siblings('.animation-button');
var animation_type = obj_parent.find('.animation_select').val();
var animation_delay = obj_parent.find('.animation_delay').val();
var animation_duration = obj_parent.find('.animation_duration').val();
var animation_iteration_count = obj_parent.find('.animation_iteration_count').val();
var animation_infinite = obj_parent.find('.animation_infinite').is(':checked')? 1 : 0;
$globalthis.assignConfigAnimation(animation_bt, animation_type, animation_delay, animation_duration, animation_iteration_count, animation_infinite);
//DONGND:: update data form for group/column
if (obj_parent.hasClass('column-animation-wrapper'))
{
var main_obj = obj_parent.parents('.column-row');
}
if (obj_parent.hasClass('group-animation-wrapper'))
{
var main_obj = obj_parent.parents('.group-row');
}
if (typeof main_obj != 'undefined')
{
main_obj.data('form').animation = animation_type;
main_obj.data('form').animation_delay = animation_delay;
main_obj.data('form').animation_duration = animation_duration;
main_obj.data('form').animation_iteration_count = animation_iteration_count;
main_obj.data('form').animation_infinite = animation_infinite;
}
animation_bt.trigger('click');
});
//DONGND:: hide section select animation for column and group when click out
$(document).on("click", function (e) {
if ($('.animation-button.active').length)
{
e.stopPropagation();
var container = $('.animation-wrapper');
var container2 = $('.animation-button');
if (container.length && container.has(e.target).length === 0 && container2.has(e.target).length === 0 && !$(e.target).hasClass('animation-button') && !$(e.target).hasClass('animation-wrapper')) {
// container.hide();
// $('.animation-button.active').siblings('.animation-wrapper').find('.animationSandbox').removeClass().removeAttr('style').addClass('animationSandbox');
// $('.animation-button.active').removeClass('active');
$('.animation-button.active').trigger('click');
}
}
});
//DONGND:: active button for section select animation for column and group
$(document).on("change", '.animation_select', function (e) {
var wrapper_obj = $(this).parents('.animation-wrapper');
if ($(this).val() == "none") {
wrapper_obj.find('.animate_sub').hide();
} else {
wrapper_obj.find('.animate_sub').show();
var duration_time = wrapper_obj.find('.animation_duration').val();
var delay_time = wrapper_obj.find('.animation_delay').val();
if (wrapper_obj.find('.animation_infinite').is(':checked'))
{
var iteration_number = 'infinite';
}
else
{
var iteration_number = wrapper_obj.find('.animation_iteration_count').val();
}
wrapper_obj.find('.animationSandbox').removeClass().removeAttr('style').attr('style','animation-duration: '+duration_time+'s; animation-delay: '+delay_time+'s; animation-iteration-count: '+iteration_number).addClass($(this).val() + ' animated animationSandbox').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
$(this).removeClass().removeAttr('style').addClass('animationSandbox');
});
}
});
//DONGND:: run demo with current config
$(document).on("click", '.animate-it', function (e) {
var wrapper_obj = $(this).parents('.animation-wrapper');
wrapper_obj.find('.animation_select').trigger('change');
});
//DONGND:: copy to clipboard
$(document).on("click", '.bt_copy_clipboard', function (e) {
var text_copy = '';
if ($(this).hasClass('shortcode_key'))
{
text_copy = $('#shortcode_key').val();
};
if ($(this).hasClass('shortcode_embedded_hook'))
{
text_copy = $('#shortcode_embedded_hook').val();
};
if ($(this).hasClass('shortcode_embedded_code'))
{
text_copy = $('#shortcode_embedded_code').val();
};
if (text_copy != '')
{
var $temp = $("<input>");
$("body").append($temp);
$temp.val(text_copy).select();
document.execCommand("copy");
showSuccessMessage('Copy successful');
$temp.remove();
}
});
$(document).on("click", '#leotheme_token_demo', function (e) {
$("#ap_loading").show();
$.ajax({
type: 'GET',
headers: {"Access-Control-Allow-Origin": "*"},
url: '//demo1.leotheme.com/instagram.php?get_token=1',
dataType: 'jsonp',
crossOrigin: true,
async: true,
cache: false,
jsonpCallback: 'callbackInstagramToken',
error: function (XMLHttpRequest, textStatus, errorThrown) {
// alert("ERROR: \n\n Details:\n" + errorThrown);
// $("#ap_loading").hide();
},
complete: function () {
$("#ap_loading").hide();
}
});
window.callbackInstagramToken = function(json) {
if (json && json.token){
$('.form_ApInstagram #access_token').val(json.token);
}
$("#ap_loading").hide();
}
});
};
//DONGND:: assign config to data form column/group
this.assignConfigAnimation = function (obj_bt, data_type, data_delay, data_duration, data_iteration, data_infinite) {
obj_bt.data('animation-type', data_type);
obj_bt.data('animation-delay', data_delay);
obj_bt.data('animation-duration', data_duration);
obj_bt.data('animation-iteration-count', data_iteration);
obj_bt.data('animation-infinite', data_infinite);
var txt_default = obj_bt.find('.animation-status').data('text-default');
if (data_type != 'none')
{
obj_bt.addClass('btn-success');
var txt_infinite = obj_bt.find('.animation-status').data('text-infinite');
obj_bt.find('.animation-status').text(data_type + (data_infinite == 1 ? ' ('+txt_infinite+')' : ''));
}
else
{
obj_bt.removeClass('btn-success');
obj_bt.find('.animation-status').text(txt_default);
}
};
this.changeDatacolumn = function (column) {
var $globalthis = this;
ObjectForm = $globalthis.assignDataForm(column);
$(column).data('form', ObjectForm);
$('.widget-row', $(column)).each(function () {
widgetRow = $(this);
if ($(this).hasClass('ApAccordions')) {
accId = "accordion_" + $globalthis.getRandomNumber();
ObjectForm = $globalthis.assignDataForm(widgetRow, accId);
$(widgetRow).data('form', ObjectForm);
$(widgetRow).attr('id', accId);
$(widgetRow).attr('class', 'widget-row ApAccordions ' + $globalthis.classWidget + ' ' + ObjectForm.form_id);
$globalthis.changeAccordionPanel(widgetRow, accId);
} else {
ObjectForm = $globalthis.assignDataForm(widgetRow);
$(widgetRow).data('form', ObjectForm);
if ($(this).hasClass('ApTabs')) {
$(widgetRow).attr('class', 'widget-row ApTabs ' + $globalthis.classWidget + ObjectForm.form_id);
$globalthis.changeTabs(widgetRow);
}
}
});
return column;
};
this.returnWidthClass = function (width) {
$globalthis = this;
if (!width)
width = $globalthis.windowWidth;
if (parseInt(width) >= 1200)
return 'xl';
if (parseInt(width) >= 992)
return 'lg';
if (parseInt(width) >= 768)
return 'md';
if (parseInt(width) >= 576)
return 'sm';
if (parseInt(width) >= 480)
return 'xs';
if (parseInt(width) < 480)
return 'sp';
};
this.getClassColumn = function (objCol) {
$globalthis = this;
classColumn = 'column-row ' + $globalthis.classWidget;
for (ic = 0; ic < $globalthis.arrayCol.length; ic++) {
if (objCol[$globalthis.arrayCol[ic]]) {
valueCol = objCol[$globalthis.arrayCol[ic]];
if (valueCol.toString().indexOf(".") != -1) {
valueCol = valueCol.toString().replace(".", "-");
}
classColumn += " col-" + $globalthis.arrayCol[ic] + "-" + valueCol;
}
}
return classColumn;
};
this.changWidgetFormID = function (panel) {
var $globalthis = this;
$('.widget-row', $(panel)).each(function () {
var ObjectForm = {form_id: "form_" + $globalthis.getRandomNumber()};
dataForm = $(this).data("form");
Object.keys(dataForm).forEach(function (key) {
if (key != 'form_id')
ObjectForm[key] = dataForm[key];
});
$(this).data('form', ObjectForm);
});
};
this.assignDataForm = function (element, id) {
var $globalthis = this;
dataForm = $(element).data("form");
var ObjectForm = {form_id: "form_" + $globalthis.getRandomNumber()};
Object.keys(dataForm).forEach(function (key) {
if (key != 'form_id') {
if (id && key == 'id')
ObjectForm[key] = id;
else
ObjectForm[key] = dataForm[key];
}
});
return ObjectForm;
};
this.changeTabs = function (widget) {
var $globalthis = this;
$('.widget-container-heading li a', $(widget)).each(function () {
if ($(this).parent().attr("id") != "default_tabnav" && !$(this).parent().hasClass("tab-button")) {
OldHref = $(this).attr('href').replace('#', '');
tabID = "tab_" + $globalthis.getRandomNumber();
$(this).attr('href', "#" + tabID);
ObjectForm = $globalthis.assignDataForm(this, tabID);
$(this).data('form', ObjectForm);
$(widget).find('.tab-pane').each(function () {
if ($(this).attr('id') == OldHref) {
$(this).attr('id', tabID);
return false;
}
});
accId = "accordion_" + $globalthis.getRandomNumber();
ObjectForm = $globalthis.assignDataForm(widgetRow, accId);
$(widgetRow).data('form', ObjectForm);
$(widgetRow).attr('id', accId);
$(widgetRow).attr('class', 'widget-row ApAccordions ' + $globalthis.classWidget + ' ' + ObjectForm.form_id);
$globalthis.changWidgetFormID(widgetRow);
$globalthis.changeAccordionPanel(widgetRow, accId);
}
});
};
this.changeAccordionPanel = function (panel, accId) {
var $globalthis = this;
$('.panel-title a', $(panel)).each(function () {
newHref = "collapse_" + $globalthis.getRandomNumber();
ObjectForm = $globalthis.assignDataForm($(this), newHref);
if (accId) {
ObjectForm.parent_id = accId;
$(this).data('parent', '#' + accId);
}
$(this).data('form', ObjectForm);
$(this).attr('class', ObjectForm.form_id);
oldHref = $(this).attr('href').replace('#', '');
$(this).attr('href', '#' + newHref);
$(panel).find('.panel-collapse').each(function () {
if ($(this).attr('id') == oldHref) {
$(this).attr('id', newHref);
return false;
}
});
});
};
this.getRandomNumber = function () {
return (+new Date() + (Math.random() * 10000000000000000)).toString().replace('.', '');
};
this.testAnim = function (x) {
$('#animationSandbox').removeClass().addClass(x + ' animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function () {
$(this).removeClass();
});
};
// AJAX LOAD FORM, LOAD WIDGET
this.setFormAction = function () {
var $globalthis = this;
//DONGND:: slick custom enable/disable
$('#slick_custom_status').change(function(){
if($(this).val() == 1)
{
$('#slick_custom').parents('.form-group').show();
}
else
{
$('#slick_custom').parents('.form-group').hide();
}
});
//DONGND:: slick center mode enable/disable
$('#slick_centermode').change(function(){
if($(this).val() == 1)
{
$('#slick_centerpadding').parents('.form-group').show();
}
else
{
$('#slick_centerpadding').parents('.form-group').hide();
}
});
$('.form-action').change(function () {
var elementName = $(this).attr('name');
$('.' + elementName + '_sub').hide();
$('.' + elementName + '-' + $(this).val()).show();
//DONGND:: special fields of slick carousel
if ($(this).val() == 'slickcarousel')
{
$('#slick_custom_status').trigger('change');
$('#slick_centermode').trigger('change');
}
});
// Show tool tip, hint of label
$("#modal_form .label-tooltip").tooltip();
if ($('select[name="bg_config"]').length) {
$('select[name="bg_config"]').change(function () {
if ($(this).val() == "fullwidth") {
if ($("#container").val() == "") {
bgType = $('select[name="bg_type"] option');
bgType.prop('selected', false);
bgType.find('option[value="normal"]').prop('selected', true);
$('select[name="bg_type"] option').each(function () {
if ($(this).val() != "normal" && $(this).val() != "fixed")
$(this).attr('disabled', 'disabled');
});
} else {
$('select[name="bg_type"] option').each(function () {
if ($(this).val() != "normal" && $(this).val() != "fixed")
$(this).removeAttr('disabled', 'disabled');
});
}
} else {
$('select[name="bg_type"] option').each(function () {
if ($(this).val() != "normal" && $(this).val() != "fixed")
$(this).removeAttr('disabled', 'disabled');
});
}
});
$("#container").change(function () {
$('select[name="bg_config"]').trigger("change");
})
$('select[name="bg_config"]').trigger("change");
}
$('.checkbox-group').change(function () {
$globalthis.showOrHideCheckBox($(this));
});
$('.width-select').click(function () {
btnGroup = $(this).closest('.btn-group');
spanObj = $('.width-val', $(this));
width = $(spanObj).data('width');
$('.col-val', $(btnGroup)).val(width);
$('.apbtn-width .width-val', $(btnGroup)).html($(spanObj).html());
$('.apbtn-width .width-val', $(btnGroup)).attr('class', $(spanObj).attr('class'));
});
if ($('.aptab-config').length > 0) {
//set tab aciton
$('.aptab-config').each(function () {
if (!$(this).parent().hasClass('active')) {
element = $(this).attr('href').toString().replace("#", ".");
$(element).hide();
}
});
$('.aptab-config').click(function () {
divElement = $(this).attr('href').toString().replace("#", ".");
aElement = $(this);
$('.aptab-config').each(function () {
if ($(this).parent().hasClass('active')) {
element = $(this).attr('href').toString().replace("#", ".");
$(this).parent().removeClass('active');
$(element).hide();
return false;
}
});
$(divElement).show();
$(aElement).parent().addClass('active');
$('.form-action', $(divElement)).each(function () {
$(this).trigger("change");
});
$('.checkbox-group', $(divElement)).each(function () {
$globalthis.showOrHideCheckBox($(this));
});
// if ($(this).attr('href') == "#aprow_animation" && $('#animation').length > 0)
// $('#animation').trigger("change");
});
}
if ($('.em_text').length > 0) {
//page in column form
$('.em_text').change(function () {
var list = $(this).closest('.well').find('.em_list');
var values = "";
if ($(this).val())
values = $(this).val().split(',');
var len = values.length;
list.find('option').prop('selected', false);
for (var i = 0; i < len; i++)
list.find('option[value="' + $.trim(values[i]) + '"]').prop('selected', true);
});
$('.em_list').change(function () {
if ($(this).val()) {
var str = $(this).val().join(', ');
var text = $(this).closest('.well').find('.em_text');
$(text).val(str);
}
});
}
if ($('#animation').length > 0) {
$('#animation').after('<button type="button" class="btn btn-default animate-it animate_sub">Animate it</button>');
$('.animate-it').click(function () {
$('#animation').trigger("change");
});
$('#animation').change(function () {
if ($(this).val() == "none") {
$('.animate_sub').hide();
} else {
$('.animate_sub').show();
$globalthis.testAnim($(this).val());
}
});
}
if ($('.select-img').length > 0) {
/*$('.select-img').click(function(){
$.fancybox.open([{
type: 'iframe',
href: $globalthis.imgController,
afterLoad: function () {
$globalthis.hideSomeElement();
//$('.fancybox-iframe').load( $this.hideSomeElement );
},
afterClose: function (event, ui) {
//location.reload();
}
}], {
padding: 10
});
return false;
});
*/
}
if ($('.form-action').length > 0 || $('.checkbox-group').length) {
if ($("#configuration_form .nav-tabs").length)
$("#configuration_form .nav-tabs li.active a").trigger("click");
else {
$('.form-action').trigger("change");
$('.checkbox-group').each(function () {
$globalthis.showOrHideCheckBox($(this));
});
}
}
if ($(".select-class").length) {
$('.select-class').each(function(){
if($('.element_class').val().indexOf($(this).attr('data-value')) >= 0){
$(this).attr('checked','checked');
}
});
$(".select-class").click(function () {
if ($(this).is(':checked')) {
$('.select-class').each(function() {
// REMOVE ALL CHECKBOX VALUE IN TEXT
var classChk = $(this).data("value");
input_text = $(this).closest('.well').find('.element_class').first().val();
// trim string
var input_text = input_text.replace(classChk, "");
input_text = input_text.split(" ").join(" ");
input_text = $.trim(input_text);
$(this).closest('.well').find('.element_class').first().val(input_text);
});
var classChk = $(this).data("value");
var elementText = $(this).closest('.well').find('.element_class').first();
// SET VALUE CHECKBOX TO TEXT
if ($(elementText).val().indexOf(classChk) == -1) {
if ($(elementText).val() != "") {
$(elementText).val($(elementText).val() + " " + classChk);
} else {
$(elementText).val(classChk);
}
}
}
});
$(".chk-row").click(function () {
var classChk = $(this).data("value");
var elementText = $(this).closest('.well').find('.element_class').first();
if ($(elementText).val().indexOf(classChk) == -1) {
// NOT EXIST AND ADD
if ($(elementText).val() != "") {
$(elementText).val($(elementText).val() + " " + classChk);
} else {
$(elementText).val(classChk);
}
}else{
// EXIST AND REMOVE
var find = classChk;
var re = new RegExp(find, 'g');
var text = $(elementText).val();
text = text.replace(re, '');
$(elementText).val(text);
}
});
$(".element_class").change(function () {
elementChk = $(this).closest('.well').find('input[type=checkbox]');
classText = $(this).val();
$(elementChk).each(function () {
classChk = $(this).data("value");
if (classText.indexOf(classChk) != -1) {
if (!$(this).is(':checked'))
$(this).prop("checked", true);
} else {
$(this).prop("checked", false);
}
});
});
$(".element_class").trigger("change");
}
//$('.new-shortcode').click(function() {
$(".cover-short-code").click(function () {
var a = $(this).find("a");
var tab = $(a).hasClass("module") ? "module" : "widget";
$(".btn-back-to-list").attr("tab", tab);
// Add widget
url = $globalthis.ajaxShortCodeUrl + "&addnew&type_shortcode="
+ $(a).data("type") + "&type=" + tab;
data = "";
$("#ap_loading").show();
$.ajax({
type: 'POST',
headers: {"cache-control": "no-cache"},
url: url,
async: true,
cache: false,
data: data,
success: function (data) {
//fix bug prestashop 1.7.6.2 can not get address_token
if (typeof address_token === "undefined") {
var match = RegExp('[?&]' + 'token' + '=([^&]*)').exec(window.location.search);
address_token = match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
$("#txt-search").hide();
$('#myModalLabel').html($('#myModalLabel').data('addnew'));
$("#ap_loading").hide();
$('#modal_form .modal-footer').show();
$('#modal_form .modal-body').html(data);
$('#myModalLabel').html($('#myModalLabel').html() + ' : ' + $('.modal-widget-title').html());
resetSelectedImage();
if ($(a).data("type") == "ApFullSlider" || $(a).data("type") == "ApBlockCarousel") {
initFullSlider("add");
}
if ($(a).data("type") == "ApBlockLink") {
$globalthis.initBlockLink("add");
}
if ($(a).data("type") == "ApCounter") {
$globalthis.initCounter("add");
}
hideFormLevel2();
$globalthis.setFormAction();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ap_loading").hide();
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
}
});
});
if ($("#list-slider").length > 0) {
$("#list-slider").sortable({accept: "div",
update: function () {
var listId = "";
var sep = "";
$("#list-slider li").each(function () {
var id = (typeof $(this).attr("id") != "undefined") ? $(this).attr("id") : "";
if (id) {
listId += sep + id;
sep = "|";
}
});
$("#total_slider").val(listId);
}
});
}
//copy to other laguage
$("#configuration_form .translatable-field").each(function(){
// if(!$(this).find('.mce-tinymce').length)
$(this).find('.col-lg-2').append('<a href="javascript:void(0)" title="Click on it to copy text to other language" class="btn btn-success ap-copy-lang">Duplicate</a>');
});
$('#configuration_form .ap-copy-lang').click(function(){
input = $(this).closest('.translatable-field').find('div').first().find('input').first();
textarea = $(this).closest('.translatable-field').find('div').first().find('textarea').first();
iframe = $(this).closest('.translatable-field').find('div').first().find('iframe').first();
image = $(this).closest('.translatable-field').find('div').first().find('img').first();
if (iframe.length){
var iframeContent = document.getElementById(iframe.attr('id')).contentWindow.document.body.innerHTML;
}
$(this).closest('.translatable-field').parent().closest('.form-group').find('.translatable-field').each(function(){
$(this).find('div').first().find('input').each(function(){
$(this).val($(input).val());
});
$(this).find('div').first().find('textarea').each(function(){
$(this).val($(textarea).val());
});
$(this).find('div').first().find('img').each(function(){
$(this).attr('src', $(image).attr('src'));
$(this).attr('data-img', $(image).attr('data-img'));
});
$(this).find('div').first().find('iframe').each(function(){
$(this).contents().find('body').html(iframeContent);
});
// if(image.length && $(this).find('.choose-img').length && $(this).find('img').length < 1) {
// $(this).find('.choose-img').first().parent().append($(image));
// }
})
});
};
this.initControllInRow = function () {
$globalthis = this;
$('.btn-custom').popover({
html: true,
content: function () {
$globalthis.currentElement = $('.group-content', $(this).closest('.group-row'));
return $('#addnew-group-form').html();
}
});
$('.btn-custom').on('shown.bs.popover', function () {
$('.number-column').click(function () {
widthCol = $(this).data('width');
classActive = $globalthis.returnWidthClass();
realValue = widthCol.toString().replace('.', '-');
$('.column-row', $($globalthis.currentElement)).each(function () {
ObjColumn = $(this).data('form');
oldClass = ObjColumn[classActive].toString().replace('.', '-');
if (classActive == "md" || classActive == "lg" || classActive == "xl") {
classColumn = $(this).attr('class').replace('col-xl-' + oldClass, 'col-xl-' + realValue).replace('col-lg-' + oldClass, 'col-lg-' + realValue).replace('col-md-' + oldClass, 'col-md-' + realValue);
ObjColumn.md = ObjColumn.lg = ObjColumn.xl = widthCol;
} else {
classColumn = $(this).attr('class').replace('col-' + classActive + '-' + oldClass, 'col-' + classActive + '-' + realValue);
ObjColumn[classActive] = widthCol;
}
$(this).attr('class', classColumn);
$(this).data('form', ObjColumn);
$globalthis.getNumberColumnInClass(this, classActive);
});
});
});
$('.btn-add-column').popover({
html: true,
content: function () {
$globalthis.currentElement = $('.group-content', $(this).closest('.group-row'));
return $('#addnew-column-form').html();
}
});
$('.btn-add-column').on('shown.bs.popover', function () {
});
btn_new_widget_group('.btn-new-widget-group');
}
this.initIsotopAction = function () {
var $containerWidget = $("#widget_container");
var $containerModule = $("#module_container");
var currentTab = "widget";
// init
$containerWidget.isotope({
// options
itemSelector: ".item",
layoutMode: "fitRows"
});
$containerModule.isotope({
// options
itemSelector: ".item",
layoutMode: "fitRows"
});
function searchWidget(search) {
var tab = currentTab;
//log(tab);
//log(search);
$("#modal_form .for-" + tab + " .btn").removeClass("is-checked");
$("#modal_form .for-" + tab + " li:first-child .btn").addClass("is-checked");
// Detect and search by name
var container = (tab === "widget" ? $containerWidget : $containerModule);
container.isotope({
filter: function () {
if (search === "") {
return true;
} else {
var label = $(this).find(".label").text().toLowerCase() + " "
+ $(this).find("small i").text().toLowerCase();
return label.search(search) !== -1;
}
}
});
}
searchWidget($("#modal_form #txt-search").val().toLowerCase());
$("#tab-new-widget").on("click", "a", function () {
currentTab = $(this).attr("aria-controls");
var search = $("#txt-search").val().toLowerCase();
var filterValue = $(".for-" + currentTab + " .is-checked").data("filter");
// Reinit
var container = (currentTab === "widget" ? $containerWidget : $containerModule);
// Priority is action search, in the case text search is not empty
// will search and reset sub category is Show all
if (filterValue !== "*") {
$(".for-" + currentTab + " .btn").removeClass("is-checked");
$(".for-" + currentTab + " li:first-child .btn").addClass("is-checked");
}
setTimeout(function () {
container.isotope({
// options
itemSelector: ".item",
layoutMode: "fitRows",
filter: function () {
if (search === "") {
// Check selected other category
if (filterValue === "*") {
return true;
} else {
return $(this).data("tag") === filterValue;
}
} else {
var label = $(this).find(".label").text().toLowerCase() + " "
+ $(this).find("small i").text().toLowerCase();
return label.search(search) !== -1;
}
}
});
}, 100);
});
$("#modal_form").on("keyup", "#txt-search", function () {
var search = $(this).val().toLowerCase();
searchWidget(search);
});
$(".filters").on("click", "button", function () {
var tab = $(this).closest("ol").data("for");
var filterValue = filterValue = $(this).data("filter");
var container = (tab === "widget" ? $containerWidget : $containerModule);
$("#modal_form .for-" + tab + " button").removeClass("is-checked");
$(this).addClass("is-checked");
$("#txt-search").val("");
$("#txt-search").focus();
container.isotope({
filter: function () {
if (filterValue === "*") {
return true;
} else {
return $(this).data("tag").search(filterValue) >= 0;
}
}
});
});
$(".filters li:first-child button").trigger("click");
};
this.hideSomeElement = function () {
$('body', $('.fancybox-iframe').contents()).find("#header").hide();
$('body', $('.fancybox-iframe').contents()).find("#footer").hide();
$('body', $('.fancybox-iframe').contents()).find(".page-head, #nav-sidebar ").hide();
};
this.showOrHideCheckBox = function (checkbox) {
id = $(checkbox).attr('id');
if ($(checkbox).is(':checked'))
$('.' + id).show();
else
$('.' + id).hide();
};
this.copyLang = function (element) {
var $globalthis = this;
var reg = new RegExp("_" + $globalthis.lang_id, "g");
//if(typeof $(element) != undefined && !$(element).hasClass("ignore-lang") && typeof $(element).attr("id") != undefined) {
if (typeof $(element) != undefined && !$(element).hasClass("ignore-lang") && $(element).attr("id")) {
idTemp = $(element).attr("id").replace(reg, "");
Object.keys($globalthis.languages).forEach(function (key) {
lang = $globalthis.languages[key];
if (lang != $globalthis.lang_id && $("#" + idTemp + "_" + lang).val() == "") {
$("#" + idTemp + "_" + lang).val($("#" + idTemp + "_" + $globalthis.lang_id).val());
}
});
}
};
this.initBlockLink = function (action) {
$("#configuration_form .link_group").each(function(){
if(!$(this).hasClass("addspan")){
$(this).addClass("addspan");
$(this).prepend('<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>');
}
});
$("#configuration_form").sortable({
items: ".link_group",
update: function( event, ui ) {
count = 1;
$("#configuration_form .link_group").each(function(){
$(this).data('index', count);
$(this).find('input[type="text"]').each(function () {
$globalthis.changeBlockLinkName($(this), count);
});
$(this).find('textarea').each(function () {
$globalthis.changeBlockLinkName($(this), count);
});
$(this).find('select').each(function () {
$globalthis.changeBlockLinkName($(this), count);
});
count++;
});
$('#list_id_link').val('');
$('.link_group').each(function(){
$('#list_id_link').val($('#list_id_link').val()+$(this).data('index')+',');
})
}
});
};
this.initCounter = function (action) {
$("#configuration_form .link_group").each(function(){
if(!$(this).hasClass("addspan")){
$(this).addClass("addspan");
$(this).prepend('<span class="ui-icon ui-icon-arrowthick-2-n-s"></span>');
}
});
$("#configuration_form").sortable({
items: ".link_group",
update: function( event, ui ) {
count = 1;
$("#configuration_form .link_group").each(function(){
$(this).data('index', count);
$(this).find('input[type="text"]').each(function () {
$globalthis.changeBlockLinkName($(this), count);
});
$(this).find('textarea').each(function () {
$globalthis.changeBlockLinkName($(this), count);
});
$(this).find('select').each(function () {
$globalthis.changeBlockLinkName($(this), count);
});
count++;
});
$('#list_id_link').val('');
$('.link_group').each(function(){
$('#list_id_link').val($('#list_id_link').val()+$(this).data('index')+',');
})
}
});
};
this.changeBlockLinkName = function (element, count) {
name = $(element).attr('name');
if($(element).closest('.form-group').find('.translatable-field').length) {
//link_title_3_1
//_1
naml = name.substr(name.lastIndexOf("_"));
//link_title_3
namer = name.substr(0, name.lastIndexOf("_"));
nameNoN = namer.substr(0, namer.lastIndexOf("_"));
$(element).attr('name', nameNoN+"_"+count+naml);
$(element).attr('id', nameNoN+"_"+count+naml);
}else{
nameNoN = name.substr(0, name.lastIndexOf("_"));
$(element).attr('name', nameNoN+"_"+count);
$(element).attr('id', nameNoN+"_"+count);
}
};
this.saveWidget = function (type) {
var $globalthis = this;
currentE = $globalthis.currentElement;
var ObjectForm = {form_id: "form_" + $globalthis.getRandomNumber()};
contentHtml = "";
widgetType = '';
// FIX : widget AP_RAW_HTML always get content of AP_HTML which created before
$($("#configuration_form").serializeArray()).each(function (i, field) {
if (field.name.substring(0, 2).toLowerCase() == 'ap' && field.value == '1') {
widgetType = field.name;
}
});
if (typeof tinyMCE != "undefined" && widgetType != 'ApRawHtml') {
var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
if (isChrome && (widgetType == 'ApHtml' || widgetType == 'ApImage' || widgetType == 'ApAlert')){
for (var i = 0; i < $('#configuration_form iframe').length; i++) {
var iframeDocument = document.getElementById($('#configuration_form iframe').eq(i).attr('id')).contentWindow.document;
var iframeContent = iframeDocument.getElementById('tinymce').innerHTML;
$("#" + $('#configuration_form iframe').eq(i).attr('id').replace(/_ifr/g, '')).val(iframeContent != '<p><br data-mce-bogus=\"1\"></p>' && iframeContent != '<p><br></p>' ? iframeContent : '');
// var mce = tinyMCE.editors[i].getContent();
// log(tinyMCE.activeEditor.settings.id);
//$("#" + tinyMCE.editors[i].settings.id).val(mce);
}
}else{
tinyMCE.triggerSave();
}
}
//update language for other field
$("#configuration_form .lang-" + $globalthis.lang_id).each(function () {
$(this).find('input[type="text"]').each(function () {
$globalthis.copyLang($(this));
});
$(this).find('textarea').each(function () {
$globalthis.copyLang($(this));
});
});
$($("#configuration_form").serializeArray()).each(function (i, field) {
// SET EMPTY VALUE AFTER UPDATE LANGUAGE FOR OTHER FIELD
if( field.value == '_JS_EMPTY_VALUE_')
{
field.value = '';
}
if (field.name.substring(0, 2).toLowerCase() == 'ap' && field.value == '1') {
widgetType = field.name;
} else {
if (field.name == "content_html_" + $globalthis.lang_id) {
contentHtml = field.value.replace(/[\n]/g, "").replace(/[\r]/g, "");
if (type == "update") {
//$(currentE).find('.html-code').html(contentHtml);
}
}
var fName = field.name;
if (fName.indexOf('[]') != -1) {
fName = fName.replace('[]', '');
if (ObjectForm[fName]) {
ObjectForm[fName] += ',' + field.value;
}
else {
ObjectForm[fName] = field.value;
}
} else {
var valTemp = field.value.replace(/\&/g, '_APAMP_')
.replace(/\'/g, '_APAPOST_')
.replace(/\"/g, '_APQUOT_')
.replace(/[\t]/g, "_APTAB_")
.replace(/\[/g, "_APOBRACKET_")
.replace(/[\n]/g, "_APENTER_")
.replace(/[\r]/g, "")
.replace(/[+]/g, "_APPLUS_")
.replace(/\{/g, "_APOCBRACKET_")
.replace(/\}/g, "_APCCBRACKET_")
.replace(/\]/g, "_APCBRACKET_");
ObjectForm[fName] = valTemp;
}
}
});
//for sub tab
if (widgetType.indexOf('ApSub') == 0) {
tmpObjectForm = {};
tmpObjectForm.form_id = ObjectForm.form_id;
tmpObjectForm.id = ObjectForm.id;
Object.keys($globalthis.languages).forEach(function (key) {
tmpObjectForm["title_" + $globalthis.languages[key]] = ObjectForm["title_" + $globalthis.languages[key]];
});
ObjectForm = tmpObjectForm;
oldHref = $(currentE).attr("href").toString().replace('#', '');
panelFind = '.panel-collapse';
if (widgetType == 'ApSubAccordion') {
ObjectForm.parent_id = $(currentE).data('form').parent_id;
panelFind = '.panel-collapse';
} else {
panelFind = '.tab-pane';
}
$(currentE).html(ObjectForm['title_' + $globalthis.lang_id]);
$(currentE).closest('.widget-row').find(panelFind).each(function () {
if ($(this).attr('id') == oldHref) {
$(this).attr('id', ObjectForm.id);
return false;
}
});
$(currentE).attr("href", "#" + ObjectForm.id);
}
if (type == "update") {
// SAVE ACTIVE
//DONGND:: fix can't save tab after update
if (widgetType != "ap_sub_tabs")
{
if ($(currentE).find('.all-devicesd').hasClass("deactive")) {
ObjectForm.active = 0;
} else {
ObjectForm.active = 1;
}
}
if (widgetType == "ApColumn") {
$globalthis.changeColumnClass(currentE, ObjectForm);
}
if (widgetType == "ApRawHtml") {
$(currentE).data("form", ObjectForm);
$(currentE).find(".html-code").html(htmlentities(contentHtml));
} else if (widgetType == "ApSubAccordion") {
ObjectForm["parent_id"] = $globalthis.parentId;
$(currentE).data("form", ObjectForm);
} else {
$(currentE).data("form", ObjectForm);
}
//DONGND:: update name of tab after change
if (widgetType == "ap_sub_tabs")
{
$(currentE).text(ObjectForm['title_' + $globalthis.lang_id]);
}
//console.log(ObjectForm);
$(".label-tooltip").tooltip();
return true;
}
dataInfo = $globalthis.shortcodeInfos[widgetType];
if (widgetType == "ApTabs") {
widget = $("#default_ApTabs").clone(1);
//DONGND:: remove default tab and default content from tab clone
$(widget).find('li#default_tabnav').remove();
$(widget).find('div#default_tabcontent').remove();
widget.removeAttr('id');
$(".widget-container-heading a", $(widget)).each(function () {
if ($(this).parent().attr("id") != "default_tabnav" && !$(this).parent().hasClass("tab-button")) {
var ObjectTab = {form_id: "form_" + $globalthis.getRandomNumber()};
tabID = "tab_" + $globalthis.getRandomNumber();
ObjectTab.id = tabID;
ObjectTab["css_class"] = "";
ObjectTab["override_folder"] = "";
//set href for tab a
titleTab = $.trim($(this).html());
Object.keys($globalthis.languages).forEach(function (key) {
ObjectTab["title_" + $globalthis.languages[key]] = titleTab;
});
OldHref = $(this).attr('href').replace('#', '');
$(this).attr("href", "#" + tabID);
$(this).data("form", ObjectTab);
$(widget).find('.tab-pane').each(function () {
if ($(this).attr('id') == OldHref) {
$(this).attr('id', tabID);
return false;
}
});
}
});
} else if (widgetType == "ApAccordions") {
widget = $("#default_ApAccordions").clone();
widget.removeAttr('id');
accIdWraper = "accordion_" + $globalthis.getRandomNumber();
ObjectForm.id = accIdWraper;
$('.panel-group', $(widget)).attr('id', accIdWraper);
$(".panel-title a", $(widget)).each(function () {
$(this).data('parent', accIdWraper);
accIdSub = "collapse_" + $globalthis.getRandomNumber();
OldHref = $(this).attr('href').replace('#', '');
$(this).attr('href', "#" + accIdSub);
$('.panel-collapse', $(this).closest('.panel-default')).attr('id', accIdSub);
var ObjectTab = {form_id: "form_" + $globalthis.getRandomNumber()};
ObjectTab.parent_id = accIdWraper;
ObjectTab.id = accIdSub;
titleTab = $(this).html();
Object.keys($globalthis.languages).forEach(function (key) {
ObjectTab["title_" + $globalthis.languages[key]] = titleTab;
});
$(widget).find('.panel-collapse').each(function () {
if ($(this).attr('id') == OldHref) {
$(this).attr('id', tabID);
return false;
}
});
$(this).data("form", ObjectTab);
});
//$('.panel-collapse', $(widget)).last().collapse();
} else {
if ($("#default_" + widgetType).length)
widget = $("#default_" + widgetType).clone(1);
else
widget = $("#default_widget").clone(1);
if (widgetType == "ApRawHtml") {
$('.widget-title', $(widget)).remove();
if ($(widget).find('.html-code').first().length == 0) {
$(".widget-content", $(widget)).append("<pre><code class='html-code'>" + htmlentities(contentHtml) + "</code></pre>");
} else {
$(widget).find('.html-code').first().html(htmlentities(contentHtml));
}
}
widget.removeAttr('id');
}
//add new widget in column
if (type == 'column') {
widget.removeAttr('id');
$(currentE).append(widget);
} else {
column = $("#default_column").clone(1);
column.removeAttr('id');
objColumn = {form_id: "form_" + $globalthis.getRandomNumber()};
jQuery.extend(objColumn, $globalthis.getColDefault());
$(column).data("form", objColumn);
$('.column-content', $(column)).append(widget);
group = $("#default_row").clone();
group.removeAttr('id');
//var html = $(group).find(".group-controll-right").html();
//$(group).find(".group-controll-right").html(html);
$(group).data("form", {form_id: "form_" + $globalthis.getRandomNumber(), 'class': 'row'});
$('.group-content', $(group)).append(column);
$(currentE).before(group);
}
//if element is widget
if (widgetType) {
$(widget).addClass('widget-icon');
$('.widget-title', $(widget)).html(dataInfo.label);
$('.widget-title', $(widget)).attr('title', dataInfo.desc);
$('.w-icon', $(widget)).addClass(dataInfo.icon_class).addClass(widgetType);
}
//if element is module
$(widget).data("form", ObjectForm);
$(widget).data("type", widgetType);
$(widget).find(".label-tooltip").tooltip();
$globalthis.sortable();
};
this.returnColValue = function (colNumber, finalVal) {
$globalthis = this;
widthVal = $globalthis.returnWidthClass();
startSet = 0;
var colDefault = $globalthis.getColDefault();
for (j = 0; j < $globalthis.arrayCol.length; j++) {
if ($globalthis.arrayCol[j] == widthVal) {
startSet = 1;
colDefault[$globalthis.arrayCol[j]] = finalVal;
continue;
}
//default xs = 6-> 2 cols.but we set 2 cols, we have to assign again
if (startSet && ((12 / parseInt(colDefault[$globalthis.arrayCol[j]])) < colNumber)) {
colDefault[$globalthis.arrayCol[j]] = finalVal;
}
}
return colDefault;
};
this.changeColumnClass = function (element, dataObj) {
var $globalthis = this;
columnClass = 'column-row ' + $globalthis.classWidget;
Object.keys($globalthis.getColDefault()).forEach(function (key) {
columnClass += ' col-' + key + '-' + dataObj[key].toString().replace('.', '-');
});
$(element).attr('class', columnClass);
};
this.getSubWidget = function (container) {
var $globalthis = this;
var widgetList = new Object();
$(container).children().each(function (iWidget) {
var objWidget = new Object();
objWidget.params = $(this).data('form');
if($.isEmptyObject( objWidget.params ) )
{
$(this).css('background-color', '#ff6f6f');
// Dont have param -> dont save
$globalthis.isValid = false;
}else{
$(this).css("background-color", "");
}
objWidget.type = $(this).data('type');
//if it is special widget - load sub widget
if ($(this).find('.subwidget-content').length) {
objWidget.widgets = new Object();
iSubWidget = 0
$(this).find('.widget-container-heading a').each(function () {
if ($(this).parent().attr("id") != "default_tabnav" && !$(this).parent().hasClass("tab-button")) {
var objSubWidget = new Object();
objSubWidget.params = $(this).data('form');
element = $($(this).attr('href')).find('.subwidget-content').first();
objSubWidget.widgets = $globalthis.getSubWidget(element);
objWidget.widgets[iSubWidget] = objSubWidget;
iSubWidget++;
}
});
}
widgetList[iWidget] = objWidget;
});
return widgetList;
};
this.getHookSubmit = function (group, isEscape) {
var $globalthis = this;
//group object - contain column
var objGroup = new Object();
objGroup.params = $(group).data('form');
objGroup.columns = new Object();
//find column in this group
$('.column-row', $(group)).each(function (iColumn) {
var objColumn = new Object();
objColumn.params = $(this).data('form');
//pass widget for each column
objColumn.widgets = $globalthis.getSubWidget($(this).find('.column-content').first());
//pass column for each group
objGroup.columns[iColumn] = objColumn;
});
//pass group for each hook
return objGroup;
};
this.submitForm = function () {
var $globalthis = this;
//DONGND: check save submit
if(typeof checkSaveSubmit != 'undefined' && checkSaveSubmit == 0)
{
// SUBMIT FORM - AJAX
$("#page-header-desc-appagebuilder-save").removeAttr("onclick");
$(document).on("click", "#page-header-desc-appagebuilder-save", function () {
//filter all group
$("#ap_loading").show();
url = $globalthis.ajaxHomeUrl + '&ajax=1&action=saveData&id_profile=' + $('#current_profile').data('id');
//form object
var objects = new Object();
var isValid = true;
$('.hook-wrapper').each(function (iHook) {
//hook object contain group
var objHook = new Object();
objHook.name = $(this).data("hook");
// Get position id
var select = $(this).closest(".position-cover").find(".dropdown ul");
objHook.position = $(select).data("position");
objHook.position_id = $(select).data("id");
if (!objHook.position_id) {
//alert($(select).data("blank-error"));
isValid = false;
//return false;
}
objHook.groups = {};
$('.group-row', $(this)).each(function (iGroup) {
objHook.groups[iGroup] = $globalthis.getHookSubmit(this, true);
});
//set hook to object
objects[iHook] = objHook;
});
//DONGND: enable save multithreading
if(checkSaveMultithreading == 1)
{
var i = 0;
doLoop(isValid);
}
else
{
data = 'dataForm=' + JSON.stringify(objects);
$.ajax({
type: "POST",
headers: {"cache-control": "no-cache"},
url: url,
async: true,
cache: false,
data: data,
dataType: 'json',
cache: false,
success: function (json) {
//fix bug prestashop 1.7.6.2 can not get address_token
if (typeof address_token === "undefined") {
var match = RegExp('[?&]' + 'token' + '=([^&]*)').exec(window.location.search);
address_token = match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
$("#ap_loading").hide();
if (json && json.hasError == true){
alert(json.errors);
}else{
if (!isValid) {
window.location.reload(true);
}
else
{
showSuccessMessage('Update successful');
}
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ap_loading").hide();
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
}
});
};
//DONGND: function run save multithreading
function doLoop(isValid) {
var temp_obj = new Object();
temp_obj[i] = objects[i];
data = 'dataForm=' + JSON.stringify(temp_obj);
if(i+1 == Object.keys(objects).length)
{
data += '&dataLast=1';
};
if(i==0)
{
data += '&dataFirst=1';
};
$.ajax({
type: "POST",
headers: {"cache-control": "no-cache"},
url: url,
async: true,
cache: false,
data: data,
dataType: 'json',
cache: false,
success: function (json) {
if (json && json.hasError == true){
$("#ap_loading").hide();
alert(json.errors);
}else{
i++;
if(i< Object.keys(objects).length)
doLoop(isValid);
if(i == Object.keys(objects).length)
{
$("#ap_loading").hide();
if (!isValid) {
window.location.reload(true);
}
else
{
showSuccessMessage('Update successful');
}
}
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ap_loading").hide();
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
}
});
};
return false;
});
}
else
{
// SUBMIT FORM - Normal
$("#page-header-desc-appagebuilder-save").removeAttr("onclick");
$(document).on("click", "#page-header-desc-appagebuilder-save", function () {
var objects = new Object();
$globalthis.isValid = true;
$('.hook-wrapper').each(function (iHook) {
//hook object contain group
var objHook = new Object();
objHook.name = $(this).data("hook");
// Get position id
var select = $(this).closest(".position-cover").find(".dropdown ul");
objHook.position = $(select).data("position");
objHook.position_id = $(select).data("id");
// Tuan Vu : comment this code because In new bank profile doen't have position_id
//if (!objHook.position_id) {
//$globalthis.isValid = false;
//}
objHook.groups = {};
$('.group-row', $(this)).each(function (iGroup) {
objHook.groups[iGroup] = $globalthis.getHookSubmit(this, true);
});
//set hook to object
objects[iHook] = objHook;
});
//console.log(objects);
$('#data_profile').val(JSON.stringify(objects));
$('#data_id_profile').val($('#current_profile').data('id'));
if($globalthis.isValid == true)
{
$("#form_data_profile button").click();
}else{
alert('A widget has error, please reload this profile.');
}
});
};
//DONGND:: submit shortcode
$(document).on("click", ".shortcode_save_btn, .shortcode_save_stay_btn", function () {
if ($(this).hasClass('shortcode_save_stay_btn'))
{
$('#stay_page').val(1);
}
else
{
$('#stay_page').val(0);
}
// console.log($globalthis);
// $globalthis.isValid = true;
var objHook = new Object();
objHook.groups = {};
// console.log($('.group-row'));
$('.hook-wrapper .group-row').each(function (iGroup) {
objHook.groups[iGroup] = $globalthis.getHookSubmit(this, true);
});
// console.log(objHook);
$('#shortcode_content').val(JSON.stringify(objHook));
$('#appagebuilder_shortcode_form').submit();
return false;
});
$(document).on("click", ".position-cover .list-position .position-name", function () {
var select = $(this).closest("ul");
var isRunning = (typeof $(select).attr("isRunning") != "undefined") ? $(select).attr("isRunning") : "";
if (isRunning.length > 0) {
return;
}
$(select).attr("isRunning", "running");
var id = parseInt($(this).data("id"));
var cover = $(select).closest(".position-cover");
$("#ap_loading").show();
$.ajax({
type: "POST",
headers: {"cache-control": "no-cache"},
url: $globalthis.ajaxHomeUrl,
async: true,
dataType: 'json',
cache: false,
data: {
"id": id,
"action": "selectPosition",
"position": $(select).data("position"),
"id_profile": $('#current_profile').data('id')
},
success: function (json) {
//fix bug prestashop 1.7.6.2 can not get address_token
if (typeof address_token === "undefined") {
var match = RegExp('[?&]' + 'token' + '=([^&]*)').exec(window.location.search);
address_token = match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
$("#ap_loading").hide();
if (json && json.hasError == true){
alert(json.errors);
}else{
$(cover).html(json.html);
$globalthis.reInstallEvent(json.data);
btn_new_widget_group('.btn-new-widget-group');
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ap_loading").hide();
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
},
complete: function () {
$(select).attr("isRunning", "");
}
});
return false;
});
$(document).on("click", ".box-edit-position .btn-save", function () {
var btn = $(this);
var mode = $(this).closest(".box-edit-position").data("mode");
var position = $(this).closest(".box-edit-position").data("position");
var name = $.trim($(this).closest(".box-edit-position").find(".edit-name").val());
var id = $(this).closest(".box-edit-position").data("id");
var cover = $(this).closest(".position-cover");
$("#ap_loading").show();
$.ajax({
type: "POST",
dataType: "Json",
headers: {"cache-control": "no-cache"},
url: $globalthis.ajaxHomeUrl,
async: true,
cache: false,
data: {
"id": id,
"name": name,
"mode": mode,
"action": "processPosition",
"position": position,
"id_profile": $('#current_profile').data('id')
},
success: function (json) {
$("#ap_loading").hide();
if (json && json.hasError == true){
alert(json.errors);
}else{
//fix bug prestashop 1.7.6.2 can not get address_token
if (typeof address_token === "undefined") {
var match = RegExp('[?&]' + 'token' + '=([^&]*)').exec(window.location.search);
address_token = match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
if (mode == "new" || mode == "duplicate") {
$(cover).html(json.html);
$globalthis.reInstallEvent(json.data);
}
// Update name after changed
else {
$(cover).find(".dropdown .lbl-name").text(name);
$(btn).closest(".box-edit-position").addClass("hide");
}
btn_new_widget_group('.btn-new-widget-group');
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ap_loading").hide();
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
},
complete: function () {
$("#ap_loading").hide();
}
});
//$(this).closest(".box-edit-position").addClass("hide");
});
$(document).on("click", ".position-cover .list-position .icon-edit, .add-new-position", function (e) {
var boxEdit = $(this).closest(".dropdown").find(".box-edit-position");
var input = $(boxEdit).find(".edit-name");
$(boxEdit).removeClass("hide");
$(boxEdit).attr("data-mode", $(this).hasClass("add-new-position") ? "new" : "edit");
$(boxEdit).attr("data-position", $(this).closest("ul").data("position"));
$(boxEdit).attr("data-id", $(this).data("id"));
$(this).closest(".dropdown").removeClass("open");
var span = $(this).closest("a").find("span");
input.val(span.text());
input.focus();
e.stopPropagation();
return false;
});
//icon-edit
$(document).on("click", ".box-edit-position .btn-default", function () {
$(this).closest(".box-edit-position").addClass("hide");
//var id = "#dropdown-" + $(this).closest(".box-edit-position").data("position");
//log(id);
$("#dropdown-header").trigger("click");
});
$(document).on("click", ".position-cover .list-position .icon-paste", function (e) {
var boxEdit = $(this).closest(".dropdown").find(".box-edit-position");
var input = $(boxEdit).find(".edit-name");
$(boxEdit).removeClass("hide");
$(boxEdit).attr("data-mode", "duplicate");
$(boxEdit).attr("data-position", $(this).closest("ul").data("position"));
$(boxEdit).attr("data-id", $(this).data("id"));
$(this).closest(".dropdown").removeClass("open");
var span = $(this).closest("a").find("span");
input.val($(this).data("temp") + " " + span.text());
input.focus();
e.stopPropagation();
return false;
var boxEdit = $(this).closest(".dropdown").find(".box-edit-position");
var input = $(boxEdit).find(".edit-name");
$(boxEdit).removeClass("hide");
$(boxEdit).attr("mode", "duplicate");
$(boxEdit).attr("id", $(this).data("id"));
$(this).closest(".dropdown").removeClass("open");
var span = $(this).closest("a").find("span");
input.val(span.text());
input.focus();
e.stopPropagation();
return false;
return false;
});
};
this.reInstallEvent = function (dataForm) {
var $globalthis = this;
$globalthis.initDataFrom(dataForm);
$globalthis.setGroupAction();
$globalthis.sortable();
$(".label-tooltip").tooltip();
//$globalthis.setButtonAction();
//$globalthis.submitForm();
}
this.initColumnSetting = function () {
var $globalthis = this;
var classActive = $globalthis.returnWidthClass();
$(".column-row").each(function () {
$globalthis.getNumberColumnInClass(this, classActive);
});
}
this.getNumberColumnInClass = function (obj, type) {
var cls = $(obj).attr("class").split(" ");
var len = cls.length;
var result = "";
for (var i = 0; i < len; i++) {
if (cls[i].search("col-" + type) >= 0) {
result = cls[i];
break;
}
}
var temp = result.replace("col-" + type + "-", "");
$(obj).find(".pull-right .btn-group .btn span:first-child").attr("class", "width-val ap-w-" + temp);
var group = $(obj).find("ul.dropdown-menu-right");
$(group).find("li").removeClass("selected");
$(group).find(".col-" + temp).addClass("selected");
}
//THIS IS VERY IMPORTANT TO KEEP AT THE END
return this;
};
})(jQuery);
/**
* FIX : cant focus to textbox of popup TinyMCE
* http://screencast.com/t/9r6kLtiTMR8S
*/
$(document).on('focusin', function (e) {
if ($(e.target).closest(".mce-window").length) {
e.stopImmediatePropagation();
}
});
/**
* Fixed case : ajax load html, doesnt have event popover
*/
function btn_new_widget_group() {
$('.btn-new-widget-group').popover({
html: true,
content: function () {
$globalthis.currentElement = $(this).closest('.hook-content-footer');
//$globalthis.currentElement = $('.group-content',$(this).closest('.group-row'));
return $('#addnew-widget-group-form').html();
}
});
}