TT#7600 Fix ngcp-csc breaking localStorage errors

Upon inital load of app (with no previous localStorage stored), app
can not load due to missing languageSelected value. Fix this by
checking for and setting the localStorage value earlier in the load
sequence, inside a new initiLocalStorage.js file that is loaded
before main app.js file.  Also move conflicting html objects to
renderers to prevent native JS methods from being operated on them
before they are defined.

Change-Id: I36766685e55dc69af3b7917ddedd5df10718d907
changes/64/10064/6
Robert Axelsen 9 years ago
parent 11ab57629d
commit 57a8028c71

@ -15,4 +15,5 @@ Ext.application({
requires: [ requires: [
'NgcpCsc.*' 'NgcpCsc.*'
] ]
}); });

@ -187,6 +187,9 @@
* *
*/ */
"js": [{ "js": [{
"path": "initLocalStorage.js",
"bundle": true
},{
"path": "app.js", "path": "app.js",
"bundle": true "bundle": true
}], }],

@ -29,13 +29,13 @@ Ext.define('NgcpCsc.view.login.Login', {
items: [{ items: [{
id: 'title', id: 'title',
panel: 'label', panel: 'label',
title: Ngcp.csc.locales.login.title[localStorage.getItem('languageSelected') || 'en'] title: Ngcp.csc.locales.login.title[localStorage.getItem('languageSelected')]
}, { }, {
xtype: 'textfield', xtype: 'textfield',
name: 'username', name: 'username',
id: 'login-username', id: 'login-username',
cls: 'auth-textbox', cls: 'auth-textbox',
emptyText: Ngcp.csc.locales.common.username[localStorage.getItem('languageSelected') || 'en'], emptyText: Ngcp.csc.locales.common.username[localStorage.getItem('languageSelected')],
padding: '10 0 0 15', padding: '10 0 0 15',
minLength: 1, minLength: 1,
listeners: { listeners: {
@ -55,7 +55,7 @@ Ext.define('NgcpCsc.view.login.Login', {
cls: 'auth-textbox', cls: 'auth-textbox',
inputType: 'password', inputType: 'password',
minLength: 1, minLength: 1,
emptyText: Ngcp.csc.locales.common.password[localStorage.getItem('languageSelected') || 'en'], emptyText: Ngcp.csc.locales.common.password[localStorage.getItem('languageSelected')],
padding: '0 0 0 15', padding: '0 0 0 15',
listeners: { listeners: {
specialKey: 'onPressEnter', specialKey: 'onPressEnter',
@ -69,7 +69,7 @@ Ext.define('NgcpCsc.view.login.Login', {
} }
}, { }, {
xtype: 'combo', xtype: 'combo',
emptyText: Ngcp.csc.locales.login.choose_language[localStorage.getItem('languageSelected') || 'en'], emptyText: Ngcp.csc.locales.login.choose_language[localStorage.getItem('languageSelected')],
padding: '0 0 0 15', padding: '0 0 0 15',
store: 'Languages', store: 'Languages',
queryMode: 'local', queryMode: 'local',
@ -77,7 +77,7 @@ Ext.define('NgcpCsc.view.login.Login', {
valueField: 'id', valueField: 'id',
displayField: 'language', displayField: 'language',
editable: false, editable: false,
value: localStorage.getItem('languageSelected') || 'en', value: localStorage.getItem('languageSelected'),
listeners: { listeners: {
'select': 'languageSelection' 'select': 'languageSelection'
} }
@ -101,7 +101,7 @@ Ext.define('NgcpCsc.view.login.Login', {
html: '<a href="#" class="link-forgot-password"> ' + Ngcp.csc.locales.login.forgot_password[localStorage.getItem('languageSelected')] + '</a>' html: '<a href="#" class="link-forgot-password"> ' + Ngcp.csc.locales.login.forgot_password[localStorage.getItem('languageSelected')] + '</a>'
}] }]
}, { }, {
text: Ngcp.csc.locales.login.button_text[localStorage.getItem('languageSelected') || 'en'], text: Ngcp.csc.locales.login.button_text[localStorage.getItem('languageSelected')],
id: 'login-button', id: 'login-button',
xtype: 'button', xtype: 'button',
width: '100%', width: '100%',
@ -117,4 +117,5 @@ Ext.define('NgcpCsc.view.login.Login', {
} }
] ]
} }
}); });

@ -19,8 +19,8 @@ Ext.define('NgcpCsc.view.login.LoginController', {
languageSelection: function(cmp, rec) { languageSelection: function(cmp, rec) {
var selectedLang = rec.get('id'); var selectedLang = rec.get('id');
this.getView().down('#title').setTitle(Ngcp.csc.locales.login.title[selectedLang]); this.getView().down('#title').setTitle(Ngcp.csc.locales.login.title[selectedLang]);
this.getView().down('#login-username').setEmptyText(Ngcp.csc.locales.login.username[selectedLang]); this.getView().down('#login-username').setEmptyText(Ngcp.csc.locales.common.username[selectedLang]);
this.getView().down('#login-password').setEmptyText(Ngcp.csc.locales.login.password[selectedLang]); this.getView().down('#login-password').setEmptyText(Ngcp.csc.locales.common.password[selectedLang]);
this.getView().down('#login-language').setEmptyText(Ngcp.csc.locales.login.choose_language[selectedLang]); this.getView().down('#login-language').setEmptyText(Ngcp.csc.locales.login.choose_language[selectedLang]);
this.getView().down('#login-button').setText(Ngcp.csc.locales.login.button_text[selectedLang]); this.getView().down('#login-button').setText(Ngcp.csc.locales.login.button_text[selectedLang]);
localStorage.setItem('languageSelected', selectedLang); localStorage.setItem('languageSelected', selectedLang);

@ -12,6 +12,7 @@ Ext.define('NgcpCsc.view.login.LoginModel', {
defaultCredentials: ['administrator', 'restricted', 'host'], defaultCredentials: ['administrator', 'restricted', 'host'],
remember_me: false remember_me: false
}, },
formulas: { formulas: {
authValid: function(get) { authValid: function(get) {
return (get('username') == get('password') && return (get('username') == get('password') &&
@ -19,4 +20,5 @@ Ext.define('NgcpCsc.view.login.LoginModel', {
get('defaultCredentials').indexOf(get('password')) > -1); get('defaultCredentials').indexOf(get('password')) > -1);
} }
} }
}); });

@ -48,6 +48,10 @@ Ext.define('NgcpCsc.view.pages.addressbook.AddressbookController', {
return '<div class="fa fa-arrow-circle-down"></div>'; return '<div class="fa fa-arrow-circle-down"></div>';
}, },
renderCompanyGroupText: function(value, metaData) {
return Ngcp.csc.locales.addressbook.company[localStorage.getItem('languageSelected')].toLowerCase();
},
removeContact: function(grid, rowIndex, colIndex) { removeContact: function(grid, rowIndex, colIndex) {
var store = grid.getStore(); var store = grid.getStore();
var rec = grid.getStore().getAt(rowIndex); var rec = grid.getStore().getAt(rowIndex);

@ -45,7 +45,7 @@ Ext.define('NgcpCsc.view.pages.addressbook.AddressbookGrid', {
xtype: 'container', xtype: 'container',
id: 'group-company', id: 'group-company',
padding: '0 10 0 0', padding: '0 10 0 0',
html: Ngcp.csc.locales.addressbook.company[localStorage.getItem('languageSelected')].toLowerCase(), renderer: 'renderCompanyGroupText',
cls: 'link no-underline', cls: 'link no-underline',
listeners: { listeners: {
click: { click: {

@ -28,6 +28,10 @@ Ext.define('NgcpCsc.view.pages.callbarring.CallBarringController', {
this.fireEvent('showmessage', true, Ngcp.csc.locales.common.remove_success[localStorage.getItem('languageSelected')]); this.fireEvent('showmessage', true, Ngcp.csc.locales.common.remove_success[localStorage.getItem('languageSelected')]);
}, },
renderDeleteIconTooltip: function(value, metaData) {
return Ngcp.csc.locales.common.delete[localStorage.getItem('languageSelected')].toUpperCase();
},
toggleEnabled: function(grid, rowIndex, colIndex, item, event, record, row) { toggleEnabled: function(grid, rowIndex, colIndex, item, event, record, row) {
record.set('enabled', !record.get('enabled')); record.set('enabled', !record.get('enabled'));
this.fireEvent('showmessage', true, Ngcp.csc.locales.callbarring.enabled_success[localStorage.getItem('languageSelected')]); this.fireEvent('showmessage', true, Ngcp.csc.locales.callbarring.enabled_success[localStorage.getItem('languageSelected')]);

@ -40,7 +40,9 @@ Ext.define('NgcpCsc.view.pages.callbarring.CallBarringIncomingGrid', {
align: 'right', align: 'right',
items: [{ items: [{
glyph: 'xf00d@FontAwesome', glyph: 'xf00d@FontAwesome',
tooltip: Ngcp.csc.locales.common.delete[localStorage.getItem('languageSelected')].toUpperCase(), tooltip: {
renderer: 'renderDeleteIconTooltip'
},
handler: 'removeBarrNumber' handler: 'removeBarrNumber'
}] }]
}] }]

@ -40,7 +40,9 @@ Ext.define('NgcpCsc.view.pages.callbarring.CallBarringOutgoingGrid', {
align: 'right', align: 'right',
items: [{ items: [{
glyph: 'xf00d@FontAwesome', glyph: 'xf00d@FontAwesome',
tooltip: Ngcp.csc.locales.common.delete[localStorage.getItem('languageSelected')].toUpperCase(), tooltip: {
renderer: 'renderDeleteIconTooltip'
},
handler: 'removeBarrNumber' handler: 'removeBarrNumber'
}] }]
}] }]

@ -0,0 +1,3 @@
if (!localStorage.getItem('languageSelected')) {
localStorage.setItem('languageSelected', 'en');
};
Loading…
Cancel
Save