diff --git a/doc/build_ios.md b/doc/build_ios.md new file mode 100644 index 0000000000000000000000000000000000000000..2de65c080f720cda03ef3cb6a8b3ca12f54519c0 --- /dev/null +++ b/doc/build_ios.md @@ -0,0 +1,14 @@ +# iOS Builds + +Cesium can be build as desktop application for iOS. . + +## Prerequisites + +### Install OSx VM + + +## Install XCode + + + +## Publishing to Apple store diff --git a/platforms/desktop b/platforms/desktop index 3273ea59ac91cada3450021dc126403bca8f0ab9..e0512d76784980a51651bbdcba636404c552c3e8 160000 --- a/platforms/desktop +++ b/platforms/desktop @@ -1 +1 @@ -Subproject commit 3273ea59ac91cada3450021dc126403bca8f0ab9 +Subproject commit e0512d76784980a51651bbdcba636404c552c3e8 diff --git a/www/i18n/locale-fr-FR.json b/www/i18n/locale-fr-FR.json index cb74c98526bc8998e4c3b56b8a3f94b633bbd033..789ab385b6dfef40654075aa93d5d2fb96349af3 100644 --- a/www/i18n/locale-fr-FR.json +++ b/www/i18n/locale-fr-FR.json @@ -46,7 +46,7 @@ "BTN_MODIFY": "Modifier", "CHOOSE_FILE": "Déposez votre fichier <br/>ou cliquez pour le sélectionner", "DAYS": "jours", - "NO_ACCOUNT_QUESTION": "Pas de encore membre ? Créer un compte !", + "NO_ACCOUNT_QUESTION": "Pas de encore compte ? Créer-en un gratuitement !", "SEARCH_NO_RESULT": "Aucun résultat trouvé", "LOADING": "Veuillez patienter...", "LOADING_WAIT": "Veuillez patienter...<br/><small>(Attente de disponibilité du noeud)</small>", @@ -119,7 +119,7 @@ "HOME": { "TITLE": "Cesium", "WELCOME": "Bienvenue dans l'application Cesium !", - "MESSAGE": "Suivez vos comptes {{currency|abbreviate}} en toute simplicité", + "MESSAGE": "Recevez et envoyez de la monnaie libre {{currency|abbreviate}}", "BTN_CURRENCY": "Explorer la monnaie {{name|abbreviate}}", "BTN_ABOUT": "à propos", "BTN_HELP": "Aide en ligne", @@ -409,7 +409,9 @@ "PASSWORD_HELP": "Mot de passe", "PUBKEY_HELP": "Clé publique ou pseudonyme", "NO_ACCOUNT_QUESTION": "Vous n'avez pas encore de compte ?", + "HAVE_ACCOUNT_QUESTION": "Vous avez déjà un compte ?", "CREATE_ACCOUNT": "Créer un compte...", + "CREATE_FREE_ACCOUNT": "Créer un compte gratuitement", "FORGOTTEN_ID": "Mot de passe oublié ?", "ASSOCIATED_PUBKEY": "Clé publique du trousseau :", "BTN_METHODS": "Autres méthodes", @@ -681,7 +683,7 @@ "NEED_MEMBER_ACCOUNT_TO_CERTIFY": "Vous ne pouvez pas effectuer de certification, car votre compte n'est <b>pas membre</b>.", "NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF": "Vous ne pouvez pas effectuer de certification, car votre compte n'est pas encore membre.<br/><br/>Il vous manque encore des certifications, ou bien celles-ci n'ont pas encore été validées.", "NOT_MEMBER_FOR_CERTIFICATION": "Votre compte n'est pas encore membre.", - "IDENTITY_TO_CERTIFY_HAS_NO_SELF": "Compte non certifiable. Aucune demande d'adhésion n'a été faite, ou bien elle n'a pas été renouvellée.", + "IDENTITY_TO_CERTIFY_HAS_NO_SELF": "Compte non certifiable. Aucune demande d'adhésion n'a été faite, ou bien elle n'a pas été renouvelée.", "LOGIN_FAILED": "Erreur lors de la connexion.", "LOAD_IDENTITY_FAILED": "Erreur de chargement de l'identité.", "LOAD_REQUIREMENTS_FAILED": "Erreur de chargement des prérequis de l'identité.", diff --git a/www/index.html b/www/index.html index 3bf94b968228eb023a5510413a340cbedd6612cc..f35ba5ddc963a6ef8940dc96f47bff918e81b8fd 100644 --- a/www/index.html +++ b/www/index.html @@ -138,6 +138,9 @@ <script src="dist/dist_js/app/services/wallet-services.js"></script> <script src="dist/dist_js/app/services/help-services.js"></script> <script src="dist/dist_js/app/services/plugin-services.js"></script> + <!-- removeIf(device) --> + <script src="dist/dist_js/app/services/desktop-services.js"></script> + <!-- endRemoveIf(device) --> <script src="dist/dist_js/app/services.js"></script> <!-- entities --> diff --git a/www/js/config.js b/www/js/config.js index 76880d9ff12779a8b3cb6d5d2a143622a55fcf7c..38466bb398a855d04f6a9c0b61348ffa43f1a16f 100644 --- a/www/js/config.js +++ b/www/js/config.js @@ -35,8 +35,8 @@ angular.module("cesium.config", []) "en": "license/license_g1-en" }, "node": { - "host": "g1.duniter.org", - "port": 443 + "host": "localhost", + "port": 9205 }, "fallbackNodes": [ { @@ -85,4 +85,4 @@ angular.module("cesium.config", []) "newIssueUrl": "https://git.duniter.org/clients/cesium-grp/cesium/issues/new" }) -; \ No newline at end of file +; diff --git a/www/js/controllers/app-controllers.js b/www/js/controllers/app-controllers.js index 087aa9e1f601753a0ad738bcaff22fc3717100c9..6da62e4b0b11d04e7b15f6966f0c4c6e4a247fcd 100644 --- a/www/js/controllers/app-controllers.js +++ b/www/js/controllers/app-controllers.js @@ -442,6 +442,9 @@ function AppController($scope, $rootScope, $state, $ionicSideMenuDelegate, $q, $ //////////////////////////////////////// $scope.openLink = function($event, uri, options) { + $event.stopPropagation(); + $event.preventDefault(); + options = options || {}; // If unable to open, just copy value @@ -449,8 +452,9 @@ function AppController($scope, $rootScope, $state, $ionicSideMenuDelegate, $q, $ return UIUtils.popover.copy($event, uri); }; - $event.stopPropagation(); - return csHttp.uri.open(uri, options); + csHttp.uri.open(uri, options); + + return false; }; //////////////////////////////////////// diff --git a/www/js/controllers/blockchain-controllers.js b/www/js/controllers/blockchain-controllers.js index a46f4bdad2cc2ac75c1a3b3de6a81c98f9f2e125..f06a6f2aed1d9ef133375ffa1b8f6e8137d6bd8c 100644 --- a/www/js/controllers/blockchain-controllers.js +++ b/www/js/controllers/blockchain-controllers.js @@ -135,9 +135,10 @@ function BlockLookupController($scope, $timeout, $focus, $filter, $state, $ancho useTor: useTor }; var serverParts = state.stateParams.server.split(':'); - if (serverParts.length == 2) { + if (serverParts.length == 2 || serverParts.length == 3) { node.host = serverParts[0]; node.port = serverParts[1]; + node.wsPort = serverParts[2] || serverParts[1]; } if (BMA.node.same(node.host, node.port)) { @@ -146,8 +147,8 @@ function BlockLookupController($scope, $timeout, $focus, $filter, $state, $ancho else { $scope.node = useTor ? // For TOR, use a web2tor to access the endpoint - BMA.instance(node.host + ".to", 443, true/*ssl*/, 600000 /*long timeout*/) : - BMA.instance(node.host, node.port, node.useSsl); + BMA.instance(node.host + ".to", 443, 443, true/*ssl*/, 600000 /*long timeout*/) : + BMA.instance(node.host, node.port, node.wsPort, node.useSsl); return $scope.node.blockchain.parameters() .then(function(json) { $scope.currency = json.currency; @@ -232,7 +233,7 @@ function BlockLookupController($scope, $timeout, $focus, $filter, $state, $ancho var size = current.number < $scope.defaultSizeLimit ? current.number : $scope.defaultSizeLimit; return $scope.node.blockchain.blocksSlice({count: size, from: current.number-size}) .then(function(blocks) { - blocks.splice(0,0,current); + blocks && blocks.splice(0,0,current); return blocks; }); }) @@ -529,9 +530,10 @@ function BlockViewController($scope, $ionicPopover, $state, UIUtils, BMA, csCurr useTor: useTor }; var serverParts = state.stateParams.server.split(':'); - if (serverParts.length == 2) { + if (serverParts.length == 2 || serverParts.length == 3) { node.host = serverParts[0]; node.port = serverParts[1]; + node.wsPort = serverParts[2] || serverParts[1]; } if (BMA.node.same(node.host, node.port)) { @@ -540,8 +542,8 @@ function BlockViewController($scope, $ionicPopover, $state, UIUtils, BMA, csCurr else { $scope.node = useTor ? // For TOR, use a web2tor to access the endpoint - BMA.instance(node.host + ".to", 443, true/*ssl*/, 600000 /*long timeout*/) : - BMA.instance(node.host, node.port, node.useSsl); + BMA.instance(node.host + ".to", 443, 443, true/*ssl*/, 600000 /*long timeout*/) : + BMA.instance(node.host, node.port, node.wsPort, node.useSsl); return $scope.node.blockchain.parameters() .then(function (json) { $scope.currency = json.currency; diff --git a/www/js/controllers/network-controllers.js b/www/js/controllers/network-controllers.js index ba8e1e4e18050505d47c5fa3e3d9d3b0cf645b96..e3dbf98e011a3afd5f1fb108e5adcc4fde252019 100644 --- a/www/js/controllers/network-controllers.js +++ b/www/js/controllers/network-controllers.js @@ -89,7 +89,7 @@ function NetworkLookupController($scope, $state, $location, $ionicPopover, $win .then(function (currency) { if (currency) { $scope.node = !BMA.node.same(currency.node.host, currency.node.port) ? - BMA.instance(currency.node.host, currency.node.port) : BMA; + BMA.instance(currency.node.host, currency.node.port, currency.node.wsPort) : BMA; if (state && state.stateParams) { if (state.stateParams.type && ['mirror', 'member', 'offline'].indexOf(state.stateParams.type) != -1) { $scope.search.type = state.stateParams.type; @@ -549,13 +549,14 @@ function PeerViewController($scope, $q, $window, $state, UIUtils, csWot, BMA) { if (serverParts.length == 2) { node.host = serverParts[0]; node.port = serverParts[1]; + node.wsPort = serverParts[2] || serverParts[1]; } angular.merge($scope.node, useTor ? // For TOR, use a web2tor to access the endpoint - BMA.lightInstance(node.host + ".to", 443, true/*ssl*/, 60000 /*long timeout*/) : - BMA.lightInstance(node.host, node.port, node.useSsl), + BMA.lightInstance(node.host + ".to", 443, 443, true/*ssl*/, 60000 /*long timeout*/) : + BMA.lightInstance(node.host, node.port, node.wsPort, node.useSsl), node); $scope.isReachable = !$scope.isHttps || useSsl; diff --git a/www/js/controllers/settings-controllers.js b/www/js/controllers/settings-controllers.js index 0f880533181ef6eab160691c4d44614c5c3b0adf..eac077076c402df1efc9ff928b5ae208780dc07f 100644 --- a/www/js/controllers/settings-controllers.js +++ b/www/js/controllers/settings-controllers.js @@ -150,9 +150,10 @@ function SettingsController($scope, $q, $ionicHistory, $ionicPopup, $timeout, $t // Change node $scope.changeNode= function(node) { + var port = !!$scope.formData.node.port && $scope.formData.node.port != 80 && $scope.formData.node.port != 443 ? $scope.formData.node.port : undefined; node = node || { host: $scope.formData.node.host, - port: $scope.formData.node.port && $scope.formData.node.port != 80 && $scope.formData.node.port != 443 ? $scope.formData.node.port : undefined, + port: port, useSsl: angular.isDefined($scope.formData.node.useSsl) ? $scope.formData.node.useSsl : ($scope.formData.node.port == 443) diff --git a/www/js/entities/peer.js b/www/js/entities/peer.js index 0800c571386f74ec4ddc493ec1d510c5be0a4489..a05550948c43f982a6718011b5ec15754ff76ab3 100644 --- a/www/js/entities/peer.js +++ b/www/js/entities/peer.js @@ -9,7 +9,6 @@ function Peer(json) { }); that.endpoints = that.endpoints || []; - that.statusTS = that.statusTS || 0; } @@ -34,7 +33,7 @@ Peer.prototype.keyID = function () { Peer.prototype.copyValues = function(to) { var obj = this; - ["version", "currency", "pub", "endpoints", "hash", "status", "statusTS", "block", "signature"].forEach(function (key) { + ["version", "currency", "pub", "endpoints", "hash", "status", "block", "signature"].forEach(function (key) { to[key] = obj[key]; }); }; @@ -158,3 +157,8 @@ Peer.prototype.isWs2p = function() { var bma = this.bma || this.getBMA(); return bma.useWs2p; }; + +Peer.prototype.isBma = function() { + var bma = this.bma || this.getBMA(); + return !bma.useWs2p && !bma.useTor; +}; diff --git a/www/js/entities/ws2pmessage.js b/www/js/entities/ws2pmessage.js index 9176af1847e4e6ec7f4705eb2aeacda6065b707b..52efe155361ed87a206743bd47cc5e3a06dd02fd 100644 --- a/www/js/entities/ws2pmessage.js +++ b/www/js/entities/ws2pmessage.js @@ -68,7 +68,7 @@ function Ws2pMessage(message) { that.pubkey=parts[3]; that.buid=parts[4]; that.ws2pid=parts[5]; - that.sotfware=parts[6]; + that.software=parts[6]; that.version=parts[7]; that.powPrefix=parts[8]; } diff --git a/www/js/services.js b/www/js/services.js index 91d3c4d515cfd9a605635d5227cb01b5381c97eb..5fde0394e561b6dd0b705d11fefd0739445c12fe 100644 --- a/www/js/services.js +++ b/www/js/services.js @@ -1,4 +1,7 @@ angular.module('cesium.services', [ + // removeIf(device) + 'cesium.desktop.services', + // endRemoveIf(device) 'cesium.settings.services', 'cesium.http.services', 'cesium.network.services', diff --git a/www/js/services/bma-services.js b/www/js/services/bma-services.js index 93420694bfd4823ff2cc753deb06f5f81b8b5d5f..1572a103d177ed30b126b393dc18a0eb20bb58a3 100644 --- a/www/js/services/bma-services.js +++ b/www/js/services/bma-services.js @@ -20,6 +20,7 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium. OUTPUT_OBJ = 'OBJ\\(([0-9]+)\\)', OUTPUT_OBJ_OPERATOR = OUTPUT_OBJ + '[ ]*' + OUTPUT_OPERATOR + '[ ]*' + OUTPUT_OBJ, REGEX_ENDPOINT_PARAMS = "( ([a-z_][a-z0-9-_.ğĞ]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))( (.+))?", + BLOCK_ATTRIBUTES= ["currency", "issuer", "medianTime", "number", "version", "powMin", "dividend", "membersCount", "hash", "identities", "joiners", "actives", "leavers", "revoked", "excluded", "certifications", "transactions", "unitbase"], regexp = { USER_ID: "[A-Za-z0-9_-]+", CURRENCY: "[A-Za-z0-9_-]+", @@ -59,7 +60,8 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium. LIMIT_REQUEST_COUNT: 5, // simultaneous async request to a Duniter node LIMIT_REQUEST_DELAY: 1000, // time (in second) to wait between to call of a rest request regex: regexp, // deprecated - regexp: regexp + regexp: regexp, + BLOCK_QUERY_PARAMS: "?_source=" + BLOCK_ATTRIBUTES.join(',') }, listeners, that = this; @@ -75,7 +77,6 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium. console.debug('[BMA] Enable SSL (forced by config or detected in URL)'); } - if (host) { init(host, port, useSsl, useCache); } @@ -231,7 +232,7 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium. that.isAlive = function() { return csHttp.get(that.host, that.port, '/node/summary', that.useSsl)() .then(function(json) { - var isDuniter = json && json.duniter && json.duniter.software == 'duniter' && json.duniter.version; + var isDuniter = json && json.duniter && json.duniter.software && json.duniter.version && true; var isCompatible = isDuniter && csHttp.version.isCompatible(csSettings.data.minVersion, json.duniter.version); if (isDuniter && !isCompatible) { console.error('[BMA] Uncompatible version [{0}] - expected at least [{1}]'.format(json.duniter.version, csSettings.data.minVersion)); @@ -412,9 +413,9 @@ angular.module('cesium.bma.services', ['ngApi', 'cesium.http.services', 'cesium. }, blockchain: { parameters: get('/blockchain/parameters', csHttp.cache.LONG), - block: get('/blockchain/block/:block', csHttp.cache.SHORT), - blocksSlice: get('/blockchain/blocks/:count/:from'), - current: get('/blockchain/current'), + block: get('/blockchain/block/:block' + constants.BLOCK_QUERY_PARAMS, csHttp.cache.SHORT), + blocksSlice: get('/blockchain/blocks/:count/:from' + constants.BLOCK_QUERY_PARAMS), + current: get('/blockchain/current' + constants.BLOCK_QUERY_PARAMS), membership: post('/blockchain/membership'), stats: { ud: get('/blockchain/with/ud', csHttp.cache.SHORT), diff --git a/www/js/services/desktop-services.js b/www/js/services/desktop-services.js new file mode 100644 index 0000000000000000000000000000000000000000..51a5a760cb5583ee68709e2ab4c1f5c10a36de7c --- /dev/null +++ b/www/js/services/desktop-services.js @@ -0,0 +1,11 @@ +var App, nw; + +angular.module('cesium.desktop.services', ['cesium.device.services', 'cesium.settings.services']) + + .factory('csDesktop', function($rootScope, Device) { + 'ngInject'; + + if (!Device.isDesktop()) return; + + console.info("Starting desktop mode..."); + }); diff --git a/www/js/services/http-services.js b/www/js/services/http-services.js index 95ee00335d1b5c4da5e61e09510c96441d3f20c4..a871ce92c0ed85cb51ccfb97234f0c4a76bb3e23 100644 --- a/www/js/services/http-services.js +++ b/www/js/services/http-services.js @@ -342,6 +342,17 @@ angular.module('cesium.http.services', ['cesium.cache.services']) uri = parts.protocol + uri; } + // On desktop, open into external tool + if (parts.protocol == 'mailto:' && Device.isDesktop()) { + try { + nw.Shell.openExternal(uri); + return; + } + catch(err) { + console.error("[http] Failed not open 'mailto:' URI into external tool."); + } + } + // Check if device is enable, on special tel: or mailto: protocole var validProtocol = (parts.protocol == 'mailto:' || parts.protocol == 'tel:') && Device.enable; if (!validProtocol) { @@ -355,15 +366,33 @@ angular.module('cesium.http.services', ['cesium.cache.services']) // Note: If device enable, then target=_system will use InAppBrowser cordova plugin var openTarget = (options.target || (Device.enable ? '_system' : '_blank')); + // If desktop, try to open into external browser + if (openTarget === '_blank' || openTarget === '_system' && Device.isDesktop()) { + try { + nw.Shell.openExternal(uri); + return; + } + catch(err) { + console.error("[http] Failed not open URI into external browser."); + } + } + // If desktop, should always open in new window (no tabs) var openOptions; - if (openTarget == '_blank' && Device.isDesktop()) { + if (openTarget === '_blank' && Device.isDesktop()) { + + if (nw && nw.Shell) { + nw.Shell.openExternal(uri); + return false; + } + // Override default options openOptions= "location=1,titlebar=1,status=1,menubar=1,toolbar=1,resizable=1,scrollbars=1"; // Add width/height if ($window.screen && $window.screen.width && $window.screen.height) { openOptions += ",width={0},height={1}".format(Math.trunc($window.screen.width/2), Math.trunc($window.screen.height/2)); } } + var win = $window.open(uri, openTarget, openOptions); diff --git a/www/js/services/network-services.js b/www/js/services/network-services.js index 21122397a1dcc9ebcff5e9769208d560d07a0673..9a49bf4cfd1e36a6bb31ba073d0179a0264ec2f7 100644 --- a/www/js/services/network-services.js +++ b/www/js/services/network-services.js @@ -402,15 +402,16 @@ angular.module('cesium.network.services', ['ngApi', 'cesium.bma.services', 'cesi return res.concat(createPeerEntities(json, ep)); }, []); } - - // if only one bma endpoint: use it and continue - ep = endpoints[0]; + else { + // if only one endpoint: use it and continue + ep = endpoints[0]; + } } peer.bma = ep; peer.server = peer.getServer(); peer.dns = peer.getDns(); - peer.blockNumber = peer.block.replace(/-.+$/, ''); - peer.uid = data.uidsByPubkeys[peer.pubkey]; + peer.blockNumber = peer.block && peer.block.replace(/-.+$/, ''); + peer.uid = peer.pubkey && data.uidsByPubkeys[peer.pubkey]; peer.id = peer.keyID(); return [peer]; }, diff --git a/www/plugins/es/js/controllers/common-controllers.js b/www/plugins/es/js/controllers/common-controllers.js index 5b4e5bde214ac36ccacbff5079bb8a24f5e5f841..415602f8936985b7cc5fdee8a45431b3e9fd0fde 100644 --- a/www/plugins/es/js/controllers/common-controllers.js +++ b/www/plugins/es/js/controllers/common-controllers.js @@ -413,7 +413,6 @@ function ESSocialsViewController($scope) { 'ngInject'; $scope.openSocial = function(event, social) { - event.stopPropagation(); return $scope.openLink(event, social.url, { type: social.type }); diff --git a/www/templates/home/home.html b/www/templates/home/home.html index b9d31d236b14f98891eaae9aaf953cb7fe757978..e1f36ba562f8cbacd11bb58b9263a832fc52b64c 100644 --- a/www/templates/home/home.html +++ b/www/templates/home/home.html @@ -10,7 +10,7 @@ <h4> <span class="hidden-xs" translate>HOME.WELCOME</span> - <span ng-show="!loading" translate-values=":currency:{currency: $root.currency.name}" translate>HOME.MESSAGE</span> + <b ng-show="!loading" translate-values=":currency:{currency: $root.currency.name}" translate>HOME.MESSAGE</b> </h4> <div class="center padding" ng-if="loading"> @@ -39,14 +39,9 @@ {{'COMMON.BTN_HELP_TOUR'|translate}} </button> - <!-- Currency--> <button type="button" - class="item button button-block button-stable button-raised icon icon-left ion-ios-world-outline ink-dark hidden-sm hidden-xs" - ui-sref="app.currency">{{'HOME.BTN_CURRENCY'|translate:$root.currency }}</button> - - <button type="button" - class="item button button-block button-positive button-raised icon icon-left ion-locked ink-dark" - ui-sref="app.view_wallet" ng-show="!login" translate>COMMON.BTN_LOGIN</button> + class="button button-block button-positive button-raised ink-dark" + ng-click="showJoinModal()" ng-if="!login" translate>LOGIN.CREATE_FREE_ACCOUNT</button> <button type="button" class="item button button-block button-positive button-raised icon icon-left ion-person ink-dark" @@ -54,17 +49,17 @@ <button type="button" class="item button button-block button-positive button-raised icon icon-left ion-card ink-dark visible-xs" - ui-sref="app.view_wallet_tx" ng-show="login" translate>MENU.TRANSACTIONS</button> + ui-sref="app.view_wallet_tx" ng-if="login" translate>MENU.TRANSACTIONS</button> <br class="visible-xs visible-sm"/> <!-- join link --> <div class="text-center no-padding" ng-show="!login"> <br class="visible-xs visible-sm"/> - {{'LOGIN.NO_ACCOUNT_QUESTION'|translate}} + {{'LOGIN.HAVE_ACCOUNT_QUESTION'|translate}} <b> - <a class="assertive hidden-xs hidden-sm" ng-click="showJoinModal()" translate> - LOGIN.CREATE_ACCOUNT + <a class="assertive hidden-xs hidden-sm" ui-sref="app.view_wallet" translate> + COMMON.BTN_LOGIN </a> </b> </div> @@ -82,8 +77,8 @@ </div> <button type="button" - class="button button-block button-calm button-raised icon icon-left ion-wand ink-dark visible-xs visible-sm" - ng-click="showJoinModal()" ng-if="!login" translate>LOGIN.CREATE_ACCOUNT</button> + class="button button-block button-energized-100 button-raised ink visible-xs visible-sm" + ui-sref="app.view_wallet" ng-show="!login" translate>COMMON.BTN_LOGIN</button> <button type="button" class="button button-block button-assertive button-raised icon icon-left ion-wand ink-dark visible-xs visible-sm" ng-click="logout()" ng-if="login" translate>COMMON.BTN_LOGOUT</button> diff --git a/www/templates/menu.html b/www/templates/menu.html index 54b655fca3ce85d72ab4941ce0b180cc9de4f85b..b07dd0a6a9ae0c4d6aa809ca1bb55bea8dab2a00 100644 --- a/www/templates/menu.html +++ b/www/templates/menu.html @@ -87,7 +87,7 @@ <ion-content scroll="false"> <ion-list class="list"> - <!-- DISCOVER Section --> + <!-- Home --> <ion-item menu-close class="item-icon-left hidden-xs" ui-sref="app.home" active-link="active"> <i class="icon ion-home"></i> {{:locale:'MENU.HOME'|translate}} diff --git a/www/templates/network/item_content_peer.html b/www/templates/network/item_content_peer.html index 0a4121855c125ae263afb15ec00642847ba1dfbf..37adfd83c21f44f077516afc0f3f244a000bc65b 100644 --- a/www/templates/network/item_content_peer.html +++ b/www/templates/network/item_content_peer.html @@ -23,10 +23,13 @@ </h4> </div> <div class="col col-15 no-padding text-center hidden-xs hidden-sm" ng-if="::expertMode"> - <div style="min-width: 50px; padding-top: 5px;" title="SSL"> - <span ng-if=":rebind:peer.isSsl()"> + <div style="min-width: 50px; padding-top: 5px;" > + <span ng-if=":rebind:peer.isSsl()" title="SSL"> <i class="ion-locked"></i><small class="hidden-md"> SSL</small> </span> + <span ng-if=":rebind:peer.isBma()" title="BMA"> + <i class="ion-cloud"></i><small class="hidden-md"> BMA</small> + </span> <span ng-if=":rebind:peer.isWs2p()" ng-click="showWs2pPopover($event, peer)" title="WS2P">