mirror of https://github.com/BTCPrivate/copay.git
new version available
This commit is contained in:
parent
aab77c8fae
commit
5666649a2d
|
@ -134,6 +134,10 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="release size-12" ng-show="newRelease && !index.isSearching" ng-click="$root.openExternalLink('https://github.com/bitpay/copay/releases/latest')">
|
||||
<span>{{newRelease}}</span><i class="icon-arrow-right3 right size-18"></i>
|
||||
</div>
|
||||
|
||||
<div class="oh pr" ng-if="index.txps[0]" ng-show="!index.isSearching">
|
||||
<h4 ng-show="index.requiresMultipleSignatures" class="title m0" translate>Payment Proposals</h4>
|
||||
<h4 ng-show="!index.requiresMultipleSignatures" class="title m0" translate>Unsent transactions</h4>
|
||||
|
|
|
@ -596,6 +596,26 @@ ul.manage li {
|
|||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
.release {
|
||||
cursor: pointer;
|
||||
cursor: hand;
|
||||
background-color: #E9E9EC;
|
||||
margin-top: -30px;
|
||||
margin-bottom: 5px;
|
||||
padding-top: 30px;
|
||||
padding-bottom: 20px;
|
||||
text-align: center;
|
||||
text-color: #444;
|
||||
}
|
||||
|
||||
.release span {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.release i {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 {
|
||||
line-height: 2.7rem;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, bwcService, lodash, go, profileService, configService, isCordova, rateService, storageService, addressService, gettext, gettextCatalog, amMoment, nodeWebkit, addonManager, isChromeApp, bwsError, txFormatService, uxLanguage, $state, glideraService, isMobile, addressbookService) {
|
||||
angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, latestReleaseService, bwcService, pushNotificationsService, lodash, go, profileService, configService, isCordova, rateService, storageService, addressService, gettext, gettextCatalog, amMoment, nodeWebkit, addonManager, isChromeApp, bwsError, txFormatService, uxLanguage, $state, glideraService, isMobile, addressbookService) {
|
||||
var self = this;
|
||||
var SOFT_CONFIRMATION_LIMIT = 12;
|
||||
var errors = bwcService.getErrors();
|
||||
|
@ -46,6 +46,18 @@ angular.module('copayApp.controllers').controller('indexController', function($r
|
|||
ret.tab = 'walletHome';
|
||||
var vanillaScope = ret;
|
||||
|
||||
if (nodeWebkit.isDefined()) {
|
||||
latestReleaseService.checkLatestRelease(function(err, newRelease) {
|
||||
if (err) {
|
||||
$log.warn(err);
|
||||
return;
|
||||
}
|
||||
|
||||
if (newRelease)
|
||||
$scope.newRelease = gettext('There is a new version of Copay. Please update');
|
||||
});
|
||||
}
|
||||
|
||||
function strip(number) {
|
||||
return (parseFloat(number.toPrecision(12)));
|
||||
};
|
||||
|
|
|
@ -42,6 +42,10 @@ angular.module('copayApp.services').factory('configService', function(storageSer
|
|||
url: 'https://insight.bitpay.com:443/api/rates',
|
||||
},
|
||||
|
||||
release: {
|
||||
url: 'https://api.github.com/repos/bitpay/copay/releases/latest'
|
||||
},
|
||||
|
||||
pushNotifications: {
|
||||
enabled: true,
|
||||
config: {
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
'use strict';
|
||||
angular.module('copayApp.services')
|
||||
.factory('latestReleaseService', function latestReleaseServiceFactory($log, $http, configService, gettext, nodeWebkit) {
|
||||
|
||||
var root = {};
|
||||
|
||||
root.checkLatestRelease = function(cb) {
|
||||
var releaseURL = configService.getDefaults().release.url;
|
||||
|
||||
requestLatestRelease(releaseURL, function(err, release) {
|
||||
if (err) return cb(err);
|
||||
var currentVersion = window.version;
|
||||
var latestVersion = release.data.tag_name;
|
||||
|
||||
if (!verifyTagFormat(currentVersion))
|
||||
return cb('Cannot verify the format of version tag: ' + currentVersion);
|
||||
if (!verifyTagFormat(latestVersion))
|
||||
return cb('Cannot verify the format of latest release tag: ' + latestVersion);
|
||||
|
||||
var current = formatTagNumber(currentVersion);
|
||||
var latest = formatTagNumber(latestVersion);
|
||||
|
||||
if (latest.major < current.major || (latest.major == current.major && latest.minor <= current.minor))
|
||||
return cb(null, false);
|
||||
|
||||
$log.debug('A new version of Copay is available: ' + latestVersion);
|
||||
return cb(null, true);
|
||||
});
|
||||
|
||||
function verifyTagFormat(tag) {
|
||||
var regex = /^v?\d+\.\d+\.\d+$/i;
|
||||
return regex.exec(tag);
|
||||
};
|
||||
|
||||
function formatTagNumber(tag) {
|
||||
var formattedNumber = tag.replace(/^v/i, '').split('.');
|
||||
return {
|
||||
major: +formattedNumber[0],
|
||||
minor: +formattedNumber[1],
|
||||
patch: +formattedNumber[2]
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
function requestLatestRelease(releaseURL, cb) {
|
||||
$log.debug('Retrieving latest relsease information...');
|
||||
|
||||
var request = {
|
||||
url: releaseURL,
|
||||
method: 'GET',
|
||||
json: true
|
||||
};
|
||||
|
||||
$http(request).then(function(release) {
|
||||
$log.debug('Latest release: ' + release.data.name);
|
||||
return cb(null, release);
|
||||
}, function(err) {
|
||||
return cb('Cannot get the release information: ' + err);
|
||||
});
|
||||
};
|
||||
|
||||
return root;
|
||||
});
|
Loading…
Reference in New Issue