From b6402203ba3cf0a8a6f8293ec4d8c6bcd5d2ea4b Mon Sep 17 00:00:00 2001 From: Lucas Silvestre Date: Thu, 13 Sep 2018 10:41:08 +0200 Subject: [PATCH 01/58] Copy less-more service to create pagination service --- src/services/pagination.js | 184 +++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 src/services/pagination.js diff --git a/src/services/pagination.js b/src/services/pagination.js new file mode 100644 index 000000000..2bb36c8e7 --- /dev/null +++ b/src/services/pagination.js @@ -0,0 +1,184 @@ +/* + * LiskHQ/lisk-explorer + * Copyright © 2018 Lisk Foundation + * + * See the LICENSE file at the top-level directory of this distribution + * for licensing information. + * + * Unless otherwise agreed in a custom licensing agreement with the Lisk Foundation, + * no part of this software, including this file, may be copied, modified, + * propagated, or distributed except according to the terms contained in the + * LICENSE file. + * + * Removal or modification of this copyright notice is prohibited. + * + */ +import angular from 'angular'; +import AppServices from './services.module'; + +const Pagination = function ($http, $q, params) { + this.$http = $http; + this.$q = $q; + + this.url = params.url || ''; + this.parent = params.parent || 'parent'; + this.key = params.key || ''; + this.offset = Number(params.offset) || 0; + this.maximum = Number(params.maximum) || 2000; + this.limit = Number(params.limit) || 50; + + ['url', 'parent', 'key', 'offset', 'maximum', 'limit'].forEach((key) => { + delete params[key]; + }); + + this.params = params; + this.results = []; + this.splice = 0; + this.loading = true; + this.hasNext = false; + this.hasPrev = false; +}; + +Pagination.prototype.disable = function () { + this.hasNext = false; + this.hasPrev = false; +}; + +Pagination.prototype.disabled = function () { + return !this.hasNext && !this.hasPrev; +}; + +Pagination.prototype.getData = function (offset, limit, cb) { + const params = Object.assign({}, { offset, limit }, this.params); + this.disable(); + this.loading = true; + this.$http.get(this.url, { + params, + }).then((resp) => { + if (resp.data.success && angular.isArray(resp.data[this.key])) { + cb(resp.data[this.key]); + } else { + cb(null); + } + }).catch(() => { + cb(null); + }); +}; + +Pagination.prototype.anyMore = function (length) { + return (this.limit <= 1 && (this.limit % length) === 1) || + (length > 1 && this.limit >= 1 && (length % this.limit) === 1); +}; + +Pagination.prototype.spliceData = function (data) { + if (this.anyMore(angular.isArray(data) ? data.length : 0)) { + this.hasNext = true; + data.splice(-1, 1); + } else { + this.hasNext = false; + } +}; + +Pagination.prototype.concatNoDuplicates = function (data) { + if (this.key === 'transactions') { + data.forEach((transaction) => { + const pos = this.results.map(e => e.id).indexOf(transaction.id); + if (pos < 0) { + this.results.push(transaction); + } + }); + } else { + this.results = this.results.concat(data); + } +}; + +Pagination.prototype.acceptData = function (data) { + if (!angular.isArray(data)) { data = []; } + + this.spliceData(data); + + if (this.results.length > 0) { + this.concatNoDuplicates(data); + } else { + this.results = data; + } + + if ((this.results.length + this.limit) > this.maximum) { + this.hasNext = false; + } + + this.hasPrev = this.anyLess(this.results.length); + this.loading = false; + this.nextOffset(); +}; + +Pagination.prototype.loadData = function () { + this.getData(this.offset, (this.limit + 1), + (data) => { + this.acceptData(data); + }); +}; + +Pagination.prototype.loadMore = function () { + this.getData(this.offset, (this.limit + 1), + (data) => { + this.acceptData(data); + }); +}; + +Pagination.prototype.reloadMore = function () { + const maxOffset = (this.offset + this.limit); + const promises = []; + const self = this; + + self.offset = 0; + self.results = []; + + for (let o = 0; o < maxOffset; o += self.limit) { + const params = angular.extend({ offset: o, limit: self.limit + 1 }, self.params); + promises.push(self.$http.get(self.url, { params })); + } + + self.$q.all(promises).then((responses) => { + angular.forEach(responses, function (resp) { + if (resp.data.success && angular.isArray(resp.data[this.key])) { + self.acceptData(resp.data[self.key]); + } else { + throw new Error('Pagination failed to reload results on change'); + } + }); + }); +}; + +Pagination.prototype.nextOffset = function () { + return this.offset += this.limit; +}; + +Pagination.prototype.prevOffset = function () { + return this.offset -= this.limit; +}; + +Pagination.prototype.anyLess = function (length) { + if (length > this.limit) { + const mod = length % this.limit; + this.splice = (mod === 0) ? this.limit : mod; + return true; + } + this.splice = 0; + return false; +}; + +Pagination.prototype.loadLess = function () { + this.hasPrev = false; + this.hasNext = true; + if (angular.isArray(this.results)) { + this.results.splice(-this.splice, this.splice); + this.hasPrev = this.anyLess(this.results.length); + } + this.prevOffset(); +}; + +AppServices.factory('pagination', + ($http, $q) => params => new Pagination($http, $q, params)); + +export default Pagination; From 1757eb62245c2a387d84e8b437f51b9211d28f7f Mon Sep 17 00:00:00 2001 From: Lucas Silvestre Date: Thu, 13 Sep 2018 12:17:06 +0200 Subject: [PATCH 02/58] Implement load next/load prev --- src/services/all-txs.js | 21 +-------- src/services/pagination.js | 47 ++++++------------- .../transactions-list/transactions-list.html | 6 +-- 3 files changed, 20 insertions(+), 54 deletions(-) diff --git a/src/services/all-txs.js b/src/services/all-txs.js index 869ea23ba..221ce14be 100644 --- a/src/services/all-txs.js +++ b/src/services/all-txs.js @@ -14,7 +14,7 @@ * */ import AppServices from './services.module'; -import LessMore from './less-more'; +import Pagination from './pagination'; AppServices.factory('allTxs', ($http, $q) => (data) => { @@ -23,22 +23,5 @@ AppServices.factory('allTxs', key: 'transactions', }); - const lessMore = new LessMore($http, $q, params); - - lessMore.loadMore = function () { - this.getData(0, 1, (response) => { - let changed = false; - - if (this.results[0] && response[0]) { - changed = (this.results[0].id !== response[0].id); - } - if (changed) { - this.reloadMore(); - } else { - LessMore.prototype.loadMore.call(this); - } - }); - }; - - return lessMore; + return new Pagination($http, $q, params); }); diff --git a/src/services/pagination.js b/src/services/pagination.js index 2bb36c8e7..4dd0e9ad5 100644 --- a/src/services/pagination.js +++ b/src/services/pagination.js @@ -24,10 +24,9 @@ const Pagination = function ($http, $q, params) { this.parent = params.parent || 'parent'; this.key = params.key || ''; this.offset = Number(params.offset) || 0; - this.maximum = Number(params.maximum) || 2000; this.limit = Number(params.limit) || 50; - ['url', 'parent', 'key', 'offset', 'maximum', 'limit'].forEach((key) => { + ['url', 'parent', 'key', 'offset', 'limit'].forEach((key) => { delete params[key]; }); @@ -97,19 +96,10 @@ Pagination.prototype.acceptData = function (data) { this.spliceData(data); - if (this.results.length > 0) { - this.concatNoDuplicates(data); - } else { - this.results = data; - } - - if ((this.results.length + this.limit) > this.maximum) { - this.hasNext = false; - } + this.results = data; - this.hasPrev = this.anyLess(this.results.length); + this.hasPrev = this.anyLess(); this.loading = false; - this.nextOffset(); }; Pagination.prototype.loadData = function () { @@ -119,11 +109,20 @@ Pagination.prototype.loadData = function () { }); }; -Pagination.prototype.loadMore = function () { +Pagination.prototype.loadNext = function () { this.getData(this.offset, (this.limit + 1), (data) => { this.acceptData(data); }); + this.nextOffset(); +}; + +Pagination.prototype.loadPrev = function () { + this.getData(this.offset, (this.limit + 1), + (data) => { + this.acceptData(data); + }); + this.prevOffset(); }; Pagination.prototype.reloadMore = function () { @@ -158,24 +157,8 @@ Pagination.prototype.prevOffset = function () { return this.offset -= this.limit; }; -Pagination.prototype.anyLess = function (length) { - if (length > this.limit) { - const mod = length % this.limit; - this.splice = (mod === 0) ? this.limit : mod; - return true; - } - this.splice = 0; - return false; -}; - -Pagination.prototype.loadLess = function () { - this.hasPrev = false; - this.hasNext = true; - if (angular.isArray(this.results)) { - this.results.splice(-this.splice, this.splice); - this.hasPrev = this.anyLess(this.results.length); - } - this.prevOffset(); +Pagination.prototype.anyLess = function () { + return this.offset > 0; }; AppServices.factory('pagination', diff --git a/src/shared/transactions-list/transactions-list.html b/src/shared/transactions-list/transactions-list.html index 134d85955..c47c9af4b 100644 --- a/src/shared/transactions-list/transactions-list.html +++ b/src/shared/transactions-list/transactions-list.html @@ -67,9 +67,9 @@

No transactions

-
+
- - + +
From c42e8ad446ddb8bec10b924f25343d3b5f9a6fe5 Mon Sep 17 00:00:00 2001 From: Lucas Silvestre Date: Thu, 13 Sep 2018 14:21:28 +0200 Subject: [PATCH 03/58] Improve pagination --- src/services/pagination.js | 46 +++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/src/services/pagination.js b/src/services/pagination.js index 4dd0e9ad5..ad3d1c993 100644 --- a/src/services/pagination.js +++ b/src/services/pagination.js @@ -24,7 +24,9 @@ const Pagination = function ($http, $q, params) { this.parent = params.parent || 'parent'; this.key = params.key || ''; this.offset = Number(params.offset) || 0; + this.currentPage = Number(params.currentPage) || 1; this.limit = Number(params.limit) || 50; + this.count = Number(params.count) || 0; ['url', 'parent', 'key', 'offset', 'limit'].forEach((key) => { delete params[key]; @@ -51,10 +53,9 @@ Pagination.prototype.getData = function (offset, limit, cb) { const params = Object.assign({}, { offset, limit }, this.params); this.disable(); this.loading = true; - this.$http.get(this.url, { - params, - }).then((resp) => { + this.$http.get(this.url, { params }).then((resp) => { if (resp.data.success && angular.isArray(resp.data[this.key])) { + this.setNextPrev(); cb(resp.data[this.key]); } else { cb(null); @@ -64,6 +65,11 @@ Pagination.prototype.getData = function (offset, limit, cb) { }); }; +Pagination.prototype.setNextPrev = function () { + this.hasNext = this.currentPage < (this.count / this.limit); + this.hasPrev = this.currentPage > 1; +}; + Pagination.prototype.anyMore = function (length) { return (this.limit <= 1 && (this.limit % length) === 1) || (length > 1 && this.limit >= 1 && (length % this.limit) === 1); @@ -91,38 +97,26 @@ Pagination.prototype.concatNoDuplicates = function (data) { } }; -Pagination.prototype.acceptData = function (data) { - if (!angular.isArray(data)) { data = []; } - - this.spliceData(data); - - this.results = data; - - this.hasPrev = this.anyLess(); - this.loading = false; -}; - Pagination.prototype.loadData = function () { - this.getData(this.offset, (this.limit + 1), + this.results = []; + this.getData(this.offset, this.limit, (data) => { - this.acceptData(data); + if (!angular.isArray(data)) { data = []; } + this.results = data; + this.loading = false; }); }; Pagination.prototype.loadNext = function () { - this.getData(this.offset, (this.limit + 1), - (data) => { - this.acceptData(data); - }); this.nextOffset(); + this.loadData(); + this.setNextPrev(); }; Pagination.prototype.loadPrev = function () { - this.getData(this.offset, (this.limit + 1), - (data) => { - this.acceptData(data); - }); this.prevOffset(); + this.loadData(); + this.setNextPrev(); }; Pagination.prototype.reloadMore = function () { @@ -134,7 +128,7 @@ Pagination.prototype.reloadMore = function () { self.results = []; for (let o = 0; o < maxOffset; o += self.limit) { - const params = angular.extend({ offset: o, limit: self.limit + 1 }, self.params); + const params = angular.extend({ offset: o, limit: self.limit }, self.params); promises.push(self.$http.get(self.url, { params })); } @@ -150,10 +144,12 @@ Pagination.prototype.reloadMore = function () { }; Pagination.prototype.nextOffset = function () { + this.currentPage += 1; return this.offset += this.limit; }; Pagination.prototype.prevOffset = function () { + this.currentPage -= 1; return this.offset -= this.limit; }; From 023316054d2aa188d347c20220cf740577422319 Mon Sep 17 00:00:00 2001 From: Lucas Silvestre Date: Thu, 13 Sep 2018 16:29:42 +0200 Subject: [PATCH 04/58] Remove count param as Explorer API does not provide it --- src/services/pagination.js | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/services/pagination.js b/src/services/pagination.js index ad3d1c993..94ca3b830 100644 --- a/src/services/pagination.js +++ b/src/services/pagination.js @@ -26,7 +26,6 @@ const Pagination = function ($http, $q, params) { this.offset = Number(params.offset) || 0; this.currentPage = Number(params.currentPage) || 1; this.limit = Number(params.limit) || 50; - this.count = Number(params.count) || 0; ['url', 'parent', 'key', 'offset', 'limit'].forEach((key) => { delete params[key]; @@ -55,7 +54,6 @@ Pagination.prototype.getData = function (offset, limit, cb) { this.loading = true; this.$http.get(this.url, { params }).then((resp) => { if (resp.data.success && angular.isArray(resp.data[this.key])) { - this.setNextPrev(); cb(resp.data[this.key]); } else { cb(null); @@ -65,17 +63,14 @@ Pagination.prototype.getData = function (offset, limit, cb) { }); }; -Pagination.prototype.setNextPrev = function () { - this.hasNext = this.currentPage < (this.count / this.limit); - this.hasPrev = this.currentPage > 1; -}; - Pagination.prototype.anyMore = function (length) { return (this.limit <= 1 && (this.limit % length) === 1) || (length > 1 && this.limit >= 1 && (length % this.limit) === 1); }; Pagination.prototype.spliceData = function (data) { + this.hasPrev = this.currentPage > 1; + if (this.anyMore(angular.isArray(data) ? data.length : 0)) { this.hasNext = true; data.splice(-1, 1); @@ -99,9 +94,10 @@ Pagination.prototype.concatNoDuplicates = function (data) { Pagination.prototype.loadData = function () { this.results = []; - this.getData(this.offset, this.limit, + this.getData(this.offset, (this.limit + 1), (data) => { if (!angular.isArray(data)) { data = []; } + this.spliceData(data); this.results = data; this.loading = false; }); @@ -110,13 +106,11 @@ Pagination.prototype.loadData = function () { Pagination.prototype.loadNext = function () { this.nextOffset(); this.loadData(); - this.setNextPrev(); }; Pagination.prototype.loadPrev = function () { this.prevOffset(); this.loadData(); - this.setNextPrev(); }; Pagination.prototype.reloadMore = function () { From f24049e0c972f888b270e63cf41fee69ddc3cc38 Mon Sep 17 00:00:00 2001 From: Lucas Silvestre Date: Thu, 13 Sep 2018 16:56:26 +0200 Subject: [PATCH 05/58] Remove unused code --- src/services/pagination.js | 57 +++++--------------------------------- 1 file changed, 7 insertions(+), 50 deletions(-) diff --git a/src/services/pagination.js b/src/services/pagination.js index 94ca3b830..2eecfa2c5 100644 --- a/src/services/pagination.js +++ b/src/services/pagination.js @@ -33,7 +33,6 @@ const Pagination = function ($http, $q, params) { this.params = params; this.results = []; - this.splice = 0; this.loading = true; this.hasNext = false; this.hasPrev = false; @@ -49,7 +48,7 @@ Pagination.prototype.disabled = function () { }; Pagination.prototype.getData = function (offset, limit, cb) { - const params = Object.assign({}, { offset, limit }, this.params); + const params = Object.assign({ offset, limit }, this.params); this.disable(); this.loading = true; this.$http.get(this.url, { params }).then((resp) => { @@ -79,28 +78,14 @@ Pagination.prototype.spliceData = function (data) { } }; -Pagination.prototype.concatNoDuplicates = function (data) { - if (this.key === 'transactions') { - data.forEach((transaction) => { - const pos = this.results.map(e => e.id).indexOf(transaction.id); - if (pos < 0) { - this.results.push(transaction); - } - }); - } else { - this.results = this.results.concat(data); - } -}; - Pagination.prototype.loadData = function () { this.results = []; - this.getData(this.offset, (this.limit + 1), - (data) => { - if (!angular.isArray(data)) { data = []; } - this.spliceData(data); - this.results = data; - this.loading = false; - }); + this.getData(this.offset, (this.limit + 1), (data) => { + if (!angular.isArray(data)) { data = []; } + this.spliceData(data); + this.results = data; + this.loading = false; + }); }; Pagination.prototype.loadNext = function () { @@ -113,30 +98,6 @@ Pagination.prototype.loadPrev = function () { this.loadData(); }; -Pagination.prototype.reloadMore = function () { - const maxOffset = (this.offset + this.limit); - const promises = []; - const self = this; - - self.offset = 0; - self.results = []; - - for (let o = 0; o < maxOffset; o += self.limit) { - const params = angular.extend({ offset: o, limit: self.limit }, self.params); - promises.push(self.$http.get(self.url, { params })); - } - - self.$q.all(promises).then((responses) => { - angular.forEach(responses, function (resp) { - if (resp.data.success && angular.isArray(resp.data[this.key])) { - self.acceptData(resp.data[self.key]); - } else { - throw new Error('Pagination failed to reload results on change'); - } - }); - }); -}; - Pagination.prototype.nextOffset = function () { this.currentPage += 1; return this.offset += this.limit; @@ -147,10 +108,6 @@ Pagination.prototype.prevOffset = function () { return this.offset -= this.limit; }; -Pagination.prototype.anyLess = function () { - return this.offset > 0; -}; - AppServices.factory('pagination', ($http, $q) => params => new Pagination($http, $q, params)); From 0d1c500d332447db50343b6080ec501633a2d85f Mon Sep 17 00:00:00 2001 From: Lucas Silvestre Date: Thu, 13 Sep 2018 17:18:29 +0200 Subject: [PATCH 06/58] Add pagination to txs list in account page --- src/services/address-txs.js | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/src/services/address-txs.js b/src/services/address-txs.js index 22e20a376..a40e25360 100644 --- a/src/services/address-txs.js +++ b/src/services/address-txs.js @@ -14,7 +14,7 @@ * */ import AppServices from './services.module'; -import LessMore from './less-more'; +import Pagination from './pagination'; AppServices.factory('addressTxs', ($http, $q) => (data) => { @@ -24,22 +24,5 @@ AppServices.factory('addressTxs', key: 'transactions', }); - const lessMore = new LessMore($http, $q, params); - - lessMore.loadMore = function () { - this.getData(0, 1, (response) => { - let changed = false; - - if (this.results[0] && response[0]) { - changed = (this.results[0].id !== response[0].id); - } - if (changed) { - this.reloadMore(); - } else { - LessMore.prototype.loadMore.call(this); - } - }); - }; - - return lessMore; + return new Pagination($http, $q, params); }); From 3ca83fbbf0e7ee16b8cadd2d6bcc7848e03382f0 Mon Sep 17 00:00:00 2001 From: Michal Tuleja Date: Mon, 12 Nov 2018 17:03:57 +0100 Subject: [PATCH 07/58] Navigation dropdown update --- .../navigation-dropdown.html | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/src/components/navigation-dropdown/navigation-dropdown.html b/src/components/navigation-dropdown/navigation-dropdown.html index bab2318b6..70eae739f 100644 --- a/src/components/navigation-dropdown/navigation-dropdown.html +++ b/src/components/navigation-dropdown/navigation-dropdown.html @@ -18,20 +18,14 @@ From 26321cef67631c0042b89eef3f209efaa44ba672 Mon Sep 17 00:00:00 2001 From: Michal Tuleja Date: Mon, 12 Nov 2018 17:04:15 +0100 Subject: [PATCH 08/58] See all transactions/blocks links --- src/components/home/home.html | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/components/home/home.html b/src/components/home/home.html index 6c39bcf3a..8786bd162 100644 --- a/src/components/home/home.html +++ b/src/components/home/home.html @@ -21,7 +21,14 @@
-

Latest Transactions

+
+
+

Latest Transactions

+
+ +
@@ -74,14 +81,19 @@

Latest Transactions

- + + +
+
+

Latest Blocks

+
+
-

Latest Blocks

@@ -123,11 +135,6 @@

Latest Blocks

-
- -
From d08bd46d02ee31b0301679a6e506ff60872223eb Mon Sep 17 00:00:00 2001 From: Michal Tuleja Date: Mon, 19 Nov 2018 18:50:01 +0100 Subject: [PATCH 09/58] Version bump --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14b46a83c..4382044cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "lisk-explorer", - "version": "2.1.6", + "version": "2.2.0-alpha", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index db431a244..d8f5bd610 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lisk-explorer", - "version": "2.1.6", + "version": "2.2.0-alpha", "description": "Lisk blockchain explorer", "keywords": [ "lisk", From f089f0918975c514c74aef4deaacea0361fda6ed Mon Sep 17 00:00:00 2001 From: Michal Tuleja Date: Mon, 19 Nov 2018 18:52:39 +0100 Subject: [PATCH 10/58] Set pagination default to 25 --- src/services/pagination.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/pagination.js b/src/services/pagination.js index 2eecfa2c5..ad58e0874 100644 --- a/src/services/pagination.js +++ b/src/services/pagination.js @@ -25,7 +25,7 @@ const Pagination = function ($http, $q, params) { this.key = params.key || ''; this.offset = Number(params.offset) || 0; this.currentPage = Number(params.currentPage) || 1; - this.limit = Number(params.limit) || 50; + this.limit = Number(params.limit) || 25; ['url', 'parent', 'key', 'offset', 'limit'].forEach((key) => { delete params[key]; From e8bf18877cb931cb4d836bf4125353108a269b2b Mon Sep 17 00:00:00 2001 From: Michal Tuleja Date: Mon, 19 Nov 2018 18:54:19 +0100 Subject: [PATCH 11/58] New UI --- .../activity-graph/activity-graph.html | 1 - src/components/address/address.html | 36 ++--- src/components/blocks/blocks.html | 25 ++-- src/components/delegate/delegate.html | 140 ++++++++++-------- src/components/footer/footer.html | 20 --- src/components/header/header.html | 1 + src/components/home/home.html | 135 +++-------------- .../navigation-dropdown.html | 6 +- .../rounding-selector/rounding-selector.html | 7 +- src/components/transactions/transactions.html | 5 +- .../transactions-filter.html | 2 +- .../transactions-list/transactions-list.html | 20 ++- src/shared/votes/votes.html | 7 +- 13 files changed, 161 insertions(+), 244 deletions(-) diff --git a/src/components/activity-graph/activity-graph.html b/src/components/activity-graph/activity-graph.html index eef3561f5..17d6ac80d 100644 --- a/src/components/activity-graph/activity-graph.html +++ b/src/components/activity-graph/activity-graph.html @@ -16,7 +16,6 @@ */ -->
-

Activity Graph

The following is a live graphical visualisation of the lisk blockchain. Upon initialization only the latest block diff --git a/src/components/address/address.html b/src/components/address/address.html index 66dfd3f45..bf39e90ee 100644 --- a/src/components/address/address.html +++ b/src/components/address/address.html @@ -16,8 +16,18 @@ */ -->

+

+ Address summary  + + + + + + +

+
diff --git a/src/components/blocks/blocks.html b/src/components/blocks/blocks.html index a555e3b8b..c66820e01 100644 --- a/src/components/blocks/blocks.html +++ b/src/components/blocks/blocks.html @@ -18,9 +18,6 @@
-
@@ -61,13 +58,21 @@

Blocks {{vm.blocks[0].height}} U

-
-
-
- Previous - Next -
-
+
+ +

No blocks yet.

diff --git a/src/components/delegate/delegate.html b/src/components/delegate/delegate.html index 32d6d308e..2500f23f3 100644 --- a/src/components/delegate/delegate.html +++ b/src/components/delegate/delegate.html @@ -16,75 +16,89 @@ */ -->
+

Delegate summary

+
-

Delegate

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Name - {{vm.address.delegate.username}} -
Address - {{vm.address.address}} -
Uptime{{vm.address.delegate.productivity || 0.00}}%
Rank / Status{{vm.address.delegate.rate}} / {{(vm.address.delegate.rate <= 101) ? 'Active' : 'Standby'}}
Approval{{vm.address.delegate.approval}}%
Vote weight{{vm.address.delegate.vote || 0 | currency:$root.currency:$root.decimalPlaces}} {{$root.currency.symbol}}
Forged{{vm.address.delegate.forged || 0 | currency:$root.currency:$root.decimalPlaces}} {{$root.currency.symbol}}
Blocks{{vm.address.delegate.producedblocks}} ({{vm.address.delegate.missedblocks}} missed)
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name + {{vm.address.delegate.username}} +
Address + {{vm.address.address}} +
Uptime{{vm.address.delegate.productivity || 0.00}}%
Rank / Status{{vm.address.delegate.rate}} / {{(vm.address.delegate.rate <= 101) ? 'Active' : 'Standby'}}
Approval{{vm.address.delegate.approval}}%
Vote weight{{vm.address.delegate.vote || 0 | currency:$root.currency:$root.decimalPlaces}} {{$root.currency.symbol}}
Forged{{vm.address.delegate.forged || 0 | currency:$root.currency:$root.decimalPlaces}} {{$root.currency.symbol}}
Blocks{{vm.address.delegate.producedblocks}} ({{vm.address.delegate.missedblocks}} missed)
+
-
- +
+ + + +

Voters {{vm.address.votersCount}}

+
-
-

- - Voters {{vm.address.votersCount}} -

-
-
- - - {{voter | votes}} - - - - Load more... - - -
+
+
+
+ + + {{voter | votes}} + + + + Load more... + + +
+
+
+ + + + +

Votes {{vm.address.votes.length}}

+
+ + +
+
diff --git a/src/components/footer/footer.html b/src/components/footer/footer.html index ae214c326..e73ded7e3 100644 --- a/src/components/footer/footer.html +++ b/src/components/footer/footer.html @@ -22,26 +22,6 @@ Website Blog Chat -
-
-
-
-
-

Latest Transactions

-
- -
+ + + + +

Transactions

+
-
- - - - - - - - - - - - - - - - - - - - - - - - -
- - Sender - - - Recipient - Amount
Waiting for transactions...
- - - {{tx | txSender | middleEllipsis:10}} - - - - - {{tx | txRecipient | middleEllipsis:10}} - - - - {{tx | txRecipient | middleEllipsis:12}} - - - - {{tx.amount | currency:$root.currency:$root.decimalPlaces}} {{$root.currency.symbol}} -
+ + -
+ + +

Blocks

+
+ +
-
-
-

Latest Blocks

-
- -
+ + +

Activity

+
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Height - - - Txs. - Generated byForged
Waiting for blocks...
- - {{b.height}} - {{b.transactionsCount}} - - {{b.delegate.username || b.generator | middleEllipsis:10}} - {{b.totalForged | currencyFee:$root.currency:$root.decimalPlaces}} {{$root.currency.symbol}}
-
-
-
+ + +
diff --git a/src/components/navigation-dropdown/navigation-dropdown.html b/src/components/navigation-dropdown/navigation-dropdown.html index 70eae739f..001bb21b5 100644 --- a/src/components/navigation-dropdown/navigation-dropdown.html +++ b/src/components/navigation-dropdown/navigation-dropdown.html @@ -18,14 +18,14 @@ diff --git a/src/components/rounding-selector/rounding-selector.html b/src/components/rounding-selector/rounding-selector.html index 511013e6d..a48a9ba6d 100644 --- a/src/components/rounding-selector/rounding-selector.html +++ b/src/components/rounding-selector/rounding-selector.html @@ -15,8 +15,11 @@ * */ --> -