File "widgets.js"
Full Path: /var/www/bvnghean.vn/save_bvnghean.vn/wp-content/plugins/sneeit-framework/js/widgets.js
File size: 15.57 KB
MIME-type: text/html
Charset: utf-8
jQuery(document).ready(function($){
// WIDGET and SIDEBAR TOOLTIP
$.each(sneeit_widgets.widget_declaration, function (widget_id, widget_declaration) {
if ('tooltip' in widget_declaration && widget_declaration.tooltip) {
$('#widget-list .widget[id*="_'+widget_id+'-__i__')
.addClass('widget-has-tooltip').attr('data-widget_id', widget_id);
}
});
$.each(sneeit_widgets.sidebar_declaration, function (sidebar_id, sidebar_declaration) {
if ('tooltip' in sidebar_declaration && sidebar_declaration.tooltip) {
$('#'+sidebar_id).addClass('sidebar-has-tooltip');
$('#'+sidebar_id).find('.sidebar-name').addClass('tooltip');
}
});
// SIDEBAR ACCEPT_WIDGETS
// pending: still need to change in PHP function wp_ajax_save_widget
// disable widget chooser in widget list select
$('.widgets-chooser *').removeClass('widgets-chooser-selected');
$('#widget-list .widget input[name="id_base"]').each(function(){
$(this).parents('.widget').addClass('sneeit-wid-list-' + $(this).val());
});
// search include / exclude widgets
var sneeit_inc_exc_wids = new Array();
var sneeit_wid_chooser_style = '';
$.each(sneeit_widgets.sidebar_declaration, function (sidebar_id, sidebar_declaration) {
/* check if sidebar has specific accept widgets */
if (!('accept_widgets' in sidebar_declaration)) {
return;
}
if (!sidebar_declaration.accept_widgets) {
return;
}
/* init accept list for sidebar */
var wids = sidebar_declaration.accept_widgets.split(',');
for (var i = 0; i < wids.length; i++) {
var wid = wids[i];
/* reject some widgets from adding to this sidebar */
if (wid.indexOf('!') == 0) {
wid = wid.substring(1);
$('#'+sidebar_id).addClass('reject-wid-'+wid);
/* add sidebar class widget chooser */
$('.widgets-chooser li').each(function(){
var txt = $(this).text();
if (txt == sidebar_declaration.name) {
$(this).addClass('reject-wid-'+wid);
}
});
sneeit_wid_chooser_style +=
'#widget-list .widget.sneeit-wid-list-' + wid + ' .widgets-chooser li.reject-wid-'+wid+'{display:none}';
}
/* accept only some widgets to allow adding to this sidebar */
else {
$('#'+sidebar_id).addClass('accept-wids accept-wid-'+wid);
/* add sidebar class widget chooser */
$('.widgets-chooser li').each(function(){
var txt = $(this).text();
if (txt == sidebar_declaration.name) {
$(this).addClass('accept-wids accept-wid-'+wid);
}
});
sneeit_wid_chooser_style +=
'#widget-list .widget .widgets-chooser li.accept-wid-'+wid+'{display:none}' +
'#widget-list .widget.sneeit-wid-list-' + wid + ' .widgets-chooser li{display:none}' +
'#widget-list .widget.sneeit-wid-list-' + wid + ' .widgets-chooser li.accept-wid-'+wid+'{display:block}';
}
if (sneeit_inc_exc_wids.indexOf(wid) == -1) {
sneeit_inc_exc_wids.push(wid);
}
}
});
// update style to hide appropriate sidebar in chooser
if (sneeit_wid_chooser_style) {
$('head').append('<style type="text/css">' + sneeit_wid_chooser_style + '</style>');
}
// apply include / exclude rules
// - all sidebars which has accept_widgets setting
// - must reject all widget at first and then will
// - accept only accept-wids widgets
$('.widget.ui-draggable').draggable(
'option',
'connectToSortable',
'div.widgets-sortables:not(.accept-wids)'
);
for (var i = 0; i < sneeit_inc_exc_wids.length; i++) {
var wid = sneeit_inc_exc_wids[i];
$('.widget.ui-draggable[id*="_'+sneeit_inc_exc_wids[i]+'-__i__"]').draggable(
'option',
'connectToSortable',
'div.widgets-sortables.accept-wid-'+wid+':not(.reject-wid-' + wid + ')'
);
}
/* remove all selected sidebar in choose list at beginning */
$('#widget-list .widget .widget-title').click(function(){
setTimeout(function(){
$('.widgets-chooser *').removeClass('widgets-chooser-selected');
}, 50);
});
/* WIDGET TOOLTIP */
$( document ).tooltip({
track: true,
items: '.widget-has-tooltip, .sidebar-has-tooltip .tooltip',
content: function() {
var widget_id = $(this).attr('data-widget_id');
if (typeof(widget_id) != 'undefined') {
return '<div class="sneeit-widget-tooltip">'+sneeit_widgets.widget_declaration[widget_id].tooltip+'</div>';
}
var sidebar_id = $(this).parent().attr('id');
if (typeof(sidebar_id) != 'undefined' || typeof(sneeit_widgets.sidebar_declaration[sidebar_id]) != 'undefined') {
return '<div class="sneeit-widget-tooltip">'+sneeit_widgets.sidebar_declaration[sidebar_id].tooltip+'</div>';
}
return '';
}
});
// CUSTOM SIDEBARS
//////////////////////
if (sneeit_widgets.support_sidebar) {
// create form to input new custom sidebars
if (typeof('ajaxurl') != 'undefined') {
$('.widgets-php h1').append(
'<a id="sneeit-add-sidebar" class="page-title-action hide-if-no-widgets" href="javascript:void(0)">' +
sneeit_widgets.text['+ Add New Sidebar'] +
'</a>'
);
var sidebar_format_list = '<select id="sneeit-add-sidebar-format" name="sneeit-add-sidebar-format"><option value="">'+sneeit_widgets.text['Default']+'</option>';
$.each(sneeit_widgets.sidebar_declaration, function (sidebar_id, sidebar_declaration) {
sidebar_format_list += '<option value="'+sidebar_id+'">'+sidebar_declaration['name']+'</div>';
});
sidebar_format_list += '</select>';
$('.widgets-php .widget-liquid-left').prepend(
'<div id="sneeit-add-sidebar-form">'+
'<div class="sneeit-add-sidebar-error"></div>' +
'<div class="sneeit-add-sidebar-form-inner">' +
'<div class="left-col">'+
'<label for="sneeit-add-sidebar-input">' +
'<span class="widget-description">'+sneeit_widgets.text['Input Your Sidebar Name']+'</span>'+
'<input id="sneeit-add-sidebar-input" type="text" placeholder="'+sneeit_widgets.text['Input Your Sidebar Name']+'"/>'+
'</label>' +
'</div>' +
'<div class="right-col">'+
'<label for="sneeit-add-sidebar-format">'+
'<span class="widget-description">'+sneeit_widgets.text['Follow Format Of']+'</span>'+
sidebar_format_list+
'</label>' +
'</div>' +
'<div class="clear"></div>' +
'</div>'+
'<div class="clear"></div>' +
'<a id="sneeit-add-sidebar-submit" class="page-title-action hide-if-no-widgets" href="javascript:void(0)">' +
sneeit_widgets.text['+ Add New Sidebar'] +
'</a>' +
'<a id="sneeit-add-sidebar-cancel" class="page-title-action hide-if-no-widgets" href="javascript:void(0)">' +
sneeit_widgets.text['Cancel'] +
'</a>' +
'<div class="clear"></div></div>'
);
$('#sneeit-add-sidebar').click(function () {
$(this).hide();
$('#sneeit-add-sidebar-form').stop().slideDown();
});
$('#sneeit-add-sidebar-cancel').click(function () {
$('#sneeit-add-sidebar').show();
$('#sneeit-add-sidebar-form').stop().slideUp();
});
$('#sneeit-add-sidebar-submit').click(function () {
// validate
var sidebar_name = $('#sneeit-add-sidebar-input').val();
if (!sidebar_name) {
$('#sneeit-add-sidebar-error').html('<span>'+sneeit_widgets.text['Your Side Name Is Not Valid']+'</span>');
return;
}
var sidebar_format = $('#sneeit-add-sidebar-format').val();
// if good, do it
$.post(ajaxurl, {
action: 'sneeit_add_custom_sidebar',
name: sidebar_name,
format: sidebar_format
}).done(function( data ) {
if (!data || ((data.indexOf('Warning: ') != -1 || data.indexOf('Fatal error: ') != -1) && data.indexOf(' on line ') != -1)) {
$('#sneeit-add-sidebar-form').html(
'<div class="sneeit-add-sidebar-error"><span>'+
sneeit_widgets.text['Sever Responded an Error Message!']+
'<br/><br/>' +
data+
'</span></div>'
);
} else {
location.reload();
}
});
$('#sneeit-add-sidebar-form').html('<i class="fa fa-cog fa-spin sneeit-custom-sidebar-action-loading-icon"></i>');
});
}
// init UI for new custom sidebars (delete, edit)
$.each(sneeit_widgets.custom_sidebars, function (sidebar_id, sidebar_declaration) {
$('#'+sidebar_id).each(function () {
$(
'<div class="sidebar-actions">'+
'<a href="javascript:void(0)" class="sneeit-delete-sidebar" data-id="'+sidebar_id+'">'+
'<i class="fa fa-trash-o"></i> '+sneeit_widgets.text['Delete Sidebar']+
'</a>'+
'<a href="javascript:void(0)" class="sneeit-rename-sidebar" data-id="'+sidebar_id+'">'+
'<i class="fa fa-i-cursor"></i> '+sneeit_widgets.text['Rename Sidebar']+
'</a>'+
'</div>').insertAfter($(this).find('.sidebar-name'));
});
});
$('.sneeit-delete-sidebar').click(function () {
var sidebar_id = $(this).attr('data-id');
if (confirm(sneeit_widgets.text['Are You Sure?'])) {
$.post(ajaxurl, {
action: 'sneeit_delete_custom_sidebar',
id: sidebar_id
}).done(function( data ) {
if (!data || ((data.indexOf('Warning: ') != -1 || data.indexOf('Fatal error: ') != -1) && data.indexOf(' on line ') != -1)) {
alert(sneeit_widgets.text['Sever Responded an Error Message!']);
} else {
$('#'+sidebar_id).html('<i class="fa fa-cog fa-spin sneeit-custom-sidebar-action-loading-icon"></i>');
location.reload();
}
});
}
});
$('.sneeit-rename-sidebar').click(function () {
var sidebar_id = $(this).attr('data-id');
var sidebar_name = $('#'+sidebar_id).find('.sidebar-name h3').text();
var new_sidebar_name = prompt(sneeit_widgets.text['Rename Sidebar'], sidebar_name);
if (new_sidebar_name) {
$.post(ajaxurl, {
action: 'sneeit_rename_custom_sidebar',
name: new_sidebar_name,
id: sidebar_id
}).done(function( data ) {
if (!data || ((data.indexOf('Warning: ') != -1 || data.indexOf('Fatal error: ') != -1) && data.indexOf(' on line ') != -1)) {
alert(sneeit_widgets.text['Sever Responded an Error Message!']);
} else {
$('#'+sidebar_id).html('<i class="fa fa-cog fa-spin sneeit-custom-sidebar-action-loading-icon"></i>');
location.reload();
}
});
}
});
}
// effect to stick Save and other actions on bottom when scrolling
function sneeit_widget_action_on_scrolling() {
$('.widget.open .widget-control-actions').each(function(){
var w_b = $(window).scrollTop() + $(window).height();
var par = $(this).parents('.widget.open');
var w_content = par.find('.widget-content');
var wc_t = w_content.offset().top;
var wc_b = wc_t + w_content.height() + 30;
if (w_b < wc_b && w_b > wc_t) {
$(this).css('width', $(this).width()+'px');
$(this).addClass('fixed');
} else {
$(this).removeClass('fixed');
$(this).css('width', 'auto');
}
});
}
$(window).scroll(function() {
sneeit_widget_action_on_scrolling();
});
$(document).on('click', '.widget-top *', function(){
sneeit_widget_action_on_scrolling();
});
// effect when click close button
$(document).on('click', '.widget-control-actions .alignleft a', function(){
var par = $(this).parents('.widget');
var w_top = $(window).scrollTop();
var par_top = par.offset().top;
var html_pad_top = Number($('html').css('padding-top').replace('px', ''));
if (par_top - html_pad_top < w_top) {
$(window).scrollTop(par_top - html_pad_top);
}
});
/* Scanning widgets and sidebars jqueryui events */
if (0) {
/* testing */
/* sortable event search */
$('.widget').on('sortactivate', function(){console.log('sortactivate')});
$('.widget').on('sortbeforestop', function(){console.log('sortbeforestop')});
$('.widget').on('sortchange', function(){console.log('sortchange')});
$('.widget').on('sortcreate', function(){console.log('sortcreate')});
$('.widget').on('sortdeactivate', function(){console.log('sortdeactivate')});
$('.widget').on('sortout', function(){console.log('sortout')});
$('.widget').on('sortover', function(){console.log('sortover')});
$('.widget').on('sortreceive', function(){console.log('sortreceive')});
$('.widget').on('sortremove', function(){console.log('sortremove')});
$('.widget').on('sort', function(){console.log('sort')});
$('.widget').on('sortstart', function(){console.log('sortstart')});
$('.widget').on('sortstop', function(){console.log('sortstop')});
$('.widget').on('sortupdate', function(){console.log('sortupdate')});
/* draggable event search */
$('.widget').on('dragcreate', function(){console.log('dragcreate')});
$('.widget').on('drag', function(){console.log('drag')});
$('.widget').on('dragstart', function(){console.log('dragstart')});
$('.widget').on('dragstop', function(){console.log('dragstop')});
/* droppable event search */
$('.widget').on('dropactivate', function(){console.log('dropactivate')});
$('.widget').on('dropcreate', function(){console.log('dropcreate')});
$('.widget').on('dropdeactivate', function(){console.log('dropdeactivate')});
$('.widget').on('drop', function(){console.log('drop')});
$('.widget').on('dropout', function(){console.log('dropout')});
$('.widget').on('dropover', function(){console.log('dropover')});
/* sortable event search */
$('#amachow-main-sidebar').on('sortactivate', function(){console.log('sidebar-sortactivate')});
$('#amachow-main-sidebar').on('sortbeforestop', function(){console.log('sidebar-sortbeforestop')});
$('#amachow-main-sidebar').on('sortchange', function(){console.log('sidebar-sortchange')});
$('#amachow-main-sidebar').on('sortcreate', function(){console.log('sidebar-sortcreate')});
$('#amachow-main-sidebar').on('sortdeactivate', function(){console.log('sidebar-sortdeactivate')});
$('#amachow-main-sidebar').on('sortout', function(){console.log('sidebar-sortout')});
$('#amachow-main-sidebar').on('sortover', function(){console.log('sidebar-sortover')});
$('#amachow-main-sidebar').on('sortreceive', function(){console.log('sidebar-sortreceive')});
$('#amachow-main-sidebar').on('sortremove', function(){console.log('sidebar-sortremove')});
$('#amachow-main-sidebar').on('sort', function(){console.log('sidebar-sort')});
$('#amachow-main-sidebar').on('sortstart', function(){console.log('sidebar-sortstart')});
$('#amachow-main-sidebar').on('sortstop', function(){console.log('sidebar-sortstop')});
$('#amachow-main-sidebar').on('sortupdate', function(){console.log('sidebar-sortupdate')});
/* draggable event search */
$('#amachow-main-sidebar').on('dragcreate', function(){console.log('sidebar-dragcreate')});
$('#amachow-main-sidebar').on('drag', function(){console.log('sidebar-drag')});
$('#amachow-main-sidebar').on('dragstart', function(){console.log('sidebar-dragstart')});
$('#amachow-main-sidebar').on('dragstop', function(){console.log('sidebar-dragstop')});
/* droppable event search */
$('#amachow-main-sidebar').on('dropactivate', function(){console.log('sidebar-dropactivate')});
$('#amachow-main-sidebar').on('dropcreate', function(){console.log('sidebar-dropcreate')});
$('#amachow-main-sidebar').on('dropdeactivate', function(){console.log('sidebar-dropdeactivate')});
$('#amachow-main-sidebar').on('drop', function(){console.log('sidebar-drop')});
$('#amachow-main-sidebar').on('dropout', function(){console.log('sidebar-dropout')});
$('#amachow-main-sidebar').on('dropover', function(){console.log('sidebar-dropover')});
}
/* allow only certain widget types to add to certain sidebar */
/* waiting ui-draggable ready*/
//$('.widget.ui-draggable[id*="_meta_bar-__i__"]').draggable('option', 'connectToSortable', 'div.widgets-sortables:not(#amachow-main-sidebar)');
//$('.widget.ui-draggable[id*="_button-__i__"]').draggable('option', 'connectToSortable', '#amachow-main-sidebar');
//$('.widgets-chooser *').removeClass('widgets-chooser-selected');
/* also remove from quick add
* and then use css (generate by js) to hide
* */
//console.log($('.widgets-chooser').length());
});