Skip to content
Snippets Groups Projects
Commit f4a150db authored by CamilleC's avatar CamilleC
Browse files

Merge branch 'NetworkSeparation'

parents 63acf2e9 7ea60cb6
No related branches found
No related tags found
1 merge request!242Network's separation
......@@ -76,7 +76,8 @@
"ACCOUNT": "My Account",
"TRANSFER": "Transfer",
"SCAN": "Scan",
"SETTINGS": "Settings"
"SETTINGS": "Settings",
"NETWORK": "Network"
},
"ABOUT": {
"TITLE": "About",
......
......@@ -76,7 +76,8 @@
"ACCOUNT": "Mon compte",
"TRANSFER": "Virement",
"SCAN": "Scanner",
"SETTINGS": "Paramètres"
"SETTINGS": "Paramètres",
"NETWORK" : "Réseau"
},
"ABOUT": {
"TITLE": "A propos",
......
......@@ -79,6 +79,7 @@
<script src="dist/dist_js/app/controllers/wallet-controllers.js"></script>
<script src="dist/dist_js/app/controllers/wot-controllers.js"></script>
<script src="dist/dist_js/app/controllers/peer-controllers.js"></script>
<script src="dist/dist_js/app/controllers/network-controllers.js"></script>
<script src="dist/dist_js/app/controllers/currency-controllers.js"></script>
<script src="dist/dist_js/app/controllers/currency-charts-controllers.js"></script>
<script src="dist/dist_js/app/controllers/transfer-controllers.js"></script>
......@@ -130,6 +131,8 @@
<!-- config -->
<script src="js/config.js"></script>
<!-- endbuild -->
<script type="text/javascript">
</script>
</head>
<body ng-app="cesium" id="cesium" ng-strict-di ng-class="{'nobackdrop': $root.tour}">
<ion-nav-view></ion-nav-view>
......
......@@ -20,9 +20,10 @@ angular.module("cesium.config", [])
"useLocalStorage": true,
"useRelative": true,
"initPhase": false,
"expertMode": true,
"expertMode": false,
"decimalCount": 2,
"helptip": {
"enable": false,
"enable": true,
"installDocUrl": {
"fr-FR": "http://www.le-sou.org/devenir-noeud/",
"en": "https://github.com/duniter/duniter/blob/master/doc/install-a-node.md"
......@@ -34,20 +35,14 @@ angular.module("cesium.config", [])
},
"plugins": {
"es": {
"enable": true,
"askEnable": false,
"host": "localhost",
"port": 9200,
"wsPort": 9400,
"notifications": {
"tx": {
"enable": false
}
}
"enable": false,
"askEnable": true,
"host": "data.le-sou.org",
"port": "80"
}
},
"version": "0.5.2",
"build": "2017-01-05T18:56:38.746Z",
"build": "2017-01-09T14:35:34.003Z",
"newIssueUrl": "https://github.com/duniter/cesium/issues/new?labels=bug"
})
......
......@@ -9,6 +9,7 @@ angular.module('cesium.controllers', [
/*'cesium.currency-charts.controllers',*/
'cesium.wot.controllers',
'cesium.transfer.controllers',
'cesium.settings.controllers'
'cesium.settings.controllers',
'cesium.network.controllers'
])
;
angular.module('cesium.network.controllers', ['cesium.services'])
.config(function($stateProvider) {
'ngInject';
$stateProvider
.state('app.network_view', {
url: "/network/view",
views: {
'menuContent': {
templateUrl: "templates/network/view_network.html",
controller: 'NetworkViewCtrl'
}
},
});
})
.controller('NetworkViewCtrl', NetworkViewController)
.controller('PeerCtrl', PeerController)
;
function NetworkViewController($scope, $q, $translate, $timeout, BMA, UIUtils, csSettings, csCurrency, csNetwork) {
$scope.loadingPeers = true;
$scope.formData = {
useRelative: csSettings.data.useRelative
};
$scope.screen = UIUtils.screen;
$scope.$on('$ionicView.enter', function(e, state) {
$translate(['COMMON.DATE_PATTERN'])
.then(function($translations) {
$scope.datePattern = $translations['COMMON.DATE_PATTERN'];
if (state.stateParams && state.stateParams.name) { // Load by name
csCurrency.searchByName(state.stateParams.name)
.then(function(currency){
$scope.load(currency);
});
}
else {
csCurrency.all()
.then(function (currencies) {
if (currencies && currencies.length > 0) {
$scope.load(currencies[0]);
}
})
.catch(UIUtils.onError('ERROR.GET_CURRENCY_FAILED'));
}
});
});
$scope.$on('$ionicView.beforeLeave', function(){
csNetwork.close();
});
$scope.load = function(currency) {
$scope.node = !BMA.node.same(currency.peer.host, currency.peer.port) ?
BMA.instance(currency.peer.host, currency.peer.port) : BMA;
if ($scope.loadingPeers){
csNetwork.start($scope.node);
// Catch event on new peers
var refreshing = false;
csNetwork.api.data.on.changed($scope, function(data){
if (!refreshing) {
refreshing = true;
$timeout(function() { // Timeout avoid to quick updates
console.debug("Updating UI Peers");
$scope.peers = data.peers;
// Update currency params
$scope.loadingPeers = csNetwork.isBusy();
refreshing = false;
}, 1100);
}
});
$scope.$on('$destroy', function(){
csNetwork.close();
});
}
// Show help tip
$scope.showHelpTip();
};
$scope.refresh = function() {
// Network
$scope.loadingPeers = true;
csNetwork.loadPeers();
};
// Show help tip
$scope.showHelpTip = function() {
if (!$scope.isLogin()) return;
index = csSettings.data.helptip.currency;
if (index < 0) return;
// Create a new scope for the tour controller
var helptipScope = $scope.createHelptipScope();
if (!helptipScope) return; // could be undefined, if a global tour already is already started
return helptipScope.startCurrencyTour(index, false)
.then(function(endIndex) {
helptipScope.$destroy();
csSettings.data.helptip.currency = endIndex;
csSettings.store();
});
};
}
......@@ -63,6 +63,16 @@
<span translate>MENU.CURRENCY</span>
</ion-item>
<ion-item menu-close
id="helptip-menu-btn-network"
class="item item-icon-left"
active-link="active"
active-link-path-prefix="#/app/network"
href="#/app/network/view">
<i class="icon ion-android-globe"></i>
<span translate>MENU.NETWORK</span>
</ion-item>
<!-- Allow extension here -->
<cs-extension-point name="menu-discover"></cs-extension-point>
......
<div class="list">
<div id="helptip-currency-peers"
class="item item-divider item-icon-right">
{{'PEER.PEERS'|translate}}
<ion-spinner class="icon" icon="android" ng-if="loadingPeers"></ion-spinner>
<a class="icon ion-loop gray hidden-xs hidden-sm" ng-if="!loadingPeers" ng-click="refresh()">
</a>
</div>
<a class="peer-item item item-icon-left"
ng-repeat="peer in peers track by peer.server"
id="helptip-currency-peer-{{$index}}"
ng-class="{ assertive: !peer.online, balanced: (peer.online && peer.hasMainConsensusBlock), energized: (peer.online && !peer.hasMainConsensusBlock)}"
ui-sref="app.view_peer({server: peer.server})">
<i class="icon ion-android-globe"></i>
<div class="row no-padding">
<div class="col no-padding">
<h3><i ng-class="{'ion-person': peer.uid, 'ion-key': !peer.uid}"></i> {{peer.uid || peer.pubkey.substr(0,8)}}</span> <span class="gray">{{peer.dns && ' | ' + peer.dns}}</h3>
<h4>{{peer.server}}</h4>
</div>
<div class="col col-10 no-padding" ng-if="settings.expertMode">
<h3 class="hidden-sm hidden-xs hidden-md">
<span ng-if="peer.level"><i class="ion-lock-combination"></i> {{peer.level}}</span>
<span ng-if="!peer.level" translate>PEER.MIRROR</span>
</h3>
<h4 class="hidden-sm hidden-xs hidden-md gray">v{{peer.version}}</h4>
</div>
<div class="col col-20 no-padding">
<span id="helptip-currency-peer-{{$index}}-block"
class="badge" ng-class="{ 'badge-balanced': peer.hasMainConsensusBlock, 'badge-energized': peer.hasConsensusBlock }">{{peer.currentNumber}}</span>
</div>
</div>
</a>
</div>
<ion-view
left-buttons="leftButtons" class="pane"
cache-view="false"
>
<ion-nav-title>
</ion-nav-title>
<ion-nav-buttons side="secondary">
<button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refresh()">
</button>
</ion-nav-buttons>
<ion-content>
<div class="row">
<div class="row responsive-sm">
<div class="col col-90">
<ng-include src="'templates/network/tabs/view_nodes.html'"></ng-include>
</div>
</div>
</ion-content>
</ion-view>
<ion-view>
<ion-nav-title>
<span translate>PEER.TITLE</span>
</ion-nav-title>
<ion-content class="has-header padding">
<div class="list">
<div class="item item-divider">
<h2 translate>PEER.KNOWN_PEERS</h2>
</div>
<div class="item center" ng-if="!loaded">
<ion-spinner class="icon" icon="android"></ion-spinner>
</div>
<a class="peer-item item item-icon-left"
collection-repeat="peer in peers"
ng-class="{ assertive: !peer.online, balanced: peer.online }"
target="_blank"
ng-href="{{peer.getURL()}}/blockchain/current">
<i class="icon ion-android-globe"></i>
<h3><span ng-class="{ positive: peer.uid }">{{peer.uid || peer.pubkey.substr(0,8)}}</span> <span class="gray">{{peer.dns && ' | ' + peer.dns}}</span></h3>
<h4>{{peer.getServer()}} <span class="gray">| {{'PEER.SIGNED_ON_BLOCK' | translate}}</span> #{{peer.blockNumber}}</h4>
<span class="badge" ng-class="{ 'badge-balanced': peer.hasMainConsensusBlock, 'badge-energized': peer.hasConsensusBlock }">{{peer.current.number}}</span>
</a>
</div>
</ion-content>
</ion-view>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment