Mercurial > lada > lada-client
diff app.js @ 673:39dd18124ebd
Merged branch openid back to default.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Thu, 19 Mar 2015 14:31:07 +0100 |
parents | 67963fcb7739 8756f7e423fb |
children | 60a3e9809ea4 |
line wrap: on
line diff
--- a/app.js Thu Mar 19 10:07:39 2015 +0100 +++ b/app.js Thu Mar 19 14:31:07 2015 +0100 @@ -23,6 +23,7 @@ // found on https://github.com/elmasse/Ext.i18n.Bundle requires: [ 'Lada.override.Table', + 'Lada.override.RestProxy', 'Lada.override.RowEditor', 'Ext.i18n.Bundle', 'Ext.layout.container.Column', @@ -49,10 +50,59 @@ // Setting this variable to true triggers loading the Viewport.js // file which sets ob the viewport. - autoCreateViewport: true, + //autoCreateViewport: true, // Start the application. launch: function() { + var queryString = document.location.href.split('?')[1]; + if (queryString) { + Lada.openIDParams = queryString; + } + Ext.Ajax.request({ + url: 'lada-server/login?return_to=' + window.location.href, + method: 'GET', + headers: { + 'X-OPENID-PARAMS': Lada.openIDParams + }, + scope: this, + success: this.onLoginSuccess, + failure: this.onLoginFailure + }); + }, + + onLoginFailure: function(response) { + try { + var json = Ext.decode(response.responseText); + if (json) { + if (json.message === '699') { + /* This is the unauthorized message with the authentication + * redirect in the data */ + var authUrl = json.data; + location.href = authUrl; + return; + } + if (json.message === '698') { + /* This is general authentication error */ + Ext.MessageBox.alert('Kommunikation mit dem Login Server fehlgeschlagen', + json.data); + return; + } + } + } + catch (e) { + // This is likely a 404 or some unknown error. Show general error then. + } + Ext.MessageBox.alert('Kommunikation mit dem Lada Server fehlgeschlagen', + 'Es konnte keine erfolgreiche Verbindung zum lada server aufgebaut werden.'); + }, + + onLoginSuccess: function() { + /* Strip out the openid query params to look nicers. */ + window.history.pushState(this.name, this.name, window.location.pathname); + + Ext.create('Lada.view.Viewport'); + + /* Todo maybe parse username and such from login service response */ Ext.create('Lada.store.Datenbasis', { storeId: 'datenbasis' });