79 lines
2.0 KiB
JavaScript
79 lines
2.0 KiB
JavaScript
// TODO adjust to match code standards
|
|
( function( $ ) {
|
|
var USSidebar = function() {
|
|
|
|
this.widget = $( '.widget-liquid-right' );
|
|
this.widgetsRight = $( '#widgets-right' );
|
|
this.addWidgetAreaForm = $( '#us_add_widget_area' );
|
|
|
|
this.initForm();
|
|
this.initCustomWidgets();
|
|
this.bindEvents();
|
|
|
|
};
|
|
|
|
USSidebar.prototype = {
|
|
|
|
initForm: function() {
|
|
this.widget.append( this.addWidgetAreaForm.html() );
|
|
this.nonce = this.widget.find( 'input[name="us_delete_widget_area_nonce"]' ).val();
|
|
this.confirmMessage = this.widget.find( '#us_confirm_widget_area_deletion' ).html();
|
|
},
|
|
|
|
initCustomWidgets: function() {
|
|
this.widgetsRight.find( '.sidebar-us-custom-area' ).append( '<span class="us-custom-area-delete"></span>' );
|
|
},
|
|
|
|
bindEvents: function() {
|
|
this.widget.on( 'click', '.us-custom-area-delete', $.proxy( this.deleteWidgetArea, this ) );
|
|
},
|
|
|
|
|
|
//delete the sidebar area with all widgets within, then re calculate the other sidebar ids and re save the order
|
|
deleteWidgetArea: function( e ) {
|
|
var deleteIt = confirm( this.confirmMessage );
|
|
|
|
if ( deleteIt == false ) {
|
|
return false;
|
|
}
|
|
|
|
var widget = $( e.currentTarget ).parents( '.widgets-holder-wrap:eq(0)' ),
|
|
title = widget.find( '.sidebar-name h3 , .sidebar-name h2' ),
|
|
spinner = title.find( '.spinner' ),
|
|
widgetName = $.trim( title.text() ),
|
|
obj = this;
|
|
|
|
$.ajax( {
|
|
type: "POST",
|
|
url: window.ajaxurl,
|
|
data: {
|
|
action: 'us_delete_custom_widget_area',
|
|
name: widgetName,
|
|
_wpnonce: obj.nonce
|
|
},
|
|
|
|
beforeSend: function() {
|
|
spinner.addClass( 'activate_spinner' );
|
|
},
|
|
success: function( response ) {
|
|
if ( response == 'success' ) {
|
|
widget.slideUp( 200, function() {
|
|
|
|
$( '.widget-control-remove', widget ).trigger( 'click' ); //delete all widgets inside
|
|
widget.remove();
|
|
|
|
} );
|
|
}
|
|
}
|
|
} );
|
|
}
|
|
|
|
};
|
|
|
|
$( function() {
|
|
new USSidebar();
|
|
} );
|
|
|
|
|
|
} )( jQuery );
|