%PDF- %PDF-
Direktori : /home/jalalj2hb/www/wp-content/plugins/ninja-forms/client/dashboard/models/ |
Current File : /home/jalalj2hb/www/wp-content/plugins/ninja-forms/client/dashboard/models/formCollection.js |
/** * Collection that holds our form models. * * @package Ninja Forms client * @copyright (c) 2017 WP Ninjas * @since 3.0 */ define( ['models/formModel'], function( FormModel ) { var collection = Backbone.Collection.extend( { model: FormModel, comparator: 'title', tmpNum: 1, url: function() { return ajaxurl + "?action=nf_forms"; }, initialize: function() { this.newIDs = []; this.baseUrl = window.location.href.split('?')[0]; this.listenTo( nfRadio.channel( 'dashboard' ), 'forms:delete', this.modalConfirm ); this.listenTo( nfRadio.channel( 'dashboard' ), 'forms:duplicate', this.duplicate ); this.modal = new jBox( 'Modal', { width: 400, addClass: 'dashboard-modal', overlay: true, closeOnClick: 'body' } ); }, parse: function( response, options ){ return response.data; }, modalConfirm: function( view ){ var message, container, messageBox, title, buttons, confirm, cancel, lineBreak; var formID = view.model.get( 'id' ); var formTitle = view.model.get( 'title' ); container = document.createElement( 'div' ); container.style.paddingRight = '20px'; container.style.paddingLeft = '20px'; container.style.paddingBottom = '20px'; messageBox = document.createElement( 'p' ); title = document.createElement( 'em' ); buttons = document.createElement( 'div' ); confirm = document.createElement( 'button' ); cancel = document.createElement( 'div' ); container.classList.add( 'message' ); title.innerHTML = formTitle; messageBox.innerHTML += nfi18n.deleteWarningA + ' (<strong>' + formTitle + '</strong>). ' + nfi18n.deleteWarningB; messageBox.appendChild( document.createElement( 'br') ); messageBox.appendChild( document.createElement( 'br') ); var exportFormLink = document.createElement( 'a' ); // link to export page with this form selected exportFormLink.href = this.baseUrl + '?page=nf-import-export&exportFormId=' + formID; exportFormLink.innerHTML = '<i class="fa fa-download"' + ' style="padding:5px;"></i>' + nfi18n.deleteXForm; exportFormLink.target = '_blank'; // open in new tab messageBox.appendChild( exportFormLink ); messageBox.appendChild( document.createElement( 'br') ); var exportSubmissionLink = document.createElement( 'a' ); // link to export submissions page exportSubmissionLink.href = this.baseUrl + '?page=nf-processing&action=download_all_subs&form_id=' + formID + '&redirect=' + encodeURIComponent( this.baseUrl.replace( 'admin.php', 'edit.php' ) + '?post_status=all&post_type=nf_sub&form_id=' + formID ); exportSubmissionLink.target = '_blank'; exportSubmissionLink.innerHTML = '<i class="fa fa-download" ' + 'style="padding:5px;"></i>' + nfi18n.deleteXSubs; messageBox.appendChild( exportSubmissionLink ); messageBox.appendChild( document.createElement( 'br') ); container.appendChild( messageBox ); var inputLabel = document.createElement( 'label' ); inputLabel.for = 'confirmDeleteFormInput'; inputLabel.innerHTML = nfi18n.deleteConfirmA + ' <span style="color:red;">DELETE</span> ' + nfi18n.deleteConfirmB; var deleteInput = document.createElement( 'input' ); deleteInput.type = 'text'; deleteInput.id = 'confirmDeleteFormInput'; deleteInput.style.marginTop = '10px'; deleteInput.style.width = '100%'; deleteInput.style.height = '2.5em'; deleteInput.style.fontSize = '1em'; container.appendChild( inputLabel ); container.appendChild( document.createElement( 'br' ) ); container.appendChild( deleteInput ); container.appendChild( document.createElement( 'br' ) ); container.appendChild( document.createElement( 'br' ) ); confirm.innerHTML = nfi18n.delete; confirm.classList.add( 'confirm', 'nf-button', 'primary', 'pull-right' ); cancel.innerHTML = nfi18n.cancel; cancel.classList.add( 'cancel', 'nf-button', 'secondary' ); buttons.appendChild( cancel ); buttons.appendChild( confirm ); buttons.classList.add( 'buttons' ); container.appendChild( buttons ); message = document.createElement( 'div' ); message.appendChild( container ); this.modal.setContent( message.innerHTML ); this.modal.setTitle( nfi18n.deleteTitle ); this.modal.open(); var that = this; var btnCancel = this.modal.container[0].getElementsByClassName('cancel')[0]; btnCancel.addEventListener('click', function() { that.modalClose(); } ); var btnConfirm = this.modal.container[0].getElementsByClassName('confirm')[0]; btnConfirm.addEventListener('click', function( e ) { e.preventDefault(); var deleteInputVal = document.getElementById( 'confirmDeleteFormInput' ).value; if( 'DELETE' === deleteInputVal ) { that.confirmDelete(view); } else { that.modalClose(); } } ); }, modalClose: function() { this.modal.close(); }, confirmDelete: function( view ) { jQuery( view.el ).removeClass( 'show-actions' ); jQuery( view.el ).addClass( 'deleting' ); jQuery( view.el ).animate({ 'opacity': 0, 'line-height': 0, 'display': 'none' }, 500 ); console.log(view); view.model.destroy(); this.modalClose(); }, duplicate: function( view ) { var message = '<div class="message">Duplicating <em>' + view.model.get( 'title' ) + '</em>...' + '<div class="nf-loading-spinner"></div></div>'; this.modal.setContent( message ); this.modal.setTitle( 'Please Wait' ); this.modal.open(); var that = this; jQuery.ajax({ type: "POST", url: ajaxurl + '?action=nf_forms&clone_id=' + view.model.get( 'id' ), success: function( response ){ var response = JSON.parse( response ); var newID = response.data.new_form_id; var clone = view.model.clone(); clone.set({ id: newID, title: clone.get( 'title' ) + ' - copy', created_at: new Date(), }); clone.initShortcode( newID ); view.model.collection.add( clone ); that.modalClose(); } }); } } ); return collection; } );