Files
roi-theme/wp-content/plugins/thrive-ab-page-testing/assets/js/views/dashboard.js
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

138 lines
3.6 KiB
JavaScript
Executable File

var base_view = require( './base' ),
variation_view = require( './variation' ),
archived_variation_view = require( './archived_variation' ),
test_model = require( '../models/test' ),
variation_model = require( '../models/variation' ),
modal_test = require( '../modals/test' );
module.exports = base_view.extend( {
template: TVE_Dash.tpl( 'dashboard/dashboard' ),
initialize: function ( args ) {
this.archived = args.archived;
base_view.prototype.initialize.apply( this, arguments );
this.listenTo( this.collection, 'add', function ( model ) {
this.render_variation( model );
this.render_action_button();
this.toggle_traffic_control();
} );
this.listenTo( this.collection, 'remove', function ( model ) {
this.render_action_button();
this.toggle_traffic_control();
} );
this.listenTo( this.archived, 'add', function ( model ) {
this.render_archived_variation( model );
} );
},
render_action_button: function () {
this.$( '#thrive-ab-start-test' ).toggleClass( 'top-hide-action', this.collection.length < 2 );
this.$( '.thrive-ab-display-archived-container' ).toggleClass( 'hide', this.archived.length < 1 );
},
render: function () {
this.$el.html( this.template() );
this.$list = this.$( '#thrive-ab-card-list' );
this.$archived_list = this.$( '#thrive-ab-card-list-archived' );
this.render_action_button();
this.collection.each( function ( item, index, list ) {
this.render_variation( item );
}, this );
this.archived.each( function ( item, index, list ) {
this.render_archived_variation( item );
}, this );
},
render_archived_variation: function ( item ) {
var _view = new archived_variation_view( {
model: item,
archived_variations: this.archived,
published_variations: this.collection
} );
this.$archived_list.append( _view.$el );
},
render_variation: function ( item ) {
var _view = new variation_view( {
model: item,
archived_variations: this.archived,
published_variations: this.collection
} );
var $add_new_card = this.$list.find( '> .tvd-col' ).last();
$add_new_card.remove();
this.$list.append( _view.$el );
this.$list.append( $add_new_card );
},
display_archived: function () {
this.$archived_list.toggle();
this.$( '.thrive-ab-display-archived' ).toggleClass( 'active' );
},
add_new_variation: function () {
var _new_traffic = parseInt( 100 / ( this.collection.length + 1 ) ),
_model = new variation_model( {
post_parent: this.model.get( 'ID' ),
post_title: TVE_Dash.sprintf( ThriveAB.t.variation_no, this.collection.length + 1 ),
traffic: _new_traffic
} );
TVE_Dash.showLoader();
_model.save( null, {
success: _.bind( function ( model ) {
this.collection.add( model );
model.collection.distribute_traffic( model );
model.collection.save_distributed_traffic();
TVE_Dash.success( ThriveAB.t.variation_added, 1000 );
}, this ),
error: function () {
TVE_Dash.err( ThriveAB.t.add_variation_error );
},
complete: _.bind( function () {
TVE_Dash.hideLoader();
}, this )
} );
},
start_test: function () {
var new_test_model = new test_model( {
page_id: ThriveAB.page.ID,
items: this.collection
} );
TVE_Dash.modal( modal_test, {
model: new_test_model,
'max-width': '80%'
} );
return false;
},
toggle_traffic_control: function () {
if ( this.collection.length === 1 ) {
this.$( '.thrive-ab-card-footer input' ).attr( 'disabled', 'disabled' );
} else {
this.$( '.thrive-ab-card-footer input' ).removeAttr( 'disabled' );
}
},
equalize_traffic: function () {
this.collection.equalize_traffic();
this.collection.save_distributed_traffic();
return false;
}
} );