summaryrefslogtreecommitdiff
path: root/www/js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js')
-rw-r--r--www/js/DataModel.js45
-rw-r--r--www/js/DevOptionsCtrl.js2
-rw-r--r--www/js/FirstUseCtrl.js39
-rw-r--r--www/js/MenuController.js51
-rw-r--r--www/js/app.js27
5 files changed, 148 insertions, 16 deletions
diff --git a/www/js/DataModel.js b/www/js/DataModel.js
index be96cb5f..c3c5be36 100644
--- a/www/js/DataModel.js
+++ b/www/js/DataModel.js
@@ -2,7 +2,7 @@
/* jslint browser: true*/
-/* global cordova,StatusBar,angular,console, URI */
+/* global cordova,StatusBar,angular,console, URI, moment*/
// This is my central data respository and common functions
// that many other controllers use
@@ -11,11 +11,11 @@
angular.module('zmApp.controllers')
.service('ZMDataModel',
-['$http', '$q', '$ionicLoading', '$ionicBackdrop', '$fileLogger', 'zm','$rootScope','$ionicContentBanner', '$timeout','$cordovaPinDialog', '$ionicPopup', '$localstorage', '$state', '$ionicNativeTransitions',
+['$http', '$q', '$ionicLoading', '$ionicBackdrop', '$fileLogger', 'zm','$rootScope','$ionicContentBanner', '$timeout','$cordovaPinDialog', '$ionicPopup', '$localstorage', '$state', '$ionicNativeTransitions', '$translate',
function
($http, $q, $ionicLoading, $ionicBackdrop,$fileLogger,
zm, $rootScope,$ionicContentBanner, $timeout, $cordovaPinDialog,
- $ionicPopup, $localstorage, $state, $ionicNativeTransitions) {
+ $ionicPopup, $localstorage, $state, $ionicNativeTransitions, $translate) {
var zmAppVersion="unknown";
var isBackground = false;
@@ -26,6 +26,12 @@ angular.module('zmApp.controllers')
var multiservers = [];
var oldevents = [];
+ var languages = [
+ {text:'English', value:'en'},
+ {text:'Italian', value:'it'},
+ {text: 'German', value: 'de'},
+ ];
+
var serverGroupList={};
var loginData = {
@@ -79,6 +85,7 @@ angular.module('zmApp.controllers')
'packerySizes':'',
'timelineModalGraphType':'all',
'resumeDelay':300,
+ 'language':'en'
@@ -423,6 +430,12 @@ angular.module('zmApp.controllers')
loginData.useNphZms = true;
}
+ if (typeof loginData.useNphZms == 'undefined')
+ {
+ zmDebug ("useNphZms does not exist. Setting to true");
+ loginData.useNphZms = true;
+ }
+
// and now, force enable it
loginData.useNphZms = true;
@@ -574,6 +587,32 @@ angular.module('zmApp.controllers')
}
},
+
+ getLanguages: function() {
+ return languages;
+ },
+
+ setDefaultLanguage: function(l, permanent) {
+
+ if (permanent)
+ window.localStorage.setItem("defaultLang", l);
+
+ $translate.use(l).then(function(data) {
+ zmLog("Device Language is:" + data);
+ moment.locale(data);
+ $translate.fallbackLanguage('en');
+ }, function(error) {
+ zmLog("Device Language error: " + error);
+ $translate.use('en');
+ moment.locale('en');
+ });
+ },
+
+ getDefaultLanguage: function() {
+ return window.localStorage.getItem("defaultLang");
+
+ },
+
getLogin: function () {
diff --git a/www/js/DevOptionsCtrl.js b/www/js/DevOptionsCtrl.js
index ecaf9b69..d114f4de 100644
--- a/www/js/DevOptionsCtrl.js
+++ b/www/js/DevOptionsCtrl.js
@@ -2,7 +2,7 @@
/* jslint browser: true*/
/* global cordova,StatusBar,angular,console */
-angular.module('zmApp.controllers').controller('zmApp.DevOptionsCtrl', ['$scope', '$rootScope', '$ionicModal', 'zm', 'ZMDataModel', '$ionicSideMenuDelegate', '$ionicPopup', '$http', '$q', '$ionicLoading', '$ionicHistory','$state', 'SecuredPopups', 'translate', function ($scope, $rootScope, $ionicModal, zm, ZMDataModel, $ionicSideMenuDelegate, $ionicPopup, $http, $q, $ionicLoading, $ionicHistory, $state, SecuredPopups, $translate) {
+angular.module('zmApp.controllers').controller('zmApp.DevOptionsCtrl', ['$scope', '$rootScope', '$ionicModal', 'zm', 'ZMDataModel', '$ionicSideMenuDelegate', '$ionicPopup', '$http', '$q', '$ionicLoading', '$ionicHistory','$state', 'SecuredPopups', '$translate', function ($scope, $rootScope, $ionicModal, zm, ZMDataModel, $ionicSideMenuDelegate, $ionicPopup, $http, $q, $ionicLoading, $ionicHistory, $state, SecuredPopups, $translate) {
$scope.openMenu = function () {
diff --git a/www/js/FirstUseCtrl.js b/www/js/FirstUseCtrl.js
index 2e0d5c85..b9031309 100644
--- a/www/js/FirstUseCtrl.js
+++ b/www/js/FirstUseCtrl.js
@@ -2,7 +2,7 @@
/* jslint browser: true*/
/* global cordova,StatusBar,angular,console */
-angular.module('zmApp.controllers').controller('zmApp.FirstUseCtrl', ['$scope','$ionicSideMenuDelegate', 'zm', '$stateParams', '$ionicHistory','$state', function ($scope,$ionicSideMenuDelegate,zm, $stateParams, $ionicHistory, $state) {
+angular.module('zmApp.controllers').controller('zmApp.FirstUseCtrl', ['$scope','$ionicSideMenuDelegate', 'zm', '$stateParams', '$ionicHistory','$state', 'ZMDataModel', '$rootScope', '$ionicPopup', '$translate', function ($scope,$ionicSideMenuDelegate,zm, $stateParams, $ionicHistory, $state, ZMDataModel, $rootScope, $ionicPopup, $translate) {
$scope.openMenu = function () {
$ionicSideMenuDelegate.toggleLeft();
};
@@ -19,6 +19,43 @@ $scope.openMenu = function () {
});
+ $scope.switchLang = function()
+ {
+ $scope.lang = ZMDataModel.getLanguages();
+ $scope.myopt = {lang:""};
+
+ $rootScope.zmPopup = $ionicPopup.show({
+ scope: $scope,
+ template: '<ion-radio-fix ng-repeat="item in lang" ng-value="item.value" ng-model="myopt.lang"> {{item.text}} </ion-radio-fix>',
+
+
+ title: $translate.instant('kSelectLanguage'),
+
+ buttons: [
+ {
+ text: $translate.instant('kButtonCancel'),
+ onTap: function (e) {
+ //return "CANCEL";
+ }
+
+ },
+ {
+ text: $translate.instant('kButtonOk'),
+ onTap: function (e) {
+ ZMDataModel.zmLog("Language selected:"+$scope.myopt.lang);
+ ZMDataModel.setDefaultLanguage($scope.myopt.lang, true);
+
+
+ //return "OK";
+
+ }
+ }
+ ]
+ });
+
+
+ };
+
$scope.goToLogin = function()
{
$ionicHistory.nextViewOptions({
diff --git a/www/js/MenuController.js b/www/js/MenuController.js
new file mode 100644
index 00000000..d0dd56fa
--- /dev/null
+++ b/www/js/MenuController.js
@@ -0,0 +1,51 @@
+/* jshint -W041 */
+/* jslint browser: true*/
+/* global cordova,StatusBar,angular,console */
+
+angular.module('zmApp.controllers').controller('MenuController', ['$scope','$ionicSideMenuDelegate', 'zm', '$stateParams', '$ionicHistory','$state', 'ZMDataModel', '$rootScope', '$ionicPopup', '$translate', function ($scope,$ionicSideMenuDelegate,zm, $stateParams, $ionicHistory, $state, ZMDataModel, $rootScope, $ionicPopup, $translate) {
+$scope.openMenu = function () {
+ $ionicSideMenuDelegate.toggleLeft();
+ };
+
+
+
+
+
+ $scope.switchLang = function()
+ {
+ $scope.lang = ZMDataModel.getLanguages();
+ $scope.myopt = {lang:""};
+
+ $rootScope.zmPopup = $ionicPopup.show({
+ scope: $scope,
+ template: '<ion-radio-fix ng-repeat="item in lang" ng-value="item.value" ng-model="myopt.lang"> {{item.text}} </ion-radio-fix>',
+
+
+ title: $translate.instant('kSelectLanguage'),
+
+ buttons: [
+ {
+ text: $translate.instant('kButtonCancel'),
+ onTap: function (e) {
+ //return "CANCEL";
+ }
+
+ },
+ {
+ text: $translate.instant('kButtonOk'),
+ onTap: function (e) {
+ ZMDataModel.zmLog("Language selected:"+$scope.myopt.lang);
+ ZMDataModel.setDefaultLanguage($scope.myopt.lang, true);
+
+ //return "OK";
+
+ }
+ }
+ ]
+ });
+
+
+ };
+
+
+}]);
diff --git a/www/js/app.js b/www/js/app.js
index e13bc233..71015c7d 100644
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -1186,17 +1186,22 @@ angular.module('zmApp', [
$ionicNativeTransitions.enable(true, false);
-
-
- if(typeof navigator.globalization !== "undefined") {
- navigator.globalization.getPreferredLanguage(function(language) {
- $translate.use((language.value).split("-")[0]).then(function(data) {
- ZMDataModel.zmLog("Device Language is:" + data);
- moment.locale(data);
- }, function(error) {
- ZMDataModel.zmLog("Device Language error: " + error);
- });
- }, null);
+ var lang = ZMDataModel.getDefaultLanguage();
+ if (lang == undefined)
+ {
+ ZMDataModel.zmLog ("No language set, detecting...");
+ if(typeof navigator.globalization !== "undefined") {
+ navigator.globalization.getPreferredLanguage(function(language) {
+ // dont make this permanent
+ ZMDataModel.setDefaultLanguage((language.value).split("-")[0], false);
+
+ }, null);
+ }
+ }
+ else
+ {
+ ZMDataModel.zmLog ("Language stored as:"+lang);
+ ZMDataModel.setDefaultLanguage(lang, false);
}
ZMDataModel.zmLog(">>>>Language to be used:" + $translate.proposedLanguage());