Skip to content

Commit 93be6b5

Browse files
committed
switched to using templates instead of inline code
1 parent efc1c3c commit 93be6b5

File tree

4 files changed

+88
-46
lines changed

4 files changed

+88
-46
lines changed

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

Lines changed: 48 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,50 @@ var UserProfileView = Backbone.View.extend({
366366
}
367367
});
368368

369+
// error handler
370+
var ErrorHandlerView = Backbone.View.extend({
371+
372+
initialize:function(options) {
373+
this.options = options;
374+
if (!this.template) {
375+
this.template = _.template($('#tmpl-error-box').html());
376+
}
377+
if (!this.headerTemplate) {
378+
this.headerTemplate = _.template($('#tmpl-error-header').html());
379+
}
380+
},
381+
382+
reloadPage:function(event) {
383+
event.preventDefault();
384+
window.location.reload(true);
385+
},
386+
387+
handleError:function(message) {
388+
389+
if (message.log) {
390+
console.log(message.log);
391+
}
392+
393+
var _self = this;
394+
395+
return function(model, response, options) {
396+
397+
$('#modalAlert').i18n();
398+
$('#modalAlert div.modal-header').html(_self.headerTemplate({message: message, model: model, response: response, options: options}));
399+
$('#modalAlert .modal-body').html(_self.template({message: message, model: model, response: response, options: options}));
400+
401+
$('#modalAlert .modal-body .page-reload').on('click', _self.reloadPage);
402+
403+
$('#modalAlert').modal({
404+
'backdrop': 'static',
405+
'keyboard': true,
406+
'show': true
407+
});
408+
}
409+
}
410+
});
411+
412+
369413
// Router
370414
var AppRouter = Backbone.Router.extend({
371415

@@ -424,6 +468,8 @@ var AppRouter = Backbone.Router.extend({
424468
});
425469

426470
this.breadCrumbView.render();
471+
472+
this.errorHandlerView = new ErrorHandlerView();
427473

428474
var base = $('base').attr('href');
429475
$.getJSON(base + '.well-known/openid-configuration', function(data) {
@@ -1013,47 +1059,6 @@ var AppRouter = Backbone.Router.extend({
10131059
// this gets init after the templates load
10141060
var app = null;
10151061

1016-
var apiErrorHandler = function(msg) {
1017-
return function(model, response, options) {
1018-
if (msg.log) {
1019-
console.log(msg.log);
1020-
}
1021-
1022-
var header = "";
1023-
var message = "";
1024-
1025-
message += $.t('error.message');
1026-
1027-
if (response.responseJSON) {
1028-
header += response.responseJSON.error;
1029-
message += response.responseJSON.error_description;
1030-
}
1031-
1032-
if (msg.message) {
1033-
message += $.t(options.message);
1034-
}
1035-
1036-
if (response.status == 401) {
1037-
// unauthorized means the session probably timed out, prompt the user to reload the page
1038-
message += $('#tmpl-page-reload').html();
1039-
}
1040-
1041-
$('#modalAlert').i18n();
1042-
$('#modalAlert div.modal-header').html(header);
1043-
$('#modalAlert .modal-body').html(message);
1044-
1045-
$('#modalAlert .modal-body .page-reload').on('click', function(event) {
1046-
event.preventDefault();
1047-
window.location.reload(true);
1048-
});
1049-
1050-
$('#modalAlert').modal({
1051-
'backdrop': 'static',
1052-
'keyboard': true,
1053-
'show': true
1054-
});
1055-
};
1056-
};
10571062
// main
10581063
$(function () {
10591064

@@ -1089,9 +1094,10 @@ $(function () {
10891094
});
10901095

10911096
window.onerror = function ( message, filename, lineno, colno, error ){
1097+
console.log(message);
10921098
//Display an alert with an error message
10931099
$('#modalAlert div.modal-header').html($.t('error.title'));
1094-
$('#modalAlert div.modal-body').html($.t('error.message') + ' <br /> ' [filename, lineno, colno, error]);
1100+
$('#modalAlert div.modal-body').html($.t('error.message') + message + ' <br /> ' + [filename, lineno, colno, error]);
10951101

10961102
$("#modalAlert").modal({ // wire up the actual modal functionality and show the dialog
10971103
"backdrop" : "static",

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1061,7 +1061,7 @@ var ClientFormView = Backbone.View.extend({
10611061
app.clientList.add(_self.model);
10621062
app.navigate('admin/clients', {trigger:true});
10631063
},
1064-
error:apiErrorHandler({log: "An error occurred when saving a client"})
1064+
error:app.errorHandlerView.handleError({log: "An error occurred when saving a client"})
10651065
});
10661066

10671067
return false;

openid-connect-server-webapp/src/main/webapp/resources/js/locale/en/messages.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -468,8 +468,9 @@
468468
},
469469
"error": {
470470
"title": "Error",
471-
"header": "Error:",
472-
"message": "There was an error processing your request. The server''s message was:"
471+
"header": "Error",
472+
"header-with-message": "Error: ",
473+
"message": "There was an error in the application: "
473474
},
474475
"login": {
475476
"login_with_username_and_password": "Login with Username and Password",

openid-connect-server-webapp/src/main/webapp/resources/template/admin.html

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,46 @@
112112
</script>
113113

114114
<!-- error box -->
115-
<script type="text/html" id="tmpl-page-reload">
116115

116+
<script type="text/html" id="tmpl-error-box">
117+
118+
<p>
119+
<span data-i18n="error.message">There was an error processing your request.</span>
120+
121+
<% if (response.responseJSON) { %>
122+
<span data-i18n="error.server-message">The server said: </span><span class="text-error"><%- response.responseJSON.error_description %></span>
123+
<% } %>
124+
125+
</p>
126+
127+
<p>
128+
129+
<% if (message.message) { %>
130+
<span class="text-info"><%- message.message %></span>
131+
<% } %>
132+
133+
</p>
134+
135+
<% if (response.status == 401) { %>
117136
<p>
118137
<span data-i18n="error.reload">It looks like you're not logged in. Reload the page to try again.</span>
119138
<button class="btn btn-primary page-reload"><i class="icon-refresh icon-white"></i> <span data-i18n="error.reload-button">Reload</span></button>
120139
</p>
140+
<% } %>
141+
142+
</script>
143+
144+
<script type="text/html" id="tmpl-error-header">
145+
146+
<span class="label label-inverse"><%- response.status %>: <%- response.statusText %></span>
147+
148+
<b>
149+
<% if (response.responseJSON) { %>
150+
<span data-i18n="error.header-with-message">Error: </span><%- response.responseJSON.error %>
151+
<% } else { %>
152+
<span data-i18n="error.header">Error</span>
153+
<% } %>
154+
</b>
155+
121156

122157
</script>

0 commit comments

Comments
 (0)