Skip to content

Instantly share code, notes, and snippets.

@kjohnson
Created August 23, 2016 13:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kjohnson/e6dcd0ba5b3f56217144b61cc51c0e5f to your computer and use it in GitHub Desktop.
Save kjohnson/e6dcd0ba5b3f56217144b61cc51c0e5f to your computer and use it in GitHub Desktop.
var myCustomController = Marionette.Object.extend({
initialize: function() {
// ...
Backbone.Radio.channel( 'form-' + formID ).reply( 'maybe:submit', this.beforeSubmit, this, formID );
},
beforeSubmit: function( formID ) {
var formModel = nfRadio.channel( 'app' ).request( 'get:form', formID );
if( formModel.getExtra( 'my_restart_flag' ) ) return true;
this.otherProcessing( formModel );
// Halt form submission.
return false;
},
otherProcessing: function( formModel ) {
// Set re-start flag
nfRadio.channel( 'form-' + this.formModel.get( 'id' ) ).request( 'add:extra', 'my_restart_flag', true );
// Re-start submission.
nfRadio.channel( 'form-' + formModel.get( 'id' ) ).request( 'submit', formModel );
},
});
jQuery( document ).ready( function( $ ) {
new myCustomController();
});
@oniryx
Copy link

oniryx commented Jun 29, 2020

Thanks for your work!

The above JS didn't work for me.

The updated code below did.

var myCustomController = Marionette.Object.extend({

    initialize: function() {
      Backbone.Radio.channel( 'form-' + form.id ).reply( 'maybe:submit', this.beforeSubmit, this, form.id );
    },

    beforeSubmit: function( formModel ) {

        if( formModel.getExtra( 'my_restart_flag' ) ) return true;

        this.otherProcessing( formModel );

        // Halt form submission.
        return false;
    },

    otherProcessing: function( formModel ) {

      // Set re-start flag
      nfRadio.channel( 'form-' + formModel.get( 'id' ) ).request( 'add:extra', 'my_restart_flag', true );


      // Re-start submission.
      nfRadio.channel( 'form-' + formModel.get( 'id' ) ).request( 'submit', formModel );
    },

});

jQuery( document ).ready( function( $ ) {
    new myCustomController();
});

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment