%PDF- %PDF-
Direktori : /home/jalalj2hb/www/wp-content/plugins/elementor/modules/history/assets/js/revisions/ |
Current File : /home/jalalj2hb/www/wp-content/plugins/elementor/modules/history/assets/js/revisions/panel-tab.js |
module.exports = Marionette.CompositeView.extend( { id: 'elementor-panel-revisions', template: '#tmpl-elementor-panel-revisions', childView: require( './view' ), childViewContainer: '#elementor-revisions-list', ui: { discard: '.elementor-panel-scheme-discard .elementor-button', apply: '.elementor-panel-scheme-save .elementor-button' }, events: { 'click @ui.discard': 'onDiscardClick', 'click @ui.apply': 'onApplyClick' }, isRevisionApplied: false, jqueryXhr: null, currentPreviewId: null, currentPreviewItem: null, initialize: function() { this.listenTo( elementor.channels.editor, 'saved', this.onEditorSaved ); this.currentPreviewId = elementor.config.current_revision_id; }, getRevisionViewData: function( revisionView ) { var self = this; this.jqueryXhr = elementor.history.revisions.getRevisionDataAsync( revisionView.model.get( 'id' ), { success: function( data ) { elementor.history.revisions.setEditorData( data.elements ); elementor.settings.page.model.set( data.settings ); self.setRevisionsButtonsActive( true ); self.jqueryXhr = null; revisionView.$el.removeClass( 'elementor-revision-item-loading' ); self.enterReviewMode(); }, error: function() { revisionView.$el.removeClass( 'elementor-revision-item-loading' ); if ( 'abort' === self.jqueryXhr.statusText ) { return; } self.currentPreviewItem = null; self.currentPreviewId = null; alert( 'An error occurred' ); } } ); }, setRevisionsButtonsActive: function( active ) { this.ui.apply.add( this.ui.discard ).prop( 'disabled', ! active ); }, deleteRevision: function( revisionView ) { var self = this; revisionView.$el.addClass( 'elementor-revision-item-loading' ); elementor.history.revisions.deleteRevision( revisionView.model, { success: function() { if ( revisionView.model.get( 'id' ) === self.currentPreviewId ) { self.onDiscardClick(); } self.currentPreviewId = null; }, error: function() { revisionView.$el.removeClass( 'elementor-revision-item-loading' ); alert( 'An error occurred' ); } } ); }, enterReviewMode: function() { elementor.changeEditMode( 'review' ); }, exitReviewMode: function() { elementor.changeEditMode( 'edit' ); }, navigate: function( reverse ) { var currentPreviewItemIndex = this.collection.indexOf( this.currentPreviewItem.model ), requiredIndex = reverse ? currentPreviewItemIndex - 1 : currentPreviewItemIndex + 1; if ( requiredIndex < 0 ) { requiredIndex = this.collection.length - 1; } if ( requiredIndex >= this.collection.length ) { requiredIndex = 0; } this.children.findByIndex( requiredIndex ).ui.detailsArea.trigger( 'click' ); }, onEditorSaved: function() { this.exitReviewMode(); this.setRevisionsButtonsActive( false ); this.currentPreviewId = elementor.config.current_revision_id; }, onApplyClick: function() { elementor.saver.setFlagEditorChange( true ); elementor.saver.saveAutoSave(); this.isRevisionApplied = true; this.currentPreviewId = null; elementor.history.history.getItems().reset(); }, onDiscardClick: function() { elementor.history.revisions.setEditorData( elementor.config.data ); elementor.saver.setFlagEditorChange( this.isRevisionApplied ); this.isRevisionApplied = false; this.setRevisionsButtonsActive( false ); this.currentPreviewId = null; this.exitReviewMode(); if ( this.currentPreviewItem ) { this.currentPreviewItem.$el.removeClass( 'elementor-revision-current-preview' ); } }, onDestroy: function() { if ( this.currentPreviewId && this.currentPreviewId !== elementor.config.current_revision_id ) { this.onDiscardClick(); } }, onRenderCollection: function() { if ( ! this.currentPreviewId ) { return; } var currentPreviewModel = this.collection.findWhere({ id: this.currentPreviewId }); // Ensure the model is exist and not deleted during a save. if ( currentPreviewModel ) { this.currentPreviewItem = this.children.findByModelCid( currentPreviewModel.cid ); this.currentPreviewItem.$el.addClass( 'elementor-revision-current-preview' ); } }, onChildviewDetailsAreaClick: function( childView ) { var self = this, revisionID = childView.model.get( 'id' ); if ( revisionID === self.currentPreviewId ) { return; } if ( this.jqueryXhr ) { this.jqueryXhr.abort(); } if ( self.currentPreviewItem ) { self.currentPreviewItem.$el.removeClass( 'elementor-revision-current-preview' ); } childView.$el.addClass( 'elementor-revision-current-preview elementor-revision-item-loading' ); if ( elementor.saver.isEditorChanged() && null === self.currentPreviewId ) { elementor.saver.saveEditor( { status: 'autosave', onSuccess: function() { self.getRevisionViewData( childView ); } } ); } else { self.getRevisionViewData( childView ); } self.currentPreviewItem = childView; self.currentPreviewId = revisionID; }, onChildviewDeleteClick: function( childView ) { var self = this, type = childView.model.get( 'type' ); var removeDialog = elementor.dialogsManager.createWidget( 'confirm', { message: elementor.translate( 'dialog_confirm_delete', [ type ] ), headerMessage: elementor.translate( 'delete_element', [ type ] ), strings: { confirm: elementor.translate( 'delete' ), cancel: elementor.translate( 'cancel' ) }, defaultOption: 'confirm', onConfirm: function() { self.deleteRevision( childView ); } } ); removeDialog.show(); } } );