Skip to content

Commit c6eea67

Browse files
committed
fixed lazy loading in self-service, closes mitreid-connect#571
1 parent 88c2a4d commit c6eea67

File tree

2 files changed

+42
-14
lines changed

2 files changed

+42
-14
lines changed

openid-connect-server-webapp/src/main/webapp/resources/js/admin.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -811,10 +811,15 @@ var AppRouter = Backbone.Router.extend({
811811
{text:"New", href:"manage/#dev/dynreg/new"}
812812
]);
813813

814-
this.dynRegEditView = new DynRegEditView({model: new DynRegClient()});
815-
$('#content').html(this.dynRegEditView.render().el);
814+
var view = new DynRegEditView({model: new DynRegClient(), systemScopeList:this.systemScopeList});
815+
816+
view.load(function() {
817+
$('#content').html(view.render().el);
818+
view.delegateEvents();
819+
setPageTitle("Dynamically Register a New Client");
820+
821+
});
816822

817-
setPageTitle("Dynamically Register a New Client");
818823
},
819824

820825
editDynReg:function() {

openid-connect-server-webapp/src/main/webapp/resources/js/dynreg.js

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,15 @@ var DynRegRootView = Backbone.View.extend({
9898

9999
client.fetch({success: function() {
100100

101-
var dynRegEditView = new DynRegEditView({model: client, systemScopeList: this.systemScopeList});
102-
103-
$('#content').html(dynRegEditView.render().el);
104-
app.navigate('dev/dynreg/edit', {trigger: true});
105-
self.remove();
101+
var view = new DynRegEditView({model: client, systemScopeList: app.systemScopeList});
102+
103+
view.load(function() {
104+
$('#content').html(view.render().el);
105+
view.delegateEvents();
106+
setPageTitle("Dynamically Register a New Client");
107+
app.navigate('dev/dynreg/edit', {trigger: true});
108+
self.remove();
109+
});
106110
}, error: function() {
107111
$('#modalAlert div.modal-body').html("Invalid client or registration access token.");
108112

@@ -133,7 +137,23 @@ var DynRegEditView = Backbone.View.extend({
133137
this.requestUrisCollection = new Backbone.Collection();
134138
},
135139

136-
events:{
140+
load:function(callback) {
141+
if (this.options.systemScopeList.isFetched) {
142+
callback();
143+
return;
144+
}
145+
146+
$('#loadingbox').sheet('show');
147+
$('#loading').html('<span class="label" id="loading-scopes">Scopes</span> ');
148+
149+
$.when(this.options.systemScopeList.fetchIfNeeded({success:function(e) {$('#loading-scopes').addClass('label-success');}}))
150+
.done(function() {
151+
$('#loadingbox').sheet('hide');
152+
callback();
153+
});
154+
},
155+
156+
events:{
137157
"click .btn-save":"saveClient",
138158
"click .btn-cancel": function() { window.history.back(); return false; },
139159
"click .btn-delete":"deleteClient",
@@ -174,8 +194,7 @@ var DynRegEditView = Backbone.View.extend({
174194
return false;
175195
},
176196

177-
previewLogo:function(e) {
178-
e.preventDefault();
197+
previewLogo:function() {
179198
if ($('#logoUri input', this.el).val()) {
180199
$('#logoPreview', this.el).empty();
181200
$('#logoPreview', this.el).attr('src', $('#logoUri input').val());
@@ -309,9 +328,13 @@ var DynRegEditView = Backbone.View.extend({
309328
// switch to an "edit" view
310329
app.navigate('dev/dynreg/edit', {trigger: true});
311330
_self.remove();
312-
var dynRegEditView = new DynRegEditView({model: _self.model});
313-
// reload
314-
$('#content').html(dynRegEditView.render().el);
331+
var view = new DynRegEditView({model: _self.model, systemScopeList: _self.options.systemScopeList});
332+
333+
view.load(function() {
334+
// reload
335+
$('#content').html(view.render().el);
336+
view.delegateEvents();
337+
});
315338
},
316339
error:function (error, response) {
317340
console.log("An error occurred when deleting from a list widget");

0 commit comments

Comments
 (0)