|
|
|
@ -609,6 +609,9 @@ var ClientFormView = Backbone.View.extend({
|
|
|
|
|
this.defaultAcrValuesCollection = new Backbone.Collection(); |
|
|
|
|
this.requestUrisCollection = new Backbone.Collection(); |
|
|
|
|
// TODO: add Spring authorities collection and resource IDs collection?
|
|
|
|
|
|
|
|
|
|
// collection of sub-views that need to be sync'd on save
|
|
|
|
|
this.listWidgetViews = []; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
events:{ |
|
|
|
@ -800,12 +803,15 @@ var ClientFormView = Backbone.View.extend({
|
|
|
|
|
|
|
|
|
|
$('.control-group').removeClass('error'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// sync any leftover collection items
|
|
|
|
|
_.each(this.listWidgetViews, function(v) { |
|
|
|
|
v.addItem($.Event('click')); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// build the scope object
|
|
|
|
|
var scopes = this.scopeCollection.pluck("item"); |
|
|
|
|
var extraScope = $('#scope input').val(); |
|
|
|
|
if (extraScope) { |
|
|
|
|
scopes.push(extraScope); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// build the grant type object
|
|
|
|
|
var grantTypes = []; |
|
|
|
@ -992,34 +998,44 @@ var ClientFormView = Backbone.View.extend({
|
|
|
|
|
|
|
|
|
|
var _self = this; |
|
|
|
|
|
|
|
|
|
// clear the sub-view collection
|
|
|
|
|
this.listWidgetViews = []; |
|
|
|
|
|
|
|
|
|
// build and bind registered redirect URI collection and view
|
|
|
|
|
_.each(this.model.get("redirectUris"), function (redirectUri) { |
|
|
|
|
_self.redirectUrisCollection.add(new URIModel({item:redirectUri})); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
$("#redirectUris .controls",this.el).html(new ListWidgetView({ |
|
|
|
|
|
|
|
|
|
var redirUriView = new ListWidgetView({ |
|
|
|
|
type:'uri',
|
|
|
|
|
placeholder: 'https://', |
|
|
|
|
collection: this.redirectUrisCollection}).render().el); |
|
|
|
|
collection: this.redirectUrisCollection}); |
|
|
|
|
$("#redirectUris .controls",this.el).html(redirUriView.render().el); |
|
|
|
|
this.listWidgetViews.push(redirUriView); |
|
|
|
|
|
|
|
|
|
// build and bind scopes
|
|
|
|
|
_.each(this.model.get("scope"), function (scope) { |
|
|
|
|
_self.scopeCollection.add(new Backbone.Model({item:scope})); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
$("#scope .controls",this.el).html(new ListWidgetView({ |
|
|
|
|
var scopeView = new ListWidgetView({ |
|
|
|
|
placeholder: 'new scope',
|
|
|
|
|
autocomplete: _.uniq(_.flatten(this.options.systemScopeList.pluck("value"))),
|
|
|
|
|
collection: this.scopeCollection}).render().el); |
|
|
|
|
collection: this.scopeCollection}); |
|
|
|
|
$("#scope .controls",this.el).html(scopeView.render().el); |
|
|
|
|
this.listWidgetViews.push(scopeView); |
|
|
|
|
|
|
|
|
|
// build and bind contacts
|
|
|
|
|
_.each(this.model.get('contacts'), function (contact) { |
|
|
|
|
_self.contactsCollection.add(new Backbone.Model({item:contact})); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
$("#contacts .controls", this.el).html(new ListWidgetView({ |
|
|
|
|
var contactsView = new ListWidgetView({ |
|
|
|
|
placeholder: 'new contact', |
|
|
|
|
collection: this.contactsCollection}).render().el); |
|
|
|
|
collection: this.contactsCollection}); |
|
|
|
|
$("#contacts .controls", this.el).html(contactsView.render().el); |
|
|
|
|
this.listWidgetViews.push(contactsView); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// build and bind request URIs
|
|
|
|
@ -1027,20 +1043,24 @@ var ClientFormView = Backbone.View.extend({
|
|
|
|
|
_self.requestUrisCollection.add(new URIModel({item:requestUri})); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
$('#requestUris .controls', this.el).html(new ListWidgetView({ |
|
|
|
|
var requestUriView = new ListWidgetView({ |
|
|
|
|
type: 'uri', |
|
|
|
|
placeholder: 'https://', |
|
|
|
|
collection: this.requestUrisCollection}).render().el); |
|
|
|
|
collection: this.requestUrisCollection}); |
|
|
|
|
$('#requestUris .controls', this.el).html(requestUriView.render().el); |
|
|
|
|
this.listWidgetViews.push(requestUriView); |
|
|
|
|
|
|
|
|
|
// build and bind default ACR values
|
|
|
|
|
_.each(this.model.get('defaultAcrValues'), function (defaultAcrValue) { |
|
|
|
|
_self.defaultAcrValuesCollection.add(new Backbone.Model({item:defaultAcrValue})); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
$('#defaultAcrValues .controls', this.el).html(new ListWidgetView({ |
|
|
|
|
var defaultAcrView = new ListWidgetView({ |
|
|
|
|
placeholder: 'new ACR value', |
|
|
|
|
// TODO: autocomplete from spec
|
|
|
|
|
collection: this.defaultAcrValuesCollection}).render().el); |
|
|
|
|
collection: this.defaultAcrValuesCollection}); |
|
|
|
|
$('#defaultAcrValues .controls', this.el).html(defaultAcrView.render().el); |
|
|
|
|
this.listWidgetViews.push(defaultAcrView); |
|
|
|
|
|
|
|
|
|
// build and bind
|
|
|
|
|
|
|
|
|
|