2018-01-26 15:50:15 +01:00

169 lines
4.8 KiB
JavaScript

/* globals jQuery, soWidgetsAdmin */
jQuery( function( $ ){
$('.so-widget-toggle-active button').click( function(){
var $$ = $(this),
s = $$.data('status'),
$w = $$.closest('.so-widget');
if(s) {
$w.addClass('so-widget-is-active').removeClass('so-widget-is-inactive');
}
else {
$w.removeClass('so-widget-is-active').addClass('so-widget-is-inactive');
}
// Lets send an ajax request.
$.post(
soWidgetsAdmin.toggleUrl,
{
'widget' : $w.data('id'),
'active' : s
},
function(data){
// $sw.find('.dashicons-yes').clearQueue().fadeIn('fast').delay(750).fadeOut('fast');
}
);
} );
// Fill in the missing header images
$('.so-widget-banner').each( function(){
var $$ = $(this),
$img = $$.find('img');
if( !$img.length ) {
// Create an SVG image as a placeholder icon
var pattern = Trianglify({
width: 128,
height: 128,
variance : 1,
cell_size: 32,
seed: $$.data('seed')
});
$$.append( pattern.svg() );
}
else {
if( $img.width() > 128 ) {
// Deal with wide banner images
$img.css('margin-left', -($img.width()-128)/2 );
}
}
} );
// Lets implement the search
var widgetSearch = function(){
var q = $(this).val().toLowerCase();
if( q === '' ) {
$('.so-widget-wrap').show();
}
else {
$('.so-widget').each( function(){
var $$ = $(this);
if( $$.find('h3').html().toLowerCase().indexOf(q) > -1 ) {
$$.parent().show();
}
else {
$$.parent().hide();
}
} );
}
};
$('#sow-widget-search input').on( {
keyup: widgetSearch,
search: widgetSearch
});
$(window).resize(function() {
var $descriptions = $('.so-widget-text').css('height', 'auto');
var largestHeight = 0;
$descriptions.each(function () {
largestHeight = Math.max(largestHeight, $(this).height() );
});
$descriptions.each(function () {
$(this).css('height', largestHeight);
});
}).resize();
// Handle the tabs
$('#sow-widgets-page .page-nav a').click(function(e){
e.preventDefault();
var $$ = $(this);
var href = $$.attr('href');
var $li = $$.closest('li');
$('#sow-widgets-page .page-nav li').not($li).removeClass('active');
$li.addClass('active');
switch( href ) {
case '#all' :
$('.so-widget-wrap').show();
break;
case '#enabled' :
$('.so-widget-wrap').hide();
$('.so-widget-wrap .so-widget-is-active').each(function(){ $(this).closest('.so-widget-wrap').show(); });
$('.so-widget-wrap .so-widget-is-inactive').each(function(){ $(this).closest('.so-widget-wrap').hide(); });
break;
case '#disabled' :
$('.so-widget-wrap .so-widget-is-active').each(function(){ $(this).closest('.so-widget-wrap').hide(); });
$('.so-widget-wrap .so-widget-is-inactive').each(function(){ $(this).closest('.so-widget-wrap').show(); });
break;
}
$(window).resize();
});
// Enable css3 animations on the widgets list
$('#widgets-list').addClass('so-animated');
// Handle the dialog
var dialog = $('#sow-settings-dialog');
$( '#widgets-list .so-widget-settings' ).click( function( e ){
var $$ = $(this);
e.preventDefault();
dialog.find('.so-content')
.empty()
.addClass('so-loading')
.load( $$.data('form-url'), function(){
$(this).removeClass('so-loading');
} );
dialog.show();
} );
dialog.find('.so-close').click( function( e ){
e.preventDefault();
dialog.hide();
} );
dialog.find('.so-save').click( function( e ){
e.preventDefault();
var $$ = $(this);
$$.prop('disabled', true);
$( '#widgets-list .so-widget-settings' ).prop('disabled', true);
dialog.find( 'form' ).submit( function( ){
$$.prop('disabled', false);
dialog.hide();
} ).submit();
} );
// Enable all widget settings button after the save iframe has loaded.
$('#so-widget-settings-save').load( function(){
$( '#widgets-list .so-widget-settings' ).prop('disabled', false);
} );
} );