"use strict";
/* Basic -------------------------------------------------------------- */
(function($) {
var abrMetabox = {};
( function() {
var $this;
abrMetabox = {
/*
* Initialize
*/
init: function( e ) {
$this = abrMetabox;
// Variables.
$this.wrap = $( '.abr-metabox-wrap' );
// Init.
$this.metaboxInit( e );
// Init events.
$this.events( e );
},
/*
* Events
*/
events: function( e ) {
// Custom Events
$this.wrap.on( 'click change keyup keydown', '.abr-metabox-repeater .attribute-name', $this.setSignature );
$this.wrap.on( 'click', '.abr-metabox-repeater .row-topbar', $this.toggleItems );
$this.wrap.on( 'click', '.abr-metabox-repeater .btn-remove-row', $this.removeRepeaterRow );
$this.wrap.on( 'click', '.abr-metabox-repeater .btn-add-row', $this.addRepeaterRow );
},
/*
* Init metabox elements
*/
metaboxInit: function( e ) {
// Add tabs for Meta Box (UI)
$this.wrap.find( '.abr-metabox-tabs' ).tabs();
// Repeater sortable
$this.wrap.find( '.abr-metabox-repeater tbody' ).sortable( {
items: 'tr',
placeholder: 'ui-state-highlight',
handle: '.row-topbar, .row-handle',
start: function( e, ui ) {
ui.placeholder.height( ui.item.height() );
},
} );
},
/*
* Toggle items
*/
toggleItems: function() {
if ( $( this ).hasClass( 'closed' ) ) {
$( this ).removeClass( 'closed' );
$( this ).siblings( '.row-fields' ).slideDown();
} else {
$( this ).addClass( 'closed' );
$( this ).siblings( '.row-fields' ).slideUp();
}
},
/*
* Set signature
*/
setSignature: function() {
var label = '' + $( this ).data( 'label' ) + '';
var value = $( this ).val() ? $( this ).val() : label;
$( this ).parents( '.row-content' ).find( '.signature' ).html( value );
},
/*
* Add repeater row
*/
addRepeaterRow: function() {
var repeater = $( this ).siblings( '.abr-metabox-repeater-table' )
// Get html row.
var html = repeater.find( 'tbody tr.hidden' ).html();
// Add new row.
repeater.find( 'tbody' ).append( '
' + html + '
' );
// Visible all input and textarea.
repeater.find( 'tr' ).not( '.hidden' ).find( 'input, textarea' ).removeAttr( 'disabled' );
return false;
},
/*
* Remove repeater row
*/
removeRepeaterRow: function() {
$( this ).parents( '.row' ).remove();
return false;
}
};
} )();
// Initialize.
$( function() {
abrMetabox.init();
} );
})(jQuery);
/* Reviews -------------------------------------------------------------- */
(function($) {
var abrReviews = {};
( function() {
var $this;
abrReviews = {
/*
* Initialize
*/
init: function( e ) {
$this = abrReviews;
// Variables.
$this.wrap = $( '.review-wrap' );
// Init.
$this.reviewsInit( e );
// Init events.
$this.events( e );
},
/*
* Events
*/
events: function( e ) {
// Custom Events
$this.wrap.on( 'click', 'input[name="abr_review_settings"]', $this.toggleMetaBox );
$this.wrap.on( 'click', 'input[name="abr_review_auto_score"]', $this.actionAutoScore );
$this.wrap.on( 'change', 'select[name="abr_review_schema_author"]', $this.actionSchemaAuthor );
},
/*
* Init reviews elements
*/
reviewsInit: function( e ) {
$this.actionAutoScore( 'input[name="abr_review_auto_score"]' );
$this.actionSchemaAuthor( 'select[name="abr_review_schema_author"]' );
},
/*
* Toggle metabox view
*/
toggleMetaBox: function() {
if ( $( this ).prop( 'checked' ) ) {
$this.wrap.find( '.abr-metabox-tabs' ).attr( 'checked', 'checked' );
} else {
$this.wrap.find( '.abr-metabox-tabs' ).removeAttr( 'checked' );
}
},
/*
* Action auto score
*/
actionAutoScore: function( e ) {
let checked = $( typeof e === 'string' ? e : this ).prop('checked');
if ( checked ) {
$( '.review-field-total-score' ).addClass( 'hidden' );
} else {
$( '.review-field-total-score' ).removeClass( 'hidden' );
}
},
/*
* Action schema author
*/
actionSchemaAuthor: function( e ) {
let val = $( typeof e === 'string' ? e : this ).val();
if ( 'custom' !== val ) {
$( '.review-field-schema-author-custom' ).addClass( 'hidden' );
} else {
$( '.review-field-schema-author-custom' ).removeClass( 'hidden' );
}
},
};
} )();
// Initialize.
$( function() {
abrReviews.init();
});
})(jQuery);