validation-options.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. define(
  2. function( require ) {
  3. var Backbone = require( "backbone" ),
  4. _ = require( "underscore" ),
  5. fui = require( "app/fui" );
  6. var ValidationOptions = Backbone.Marionette.ItemView.extend( {
  7. initialize: function(){
  8. _.bindAll( this, "onValidateAs", "onOutputFormat", "onModelChange" );
  9. this.listenTo( this.model, "change", this.onModelChange, this );
  10. },
  11. el: ".validation",
  12. events: {
  13. "click .validate-as-options a": "onValidateAs",
  14. "click .output-format-options a": "onOutputFormat",
  15. },
  16. templateHelpers: {
  17. },
  18. onValidateAs: function( e ) {
  19. e.preventDefault();
  20. var elem = $(e.currentTarget);
  21. this.model.setValidateAs( elem.data( "validate-as" ) );
  22. this.$el.find(".validate-as-options a").removeClass("active");
  23. elem.addClass("active");
  24. if (this.model.validateAsQuery()) {
  25. this.$el.find(".output-format-options").removeClass("hidden");
  26. }
  27. else {
  28. this.$el.find(".output-format-options").addClass("hidden");
  29. }
  30. },
  31. onOutputFormat: function( e ) {
  32. e.preventDefault();
  33. var elem = $(e.currentTarget);
  34. this.model.setOutputFormat( elem.data( "output-format" ) );
  35. this.$el.find(".output-format-options a").removeClass("active");
  36. elem.addClass("active");
  37. },
  38. onModelChange: function( event ) {
  39. }
  40. });
  41. return ValidationOptions;
  42. }
  43. );