cleaned out some global variables

pull/567/head
Justin Richer 2014-03-08 21:20:40 +00:00
parent ff4c0ab289
commit 82f1ba61f3
7 changed files with 59 additions and 37 deletions

View File

@ -387,13 +387,13 @@ var AppRouter = Backbone.Router.extend({
this.accessTokensList = new AccessTokenCollection(); this.accessTokensList = new AccessTokenCollection();
this.refreshTokensList = new RefreshTokenCollection(); this.refreshTokensList = new RefreshTokenCollection();
this.clientListView = new ClientListView({model:this.clientList, stats: this.clientStats, systemScopeList: this.systemScopeList, whiteListList: this.whiteListList});
this.clientListView = new ClientListView({model:this.clientList, stats: this.clientStats}); this.whiteListListView = new WhiteListListView({model:this.whiteListList, clientList: this.clientList, systemScopeList: this.systemScopeList});
this.whiteListListView = new WhiteListListView({model:this.whiteListList}); this.approvedSiteListView = new ApprovedSiteListView({model:this.approvedSiteList, clientList: this.clientList, systemScopeList: this.systemScopeList});
this.approvedSiteListView = new ApprovedSiteListView({model:this.approvedSiteList});
this.blackListListView = new BlackListListView({model:this.blackListList}); this.blackListListView = new BlackListListView({model:this.blackListList});
this.systemScopeListView = new SystemScopeListView({model:this.systemScopeList}); this.systemScopeListView = new SystemScopeListView({model:this.systemScopeList});
this.tokensListView = new TokenListView({model: {access: this.accessTokensList, refresh: this.refreshTokensList}}); this.tokensListView = new TokenListView({model: {access: this.accessTokensList, refresh: this.refreshTokensList}, clientList: this.clientList, systemScopeList: this.systemScopeList});
this.dynRegRootView = new DynRegRootView({systemScopeList: this.systemScopeList});
this.breadCrumbView = new BreadCrumbView({ this.breadCrumbView = new BreadCrumbView({
collection:new Backbone.Collection() collection:new Backbone.Collection()
@ -401,6 +401,15 @@ var AppRouter = Backbone.Router.extend({
this.breadCrumbView.render(); this.breadCrumbView.render();
// set up loading dependencies
/*
this.clientListView.dependsOn = [this.systemScopeList];
this.whiteListListView.dependsOn = [this.whiteListList, this.clientList];
this.accessTokensListView.dependsOn = [this.clientList];
this.refreshTokenListView.dependsOn = [this.clientList];
*/
// //
// Several items depend on the clients and whitelists being loaded, so we're going to pre-fetch them here // Several items depend on the clients and whitelists being loaded, so we're going to pre-fetch them here
@ -408,10 +417,12 @@ var AppRouter = Backbone.Router.extend({
// //
// load things in the right order: // load things in the right order:
$("#loading").html("server configuration"); $("#loading").html("server configuration");
var base = $('base').attr('href'); var base = $('base').attr('href');
$.getJSON(base + '.well-known/openid-configuration', function(data) { $.getJSON(base + '.well-known/openid-configuration', function(data) {
app.serverConfiguration = data; app.serverConfiguration = data;
/**/
$("#content .progress .bar").css("width", "20%"); $("#content .progress .bar").css("width", "20%");
$("#loading").html("scopes"); $("#loading").html("scopes");
app.systemScopeList.fetch({ app.systemScopeList.fetch({
@ -428,10 +439,12 @@ var AppRouter = Backbone.Router.extend({
$("#loading").html("statistics"); $("#loading").html("statistics");
app.clientStats.fetch({ app.clientStats.fetch({
success: function(model, response) { success: function(model, response) {
/**/
$("#content .progress .bar").css("width", "100%"); $("#content .progress .bar").css("width", "100%");
$("#loading").html("console"); $("#loading").html("console");
var baseUrl = $.url(app.serverConfiguration.issuer); var baseUrl = $.url(app.serverConfiguration.issuer);
Backbone.history.start({pushState: true, root: baseUrl.attr('relative') + 'manage/'}); Backbone.history.start({pushState: true, root: baseUrl.attr('relative') + 'manage/'});
/**/
} }
}); });
} }
@ -440,6 +453,7 @@ var AppRouter = Backbone.Router.extend({
}); });
} }
}); });
/**/
}); });
}, },
@ -489,7 +503,7 @@ var AppRouter = Backbone.Router.extend({
idTokenValiditySeconds:600 idTokenValiditySeconds:600
}, { silent: true }); }, { silent: true });
this.clientFormView = new ClientFormView({model:client}); this.clientFormView = new ClientFormView({model:client, systemScopeList: this.systemScopeList});
$('#content').html(this.clientFormView.render().el); $('#content').html(this.clientFormView.render().el);
setPageTitle("New Client"); setPageTitle("New Client");
}, },
@ -527,7 +541,7 @@ var AppRouter = Backbone.Router.extend({
displayClientSecret:false displayClientSecret:false
}, { silent: true }); }, { silent: true });
this.clientFormView = new ClientFormView({model:client}); this.clientFormView = new ClientFormView({model:client, systemScopeList: this.systemScopeList});
$('#content').html(this.clientFormView.render().el); $('#content').html(this.clientFormView.render().el);
setPageTitle("Edit Client"); setPageTitle("Edit Client");
@ -577,7 +591,7 @@ var AppRouter = Backbone.Router.extend({
allowedScopes: client.get('scope') allowedScopes: client.get('scope')
}, { silent: true }); }, { silent: true });
this.whiteListFormView = new WhiteListFormView({model: whiteList, client: client}); this.whiteListFormView = new WhiteListFormView({model: whiteList, client: client, systemScopeList: this.systemScopeList});
$('#content').html(this.whiteListFormView.render().el); $('#content').html(this.whiteListFormView.render().el);
setPageTitle("Create New Whitelist"); setPageTitle("Create New Whitelist");
} else { } else {
@ -607,7 +621,7 @@ var AppRouter = Backbone.Router.extend({
// if there's no client, this is an error // if there's no client, this is an error
if (client != null) { if (client != null) {
this.whiteListFormView = new WhiteListFormView({model: whiteList, client: client}); this.whiteListFormView = new WhiteListFormView({model: whiteList, client: client, systemScopeList: this.systemScopeList});
$('#content').html(this.whiteListFormView.render().el); $('#content').html(this.whiteListFormView.render().el);
setPageTitle("Edit Whitelist"); setPageTitle("Edit Whitelist");
@ -760,7 +774,6 @@ var AppRouter = Backbone.Router.extend({
{text:"Client Registration", href:"manage/#dev/dynreg"} {text:"Client Registration", href:"manage/#dev/dynreg"}
]); ]);
this.dynRegRootView = new DynRegRootView();
$('#content').html(this.dynRegRootView.render().el); $('#content').html(this.dynRegRootView.render().el);
setPageTitle("Self-service Client Registration"); setPageTitle("Self-service Client Registration");

View File

@ -135,10 +135,10 @@ var ClientView = Backbone.View.extend({
}, },
render:function (eventName) { render:function (eventName) {
var json = {client: this.model.toJSON(), count: this.options.count}; var json = {client: this.model.toJSON(), count: this.options.count, whiteList: this.options.whiteList};
this.$el.html(this.template(json)); this.$el.html(this.template(json));
$('.scope-list', this.el).html(this.scopeTemplate({scopes: this.model.get('scope'), systemScopes: app.systemScopeList})); $('.scope-list', this.el).html(this.scopeTemplate({scopes: this.model.get('scope'), systemScopes: this.options.systemScopeList}));
this.$('.dynamically-registered').tooltip({title: 'This client was dynamically registered'}); this.$('.dynamically-registered').tooltip({title: 'This client was dynamically registered'});
@ -157,8 +157,7 @@ var ClientView = Backbone.View.extend({
}, },
whiteListClient:function() { whiteListClient:function() {
var whiteList = app.whiteListList.getByClientId(this.model.get('clientId')); if (this.options.whiteList == null) {
if (whiteList == null) {
// create a new one // create a new one
app.navigate('admin/whitelist/new/' + this.model.id, {trigger: true}); app.navigate('admin/whitelist/new/' + this.model.id, {trigger: true});
} else { } else {
@ -246,11 +245,15 @@ var ClientListView = Backbone.View.extend({
// append and render table structure // append and render table structure
$(this.el).html($('#tmpl-client-table').html()); $(this.el).html($('#tmpl-client-table').html());
var whiteList = this.options.whiteListList.getByClientId(this.model.get('clientId'));
_.each(this.model.models, function (client) { _.each(this.model.models, function (client) {
$("#client-table",this.el).append( $("#client-table",this.el).append(
new ClientView({ new ClientView({
model:client, model:client,
count:this.options.stats.get(client.get('id')) count:this.options.stats.get(client.get('id')),
systemScopeList: this.options.systemScopeList,
whiteList: this.options.whiteListList.getByClientId(client.get('clientId'))
}).render().el); }).render().el);
}, this); }, this);
@ -637,7 +640,7 @@ var ClientFormView = Backbone.View.extend({
$("#scope .controls",this.el).html(new ListWidgetView({ $("#scope .controls",this.el).html(new ListWidgetView({
placeholder: 'new scope', placeholder: 'new scope',
autocomplete: _.uniq(_.flatten(app.systemScopeList.pluck("value"))), autocomplete: _.uniq(_.flatten(this.options.systemScopeList.pluck("value"))),
collection: this.scopeCollection}).render().el); collection: this.scopeCollection}).render().el);
// build and bind contacts // build and bind contacts

View File

@ -96,7 +96,7 @@ var DynRegRootView = Backbone.View.extend({
client.fetch({success: function() { client.fetch({success: function() {
var dynRegEditView = new DynRegEditView({model: client}); var dynRegEditView = new DynRegEditView({model: client, systemScopeList: this.systemScopeList});
$('#content').html(dynRegEditView.render().el); $('#content').html(dynRegEditView.render().el);
app.navigate('dev/dynreg/edit', {trigger: true}); app.navigate('dev/dynreg/edit', {trigger: true});
@ -352,7 +352,7 @@ var DynRegEditView = Backbone.View.extend({
$("#scope .controls",this.el).html(new ListWidgetView({ $("#scope .controls",this.el).html(new ListWidgetView({
placeholder: 'new scope', placeholder: 'new scope',
autocomplete: _.uniq(_.flatten(app.systemScopeList.pluck("value"))), autocomplete: _.uniq(_.flatten(this.options.systemScopeList.pluck("value"))),
collection: this.scopeCollection}).render().el); collection: this.scopeCollection}).render().el);
// build and bind contacts // build and bind contacts

View File

@ -45,14 +45,14 @@ var ApprovedSiteListView = Backbone.View.extend({
_.each(this.model.models, function(approvedSite) { _.each(this.model.models, function(approvedSite) {
// look up client // look up client
var client = app.clientList.getByClientId(approvedSite.get('clientId')); var client = this.options.clientList.getByClientId(approvedSite.get('clientId'));
if (client != null) { if (client != null) {
if (approvedSite.get('whitelistedSite') != null) { if (approvedSite.get('whitelistedSite') != null) {
$('#grant-whitelist-table', this.el).append(new ApprovedSiteView({model: approvedSite, client: client}).render().el); $('#grant-whitelist-table', this.el).append(new ApprovedSiteView({model: approvedSite, client: client, systemScopeList: this.options.systemScopeList}).render().el);
} else { } else {
$('#grant-table', this.el).append(new ApprovedSiteView({model: approvedSite, client: client}).render().el); $('#grant-table', this.el).append(new ApprovedSiteView({model: approvedSite, client: client, systemScopeList: this.options.systemScopeList}).render().el);
} }
} }
@ -158,7 +158,7 @@ var ApprovedSiteView = Backbone.View.extend({
this.$el.html(this.template(json)); this.$el.html(this.template(json));
$('.scope-list', this.el).html(this.scopeTemplate({scopes: this.model.get('allowedScopes'), systemScopes: app.systemScopeList})); $('.scope-list', this.el).html(this.scopeTemplate({scopes: this.model.get('allowedScopes'), systemScopes: this.options.systemScopeList}));
this.$('.dynamically-registered').tooltip({title: 'This client was dynamically registered'}); this.$('.dynamically-registered').tooltip({title: 'This client was dynamically registered'});
this.$('.whitelisted-site').tooltip({title: 'This site was whitelisted by an adminstrator'}); this.$('.whitelisted-site').tooltip({title: 'This site was whitelisted by an adminstrator'});

View File

@ -84,7 +84,7 @@ var AccessTokenView = Backbone.View.extend({
$('.token-full', this.el).hide(); $('.token-full', this.el).hide();
// show scopes // show scopes
$('.scope-list', this.el).html(this.scopeTemplate({scopes: this.model.get('scopes'), systemScopes: app.systemScopeList})); $('.scope-list', this.el).html(this.scopeTemplate({scopes: this.model.get('scopes'), systemScopes: this.options.systemScopeList}));
return this; return this;
}, },
@ -206,7 +206,7 @@ var RefreshTokenView = Backbone.View.extend({
$('.token-full', this.el).hide(); $('.token-full', this.el).hide();
// show scopes // show scopes
$('.scope-list', this.el).html(this.scopeTemplate({scopes: this.model.get('scopes'), systemScopes: app.systemScopeList})); $('.scope-list', this.el).html(this.scopeTemplate({scopes: this.model.get('scopes'), systemScopes: this.options.systemScopeList}));
return this; return this;
@ -308,17 +308,17 @@ var TokenListView = Backbone.View.extend({
_.each(this.model.access.models, function (token) { _.each(this.model.access.models, function (token) {
// look up client // look up client
var client = app.clientList.getByClientId(token.get('clientId')); var client = _self.options.clientList.getByClientId(token.get('clientId'));
$('#access-token-table', _self.el).append(new AccessTokenView({model: token, client: client}).render().el); $('#access-token-table', _self.el).append(new AccessTokenView({model: token, client: client, systemScopeList: _self.options.systemScopeList}).render().el);
}); });
_.each(this.model.refresh.models, function (token) { _.each(this.model.refresh.models, function (token) {
// look up client // look up client
var client = app.clientList.getByClientId(token.get('clientId')); var client = _self.options.clientList.getByClientId(token.get('clientId'));
$('#refresh-token-table', _self.el).append(new RefreshTokenView({model: token, client: client}).render().el); $('#refresh-token-table', _self.el).append(new RefreshTokenView({model: token, client: client, systemScopeList: _self.options.systemScopeList}).render().el);
}); });

View File

@ -60,11 +60,11 @@ var WhiteListListView = Backbone.View.extend({
_.each(this.model.models, function (whiteList) { _.each(this.model.models, function (whiteList) {
// look up client // look up client
var client = app.clientList.getByClientId(whiteList.get('clientId')); var client = this.options.clientList.getByClientId(whiteList.get('clientId'));
// if there's no client ID, this is an error! // if there's no client ID, this is an error!
if (client != null) { if (client != null) {
$('#whitelist-table', this.el).append(new WhiteListView({model: whiteList, client: client}).render().el); $('#whitelist-table', this.el).append(new WhiteListView({model: whiteList, client: client, systemScopeList: this.options.systemScopeList}).render().el);
} }
}, this); }, this);
@ -115,7 +115,7 @@ var WhiteListView = Backbone.View.extend({
this.$el.html(this.template(json)); this.$el.html(this.template(json));
$('.scope-list', this.el).html(this.scopeTemplate({scopes: this.model.get('allowedScopes'), systemScopes: app.systemScopeList})); $('.scope-list', this.el).html(this.scopeTemplate({scopes: this.model.get('allowedScopes'), systemScopes: this.options.systemScopeList}));
this.$('.dynamically-registered').tooltip({title: 'This client was dynamically registered'}); this.$('.dynamically-registered').tooltip({title: 'This client was dynamically registered'});

View File

@ -18,10 +18,12 @@
<script type="text/html" id="tmpl-client"> <script type="text/html" id="tmpl-client">
<td> <td>
<% if (count) { %> <% if (count == 0) { %>
<span class="label label-important">0</span>
<% } else if (count != null) { %>
<span class="label label-info"><%= count %></span> <span class="label label-info"><%= count %></span>
<% } else { %> <% } else { %>
<span class="label label-important">0</span> <!-- hold for count -->
<% } %> <% } %>
<% if (client.dynamicallyRegistered) { %> <% if (client.dynamicallyRegistered) { %>
<span class="label label-inverse dynamically-registered"><i class="icon-globe icon-white"></i></span> <span class="label label-inverse dynamically-registered"><i class="icon-globe icon-white"></i></span>
@ -64,7 +66,11 @@
<td> <td>
<button class="btn btn-edit"><i class="icon-edit"></i> Edit</button> &nbsp; <button class="btn btn-edit"><i class="icon-edit"></i> Edit</button> &nbsp;
<button class="btn btn-warning btn-whitelist">Whitelist</button> &nbsp; <% if (whiteList != null) { %>
<button class="btn btn-warning btn-whitelist"><i class="icon-wrench icon-white"></i> Whitelist</button> &nbsp;
<% } else { %>
<button class="btn btn-warning btn-whitelist"><i class="icon-plus-sign icon-white"></i> Whitelist</button> &nbsp;
<% } %>
<button class="btn btn-danger btn-delete pull-right"><i class="icon-trash icon-white"></i> Delete</button> <button class="btn btn-danger btn-delete pull-right"><i class="icon-trash icon-white"></i> Delete</button>
</td> </td>