diff --git a/openid-connect-server-webapp/src/main/webapp/resources/js/admin.js b/openid-connect-server-webapp/src/main/webapp/resources/js/admin.js index 5d6204d80..5d65cd550 100644 --- a/openid-connect-server-webapp/src/main/webapp/resources/js/admin.js +++ b/openid-connect-server-webapp/src/main/webapp/resources/js/admin.js @@ -1013,6 +1013,47 @@ var AppRouter = Backbone.Router.extend({ // this gets init after the templates load var app = null; +var apiErrorHandler = function(msg) { + return function(model, response, options) { + if (msg.log) { + console.log(msg.log); + } + + var header = ""; + var message = ""; + + message += $.t('error.message'); + + if (response.responseJSON) { + header += response.responseJSON.error; + message += response.responseJSON.error_description; + } + + if (msg.message) { + message += $.t(options.message); + } + + if (response.status == 401) { + // unauthorized means the session probably timed out, prompt the user to reload the page + message += $('#tmpl-page-reload').html(); + } + + $('#modalAlert').i18n(); + $('#modalAlert div.modal-header').html(header); + $('#modalAlert .modal-body').html(message); + + $('#modalAlert .modal-body .page-reload').on('click', function(event) { + event.preventDefault(); + window.location.reload(true); + }); + + $('#modalAlert').modal({ + 'backdrop': 'static', + 'keyboard': true, + 'show': true + }); + }; +}; // main $(function () { diff --git a/openid-connect-server-webapp/src/main/webapp/resources/js/client.js b/openid-connect-server-webapp/src/main/webapp/resources/js/client.js index e94347857..12cf13c31 100644 --- a/openid-connect-server-webapp/src/main/webapp/resources/js/client.js +++ b/openid-connect-server-webapp/src/main/webapp/resources/js/client.js @@ -1061,22 +1061,7 @@ var ClientFormView = Backbone.View.extend({ app.clientList.add(_self.model); app.navigate('admin/clients', {trigger:true}); }, - error:function (error, response) { - console.log("An error occurred when saving 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 - }); - } + error:apiErrorHandler({log: "An error occurred when saving a client"}) }); return false; diff --git a/openid-connect-server-webapp/src/main/webapp/resources/template/admin.html b/openid-connect-server-webapp/src/main/webapp/resources/template/admin.html index 5e05a2633..94684ffe2 100644 --- a/openid-connect-server-webapp/src/main/webapp/resources/template/admin.html +++ b/openid-connect-server-webapp/src/main/webapp/resources/template/admin.html @@ -110,3 +110,13 @@