diff --git a/uma-server-webapp/src/main/webapp/resources/js/admin.js b/uma-server-webapp/src/main/webapp/resources/js/admin.js index 93bddb657..13501396f 100644 --- a/uma-server-webapp/src/main/webapp/resources/js/admin.js +++ b/uma-server-webapp/src/main/webapp/resources/js/admin.js @@ -503,8 +503,10 @@ var AppRouter = Backbone.Router.extend({ "user/approved":"approvedSites", "user/tokens":"tokens", "user/profile":"profile", + "user/policy":"policy", - "user/policy/:rsid":"editPolicy", + "user/policy/:rsid":"editPolicies", + "user/policy/:rsid/:pid":"editPolicy", "dev/dynreg":"dynReg", "dev/dynreg/new":"newDynReg", @@ -1096,12 +1098,12 @@ var AppRouter = Backbone.Router.extend({ }, - editPolicy:function(rsid) { + editPolicies:function(rsid) { this.breadCrumbView.collection.reset(); this.breadCrumbView.collection.add([ {text:$.t('admin.home'), href:""}, {text:$.t('policy.resource-sets'), href:"manage/#user/policy"}, - {text:$.t('policy.edit-policy'), href:"manage/#user/policy/" + rsid} + {text:$.t('policy.edit-policies'), href:"manage/#user/policy/" + rsid} ]); this.updateSidebar('user/policy'); @@ -1116,7 +1118,7 @@ var AppRouter = Backbone.Router.extend({ policy.isFetched = true; } - var view = new PolicyListView({model: policy, rs: rs}); + var view = new PolicyListView({model: policy, rs: rs, systemScopeList: this.systemScopeList}); view.load(function() { $('#content').html(view.render().el); diff --git a/uma-server-webapp/src/main/webapp/resources/js/policy.js b/uma-server-webapp/src/main/webapp/resources/js/policy.js index 8950413c4..6b61426d3 100644 --- a/uma-server-webapp/src/main/webapp/resources/js/policy.js +++ b/uma-server-webapp/src/main/webapp/resources/js/policy.js @@ -241,17 +241,20 @@ var PolicyListView = Backbone.View.extend({ }, load:function(callback) { - if (this.model.isFetched) { + if (this.model.isFetched && + this.options.systemScopeList.isFetched) { callback(); return; } $('#loadingbox').sheet('show'); $('#loading').html( - '' + $.t('policy.loading-policies') + ' ' + '' + $.t('policy.loading-policies') + ' ' + + '' + $.t("common.scopes") + ' ' ); - $.when(this.model.fetchIfNeeded({success:function(e) {$('#loading-policies').addClass('label-success');}})) + $.when(this.model.fetchIfNeeded({success:function(e) {$('#loading-policies').addClass('label-success');}}), + this.options.systemScopeList.fetchIfNeeded({success:function(e) {$('#loading-scopes').addClass('label-success');}})) .done(function() { $('#loadingbox').sheet('hide'); callback(); @@ -353,7 +356,7 @@ var PolicyListView = Backbone.View.extend({ _.each(this.model.models, function (policy) { - var view = new PolicyView({model: policy}); + var view = new PolicyView({model: policy, systemScopeList: _self.options.systemScopeList}); view.parentView = _self; $('#policy-table', this.el).append(view.render().el); @@ -375,6 +378,11 @@ var PolicyView = Backbone.View.extend({ if (!this.template) { this.template = _.template($('#tmpl-policy').html()); } + + if (!this.scopeTemplate) { + this.scopeTemplate = _.template($('#tmpl-scope-list').html()); + } + }, events:{ @@ -384,17 +392,37 @@ var PolicyView = Backbone.View.extend({ removePolicy:function(e) { e.preventDefault(); - var _self = this; - - this.model.collection.remove(this.model); - _self.$el.fadeTo("fast", 0.00, function () { //fade - $(this).slideUp("fast", function () { //slide up - $(this).remove(); //then remove from the DOM - _self.parentView.togglePlaceholder(); - }); - }); - - + if (confirm($.t('policy.policy-table.policy-confirm'))) { + var _self = this; + this.model.destroy({ + success:function () { + _self.$el.fadeTo("fast", 0.00, function () { //fade + $(this).slideUp("fast", function () { //slide up + $(this).remove(); //then remove from the DOM + _self.parentView.togglePlaceholder(); + }); + }); + }, + error:function (error, response) { + console.log("An error occurred when deleting a client"); + + //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 + }); + } + }); + + _self.parentView.delegateEvents(); + } }, render:function (eventName) { @@ -402,7 +430,9 @@ var PolicyView = Backbone.View.extend({ this.$el.html(this.template(json)); - $(this.el).i18n(); + $('.scope-list', this.el).html(this.scopeTemplate({scopes: this.model.get('scopes'), systemScopes: this.options.systemScopeList})); + + //$(this.el).i18n(); return this; }