Skip to content
Snippets Groups Projects
Commit a3815b7c authored by Benoit Lavenier's avatar Benoit Lavenier
Browse files

- Menu: on small device, display profile in left menu

- Currency: DU formula has changed to DUĞ - fix #210
- Currency: refactoring tabs , to have one state per tab
- Currency: refactoring content (separate currency/wot rules)
- Currency: remove space on top of tabs header
- ES Market: use card to display search result on small device
- ES Market: add a badge (in search result) if record is an offer
parent c415aa6c
Branches
Tags
No related merge requests found
Showing
with 254 additions and 147 deletions
......@@ -24,13 +24,11 @@ __Objectif :__ Dans ce niveau, l'objectif est d'afficher dans la page [`Monnaie`
### Modifier le template HTML
Ouvrez le fichier de template `/www/templates/currency/tabs/view_parameters.html`.
Ouvrez le fichier de template `/www/templates/currency/tabs/items_parameters.html`.
Ajouter un nouvel élément dans la liste des paramètres, c'est à dire un nouveau tag `<ion-item>`, sous le tag `<ion-list>` :
```html
<ion-list>
(...)
<ion-item class="item-icon-left">
......@@ -38,8 +36,6 @@ Ajouter un nouvel élément dans la liste des paramètres, c'est à dire un nouv
<span translate>CURRENCY.VIEW.STEP_MAX</span>
<span class="badge badge-stable">{{stepMax}}</span>
</ion-item>
</ion-list>
```
Si vous rafraichissez la page `Monnaie` de votre navigateur, vous devriez observer la modification :
......
......@@ -25,6 +25,7 @@ $dark: #444 !default;
$active: #b2e0ff !default;
$stable-900-bg: #e0e0e0 !default;
$positive-900-bg: #1A237E !default;
// The path for our ionicons font files, relative to the built CSS in www/css
$ionicons-font-path: "../lib/ionic/fonts" !default;
......@@ -323,7 +324,7 @@ $screen-lg: 1200px;
}
}
@media screen and (ma-width: $screen-sm) {
@media screen and (max-width: $screen-sm) {
.no-padding-xs {
padding: inherit;
}
......@@ -663,7 +664,7 @@ $screen-menu: 845px;
@media screen and (max-width: $screen-xs-max) {
#home .logo {
height: 96px;
background-image: url(../img/logo_96px.png);
background-image: url('../img/logo_96px.png');
background-size: 96px 96px;
}
#home .footer {
......@@ -673,7 +674,7 @@ $screen-menu: 845px;
@media screen and (min-width: $screen-sm) and (max-width: $screen-sm-max) {
#home .logo {
height: 144px;
background-image: url(../img/logo_144px.png);
background-image: url('../img/logo_144px.png');
background-size: 144px 144px;
}
#home .button {
......@@ -684,7 +685,7 @@ $screen-menu: 845px;
@media screen and (min-width: $screen-md) {
#home .logo {
height: 200px;
background-image: url(../../resources/logo/svg/colors/logo.large.cesium.dune.svg);
background-image: url('../../resources/logo/svg/colors/logo.large.cesium.dune.svg');
background-size: 200px 200px;
}
......@@ -699,7 +700,7 @@ $screen-menu: 845px;
@media screen and (min-width: $screen-md) {
.circle-bg-dark {
ion-content.scroll-content {
background-image: url(../../resources/logo/svg/white/logo.large.empty.transparent.svg);
background-image: url('../../resources/logo/svg/white/logo.large.empty.transparent.svg');
background-repeat: no-repeat;
background-position: -725px -145px;
background-size: 1024px 1024px;
......@@ -707,7 +708,7 @@ $screen-menu: 845px;
}
.menu.menu-left {
background-image: url(../../resources/logo/svg/white/logo.large.empty.transparent.svg);
background-image: url('../../resources/logo/svg/white/logo.large.empty.transparent.svg');
background-repeat: no-repeat;
background-position: -500px -100px;
background-size: 1024px 1024px;
......@@ -769,7 +770,7 @@ $screen-menu: 845px;
}
.avatar-member {
background-image: url(../img/person.png);
background-image: url('../img/person.png');
}
.avatar.disable {
......@@ -777,7 +778,7 @@ $screen-menu: 845px;
}
.avatar-wallet {
background-image: url(../img/card.png);
background-image: url('../img/card.png');
}
/* ----
......@@ -873,6 +874,7 @@ $screen-menu: 845px;
.item.item-icon-left.item-wallet-event .icon {
font-size: 15px;
}
}
.popover-wallet-actions {
......@@ -1196,7 +1198,7 @@ a.underline:hover,
*/
.item.item-icon-right .badge,
.item.item-button-right .badge,
.item.item-button-right .badge
{
right: 43px;
}
......@@ -1281,6 +1283,9 @@ $ionicon-var-badge-editable: $ionicon-var-edit + "\00a0";
font-size: 50px !important;
line-height: 80px;
padding: 0 15px;
background-position: center;
background-size: cover;
display: inline-block;
}
......@@ -1391,6 +1396,26 @@ $ionicon-var-badge-editable: $ionicon-var-edit + "\00a0";
}
}
@media screen and (max-width: $screen-sm-max) {
#menu .bar-header {
background-color: $positive-900-bg;
color: #fff;
height: 175px;
.hero {
height: 175px;
.content {
bottom: 5px;
}
}
}
#menu .has-header {
top: 175px;
}
}
/**********
Screen - identity Certifications
......
......@@ -13930,7 +13930,7 @@ a {
display: none;
visibility: hidden; } }
 
@media screen and (ma-width: 768px) {
@media screen and (max-width: 768px) {
.no-padding-xs {
padding: inherit; } }
 
......@@ -14476,8 +14476,7 @@ a.underline:hover,
max-height: 150px; }
 
.gallery .card-gallery-new {
max-height: 199px;
/*img=150px + tabs=49px*/ }
max-height: 199px; }
 
