Merge branch 'master' into uma
pulled in deep link checking and checkbox handlingpull/708/merge
commit
351ce3995a
|
@ -33,6 +33,7 @@ Backbone.Model.prototype.fetchIfNeeded = function(options) {
|
||||||
return options.success(this, null);
|
return options.success(this, null);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Backbone.Collection.prototype.fetchIfNeeded = function(options) {
|
Backbone.Collection.prototype.fetchIfNeeded = function(options) {
|
||||||
var _self = this;
|
var _self = this;
|
||||||
if (!options) {
|
if (!options) {
|
||||||
|
@ -639,58 +640,26 @@ var AppRouter = Backbone.Router.extend({
|
||||||
this.updateSidebar('admin/clients');
|
this.updateSidebar('admin/clients');
|
||||||
|
|
||||||
var client = this.clientList.get(id);
|
var client = this.clientList.get(id);
|
||||||
|
if (!client) {
|
||||||
if (client == null) {
|
client = new ClientModel({id:id});
|
||||||
// it wasn't in the list, try loading the client directly
|
|
||||||
client = new ClientModel({id: id});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#loadingbox').sheet('show');
|
var view = new ClientFormView({model:client, systemScopeList: app.systemScopeList});
|
||||||
$('#loading').html(
|
view.load(function() {
|
||||||
'<span class="label" id="loading-scopes">' + $.t('common.scopes') + '</span> '
|
if ($.inArray("refresh_token", client.get("grantTypes")) != -1) {
|
||||||
+ '<span class="label" id="loading-client">' + $.t('common.client') + '</span> ');
|
client.set({
|
||||||
|
allowRefresh: true
|
||||||
|
}, { silent: true });
|
||||||
|
}
|
||||||
|
|
||||||
// re-sync the client every time
|
client.set({
|
||||||
client.fetch({
|
generateClientSecret:false,
|
||||||
success: function(client, response, options) {
|
displayClientSecret:false
|
||||||
$('#loading-client').addClass('label-success');
|
}, { silent: true });
|
||||||
|
|
||||||
if ($.inArray("refresh_token", client.get("grantTypes")) != -1) {
|
$('#content').html(view.render().el);
|
||||||
client.set({
|
setPageTitle($.t('client.client-form.edit'));
|
||||||
allowRefresh: true
|
});
|
||||||
}, { silent: true });
|
|
||||||
}
|
|
||||||
|
|
||||||
client.set({
|
|
||||||
generateClientSecret:false,
|
|
||||||
displayClientSecret:false
|
|
||||||
}, { silent: true });
|
|
||||||
|
|
||||||
var view = new ClientFormView({model:client, systemScopeList: app.systemScopeList});
|
|
||||||
view.load(function() {
|
|
||||||
$('#content').html(view.render().el);
|
|
||||||
setPageTitle($.t('client.client-form.edit'));
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
},
|
|
||||||
error: function(model, response, options) {
|
|
||||||
|
|
||||||
//Pull out the response text.
|
|
||||||
var responseJson = JSON.parse(response.responseText);
|
|
||||||
|
|
||||||
//Display an alert with an error message
|
|
||||||
$('#modalAlert div.modal-header').html(responseJson.error);
|
|
||||||
$('#modalAlert div.modal-body').html(responseJson.error_description);
|
|
||||||
|
|
||||||
$("#modalAlert").modal({ // wire up the actual modal functionality and show the dialog
|
|
||||||
"backdrop" : "static",
|
|
||||||
"keyboard" : true,
|
|
||||||
"show" : true // ensure the modal is shown immediately
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -729,33 +698,35 @@ var AppRouter = Backbone.Router.extend({
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.breadCrumbView.collection.reset();
|
||||||
|
this.breadCrumbView.collection.add([
|
||||||
|
{text:$.t('admin.home'), href:""},
|
||||||
|
{text:$.t('whitelist.manage'), href:"manage/#admin/whitelists"},
|
||||||
|
{text:$.t('whitelist.new'), href:"manage/#admin/whitelist/new/" + cid}
|
||||||
|
]);
|
||||||
|
|
||||||
this.updateSidebar('admin/whitelists');
|
this.updateSidebar('admin/whitelists');
|
||||||
|
|
||||||
|
var whiteList = new WhiteListModel();
|
||||||
|
|
||||||
var client = this.clientList.get(cid);
|
var client = this.clientList.get(cid);
|
||||||
|
if (!client) {
|
||||||
// if there's no client this is an error
|
client = new ClientModel({id: cid});
|
||||||
if (client != null) {
|
|
||||||
|
|
||||||
this.breadCrumbView.collection.reset();
|
|
||||||
this.breadCrumbView.collection.add([
|
|
||||||
{text:$.t('admin.home'), href:""},
|
|
||||||
{text:$.t('whitelist.manage'), href:"manage/#admin/whitelists"},
|
|
||||||
{text:$.t('whitelist.new'), href:"manage/#admin/whitelist/new/" + cid}
|
|
||||||
]);
|
|
||||||
|
|
||||||
var whiteList = new WhiteListModel();
|
|
||||||
whiteList.set({
|
|
||||||
clientId: client.get('clientId'),
|
|
||||||
allowedScopes: client.get('scope')
|
|
||||||
}, { silent: true });
|
|
||||||
|
|
||||||
this.whiteListFormView = new WhiteListFormView({model: whiteList, client: client, systemScopeList: this.systemScopeList});
|
|
||||||
$('#content').html(this.whiteListFormView.render().el);
|
|
||||||
setPageTitle($.t('whitelist.new'));
|
|
||||||
} else {
|
|
||||||
console.log('ERROR: no client found for ' + cid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var view = new WhiteListFormView({model: whiteList, client: client, systemScopeList: this.systemScopeList});
|
||||||
|
|
||||||
|
view.load(
|
||||||
|
function() {
|
||||||
|
|
||||||
|
// set the scopes on the model now that everything's loaded
|
||||||
|
whiteList.set({allowedScopes: client.get('scope')}, {silent: true});
|
||||||
|
|
||||||
|
$('#content').html(view.render().el);
|
||||||
|
view.delegateEvents();
|
||||||
|
setPageTitle($.t('whitelist.manage'));
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -776,21 +747,20 @@ var AppRouter = Backbone.Router.extend({
|
||||||
this.updateSidebar('admin/whitelists');
|
this.updateSidebar('admin/whitelists');
|
||||||
|
|
||||||
var whiteList = this.whiteListList.get(id);
|
var whiteList = this.whiteListList.get(id);
|
||||||
if (whiteList != null) {
|
if (!whiteList) {
|
||||||
var client = app.clientList.getByClientId(whiteList.get('clientId'));
|
whiteList = new WhiteListModel({id: id});
|
||||||
|
|
||||||
// if there's no client, this is an error
|
|
||||||
if (client != null) {
|
|
||||||
this.whiteListFormView = new WhiteListFormView({model: whiteList, client: client, systemScopeList: this.systemScopeList});
|
|
||||||
$('#content').html(this.whiteListFormView.render().el);
|
|
||||||
setPageTitle($.t('whitelist.edit'));
|
|
||||||
|
|
||||||
} else {
|
|
||||||
console.log('ERROR: no client found for ' + whiteList.get('clientId'));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.error('ERROR: no whitelist found for id ' + id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var view = new WhiteListFormView({model: whiteList, clientList: this.clientList, systemScopeList: this.systemScopeList});
|
||||||
|
|
||||||
|
view.load(
|
||||||
|
function() {
|
||||||
|
$('#content').html(view.render().el);
|
||||||
|
view.delegateEvents();
|
||||||
|
setPageTitle($.t('whitelist.manage'));
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
approvedSites:function() {
|
approvedSites:function() {
|
||||||
|
@ -912,9 +882,11 @@ var AppRouter = Backbone.Router.extend({
|
||||||
|
|
||||||
var scope = new SystemScopeModel();
|
var scope = new SystemScopeModel();
|
||||||
|
|
||||||
this.systemScopeFormView = new SystemScopeFormView({model:scope});
|
var view = new SystemScopeFormView({model:scope});
|
||||||
$('#content').html(this.systemScopeFormView.render().el);
|
view.load(function() {
|
||||||
setPageTitle($.t('scope.system-scope-form.new'));
|
$('#content').html(view.render().el);
|
||||||
|
setPageTitle($.t('scope.system-scope-form.new'));
|
||||||
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -935,10 +907,15 @@ var AppRouter = Backbone.Router.extend({
|
||||||
this.updateSidebar('admin/scope');
|
this.updateSidebar('admin/scope');
|
||||||
|
|
||||||
var scope = this.systemScopeList.get(sid);
|
var scope = this.systemScopeList.get(sid);
|
||||||
|
if (!scope) {
|
||||||
|
scope = new SystemScopeModel({id: sid});
|
||||||
|
}
|
||||||
|
|
||||||
this.systemScopeFormView = new SystemScopeFormView({model:scope});
|
var view = new SystemScopeFormView({model:scope});
|
||||||
$('#content').html(this.systemScopeFormView.render().el);
|
view.load(function() {
|
||||||
setPageTitle($.t('scope.system-scope-form.edit'));
|
$('#content').html(view.render().el);
|
||||||
|
setPageTitle($.t('scope.system-scope-form.new'));
|
||||||
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -644,20 +644,21 @@ var ClientFormView = Backbone.View.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
load:function(callback) {
|
load:function(callback) {
|
||||||
if (this.options.systemScopeList.isFetched) {
|
if (this.model.isFetched &&
|
||||||
$('#loadingbox').sheet('hide');
|
this.options.systemScopeList.isFetched) {
|
||||||
callback();
|
callback();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.model.get('id') == null) {
|
$('#loadingbox').sheet('show');
|
||||||
// only show the box if this is a new client, otherwise the box is already showing
|
$('#loading').html(
|
||||||
$('#loadingbox').sheet('show');
|
'<span class="label" id="loading-clients">' + $.t('common.clients') + '</span> ' +
|
||||||
$('#loading').html('<span class="label" id="loading-scopes">' + $.t("common.scopes") + '</span> ');
|
'<span class="label" id="loading-scopes">' + $.t("common.scopes") + '</span> '
|
||||||
}
|
);
|
||||||
|
|
||||||
$.when(this.options.systemScopeList.fetchIfNeeded({success:function(e) {$('#loading-scopes').addClass('label-success');}}))
|
$.when(this.options.systemScopeList.fetchIfNeeded({success:function(e) {$('#loading-scopes').addClass('label-success');}}),
|
||||||
.done(function() {
|
this.model.fetchIfNeeded({success:function(e) {$('#loading-clients').addClass('label-success');}}))
|
||||||
|
.done(function() {
|
||||||
$('#loadingbox').sheet('hide');
|
$('#loadingbox').sheet('hide');
|
||||||
callback();
|
callback();
|
||||||
});
|
});
|
||||||
|
|
|
@ -284,6 +284,25 @@ var SystemScopeFormView = Backbone.View.extend({
|
||||||
'change #isStructured input':'toggleStructuredParamDescription'
|
'change #isStructured input':'toggleStructuredParamDescription'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
load:function(callback) {
|
||||||
|
if (this.model.isFetched) {
|
||||||
|
callback();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#loadingbox').sheet('show');
|
||||||
|
$('#loading').html(
|
||||||
|
'<span class="label" id="loading-scopes">' + $.t("common.scopes") + '</span> '
|
||||||
|
);
|
||||||
|
|
||||||
|
$.when(this.model.fetchIfNeeded({success:function(e) {$('#loading-scopes').addClass('label-success');}}))
|
||||||
|
.done(function() {
|
||||||
|
$('#loadingbox').sheet('hide');
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
toggleStructuredParamDescription:function(e) {
|
toggleStructuredParamDescription:function(e) {
|
||||||
if ($('#isStructured input', this.el).is(':checked')) {
|
if ($('#isStructured input', this.el).is(':checked')) {
|
||||||
$('#structuredParamDescription', this.el).show();
|
$('#structuredParamDescription', this.el).show();
|
||||||
|
|
|
@ -254,6 +254,73 @@ var WhiteListFormView = Backbone.View.extend({
|
||||||
|
|
||||||
this.listWidgetViews = [];
|
this.listWidgetViews = [];
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
load:function(callback) {
|
||||||
|
|
||||||
|
if (this.options.client) {
|
||||||
|
// we know what client we're dealing with already
|
||||||
|
if (this.model.isFetched &&
|
||||||
|
this.options.client.isFetched) {
|
||||||
|
callback();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#loadingbox').sheet('show');
|
||||||
|
$('#loading').html(
|
||||||
|
'<span class="label" id="loading-whitelist">' + $.t('whitelist.whitelist') + '</span> ' +
|
||||||
|
'<span class="label" id="loading-clients">' + $.t('common.clients') + '</span> ' +
|
||||||
|
'<span class="label" id="loading-scopes">' + $.t('common.scopes') + '</span> '
|
||||||
|
);
|
||||||
|
|
||||||
|
$.when(this.model.fetchIfNeeded({success:function(e) {$('#loading-whitelist').addClass('label-success');}}),
|
||||||
|
this.options.client.fetchIfNeeded({success:function(e) {$('#loading-clients').addClass('label-success');}}),
|
||||||
|
this.options.systemScopeList.fetchIfNeeded({success:function(e) {$('#loading-scopes').addClass('label-success');}}))
|
||||||
|
.done(function() {
|
||||||
|
$('#loadingbox').sheet('hide');
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// we need to get the client information from the list
|
||||||
|
|
||||||
|
if (this.model.isFetched &&
|
||||||
|
this.options.clientList.isFetched &&
|
||||||
|
this.options.systemScopeList.isFetched) {
|
||||||
|
|
||||||
|
var client = this.options.clientList.getByClientId(this.model.get('clientId'));
|
||||||
|
this.options.client = client;
|
||||||
|
|
||||||
|
callback();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#loadingbox').sheet('show');
|
||||||
|
$('#loading').html(
|
||||||
|
'<span class="label" id="loading-whitelist">' + $.t('whitelist.whitelist') + '</span> ' +
|
||||||
|
'<span class="label" id="loading-clients">' + $.t('common.clients') + '</span> ' +
|
||||||
|
'<span class="label" id="loading-scopes">' + $.t('common.scopes') + '</span> '
|
||||||
|
);
|
||||||
|
|
||||||
|
var _self = this;
|
||||||
|
|
||||||
|
$.when(this.model.fetchIfNeeded({success:function(e) {$('#loading-whitelist').addClass('label-success');}}),
|
||||||
|
this.options.clientList.fetchIfNeeded({success:function(e) {$('#loading-clients').addClass('label-success');}}),
|
||||||
|
this.options.systemScopeList.fetchIfNeeded({success:function(e) {$('#loading-scopes').addClass('label-success');}}))
|
||||||
|
.done(function() {
|
||||||
|
|
||||||
|
var client = _self.options.clientList.getByClientId(_self.model.get('clientId'));
|
||||||
|
_self.options.client = client;
|
||||||
|
|
||||||
|
$('#loadingbox').sheet('hide');
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
events:{
|
events:{
|
||||||
|
@ -274,9 +341,7 @@ var WhiteListFormView = Backbone.View.extend({
|
||||||
// process allowed scopes
|
// process allowed scopes
|
||||||
var allowedScopes = this.scopeCollection.pluck("item");
|
var allowedScopes = this.scopeCollection.pluck("item");
|
||||||
|
|
||||||
if (this.model.get('id') == null) {
|
this.model.set({clientId: this.options.client.get('clientId')}, {silent: true});
|
||||||
this.model.set({clientId:$('#clientId input').val()});
|
|
||||||
}
|
|
||||||
|
|
||||||
var valid = this.model.set({
|
var valid = this.model.set({
|
||||||
allowedScopes: allowedScopes
|
allowedScopes: allowedScopes
|
||||||
|
@ -340,7 +405,7 @@ var WhiteListFormView = Backbone.View.extend({
|
||||||
|
|
||||||
var scopeView = new ListWidgetView({
|
var scopeView = new ListWidgetView({
|
||||||
placeholder: $.t('whitelist.whitelist-form.scope-placeholder'),
|
placeholder: $.t('whitelist.whitelist-form.scope-placeholder'),
|
||||||
autocomplete: this.options.client.scope,
|
autocomplete: this.options.client.get("scope"),
|
||||||
helpBlockText: $.t('whitelist.whitelist-form.scope-help'),
|
helpBlockText: $.t('whitelist.whitelist-form.scope-help'),
|
||||||
collection: this.scopeCollection});
|
collection: this.scopeCollection});
|
||||||
$("#scope .controls",this.el).html(scopeView.render().el);
|
$("#scope .controls",this.el).html(scopeView.render().el);
|
||||||
|
|
|
@ -87,7 +87,6 @@
|
||||||
<div class="control-group" id="clientId">
|
<div class="control-group" id="clientId">
|
||||||
<label class="control-label" data-i18n="common.client">Client</label>
|
<label class="control-label" data-i18n="common.client">Client</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<input type="hidden" name="clientId" value="<%- client.clientId %>" />
|
|
||||||
<span title="<%- client.clientId %>"><%- client.clientName != null ? client.clientName : ( client.clientId.substr(0,8) + '...' ) %></span>
|
<span title="<%- client.clientId %>"><%- client.clientName != null ? client.clientName : ( client.clientId.substr(0,8) + '...' ) %></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue