admin-global.js
8 years ago
admin.js
8 years ago
advertisement.js
9 years ago
shortcode.js
10 years ago
wizard.js
8 years ago
wizard.js
145 lines
| 1 | jQuery( document ).ready(function ($) { |
| 2 | // ad wizard |
| 3 | advads_wizard.init(); |
| 4 | }); |
| 5 | var advads_wizard = { |
| 6 | box_order: [ // selectors of elements in the wizard in the correct order |
| 7 | '#post-body-content, #ad-main-box', // show title and type together |
| 8 | '#ad-parameters-box', |
| 9 | // '#ad-output-box', |
| 10 | '#ad-display-box, #ad-visitor-box', // display and visitor conditions |
| 11 | // '#advanced_ads_groupsdiv', |
| 12 | // '#submitdiv' |
| 13 | ], |
| 14 | current_box: '#post-body-content, #ad-main-box', // current active box |
| 15 | one_column: false, // whether the edit screen is in one-column mode |
| 16 | status: false, // what is the current status? true if running, else false |
| 17 | init: function( status ){ // status can be "start" to start wizard or nothing to not start it |
| 18 | var _this = this; |
| 19 | jQuery('#advads-wizard-controls-next').click( function( ){ _this.next(); } ); |
| 20 | jQuery('#advads-wizard-controls-prev').click( function( ){ _this.prev(); } ); |
| 21 | jQuery('#advads-wizard-controls-save').click( function( e ){ e.preventDefault(); jQuery('#publish').click(); } ); // save ad |
| 22 | jQuery('#advads-wizard-display-conditions-show').click( function( ){ _this.show_conditions( '#ad-display-box' ); } ); |
| 23 | jQuery('#advads-wizard-visitor-conditions-show').click( function( ){ _this.show_conditions( '#ad-visitor-box' ); } ); |
| 24 | jQuery( '.advads-show-in-wizard').hide(); |
| 25 | jQuery( '#advads-start-wizard' ).click( function(){ |
| 26 | _this.start(); |
| 27 | }); |
| 28 | // end wizard when the button was clicked |
| 29 | jQuery( '.advads-stop-wizard' ).click( function(){ |
| 30 | _this.close(); |
| 31 | }); |
| 32 | // jump to next box when ad type is selected |
| 33 | jQuery('#advanced-ad-type input').change(function(e){ |
| 34 | _this.next(); |
| 35 | }); |
| 36 | }, |
| 37 | show_current_box: function(){ |
| 38 | jQuery( this.current_box ).removeClass('advads-hide'); |
| 39 | }, |
| 40 | start: function(){ // do stuff when wizard is started |
| 41 | // show page in 1-column stype |
| 42 | this.status = true; |
| 43 | if( jQuery( '#post-body').hasClass('columns-1') ){ |
| 44 | this.one_column = true; |
| 45 | } else { |
| 46 | jQuery( '#post-body').addClass( 'columns-1' ).removeClass( 'columns-2' ); |
| 47 | } |
| 48 | // hide all boxes, messages and the headline by adding a hide css class |
| 49 | jQuery('#post-body-content, .postbox-container .postbox, h1 ~ div:not(.advads-admin-notice):not(#message.updated), h1').addClass( 'advads-hide' ); |
| 50 | // display first box |
| 51 | this.show_current_box(); |
| 52 | // display close button and controls |
| 53 | jQuery('#advads-stop-wizard, #advads-wizard-controls').removeClass('hidden') |
| 54 | this.update_nav(); |
| 55 | // initially hide some elemente |
| 56 | jQuery( '#advads-ad-description').addClass('advads-hide'); // ad description |
| 57 | jQuery( '#advads-ad-info').addClass('advads-hide'); // shortcode and php function info |
| 58 | // hide all elements with 'advads-hide-for-wizard' class |
| 59 | jQuery( '.advads-hide-in-wizard').hide(); |
| 60 | jQuery( '.advads-show-in-wizard').show(); |
| 61 | jQuery( '#advads-start-wizard' ).hide(); |
| 62 | // remove close-class from ad type box |
| 63 | jQuery( '#ad-main-box' ).removeClass('closed'); |
| 64 | this.save_hide_wizard( false ); |
| 65 | }, |
| 66 | close: function(){ // close the wizard by showing all elements again |
| 67 | this.status = false; |
| 68 | jQuery('*').removeClass('advads-hide'); |
| 69 | jQuery('#advads-stop-wizard, #advads-wizard-controls').addClass('hidden'); |
| 70 | if( this.one_column !== true ){ |
| 71 | jQuery( '#post-body').addClass( 'columns-2' ).removeClass( 'columns-1' ); |
| 72 | } |
| 73 | // reset current box |
| 74 | this.current_box = this.box_order[0]; |
| 75 | jQuery('#advads-wizard-welcome').remove();// close wizard welcome message |
| 76 | // show all elements with 'advads-hide-for-wizard' class |
| 77 | jQuery( '.advads-hide-in-wizard').show(); |
| 78 | jQuery( '.advads-show-in-wizard').hide(); |
| 79 | jQuery( '#advads-start-wizard' ).show(); |
| 80 | this.save_hide_wizard( true ); |
| 81 | }, |
| 82 | update_nav: function(){ // update navigation, display only valid buttons |
| 83 | // display all buttons |
| 84 | jQuery('#advads-wizard-controls button').removeClass('hidden'); |
| 85 | // hide next button if there is no next widget |
| 86 | var i = this.box_order.indexOf( this.current_box ); |
| 87 | if( i === this.box_order.length - 1 ){ |
| 88 | jQuery('#advads-wizard-controls-next').addClass('hidden'); |
| 89 | } |
| 90 | if( i === 0 ){ |
| 91 | jQuery('#advads-wizard-controls-prev').addClass('hidden'); |
| 92 | } |
| 93 | // hide save button for first boxes |
| 94 | if( i <= 1 ){ |
| 95 | jQuery('#advads-wizard-controls-save').addClass('hidden'); |
| 96 | } else { |
| 97 | jQuery('#advads-wizard-controls-save').removeClass('hidden'); |
| 98 | } |
| 99 | }, |
| 100 | next: function(){ // show next box |
| 101 | if( ! this.status ){ return } |
| 102 | // get index of current item in box-array |
| 103 | var i = this.box_order.indexOf( this.current_box ); |
| 104 | // check if there is a next index |
| 105 | if( this.box_order[ i + 1 ] === undefined ){ |
| 106 | return; |
| 107 | } |
| 108 | // hide current element |
| 109 | jQuery( this.current_box ).addClass('advads-hide') |
| 110 | // load next element into current |
| 111 | this.current_box = this.box_order[ i + 1 ]; |
| 112 | this.show_current_box(); |
| 113 | this.update_nav(); |
| 114 | }, |
| 115 | prev: function(){ // show previous box |
| 116 | // get index of current item in box-array |
| 117 | var i = this.box_order.indexOf( this.current_box ); |
| 118 | // check if there is a previous index |
| 119 | if( this.box_order[ i - 1 ] === undefined ){ |
| 120 | return; |
| 121 | } |
| 122 | // hide current element |
| 123 | jQuery( this.current_box ).addClass('advads-hide') |
| 124 | // load next element into current |
| 125 | this.current_box = this.box_order[ i - 1 ]; |
| 126 | this.show_current_box(); |
| 127 | this.update_nav(); |
| 128 | }, |
| 129 | save_hide_wizard: function( hide_wizard ){ // update wizard state (started by default or not?) |
| 130 | |
| 131 | jQuery.ajax({ |
| 132 | type: 'POST', |
| 133 | url: ajaxurl, |
| 134 | data: { |
| 135 | action: 'advads-save-hide-wizard-state', |
| 136 | hide_wizard: hide_wizard, |
| 137 | nonce: advadsglobal.ajax_nonce, |
| 138 | }, |
| 139 | }); |
| 140 | }, |
| 141 | show_conditions: function( box ){ // show the conditions options in display and visitor conditions |
| 142 | jQuery( box ).find('.advads-show-in-wizard').hide(); |
| 143 | jQuery( box ).find('.advads-hide-in-wizard').show(); |
| 144 | }, |
| 145 | }; |