diff --git a/Gruntfile.js b/Gruntfile.js index 0ee35130..410acd6a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -8,7 +8,7 @@ module.exports = function (grunt) { grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-concat'); - grunt.loadNpmTasks('grunt-contrib-watch'); +// grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-less'); grunt.loadNpmTasks('grunt-conventional-changelog'); @@ -22,7 +22,8 @@ module.exports = function (grunt) { grunt.loadNpmTasks('grunt-contrib-compress'); grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-shell'); - grunt.loadNpmTasks('grunt-lesslint') + grunt.loadNpmTasks('grunt-lesslint'); + grunt.loadNpmTasks('grunt-string-replace'); /** * Load in our build configuration file. @@ -708,6 +709,62 @@ module.exports = function (grunt) { }, command: 'phonegap build android' } + }, + + /** + * String Replace functions to update android manifest + */ + 'string-replace': { + versionCode: { // update the version code stored in package.json + options: { + replacements: [ + { + pattern: /['"]androidVersionCode['"]:.*?['"](\d*)['"]/ig, + replacement: function (match, p1, offset, string) { + return '"androidVersionCode": "' + (parseInt(p1) + 1) + '"'; + } + } + ] + }, + files: { + 'package.json': 'package.json' + } + }, + + androidVersionCode: { // update the version code stored in AndroidManifest.xml + options: { + replacements: [ + { + pattern: /android:versionCode=['"](\d*)['"]/ig, + replacement: function (match, p1, offset, string) { + var pkg = grunt.file.readJSON('package.json'); + grunt.log.writeln("pkg.androidVersionCode: " + pkg.androidVersionCode); + grunt.log.writeln('Returning: ' + 'android:versionCode="' + pkg.androidVersionCode + '"'); + return 'android:versionCode="' + pkg.androidVersionCode + '"'; + } + } + ] + }, + files: { + 'cordova/platforms/android/AndroidManifest.xml': 'cordova/platforms/android/AndroidManifest.xml' + } + }, + androidVersionName: { // update the version name stored in AndroidManifest.xml + options: { + replacements: [ + { + pattern: /android:versionName=['"]([0-9.]*)['"]/ig, + replacement: function (match, p1, offset, string) { + var pkg = grunt.file.readJSON('package.json'); + return 'android:versionName="' + pkg.version + '"'; + } + } + ] + }, + files: { + 'cordova/platforms/android/AndroidManifest.xml': 'cordova/platforms/android/AndroidManifest.xml' + } + } } }; @@ -820,14 +877,18 @@ module.exports = function (grunt) { * Phonegap compiler - internal... */ grunt.registerTask('build_cordova', [ - 'copy:cordova_build', 'index:cordova', 'shell:build_android', 'copy:cordova_android' + 'copy:cordova_build', 'index:cordova', + 'string-replace:versionCode', 'string-replace:androidVersionCode', 'string-replace:androidVersionName', + 'shell:build_android', 'copy:cordova_android' ]); /** * Phonegap compiler - internal... */ grunt.registerTask('compile_cordova', [ - 'copy:cordova_build', 'index:cordova', 'shell:build_android', 'copy:cordova_android' + 'copy:cordova_build', 'index:cordova', + 'string-replace:versionCode', 'string-replace:androidVersionCode', 'string-replace:androidVersionName', + 'shell:build_android', 'copy:cordova_android' ]); /** diff --git a/package.json b/package.json index 613bc538..ef7d3a0f 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "author": "Chris Jackson", "name": "HABmin2", "version": "0.1.6", + "androidVersionCode": "2", "homepage": "https://github.com/cdjackson/HABmin2", "licenses": { "type": "GPL", @@ -39,6 +40,7 @@ "grunt-contrib-cssmin": "~0.11.0", "grunt-shell": "~1.1.1", "karma-chrome-launcher": "~0.1.8", - "grunt-lesslint": "~1.1.14" + "grunt-lesslint": "~1.1.14", + "grunt-string-replace": "~1.2.1" } } diff --git a/src/app/user/userConfig.js b/src/app/user/userConfig.js index 0be06d6b..864b9d42 100644 --- a/src/app/user/userConfig.js +++ b/src/app/user/userConfig.js @@ -45,8 +45,10 @@ angular.module('User.Config', [ function ($scope, $q, locale, growl, $timeout, $window, $http, $interval, UserService, PersistenceServiceModel, localeSupported) { $scope.panelDisplayed = 'GENERAL'; - $scope.model = {currentLanguage: UserService.getLanguage(), - currentPersistence: UserService.getPersistence() + $scope.model = { + currentLanguage: UserService.getLanguage(), + currentPersistence: UserService.getPersistence(), + serverAddress: UserService.getServer() }; $scope.languages = []; var languageOk = false; @@ -89,6 +91,8 @@ angular.module('User.Config', [ $scope.saveConfig = function () { UserService.setLanguage($scope.model.currentLanguage); UserService.setPersistence($scope.model.currentPersistence.name); + UserService.setServer($scope.model.serverAddress); + $scope.userConfigForm.$setPristine(); }; diff --git a/src/app/user/userConfig.tpl.html b/src/app/user/userConfig.tpl.html index 1d1ccd52..59c3be45 100644 --- a/src/app/user/userConfig.tpl.html +++ b/src/app/user/userConfig.tpl.html @@ -23,8 +23,8 @@
- @@ -32,9 +32,8 @@
- + -
-
- + -
+
+ + +
+ + + + +
+
+
+ + +
diff --git a/src/languages/en-GB/habmin.lang.json b/src/languages/en-GB/habmin.lang.json index 92764d5e..3cfdc867 100644 --- a/src/languages/en-GB/habmin.lang.json +++ b/src/languages/en-GB/habmin.lang.json @@ -30,7 +30,7 @@ "Sitemaps": "Sitemaps", "StatusOffline": "The server is offline!", "StatusOnline": "The server is online.", - "Things": "Thing Configuration", + "Things": "Things", "Tools": "Tools", "UserPreferences": "My Preferences", "Users": "Users", diff --git a/src/languages/en-GB/services.lang.json b/src/languages/en-GB/services.lang.json index 5752652a..8bad7e41 100644 --- a/src/languages/en-GB/services.lang.json +++ b/src/languages/en-GB/services.lang.json @@ -1,4 +1,3 @@ { - "ErrorGettingServices": "Error getting service list", - "Services": "Services" + "ErrorGettingServices": "Error getting service list" } diff --git a/src/languages/en-GB/user.lang.json b/src/languages/en-GB/user.lang.json index 72a9cfa9..e227d583 100644 --- a/src/languages/en-GB/user.lang.json +++ b/src/languages/en-GB/user.lang.json @@ -8,6 +8,8 @@ "Language": "Language", "LanguageSelect": "Select your language...", "Name": "Name", + "ServerAddress": "Address", + "ServerPrefTitle": "Server Settings", "Theme": "Theme", "ThemeSelect": "Select your theme..." }