@@ -98,11 +98,15 @@ var DynRegRootView = Backbone.View.extend({
98
98
99
99
client . fetch ( { success : function ( ) {
100
100
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
+ } ) ;
106
110
} , error : function ( ) {
107
111
$ ( '#modalAlert div.modal-body' ) . html ( "Invalid client or registration access token." ) ;
108
112
@@ -133,7 +137,23 @@ var DynRegEditView = Backbone.View.extend({
133
137
this . requestUrisCollection = new Backbone . Collection ( ) ;
134
138
} ,
135
139
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 :{
137
157
"click .btn-save" :"saveClient" ,
138
158
"click .btn-cancel" : function ( ) { window . history . back ( ) ; return false ; } ,
139
159
"click .btn-delete" :"deleteClient" ,
@@ -174,8 +194,7 @@ var DynRegEditView = Backbone.View.extend({
174
194
return false ;
175
195
} ,
176
196
177
- previewLogo :function ( e ) {
178
- e . preventDefault ( ) ;
197
+ previewLogo :function ( ) {
179
198
if ( $ ( '#logoUri input' , this . el ) . val ( ) ) {
180
199
$ ( '#logoPreview' , this . el ) . empty ( ) ;
181
200
$ ( '#logoPreview' , this . el ) . attr ( 'src' , $ ( '#logoUri input' ) . val ( ) ) ;
@@ -309,9 +328,13 @@ var DynRegEditView = Backbone.View.extend({
309
328
// switch to an "edit" view
310
329
app . navigate ( 'dev/dynreg/edit' , { trigger : true } ) ;
311
330
_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
+ } ) ;
315
338
} ,
316
339
error :function ( error , response ) {
317
340
console . log ( "An error occurred when deleting from a list widget" ) ;
0 commit comments