.list .item.text-left {
text-align: left !important; }
......@@ -14680,7 +14679,10 @@ a.underline:hover,
overflow: hidden !important;
font-size: 50px !important;
line-height: 80px;
padding: 0 15px; }
padding: 0 15px;
background-position: center;
background-size: cover;
display: inline-block; }
 
@media screen and (max-width: 400px) {
.card > .item.item-thumbnail-left,
......@@ -14757,6 +14759,18 @@ a.underline:hover,
font-size: 14px !important;
color: grey !important; } }
 
@media screen and (max-width: 991px) {
#menu .bar-header {
background-color: #1A237E;
color: #fff;
height: 175px; }
#menu .bar-header .hero {
height: 175px; }
#menu .bar-header .hero .content {
bottom: 5px; }
#menu .has-header {
top: 175px; } }
/**********
Screen - identity Certifications
**********/
......
This diff is collapsed.
......@@ -135,17 +135,16 @@
"TAB_WOT": "Community",
"TAB_NETWORK": "Network",
"CURRENCY_NAME": "Currency name",
"MEMBERS": "Members",
"INCOMING_MEMBERS": "Incoming members",
"MEMBERS": "Members count",
"MEMBERS_VARIATION": "Variation (depuis {{dt | formatDuration}})",
"MONEY_DIVIDER": "Money",
"MASS": "Monetary mass",
"SHARE": "Money share",
"UD": "Universal Dividend",
"C_ACTUAL": "c<sub>actual</sub>",
"BLOCKCHAIN_DIVIDER": "Blockchain",
"TIME": "Current time",
"POW_MIN": "Common difficulty",
"RULES_DIVIDER": "Rules",
"MONEY_RULES_DIVIDER": "Rules of currency",
"C_RULE": "c",
"UD_RULE": "Universal dividend (formula)",
"SIG_QTY_RULE": "Required certifications<br/>to become a member",
......@@ -153,6 +152,7 @@
"SIG_PERIOD": "Minimum delay between 2 certifications<br/>of a same issuer.",
"SIG_WINDOW": "Maximum delay a certification can wait<br/>before being expired for non-writing.",
"STEP_MAX": "Maximum distance between<br/>each WoT member and a newcomer.",
"WOT_RULES_DIVIDER": "Rules for Membership",
"XPERCENT":"Minimum percent of sentries<br />to reach to match the distance rule"
}
},
......@@ -371,7 +371,7 @@
"COPY_TO_CLIPBOARD_DONE": "Copy succeed",
"MEMBERSHIP_OUT_SENT": "Membership revocation sent",
"NOT_NEED_MEMBERSHIP": "Already a member.",
"IDENTITY_WILL_MISSING_CERTIFICATIONS": "This identity will soon lack certification (at least {{willNeedCertificationCount}}).",
"IDENTITY_WILL_MISSING_CERTIFICATIONS": "This identity will soon lack certification (at least {{willNeedCertificationCount}})."
},
"CONFIRM": {
"POPUP_TITLE": "<b>Confirmation</b>",
......@@ -395,7 +395,7 @@
"TITLE": "Online help",
"JOIN": {
"SECTION": "Join",
"SALT": "The protection phrase is very important. It is used to hash you password, which in turn is used to calculate your <span class=\"text-italic\">public account key</span> (its number) and the private key to access it.<br/><b>Please remeber this phrase well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good protection phrase must be sufficiently long (8 characters at the very least) and as original as possible.",
"SALT": "The protection phrase is very important. It is used to hash you password, which in turn is used to calculate your <span class=\"text-italic\">public account key</span> (its number) and the private key to access it.<br/><b>Please remember this phrase well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good protection phrase must be sufficiently long (8 characters at the very least) and as original as possible.",
"PASSWORD": "The password is very important. Together with the protection phrase, it is use to calculate your account number (pblic key) and the private key to access it.<br/><b>Please remember it well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",
"PSEUDO": "A pseudonym is used only when joining as <span class=\"text-italic\">member</span>. It is always associated with a wallet (by its <span class=\"text-italic\">public key</span>).<br/>It is published on the network so that other users may identify it, certify or send money to the account.<br/>A pseudonym must be unique among all members (current and past)."
},
......
......@@ -135,8 +135,8 @@
"TAB_WOT": "Communauté",
"TAB_NETWORK": "Réseau",
"CURRENCY_NAME": "Nom de la monnaie",
"MEMBERS": "Membres",
"INCOMING_MEMBERS": "Nouveaux membres",
"MEMBERS": "Nombre de membres",
"MEMBERS_VARIATION": "Variation (depuis {{dt | formatDuration}})",
"MONEY_DIVIDER": "Monnaie",
"MASS": "Masse monétaire",
"SHARE": "Masse par membre",
......@@ -145,14 +145,15 @@
"BLOCKCHAIN_DIVIDER": "Blockchain",
"TIME": "Heure de la blockchain",
"POW_MIN": "Niveau de difficulté",
"RULES_DIVIDER": "Règles",
"C_RULE": "Croissance",
"MONEY_RULES_DIVIDER": "Règles de la monnaie",
"C_RULE": "Croissance théorique (c)",
"UD_RULE": "Dividende universel (formule)",
"SIG_QTY_RULE": "Nombre de certifications requises<br/>pour devenir membre",
"SIG_STOCK": "Nombre maximal de certifications émises<br/>par membre",
"SIG_PERIOD": "Délai minimal d'attente entre 2 certifications<br/>successives émises par une même personne.",
"SIG_WINDOW": "Délai maximal d'attente avant<br/>prise en compte d'une certification",
"STEP_MAX": "Distance maximale dans la toile de confiance <br /> entre chaque membre et un nouvel entrant.",
"WOT_RULES_DIVIDER": "Règles pour devenir membre",
"XPERCENT":"Pourcentage minimum de sentinelle<br />à atteindre pour respecter la règle de distance."
}
},
......
......@@ -25,6 +25,7 @@
<script src="js/vendor/moment.fr.js"></script>
<script src="js/vendor/numeral.js"></script>
<script src="js/vendor/numeral.fr.js"></script>
<script src="js/vendor/numeral.en.js"></script>
<script src="js/vendor/socket-io.js"></script>
<script src="js/vendor/underscore.js"></script>
<script src="js/vendor/qrcode.min.js"></script>
......
......@@ -10,32 +10,35 @@ angular.module("cesium.config", [])
.constant("csConfig", {
"cacheTimeMs": 60000,
"fallbackLanguage": "en",
"rememberMe": false,
"fallbackLanguage": "fr-FR",
"defaultLanguage": "fr-FR",
"rememberMe": true,
"showUDHistory": false,
"timeout": 10000,
"timeout": 6000,
"timeWarningExpireMembership": 5184000,
"timeWarningExpire": 7776000,
"useLocalStorage": true,
"useRelative": true,
"initPhase": false,
"expertMode": false,
"decimalCount": 4,
"compatProtocol_0_80": true,
"expertMode": true,
"helptip": {
"enable": true,
"installDocUrl": "https://github.com/duniter/duniter/blob/master/doc/install-a-node.md"
"enable": false,
"installDocUrl": {
"fr-FR": "http://www.le-sou.org/devenir-noeud/",
"en": "https://github.com/duniter/duniter/blob/master/doc/install-a-node.md"
}
},
"node": {
"host": "cgeek.fr",
"port": "9330"
"host": "fakenet.cgeek.fr",
"port": "10900"
},
"plugins": {
"es": {
"enable": true,
"enable": false,
"askEnable": false,
"host": "data.duniter.fr",
"port": "80",
"host": "localhost",
"port": 9200,
"wsPort": 9400,
"notifications": {
"txSent": true,
"txReceived": true,
......@@ -45,7 +48,7 @@ angular.module("cesium.config", [])
}
},
"version": "0.9.7",
"build": "2017-01-17T08:27:57.915Z",
"build": "2017-01-17T08:59:03.785Z",
"newIssueUrl": "https://github.com/duniter/cesium/issues/new?labels=bug"
})
......
......@@ -16,12 +16,12 @@ angular.module('cesium.currency.controllers', ['cesium.services'])
}
})
.state('app.currency_view', {
.state('app.currency', {
url: "/currency/view/:name",
views: {
'menuContent': {
templateUrl: "templates/currency/view_currency.html",
controller: 'CurrencyViewCtrl'
controller: 'CurrencyViewCtrl',
}
},
data: {
......@@ -29,6 +29,33 @@ angular.module('cesium.currency.controllers', ['cesium.services'])
}
})
.state('app.currency.tab_parameters', {
url: "/parameters",
views: {
'tab-parameters': {
templateUrl: "templates/currency/tabs/tab_parameters.html"
}
}
})
.state('app.currency.tab_network', {
url: "/network",
views: {
'tab-network': {
templateUrl: "templates/currency/tabs/tab_network.html"
}
}
})
.state('app.currency.tab_wot', {
url: "/community",
views: {
'tab-wot': {
templateUrl: "templates/currency/tabs/tab_wot.html"
}
}
})
.state('app.currency_view_lg', {
url: "/currency/view/lg/:name",
views: {
......
......@@ -6,16 +6,6 @@ angular.module('cesium.network.controllers', ['cesium.services'])
$stateProvider
.state('app.network_view', {
url: "/network/view",
views: {
'menuContent': {
templateUrl: "templates/network/view_network.html",
controller: 'NetworkViewCtrl'
}
},
})
.state('app.view_peer', {
url: "/network/peer/:server",
nativeTransitions: {
......@@ -37,7 +27,7 @@ angular.module('cesium.network.controllers', ['cesium.services'])
;
function NetworkViewController($scope, $q, $translate, $timeout, BMA, UIUtils, csSettings, csCurrency, csNetwork) {
function NetworkViewController($scope, $timeout, BMA, UIUtils, csSettings, csCurrency, csNetwork) {
$scope.loadingPeers = true;
$scope.formData = {
useRelative: csSettings.data.useRelative
......
//! moment.js locale configuration
//! locale : english (en)
//! author : Benoit Lavenier : https://github.com/blavenie
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('./numeral')) :
typeof define === 'function' && define.amd ? define(['numeral'], factory) :
factory(global.numeral)
}(this, function (numeral) { 'use strict';
numeral.language('en', {
"delimiters": {
"thousands": ",",
"decimal": "."
},
"abbreviations": {
"thousand": "<small>x10<sup>3</sup></small>",
"million": "<small>x10<sup>6</sup></small>",
"billion": "<small>x10<sup>9</sup></small>",
"trillion": "<small>x10<sup>12</sup></small>"
},
"currency": {
"symbol": "X"
}
});
}));
//! moment.js locale configuration
//! locale : french (fr)
//! author : John Fischer : https://github.com/jfroffice
//! author : Benoit Lavenier : https://github.com/blavenie
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('../numeral')) :
......@@ -8,33 +8,17 @@
factory(global.numeral)
}(this, function (numeral) { 'use strict';
var abbreviations = {
"thousand": "<small>x10<sup>3</sup></small>",
"million": "<small>x10<sup>6</sup></small>",
"billion": "<small>x10<sup>9</sup></small>",
"trillion": "<small>x10<sup>12</sup></small>"
};
numeral.language('fr', {
"delimiters": {
"thousands": " ",
"decimal": ","
},
"abbreviations": abbreviations,
"ordinal": function (number) {
return (number === 1) ? 'er' : 'ième';
},
"currency": {
"symbol": "X"
}
});
numeral.language('en', {
"delimiters": {
"thousands": ",",
"decimal": "."
"abbreviations": {
"thousand": "<small>x10<sup>3</sup></small>",
"million": "<small>x10<sup>6</sup></small>",
"billion": "<small>x10<sup>9</sup></small>",
"trillion": "<small>x10<sup>12</sup></small>"
},
"abbreviations": abbreviations,
"ordinal": function (number) {
return (number === 1) ? 'er' : 'ième';
},
......
......@@ -39,7 +39,7 @@
padding-bottom: 0px;
}
.item-record .badge-picture-count,
.card-record .badge-picture-count,
.row-record .badge-picture-count {
position: absolute !important;
left: 67px !important;
......@@ -48,16 +48,30 @@
top: inherit !important;
}
.item-record .badge-price {
.card-record .badge-price {
font-size: 12px;
position: absolute !important;
bottom: 15px !important;
bottom: 10px !important;
right: 10px;
top: inherit !important;
}
.card-record .item-thumbnail-left {
padding-left: 150px;
}
.card-record .item-thumbnail-left .item-image {
border-radius: 0;
box-shadow: none;
max-width: 130px;
max-height: 130px;
top: inherit;
background-repeat: no-repeat;
}
.row-record .badge-price {
position: absolute !important;
/*left: 80px !important;*/
bottom: 15px !important;
right: inherit !important;
top: inherit !important;
......
......@@ -9,6 +9,10 @@ angular.module('cesium.es.app.controllers', ['ngResource', 'cesium.es.services']
// Menu extension points
PluginServiceProvider.extendState('app', {
points: {
'menu-profile-user': {
templateUrl: "plugins/es/templates/menu_extend.html",
controller: "ESMenuExtendCtrl"
},
'nav-buttons-right': {
templateUrl: "plugins/es/templates/menu_extend.html",
controller: "ESMenuExtendCtrl"
......
......@@ -11,12 +11,13 @@
<small><a ng-click="showMore()" translate>COMMENTS.SHOW_MORE_COMMENTS</a></small>
</span>
<div class="padding-right">
<ng-repeat ng-repeat="comment in comments.result track by comment.id"
ng-include="'plugins/es/templates/common/item_comment.html'">
</ng-repeat>
</div>
<div class="hidden-xs hidden-sm">
<div class="hidden-xs hidden-sm padding-right">
<div class="card card-comment item item-input item-button-right">
<!-- reply to comment-->
......
......@@ -45,11 +45,13 @@
ng-if="!search.loading && search.results.length">
<a ng-repeat="rec in search.results"
class="item item-record ink padding-xs"
class="item no-padding-bottom no-padding-top"
ui-sref="app.market_view_record({id: rec.id, title: rec.urlTitle})">
<div class="item-text-wrap item-thumbnail-left">
<img ng-src="{{::rec.thumbnail.src}}" ng-if="rec.thumbnail"></img>
<div class="card card-record stable-bg ink padding-top">
<div class="card-item item-thumbnail-left item-text-wrap padding-right">
<i class="item-image" ng-if="rec.thumbnail" style="background-image: url('{{::rec.thumbnail.src}}')"></i>
<i class="item-image ion-speakerphone" ng-if="!rec.thumbnail"></i>
<h2 ng-bind-html="rec.title"></h2>
<h4 class="gray">
......@@ -62,13 +64,26 @@
{{::rec.time | formatFromNow}}
</span>
</h4>
<span ng-if="rec.picturesCount > 1"
<h3 class="gray text-wrap" ng-bind-html="rec.description | truncText:200" ng-if="rec.description"></h3>
<div ng-if="rec.picturesCount > 1"
class="badge badge-balanced badge-picture-count">{{::rec.picturesCount}}&nbsp;<i class="icon ion-camera"></i>
</span>
<h2 class="badge badge-price badge-calm"
ng-bind-html=":rebind:rec.price|formatAmount:{currency: rec.currency}">
</h2>
</div>
</div>
<div class="card-footer" style="height: 45px">
&nbsp;
<div class="badge badge-price badge-calm" ng-if="rec.type=='offer'">
<i class="cion-market-offer"></i>
<span ng-if="rec.price" ng-bind-html=":rebind:rec.price|formatAmount:{currency: rec.currency}"></span>
<span ng-if="!rec.price" translate>MARKET.TYPE.OFFER</span>
</div>
<div class="badge badge-energized badge-price" ng-if="rec.type=='need'">
<i class="cion-market-need"></i>
{{'MARKET.TYPE.NEED'|translate}}
</div>
</div>
</div>
</a>
</div>
......
......@@ -80,30 +80,7 @@
class="item item-record item-border-large ink padding-xs"
ui-sref="app.market_view_record({id: rec.id, title: rec.urlTitle})">
<div class="visible-xs visible-sm">
<div class="item-text-wrap item-thumbnail-left">
<img ng-src="{{::rec.thumbnail.src}}" ng-if="rec.thumbnail"></img>
<i class="item-image ion-speakerphone" ng-if="!rec.thumbnail"></i>
<h2 ng-bind-html="rec.title"></h2>
<h4 class="gray">
<span ng-if="rec.location">
<i class="icon ion-location"></i>
<span ng-bind-html="rec.location"></span>
</span>
<span ng-show="rec.time">
<span ng-show="rec.location">|</span>
{{::rec.time | formatFromNow}}
</span>
</h4>
<span ng-if="rec.picturesCount > 1"
class="badge badge-balanced badge-picture-count">{{::rec.picturesCount}}&nbsp;<i class="icon ion-camera"></i></span>
<h2 class="badge badge-price badge-calm" ng-if="rec.price"
ng-bind-html=":rebind:rec.price|formatAmount:{currency: rec.currency}">
</h2>
</div>
</div>
<div class="row row-record hidden-xs hidden-sm">
<div class="row row-record">
<div class="col item-text-wrap item-thumbnail-left">
<img ng-src="{{::rec.thumbnail.src}}" ng-if="rec.thumbnail">
<i class="item-image ion-speakerphone" ng-if="!rec.thumbnail"></i>
......@@ -121,11 +98,16 @@
</div>
<div class="col col-20">
<h3 class="gray" ng-if="rec.category" ng-bind-html="rec.category.name"></h3>
<h2 class="badge badge-price badge-calm" ng-if="rec.price"
ng-bind-html=":rebind:rec.price|formatAmount:{currency: rec.currency}">
</h2>
<div class="badge badge-price badge-calm" ng-if="rec.price">
<i class="cion-market-offer"></i>
<span ng-bind-html=":rebind:rec.price|formatAmount:{currency: rec.currency}"></span>
</div>
<div class="badge badge-energized badge-price" ng-if="!search.type && !rec.price && rec.type=='need'">
<i class="cion-market-need"></i>
{{'MARKET.TYPE.'+rec.type|upper|translate}}
</div>
</div>
<div class="col">
<div class="col hidden-sm hidden-xs">
<h3 class="gray text-wrap" ng-bind-html="rec.description | truncText:500" ng-if="rec.description"></h3>
</div>
</div>
......
<!-- Menu user profile -->
<ng-if ng-if="enable && extensionPoint === 'menu-profile-user'">
<h5>
<a ng-if="login" class="light"
ng-click="showUserProfile()" menu-close>
{{'MENU.USER_PROFILE' | translate}}&nbsp;<i class="ion-arrow-right-b"></i>
</a>
</h5>
</ng-if>
<!-- Main section -->
<ng-if ng-if="enable && extensionPoint === 'nav-buttons-right'">
......
<ion-item id="helptip-currency-blockchain"
class="item-icon-left">
<i class="icon ion-clock"></i>
<span translate>CURRENCY.VIEW.TIME</span>
<span class="item-note dark">{{medianTime | formatDate}}</span>
</ion-item>
<ion-item class="item-icon-left">
<i class="icon ion-lock-combination"></i>
<span translate>CURRENCY.VIEW.POW_MIN</span>
<span class="badge badge-stable">{{difficulty | formatInteger}}</span>
</ion-item>
<ng-include ng-controller="NetworkViewCtrl" src="'templates/network/tabs/view_nodes.html'" ></ng-include>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment