From 505367b541ce3e3d26a97d794dc175ee23772192 Mon Sep 17 00:00:00 2001 From: Igor Zhukov Date: Tue, 3 Jun 2014 16:37:58 +0400 Subject: [PATCH] Changelog modal draft --- app/CHANGELOG.md | 25 +++++++++++ app/css/app.css | 5 +++ app/js/controllers.js | 4 +- app/js/services.js | 73 +++++++++++++++++++++++++++++++ app/partials/changelog_modal.html | 29 ++++++++++++ gulpfile.js | 2 +- 6 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 app/CHANGELOG.md create mode 100644 app/partials/changelog_modal.html diff --git a/app/CHANGELOG.md b/app/CHANGELOG.md new file mode 100644 index 00000000..c0bc0fcd --- /dev/null +++ b/app/CHANGELOG.md @@ -0,0 +1,25 @@ +What's new? +=========== + + + + +version 2.0 +----------- + +* Updated settings + + +version 0.1.3, June 3rd, 2014 +----------------------------- + +* Added this welcome message +* Improved messages grouping +* Fixed video modal position bug +* Fixed mobile focus issues + + +version 0.0.1 +------------- + +* some very old stuff \ No newline at end of file diff --git a/app/css/app.css b/app/css/app.css index 4916de8a..7247b51c 100644 --- a/app/css/app.css +++ b/app/css/app.css @@ -3373,3 +3373,8 @@ ce671b orange } } + + +.changelog_new_version { + font-weight: bold; +} \ No newline at end of file diff --git a/app/js/controllers.js b/app/js/controllers.js index ec3df507..94192add 100644 --- a/app/js/controllers.js +++ b/app/js/controllers.js @@ -220,7 +220,7 @@ angular.module('myApp.controllers', []) }; }) - .controller('AppIMController', function ($scope, $location, $routeParams, $modal, $rootScope, $modalStack, MtpApiManager, AppUsersManager, ContactsSelectService, ErrorService) { + .controller('AppIMController', function ($scope, $location, $routeParams, $modal, $rootScope, $modalStack, MtpApiManager, AppUsersManager, ContactsSelectService, ChangelogNotifyService, ErrorService) { $scope.$on('$routeUpdate', updateCurDialog); @@ -289,6 +289,8 @@ angular.module('myApp.controllers', []) peer: $routeParams.p || false }; } + + ChangelogNotifyService.checkUpdate(); }) .controller('AppImDialogsController', function ($scope, $location, MtpApiManager, AppUsersManager, AppChatsManager, AppMessagesManager, AppPeersManager, ErrorService) { diff --git a/app/js/services.js b/app/js/services.js index abd20bca..09deec8c 100644 --- a/app/js/services.js +++ b/app/js/services.js @@ -3397,3 +3397,76 @@ angular.module('myApp.services', []) }, } }) + + +.service('ChangelogNotifyService', function (AppConfigManager, $rootScope, $http, $modal) { + + function versionCompare (ver1, ver2) { + if (typeof ver1 !== 'string') { + ver1 = ''; + } + if (typeof ver2 !== 'string') { + ver2 = ''; + } + // console.log('ss', ver1, ver2); + ver1 = ver1.replace(/^\s+|\s+$/g, '').split('.'); + ver2 = ver2.replace(/^\s+|\s+$/g, '').split('.'); + + var a = Math.max(ver1.length, ver2.length), i; + + for (i = 0; i < a; i++) { + if (ver1[i] == ver2[i]) { + continue; + } + if (ver1[i] > ver2[i]) { + return 1; + } else { + return -1; + } + } + + return 0; + } + + function checkUpdate () { + AppConfigManager.get('last_version').then(function (lastVersion) { + if (lastVersion != Config.App.version) { + $http.get('CHANGELOG.md').then(function (response) { + var changeLogText = response.data; + var matchesStart = changeLogText.match(/^([\s\S]+?\n)(?=version)/i), + changelog = []; + + changeLogText.replace(/(version ([\d\.]+)[\s\S]+?)(?=\nversion|$)/gi, function (whole, versionP, version) { + if (versionCompare(version, lastVersion) > 0) { + var contents = versionP.split(/\n\s*-{3,}\s*\n/); + + changelog.push({ + title: contents[0], + changes: contents[1].split(/\n?\s*\*\s*/g) + }); + } + }); + + if (changelog.length) { + var $scope = $rootScope.$new(); + + $scope.version = Config.App.version; + $scope.changelog = changelog; + + $modal.open({ + templateUrl: 'partials/changelog_modal.html', + scope: $scope, + windowClass: 'error_modal_window' + }); + } + + AppConfigManager.set({last_version: Config.App.version}); + }) + } + }) + } + + return { + checkUpdate: checkUpdate + } +}) diff --git a/app/partials/changelog_modal.html b/app/partials/changelog_modal.html new file mode 100644 index 00000000..6b627c18 --- /dev/null +++ b/app/partials/changelog_modal.html @@ -0,0 +1,29 @@ +
+ + + + + + + +
\ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 6d8fe6e3..39e84c1f 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -41,7 +41,7 @@ gulp.task('copy-images', function() { gulp.task('copy', function() { return es.concat( - gulp.src(['app/favicon.ico', 'app/favicon_unread.ico', 'app/manifest.webapp', 'app/manifest.json', 'app/**/*worker.js']) + gulp.src(['app/favicon.ico', 'app/favicon_unread.ico', 'app/manifest.webapp', 'app/manifest.json', 'app/**/*worker.js', 'CHANGELOG.mdown']) .pipe(gulp.dest('dist')), gulp.src(['app/img/**/*.wav']) .pipe(gulp.dest('dist/img')),