diff --git a/lg/willMembers_en.txt b/lg/willMembers_en.txt
index 50627c28ea5fb1f62e4d482c137fa56efdddde36..47d0f60971b02dd7ffdae69dddcd133c1911a52f 100755
--- a/lg/willMembers_en.txt
+++ b/lg/willMembers_en.txt
@@ -42,6 +42,7 @@ MEMBERSHIP_ASKED Membership asked
YES yes
NO no
QUALITY_CERTIFIERS quality certifiers
+DISTANCE Distance
CERTIFIERS_COUNT certifiers count
QUALITY quality
SIG_PERIOD_OK available
diff --git a/lg/willMembers_fr.txt b/lg/willMembers_fr.txt
index 908eed32cd6d584a004921a979b1d2a0832cb8bc..589ccb14926c58e66b690a8386e429ddb250cbac 100755
--- a/lg/willMembers_fr.txt
+++ b/lg/willMembers_fr.txt
@@ -42,6 +42,7 @@ MEMBERSHIP_ASKED Adhésion demandée
YES oui
NO non
QUALITY_CERTIFIERS qualité certificateurs
+DISTANCE Distance
CERTIFIERS_COUNT Nombre de certificateurs
QUALITY qualité
SIG_PERIOD_OK disponible
diff --git a/lib/constants.js b/lib/constants.js
new file mode 100755
index 0000000000000000000000000000000000000000..9f2a70fe3a6f4964f91aaa268249d394e3894801
--- /dev/null
+++ b/lib/constants.js
@@ -0,0 +1,10 @@
+"use strict";
+
+module.exports = {
+ USE_WOTB6: false,
+ MIN_WILLMEMBERS_UPDATE_FREQ: 180,
+ MIN_MEMBERS_UPDATE_FREQ: 180,
+ STEP_COUNT_MIN: 4,
+ STEP_COUNT_MAX: 150,
+ MIN_CACHE_UPDATE_FREQ: 150 // 2 min 30 (150 sec)
+};
\ No newline at end of file
diff --git a/lib/updateCache.js b/lib/updateCache.js
index 96e2370c2c73c0143a21dc1d80b5774127054b1b..088ec1c2091de232470b03b6fa5d35d75dc1b780 100755
--- a/lib/updateCache.js
+++ b/lib/updateCache.js
@@ -2,10 +2,7 @@
const co = require('co');
//const sqlite3 = require('sqlite3').verbose();
-
-const STEP_COUNT_MIN = 4;
-const STEP_COUNT_MAX = 150;
-const MIN_CACHE_UPDATE_FREQ = 150; // 2 min 30 (150 sec)
+const constants = require(__dirname + '/constants')
/**
* updateCache
@@ -20,7 +17,7 @@ module.exports = (req, res, next) => co(function *() {
let updateCache = false;
// Cacluler s'il faut mettre à jour le cache ou pas
- updateCache = (Math.floor(Date.now() / 1000) > (cache.lastUptime + MIN_CACHE_UPDATE_FREQ));
+ updateCache = (Math.floor(Date.now() / 1000) > (cache.lastUptime + constants.MIN_CACHE_UPDATE_FREQ));
// Si le cache membersCount est dévérouillé, le vérouiller, sinon ne pas réinitialiser le cache
if (updateCache && !cache.lockMembersCount)
@@ -148,18 +145,18 @@ module.exports = (req, res, next) => co(function *() {
{ cache.beginBlock = yield duniterServer.dal.peerDAL.query('SELECT `medianTime`,`number` FROM block WHERE `fork`=0 AND `number`=0 LIMIT 1 '); }
else if (req.query.begin > cache.endBlock[0].number)
{
- let beginTime = cache.endBlock[0].medianTime-(parseInt(cache.step)*unitTime*STEP_COUNT_MIN);
+ let beginTime = cache.endBlock[0].medianTime-(parseInt(cache.step)*unitTime*constants.STEP_COUNT_MIN);
cache.beginBlock = yield duniterServer.dal.peerDAL.query('SELECT `medianTime`,`number` FROM block WHERE `fork`=0 AND `medianTime` >= \''+beginTime+'\' ORDER BY `medianTime` ASC LIMIT 1 ');
}
else { cache.beginBlock = yield duniterServer.dal.peerDAL.query('SELECT `medianTime`,`number` FROM block WHERE `fork`=0 AND `number`='+req.query.begin+' LIMIT 1 '); }
// Apply STEP_COUNT_MAX and calculate stepTime
- if ( Math.ceil((cache.endBlock[0].medianTime-cache.beginBlock[0].medianTime)/(cache.step*unitTime)) > STEP_COUNT_MAX )
- { cache.step = Math.ceil((cache.endBlock[0].medianTime-cache.beginBlock[0].medianTime)/(STEP_COUNT_MAX*unitTime)); }
+ if ( Math.ceil((cache.endBlock[0].medianTime-cache.beginBlock[0].medianTime)/(cache.step*unitTime)) > constants.STEP_COUNT_MAX )
+ { cache.step = Math.ceil((cache.endBlock[0].medianTime-cache.beginBlock[0].medianTime)/(constants.STEP_COUNT_MAX*unitTime)); }
cache.stepTime = parseInt(cache.step)*unitTime;
// if new blocks and MIN_CACHE_UPDATE_FREQ pass, update cache
- if ( parseInt(cache.endBlock[0].number) >= cache.currentBlockNumber && Math.floor(Date.now() / 1000) > (cache.lastUptime + MIN_CACHE_UPDATE_FREQ))
+ if ( parseInt(cache.endBlock[0].number) >= cache.currentBlockNumber && Math.floor(Date.now() / 1000) > (cache.lastUptime + constants.MIN_CACHE_UPDATE_FREQ))
{
// let previousCacheTime = (cache.blockchain.length > 0) ? cache.blockchain[cache.blockchain.length-1].medianTime:0;
var newBlocks = yield duniterServer.dal.peerDAL.query(
diff --git a/routes/blockCount.js b/routes/blockCount.js
index 5272c24f2892103ba992f615a2121384a0bbc8a6..a03a86fc671f706575c17240cab58b7aeabbe329 100755
--- a/routes/blockCount.js
+++ b/routes/blockCount.js
@@ -29,9 +29,9 @@ module.exports = (req, res, next) => co(function *() {
let newHashPreviousCurrentblock = yield duniterServer.dal.peerDAL.query('SELECT `hash` FROM block WHERE `fork`=0 AND `number` = '+(blockchain.length-1)+' LIMIT 1');
if ( hashPreviousCurrentblock != newHashPreviousCurrentblock )
{
- blockchain.splice(0, blockchain.length);
- hashPreviousCurrentblock = 0;
- previousBlockchainTime = 0;
+ blockchain.splice(0, blockchain.length);
+ hashPreviousCurrentblock = 0;
+ previousBlockchainTime = 0;
}
}
diff --git a/routes/members.js b/routes/members.js
index bf7f698b2a73cb02f84155d5936221ced5d4327e..e23b09331d51c6fb62083d63d40202eba1c2008f 100755
--- a/routes/members.js
+++ b/routes/members.js
@@ -1,11 +1,12 @@
"use strict";
const co = require('co')
-const wotb = require('wotb')
-const timestampToDatetime = require(__dirname + '/../lib/timestampToDatetime')
+const constants = require(__dirname + '/../lib/constants')
+
+const wotb = (constants.USE_WOTB6) ? require('wotb'):null;
-const MIN_MEMBERS_UPDATE_FREQ = 180;
+const timestampToDatetime = require(__dirname + '/../lib/timestampToDatetime')
// Préserver les résultats en cache
var lockMembers = false;
@@ -69,10 +70,10 @@ module.exports = (req, res, next) => co(function *() {
var format = req.query.format || 'HTML'; // Valeur par défaut
// Alimenter wotb avec la toile actuelle
- const wotbInstance = wotb.newFileInstance(duniterServer.home + '/wotb.bin');
+ const wotbInstance = (constants.USE_WOTB6) ? wotb.newFileInstance(duniterServer.home + '/wotb.bin'):duniterServer.dal.wotb;
// Vérifier si le cache doit être Réinitialiser
- let reinitCache = (Math.floor(Date.now() / 1000) > (membersLastUptime + MIN_MEMBERS_UPDATE_FREQ));
+ let reinitCache = (Math.floor(Date.now() / 1000) > (membersLastUptime + constants.MIN_MEMBERS_UPDATE_FREQ));
// Si changement de conditions, alors forcer le rechargement du cache s'il n'est pas, vérouillé, sinon forcer les conditions à celles en mémoire
if (previousMode != mode || previousCentrality != centrality)
@@ -183,37 +184,52 @@ module.exports = (req, res, next) => co(function *() {
let tmpWot = wotbInstance.memCopy();
// Récupérer les informations détaillés de distance pour le membre courant
- let tmpWot1 = wotbInstance.memCopy();
- let detailedDistance = tmpWot.detailedDistance(membersList[m].wotb_id, dSen, conf.stepMax, conf.xpercent);
- membersNbSentriesUnreached[membersList[m].uid] = parseInt(detailedDistance.nbSentries)-parseInt(detailedDistance.nbSuccess);
-
- // Récupérer les informations détaillés de distance pour une nouvelle identité qui ne serait certifiée que par le membre courant (ce qui équivaut à récupérer les informations de distance pour le membre courant en décrémentant stepMax de 1)
- let detailedDistanceQualityExt = tmpWot.detailedDistance(membersList[m].wotb_id, dSen, conf.stepMax-1, conf.xpercent);
-
- // Calculer la qualité du membre courant
- membersQualityExt[membersList[m].uid] = ((detailedDistanceQualityExt.nbSuccess/detailedDistanceQualityExt.nbSentries)/conf.xpercent).toFixed(2);
- if (membersQualityExt[membersList[m].uid] >= 1.0)
+ let detailedDistance = null;
+ if (constants.USE_WOTB6)
{
- proportionMembersWithQualityUpper1++;
+ detailedDistance = tmpWot.detailedDistance(membersList[m].wotb_id, dSen, conf.stepMax, conf.xpercent);
}
-
- // Calculer la qualité du membre courant s'il n'y avait pas de référents (autrement di si tout les membres était référents)
- let membersQualityIfNoSentries = ((detailedDistanceQualityExt.nbReached/membersList.length)/conf.xpercent).toFixed(2);
- //console.log("membersQualityIfNoSentries[%s] = %s", membersList[m].uid, membersQualityIfNoSentries);
- if (membersQualityIfNoSentries >= 1.0)
+ else
{
- proportionMembersWithQualityUpper1IfNoSentries++;
+ detailedDistance = {
+ isOutdistanced: tmpWot.isOutdistanced(membersList[m].wotb_id, dSen, conf.stepMax, conf.xpercent)
+ };
}
- // Calculate meanSentriesReachedBySentriesInSingleExtCert, meanMembersReachedBySentriesInSingleExtCert, meanSentriesReachedByMembersInSingleExtCert and meanMembersReachedByMembersInSingleExtCert
- if (currentMemberIsSentry)
+
+ if (constants.USE_WOTB6)
{
- meanSentriesReachedBySentriesInSingleExtCert += parseFloat(((detailedDistanceQualityExt.nbSuccess/detailedDistanceQualityExt.nbSentries)*100).toFixed(2));
- meanMembersReachedBySentriesInSingleExtCert += parseFloat(((detailedDistanceQualityExt.nbReached/membersList.length)*100).toFixed(2));
- countSentries++;
+ // Calculate membersNbSentriesUnreached
+ membersNbSentriesUnreached[membersList[m].uid] = parseInt(detailedDistance.nbSentries)-parseInt(detailedDistance.nbSuccess);
+
+ // Récupérer les informations détaillés de distance pour une nouvelle identité qui ne serait certifiée que par le membre courant (ce qui équivaut à récupérer les informations de distance pour le membre courant en décrémentant stepMax de 1)
+ let detailedDistanceQualityExt = tmpWot.detailedDistance(membersList[m].wotb_id, dSen, conf.stepMax-1, conf.xpercent);
+
+ // Calculer la qualité du membre courant
+ membersQualityExt[membersList[m].uid] = ((detailedDistanceQualityExt.nbSuccess/detailedDistanceQualityExt.nbSentries)/conf.xpercent).toFixed(2);
+ if (membersQualityExt[membersList[m].uid] >= 1.0)
+ {
+ proportionMembersWithQualityUpper1++;
+ }
+
+ // Calculer la qualité du membre courant s'il n'y avait pas de référents (autrement di si tout les membres était référents)
+ let membersQualityIfNoSentries = ((detailedDistanceQualityExt.nbReached/membersList.length)/conf.xpercent).toFixed(2);
+ //console.log("membersQualityIfNoSentries[%s] = %s", membersList[m].uid, membersQualityIfNoSentries);
+ if (membersQualityIfNoSentries >= 1.0)
+ {
+ proportionMembersWithQualityUpper1IfNoSentries++;
+ }
+
+ // Calculate meanSentriesReachedBySentriesInSingleExtCert, meanMembersReachedBySentriesInSingleExtCert, meanSentriesReachedByMembersInSingleExtCert and meanMembersReachedByMembersInSingleExtCert
+ if (currentMemberIsSentry)
+ {
+ meanSentriesReachedBySentriesInSingleExtCert += parseFloat(((detailedDistanceQualityExt.nbSuccess/detailedDistanceQualityExt.nbSentries)*100).toFixed(2));
+ meanMembersReachedBySentriesInSingleExtCert += parseFloat(((detailedDistanceQualityExt.nbReached/membersList.length)*100).toFixed(2));
+ countSentries++;
+ }
+ meanSentriesReachedByMembersInSingleExtCert += parseFloat(((detailedDistanceQualityExt.nbSuccess/detailedDistanceQualityExt.nbSentries)*100).toFixed(2));
+ meanMembersReachedByMembersInSingleExtCert += parseFloat(((detailedDistanceQualityExt.nbReached/membersList.length)*100).toFixed(2));
}
- meanSentriesReachedByMembersInSingleExtCert += parseFloat(((detailedDistanceQualityExt.nbSuccess/detailedDistanceQualityExt.nbSentries)*100).toFixed(2));
- meanMembersReachedByMembersInSingleExtCert += parseFloat(((detailedDistanceQualityExt.nbReached/membersList.length)*100).toFixed(2));
// Nettoyer la wot temporaire
tmpWot.clear();
@@ -514,16 +530,23 @@ module.exports = (req, res, next) => co(function *() {
if (reinitCache)
{
- // Calculate mean Members/Sentries ReachedBy Members/Sentries InSingleExtCert
- if (countSentries > 0)
+ if (constants.USE_WOTB6)
{
- meanSentriesReachedBySentriesInSingleExtCert = parseFloat((meanSentriesReachedBySentriesInSingleExtCert/countSentries).toFixed(2));
- meanMembersReachedBySentriesInSingleExtCert = parseFloat((meanMembersReachedBySentriesInSingleExtCert/countSentries).toFixed(2));
- }
- if (membersList.length > 0)
- {
- meanSentriesReachedByMembersInSingleExtCert = parseFloat((meanSentriesReachedByMembersInSingleExtCert/membersList.length).toFixed(2));
- meanMembersReachedByMembersInSingleExtCert = parseFloat((meanMembersReachedByMembersInSingleExtCert/membersList.length).toFixed(2));
+ // Calculate mean Members/Sentries ReachedBy Members/Sentries InSingleExtCert
+ if (countSentries > 0)
+ {
+ meanSentriesReachedBySentriesInSingleExtCert = parseFloat((meanSentriesReachedBySentriesInSingleExtCert/countSentries).toFixed(2));
+ meanMembersReachedBySentriesInSingleExtCert = parseFloat((meanMembersReachedBySentriesInSingleExtCert/countSentries).toFixed(2));
+ }
+ if (membersList.length > 0)
+ {
+ meanSentriesReachedByMembersInSingleExtCert = parseFloat((meanSentriesReachedByMembersInSingleExtCert/membersList.length).toFixed(2));
+ meanMembersReachedByMembersInSingleExtCert = parseFloat((meanMembersReachedByMembersInSingleExtCert/membersList.length).toFixed(2));
+ }
+
+ //Calculate proportionMembersWithQualityUpper1 and proportionMembersWithQualityUpper1IfNoSentries
+ proportionMembersWithQualityUpper1 /= membersList.length;
+ proportionMembersWithQualityUpper1IfNoSentries /= membersList.length;
}
// recalculate meanCentrality and meanShortestsPathLength
@@ -536,11 +559,7 @@ module.exports = (req, res, next) => co(function *() {
meanCentrality /= membersCentrality.length;
meanShortestsPathLength /= nbShortestsPath;
}
-
- //Calculate proportionMembersWithQualityUpper1 and proportionMembersWithQualityUpper1IfNoSentries
- proportionMembersWithQualityUpper1 /= membersList.length;
- proportionMembersWithQualityUpper1IfNoSentries /= membersList.length;
-
+
// Dévérouiller le cache members
lockMembers = false;
}
@@ -557,6 +576,7 @@ module.exports = (req, res, next) => co(function *() {
res.locals = {
host: req.headers.host.toString(),
+ USE_WOTB6: constants.USE_WOTB6,
// get parameters
days, mode, sort_by, order,
pendingSigs, centrality,
diff --git a/routes/willMembers.js b/routes/willMembers.js
index 376b5f145a5b5b9d6c51c1f54654a90c64f9a00a..42857c873e4ac5ae14cfbf8e32d0eda0c8f2d218 100755
--- a/routes/willMembers.js
+++ b/routes/willMembers.js
@@ -2,11 +2,12 @@
const co = require('co')
const crypto = require('crypto')
-const wotb = require('wotb')
-const timestampToDatetime = require(__dirname + '/../lib/timestampToDatetime')
+const constants = require(__dirname + '/../lib/constants')
+
+const wotb = (constants.USE_WOTB6) ? require('wotb'):null;
-const MIN_WILLMEMBERS_UPDATE_FREQ = 180;
+const timestampToDatetime = require(__dirname + '/../lib/timestampToDatetime')
// Préserver les résultats en cache
var lockWillMembers = false;
@@ -56,12 +57,12 @@ module.exports = (req, res, next) => co(function *() {
// Calculer le timestamp limite à prendre en compte
let limitTimestamp = currentBlockchainTimestamp + (days*86400);
- // Alimenter wotb avec la toile de confiance actuelle
- const wotbInstance = wotb.newFileInstance(duniterServer.home + '/wotb.bin');
+ // Alimenter wotb avec la toile de confiance
+ const wotbInstance = (constants.USE_WOTB6) ? wotb.newFileInstance(duniterServer.home + '/wotb.bin'):duniterServer.dal.wotb;
// Vérifier si le cache doit être Réinitialiser
- let reinitCache = (Math.floor(Date.now() / 1000) > (willMembersLastUptime + MIN_WILLMEMBERS_UPDATE_FREQ));
+ let reinitCache = (Math.floor(Date.now() / 1000) > (willMembersLastUptime + constants.MIN_WILLMEMBERS_UPDATE_FREQ));
// Si le cache willMembers est dévérouillé, le vérouiller, sinon ne pas réinitialiser le cache
if (reinitCache && !lockWillMembers)
@@ -369,12 +370,15 @@ module.exports = (req, res, next) => co(function *() {
let tmpWot = wotbInstance.memCopy();
// Mesurer la qualité externe de chaque emetteur de chaque certification
- for (const cert of idtysPendingCertifsList[idMax])
+ if (constants.USE_WOTB6)
{
- if ( typeof(membersQualityExt[cert.from]) == 'undefined' )
+ for (const cert of idtysPendingCertifsList[idMax])
{
- let detailedDistanceQualityExt = tmpWot.detailedDistance(cert.wotb_id, dSen, conf.stepMax-1, conf.xpercent);
- membersQualityExt[cert.from] = ((detailedDistanceQualityExt.nbSuccess/detailedDistanceQualityExt.nbSentries)/conf.xpercent).toFixed(2);
+ if ( typeof(membersQualityExt[cert.from]) == 'undefined' )
+ {
+ let detailedDistanceQualityExt = tmpWot.detailedDistance(cert.wotb_id, dSen, conf.stepMax-1, conf.xpercent);
+ membersQualityExt[cert.from] = ((detailedDistanceQualityExt.nbSuccess/detailedDistanceQualityExt.nbSentries)/conf.xpercent).toFixed(2);
+ }
}
}
@@ -388,14 +392,14 @@ module.exports = (req, res, next) => co(function *() {
}
}
// Récupérer les données de distance du dossier d'adhésion de l'indentité idMax
- let detailedDistance = tmpWot.detailedDistance(pendingIdtyWID, dSen, conf.stepMax, conf.xpercent);
+ let detailedDistance = (constants.USE_WOTB6) ? tmpWot.detailedDistance(pendingIdtyWID, dSen, conf.stepMax, conf.xpercent):tmpWot.isOutdistanced(pendingIdtyWID, dSen, conf.stepMax, conf.xpercent);
// Nettoyer la wot temporaire
tmpWot.clear();
// Calculer percentSentriesReached et percentMembersReached
- let percentSentriesReached = parseFloat(((detailedDistance.nbSuccess/detailedDistance.nbSentries)*100).toFixed(2));
- let percentMembersReached = parseFloat(((detailedDistance.nbReached/currentMembersCount)*100).toFixed(2));
+ let percentSentriesReached = (constants.USE_WOTB6) ? parseFloat(((detailedDistance.nbSuccess/detailedDistance.nbSentries)*100).toFixed(2)):null;
+ let percentMembersReached = (constants.USE_WOTB6) ? parseFloat(((detailedDistance.nbReached/currentMembersCount)*100).toFixed(2)):null;
// Pousser l'identité dans le tableau idtysListOrdered
idtysListOrdered.push({
@@ -415,7 +419,7 @@ module.exports = (req, res, next) => co(function *() {
});
// Si le cache a été réinitialiser, recalculer les sommes meanSentriesReachedByIdtyPerCert et meanMembersReachedByIdtyPerCert
- if (reinitCache && identitiesList[idMax].nbValidPendingCert > 0)
+ if (constants.USE_WOTB6 && reinitCache && identitiesList[idMax].nbValidPendingCert > 0)
{
let nbReceiveCert = identitiesList[idMax].nbValidPendingCert;
meanSentriesReachedByIdtyPerCert[nbReceiveCert-1] += percentSentriesReached;
@@ -444,17 +448,20 @@ module.exports = (req, res, next) => co(function *() {
if (reinitCache)
{
// Calculate meanSentriesReachedByIdtyPerCert and meanMembersReachedByIdtyPerCert
- for (let i=0;i<=nbMaxCertifs;i++)
- {
- if ( countIdtiesPerReceiveCert[i] > 0 )
- {
- meanSentriesReachedByIdtyPerCert[i] = parseFloat((meanSentriesReachedByIdtyPerCert[i]/countIdtiesPerReceiveCert[i]).toFixed(2));
- meanMembersReachedByIdtyPerCert[i] = parseFloat((meanMembersReachedByIdtyPerCert[i]/countIdtiesPerReceiveCert[i]).toFixed(2));
- }
- else
+ if (constants.USE_WOTB6)
+ {
+ for (let i=0;i<=nbMaxCertifs;i++)
{
- meanSentriesReachedByIdtyPerCert[i] = 0.0;
- meanMembersReachedByIdtyPerCert[i] = 0.0;
+ if ( countIdtiesPerReceiveCert[i] > 0 )
+ {
+ meanSentriesReachedByIdtyPerCert[i] = parseFloat((meanSentriesReachedByIdtyPerCert[i]/countIdtiesPerReceiveCert[i]).toFixed(2));
+ meanMembersReachedByIdtyPerCert[i] = parseFloat((meanMembersReachedByIdtyPerCert[i]/countIdtiesPerReceiveCert[i]).toFixed(2));
+ }
+ else
+ {
+ meanSentriesReachedByIdtyPerCert[i] = 0.0;
+ meanMembersReachedByIdtyPerCert[i] = 0.0;
+ }
}
}
@@ -474,6 +481,7 @@ module.exports = (req, res, next) => co(function *() {
res.locals = {
// Les varibles à passer au template
host: req.headers.host.toString(),
+ USE_WOTB6: constants.USE_WOTB6,
// get parameters
days, sort_by, order, sortSig,
showIdtyWithZeroCert,
diff --git a/views/members.html b/views/members.html
index 02ab744e1ee695380a153f6a0511374639a1cf90..df0c293d08f2eacd24c12f725d8ad7f15eae0bbe 100755
--- a/views/members.html
+++ b/views/members.html
@@ -32,7 +32,7 @@ ${(host.substr(host.length-6,6) == '.onion') ? HTML_TOR_HEAD:HTML_HEAD}
<option name="sort_by" value ="oldestSig" ${sort_by == 'oldestSig' ? 'selected' : ''}>${LANG["SORT_BY_OLDEST_SIG"]}
<option name="sort_by" value ="lastSig" ${sort_by == 'lastSig' ? 'selected' : ''}>${LANG["SORT_BY_LAST_SIG"]}
<option name="sort_by" value ="centrality" ${sort_by == 'centrality' ? 'selected' : ''}>${LANG["SORT_BY_CENTRALITY"]}
-<option name="sort_by" value ="quality" ${sort_by == 'quality' ? 'selected' : ''}>${LANG["SORT_BY_QUALITY"]}
+${(USE_WOTB6) ? `<option name="sort_by" value ="quality" ${sort_by == 'quality' ? 'selected' : ''}>${LANG["SORT_BY_QUALITY"]}`:``}
<option name="sort_by" value ="sigCount" ${sort_by == 'sigCount' ? 'selected' : ''}>${LANG["SORT_BY_SIG_COUNT"]}
</select> ${LANG["ORDER_BY"]} <select name="order">
<option name="order" value ="asc"> ${LANG["ASC"]}
@@ -76,15 +76,17 @@ ${(membersLastCentralityCalcTime==0) ? `
`}
`}
<br>
-<table border="1">
- <tr><td align='center' colspan='3'>${LANG["DATA_AT"]} ${timestampToDatetime(membersLastUptime)}</td></tr>
- <tr><td align='center'>${LANG["meanMembersReachedByMembersInSingleExtCert"]}</td><td align='center'>${LANG["SENTRIES_REACHED"]}</td><td align='center'>${LANG["MEMBERS_REACHED"]}</td></tr>
- <tr><td align='center'>${LANG["SENTRY_CERT"]}</td><td align='center'>${meanSentriesReachedBySentriesInSingleExtCert}%</td><td align='center'>${meanMembersReachedBySentriesInSingleExtCert}%</td></tr>
- <tr><td align='center'>${LANG["MEMBER_CERT"]}</td><td align='center'><font color="${(meanSentriesReachedByMembersInSingleExtCert<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByMembersInSingleExtCert}%</b></font></td><td align='center'><b>${meanMembersReachedByMembersInSingleExtCert}%</b></td></tr>
- <tr><td align='center'><b>${LANG["MEAN_QUALITY"]}</b></td><td align='center'><font color="red"><b>${(meanSentriesReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></font></td><td align='center'><b>${(meanMembersReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></td></tr>
- <tr><td align='center'><b>${LANG["PROPORTION_MEMBERS_WITH_QUALITY_UPPER_1"]}</b></td><td align='center'><font color="red"><b>${(proportionMembersWithQualityUpper1*100).toFixed(2)}%</b></font></td><td align='center'><b>${(proportionMembersWithQualityUpper1IfNoSentries*100).toFixed(2)}%</b></td></tr>
-</table>
-<br>
+${(USE_WOTB6) ? `
+ <table border="1">
+ <tr><td align='center' colspan='3'>${LANG["DATA_AT"]} ${timestampToDatetime(membersLastUptime)}</td></tr>
+ <tr><td align='center'>${LANG["meanMembersReachedByMembersInSingleExtCert"]}</td><td align='center'>${LANG["SENTRIES_REACHED"]}</td><td align='center'>${LANG["MEMBERS_REACHED"]}</td></tr>
+ <tr><td align='center'>${LANG["SENTRY_CERT"]}</td><td align='center'>${meanSentriesReachedBySentriesInSingleExtCert}%</td><td align='center'>${meanMembersReachedBySentriesInSingleExtCert}%</td></tr>
+ <tr><td align='center'>${LANG["MEMBER_CERT"]}</td><td align='center'><font color="${(meanSentriesReachedByMembersInSingleExtCert<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByMembersInSingleExtCert}%</b></font></td><td align='center'><b>${meanMembersReachedByMembersInSingleExtCert}%</b></td></tr>
+ <tr><td align='center'><b>${LANG["MEAN_QUALITY"]}</b></td><td align='center'><font color="red"><b>${(meanSentriesReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></font></td><td align='center'><b>${(meanMembersReachedByMembersInSingleExtCert/(xpercent*100)).toFixed(2)}</b></td></tr>
+ <tr><td align='center'><b>${LANG["PROPORTION_MEMBERS_WITH_QUALITY_UPPER_1"]}</b></td><td align='center'><font color="red"><b>${(proportionMembersWithQualityUpper1*100).toFixed(2)}%</b></font></td><td align='center'><b>${(proportionMembersWithQualityUpper1IfNoSentries*100).toFixed(2)}%</b></td></tr>
+ </table>
+ <br>
+`:``}
<!-- Afficher le currentBlockchainTimestamp -->
<i>${LANG["CURRENT_BLOCKCHAIN_TIME"]} : ${timestampToDatetime(currentBlockchainTimestamp)}.</i><br>
@@ -113,7 +115,9 @@ ${(membersLastCentralityCalcTime==0) ? `
<b>${member.uid}</b><br>
${(member.isSentry) ? `<font color="blue">${LANG['REFERRING_MEMBER']} : ${LANG['YES']}</font>`:`${LANG['REFERRING_MEMBER']} : ${LANG['NO']}`}<br>
- ${LANG['QUALITY_EXT']} : <b>${(typeof(membersQualityExt[member.uid])=='undefined') ? `0.00`:membersQualityExt[member.uid]}</b><br>
+ ${(USE_WOTB6) ? `
+ ${LANG['QUALITY_EXT']} : <b>${(typeof(membersQualityExt[member.uid])=='undefined') ? `0.00`:membersQualityExt[member.uid]}</b><br>
+ `:``}
<b>${(membersLastCentralityCalcTime==0) ? `${LANG['CENTRALITY']} : ?`:`
${LANG['CENTRALITY']} : <b>${(typeof(membersCentrality[member.wotb_id])=='undefined') ? `0`:membersCentrality[member.wotb_id]}
`}</b><br>
@@ -133,10 +137,13 @@ ${(membersLastCentralityCalcTime==0) ? `
<td align="center" style="background:hsla(${member.proportion}, 100%, 50%, 1)">
${timestampToDatetime(member.expireMembershipTimestamp)}</td>
<td align='center' style="background:hsla(${member.proportion}, 100%, 50%, 1)">
- <font color="${member.detailedDistance.isOutdistanced ? 'red' : 'blue' }">
- ${member.detailedDistance.isOutdistanced ? LANG['COL_DISTANCE_isOutdistanced'] : LANG['COL_DISTANCE_isNotOutdistanced'] }
- <br>${member.percentSentriesReached}% (${member.detailedDistance.nbSuccess}/${member.detailedDistance.nbSentries})
- </font>
+
+ <font color="${member.detailedDistance.isOutdistanced ? 'red' : 'blue' }">
+ ${member.detailedDistance.isOutdistanced ? LANG['COL_DISTANCE_isOutdistanced'] : LANG['COL_DISTANCE_isNotOutdistanced'] }
+ ${(USE_WOTB6) ? `
+ <br>${member.percentSentriesReached}% (${member.detailedDistance.nbSuccess}/${member.detailedDistance.nbSentries})
+ `:``}
+ </font>
</td>
<td style="background:#000000">-</td>
diff --git a/views/willMembers.html b/views/willMembers.html
index 6aa3336df6ba3ec7c6f8d092b4fac010ce1a4790..ed4affe4c4d48be3c6d0931424eda59ae4395885 100755
--- a/views/willMembers.html
+++ b/views/willMembers.html
@@ -83,64 +83,66 @@ ${(help != 'no') ? `
`:''}
<!-- Afficher l'état de tension de la toile de confiance -->
-<div id="zone2" style="width: 100%; height: 20px; background: White; border: 1px solid DimGrey; transition: height 1s; -moz-transition: height 1s;-webkit-transition: height 1s;-o-transition: height 1s; overflow: hidden;">
- <div id="bandeau2" style="height: 20px; width: 100%; font-size: medium; color: white; background-color: darkgrey;" onmouseover="deroule(2,150);" onmouseout="deroule(2,20);"><b>${LANG["WOT_TENSION_STATE"]}</b>
- </div>
- <div id="texte2" style="float: left;">
- <table border="1">
- <tr>
- <td align='center'>${LANG["NUMBER_OF_RECEIVED_CERTS"]}</td><td align='center'>1</td><td align='center'>2</td><td align='center'>3</td><td align='center'>4</td><td align='center'>5</td>
- ${(nbMaxCertifs>5) ? `<td align='center'>6</td>`:``}
- ${(nbMaxCertifs>6) ? `<td align='center'>7</td>`:``}
- ${(nbMaxCertifs>7) ? `<td align='center'>8</td>`:``}
- ${(nbMaxCertifs>8) ? `<td align='center'>9</td>`:``}
- ${(nbMaxCertifs>9) ? `<td align='center'>10</td>`:``}
- </tr>
- <!-- Afficher les moyennes SentriesReachedByIdtyPerCert -->
- <tr>
- <td align='center'>${LANG["MEAN_SENTRIES_REACHED"]}</td>
- <td><font color="${(meanSentriesReachedByIdtyPerCert[0]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[0]}%</b></font></td>
- <td><font color="${(meanSentriesReachedByIdtyPerCert[1]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[1]}%</b></font></td>
- <td><font color="${(meanSentriesReachedByIdtyPerCert[2]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[2]}%</b></font></td>
- <td><font color="${(meanSentriesReachedByIdtyPerCert[3]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[3]}%</b></font></td>
- <td><font color="${(meanSentriesReachedByIdtyPerCert[4]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[4]}%</b></font></td>
- ${(nbMaxCertifs>5) ? `<td><font color="${(meanSentriesReachedByIdtyPerCert[5]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[5]}%</b></font></td>`:``}
- ${(nbMaxCertifs>6) ? `<td><font color="${(meanSentriesReachedByIdtyPerCert[6]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[6]}%</b></font></td>`:``}
- ${(nbMaxCertifs>7) ? `<td><font color="${(meanSentriesReachedByIdtyPerCert[7]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[7]}%</b></font></td>`:``}
- ${(nbMaxCertifs>8) ? `<td><font color="${(meanSentriesReachedByIdtyPerCert[8]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[8]}%</b></font></td>`:``}
- ${(nbMaxCertifs>9) ? `<td><font color="${(meanSentriesReachedByIdtyPerCert[9]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[9]}%</b></font></td>`:``}
- </tr>
- <!-- Afficher les qualités moyennes -->
- <tr>
- <td align='center'>${LANG["MEAN_QUALITY_CERTS"]}</td>
- <td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[0]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[0]/(xpercent*100)).toFixed(2)}</b></font></td>
- <td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[1]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[1]/(xpercent*100)).toFixed(2)}</b></font></td>
- <td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[2]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[2]/(xpercent*100)).toFixed(2)}</b></font></td>
- <td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[3]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[3]/(xpercent*100)).toFixed(2)}</b></font></td>
- <td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[4]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[4]/(xpercent*100)).toFixed(2)}</b></font></td>
- ${(nbMaxCertifs>5) ? `<td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[5]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[5]/(xpercent*100)).toFixed(2)}</b></font></td>`:``}
- ${(nbMaxCertifs>6) ? `<td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[6]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[6]/(xpercent*100)).toFixed(2)}</b></font></td>`:``}
- ${(nbMaxCertifs>7) ? `<td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[7]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[7]/(xpercent*100)).toFixed(2)}</b></font></td>`:``}
- ${(nbMaxCertifs>8) ? `<td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[8]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[8]/(xpercent*100)).toFixed(2)}</b></font></td>`:``}
- ${(nbMaxCertifs>9) ? `<td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[9]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[9]/(xpercent*100)).toFixed(2)}</b></font></td>`:``}
- </tr>
- <!-- Afficher les moyennes MembersReachedByIdtyPerCert -->
- <tr>
- <td align='center'>${LANG["MEAN_MEMBERS_REACHED"]}</td>
- <td><b>${meanMembersReachedByIdtyPerCert[0]}%</b></td>
- <td><b>${meanMembersReachedByIdtyPerCert[1]}%</b></td>
- <td><b>${meanMembersReachedByIdtyPerCert[2]}%</b></td>
- <td><b>${meanMembersReachedByIdtyPerCert[3]}%</b></td>
- <td><b>${meanMembersReachedByIdtyPerCert[4]}%</b></td>
- ${(nbMaxCertifs>5) ? `<td><b>${meanMembersReachedByIdtyPerCert[5]}%</b></td>`:``}
- ${(nbMaxCertifs>6) ? `<td><b>${meanMembersReachedByIdtyPerCert[6]}%</b></td>`:``}
- ${(nbMaxCertifs>7) ? `<td><b>${meanMembersReachedByIdtyPerCert[7]}%</b></td>`:``}
- ${(nbMaxCertifs>8) ? `<td><b>${meanMembersReachedByIdtyPerCert[8]}%</b></td>`:``}
- ${(nbMaxCertifs>9) ? `<td><b>${meanMembersReachedByIdtyPerCert[9]}%</b></td>`:``}
- </tr>
- </table>
+${ (USE_WOTB6) ? `
+ <div id="zone2" style="width: 100%; height: 20px; background: White; border: 1px solid DimGrey; transition: height 1s; -moz-transition: height 1s;-webkit-transition: height 1s;-o-transition: height 1s; overflow: hidden;">
+ <div id="bandeau2" style="height: 20px; width: 100%; font-size: medium; color: white; background-color: darkgrey;" onmouseover="deroule(2,150);" onmouseout="deroule(2,20);"><b>${LANG["WOT_TENSION_STATE"]}</b>
+ </div>
+ <div id="texte2" style="float: left;">
+ <table border="1">
+ <tr>
+ <td align='center'>${LANG["NUMBER_OF_RECEIVED_CERTS"]}</td><td align='center'>1</td><td align='center'>2</td><td align='center'>3</td><td align='center'>4</td><td align='center'>5</td>
+ ${(nbMaxCertifs>5) ? `<td align='center'>6</td>`:``}
+ ${(nbMaxCertifs>6) ? `<td align='center'>7</td>`:``}
+ ${(nbMaxCertifs>7) ? `<td align='center'>8</td>`:``}
+ ${(nbMaxCertifs>8) ? `<td align='center'>9</td>`:``}
+ ${(nbMaxCertifs>9) ? `<td align='center'>10</td>`:``}
+ </tr>
+ <!-- Afficher les moyennes SentriesReachedByIdtyPerCert -->
+ <tr>
+ <td align='center'>${LANG["MEAN_SENTRIES_REACHED"]}</td>
+ <td><font color="${(meanSentriesReachedByIdtyPerCert[0]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[0]}%</b></font></td>
+ <td><font color="${(meanSentriesReachedByIdtyPerCert[1]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[1]}%</b></font></td>
+ <td><font color="${(meanSentriesReachedByIdtyPerCert[2]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[2]}%</b></font></td>
+ <td><font color="${(meanSentriesReachedByIdtyPerCert[3]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[3]}%</b></font></td>
+ <td><font color="${(meanSentriesReachedByIdtyPerCert[4]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[4]}%</b></font></td>
+ ${(nbMaxCertifs>5) ? `<td><font color="${(meanSentriesReachedByIdtyPerCert[5]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[5]}%</b></font></td>`:``}
+ ${(nbMaxCertifs>6) ? `<td><font color="${(meanSentriesReachedByIdtyPerCert[6]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[6]}%</b></font></td>`:``}
+ ${(nbMaxCertifs>7) ? `<td><font color="${(meanSentriesReachedByIdtyPerCert[7]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[7]}%</b></font></td>`:``}
+ ${(nbMaxCertifs>8) ? `<td><font color="${(meanSentriesReachedByIdtyPerCert[8]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[8]}%</b></font></td>`:``}
+ ${(nbMaxCertifs>9) ? `<td><font color="${(meanSentriesReachedByIdtyPerCert[9]<xpercent) ? 'DarkRed' : 'blue' }"><b>${meanSentriesReachedByIdtyPerCert[9]}%</b></font></td>`:``}
+ </tr>
+ <!-- Afficher les qualités moyennes -->
+ <tr>
+ <td align='center'>${LANG["MEAN_QUALITY_CERTS"]}</td>
+ <td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[0]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[0]/(xpercent*100)).toFixed(2)}</b></font></td>
+ <td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[1]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[1]/(xpercent*100)).toFixed(2)}</b></font></td>
+ <td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[2]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[2]/(xpercent*100)).toFixed(2)}</b></font></td>
+ <td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[3]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[3]/(xpercent*100)).toFixed(2)}</b></font></td>
+ <td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[4]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[4]/(xpercent*100)).toFixed(2)}</b></font></td>
+ ${(nbMaxCertifs>5) ? `<td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[5]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[5]/(xpercent*100)).toFixed(2)}</b></font></td>`:``}
+ ${(nbMaxCertifs>6) ? `<td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[6]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[6]/(xpercent*100)).toFixed(2)}</b></font></td>`:``}
+ ${(nbMaxCertifs>7) ? `<td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[7]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[7]/(xpercent*100)).toFixed(2)}</b></font></td>`:``}
+ ${(nbMaxCertifs>8) ? `<td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[8]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[8]/(xpercent*100)).toFixed(2)}</b></font></td>`:``}
+ ${(nbMaxCertifs>9) ? `<td align='center'><font color="${(meanSentriesReachedByIdtyPerCert[9]<xpercent) ? 'DarkRed' : 'blue' }"><b>${(meanSentriesReachedByIdtyPerCert[9]/(xpercent*100)).toFixed(2)}</b></font></td>`:``}
+ </tr>
+ <!-- Afficher les moyennes MembersReachedByIdtyPerCert -->
+ <tr>
+ <td align='center'>${LANG["MEAN_MEMBERS_REACHED"]}</td>
+ <td><b>${meanMembersReachedByIdtyPerCert[0]}%</b></td>
+ <td><b>${meanMembersReachedByIdtyPerCert[1]}%</b></td>
+ <td><b>${meanMembersReachedByIdtyPerCert[2]}%</b></td>
+ <td><b>${meanMembersReachedByIdtyPerCert[3]}%</b></td>
+ <td><b>${meanMembersReachedByIdtyPerCert[4]}%</b></td>
+ ${(nbMaxCertifs>5) ? `<td><b>${meanMembersReachedByIdtyPerCert[5]}%</b></td>`:``}
+ ${(nbMaxCertifs>6) ? `<td><b>${meanMembersReachedByIdtyPerCert[6]}%</b></td>`:``}
+ ${(nbMaxCertifs>7) ? `<td><b>${meanMembersReachedByIdtyPerCert[7]}%</b></td>`:``}
+ ${(nbMaxCertifs>8) ? `<td><b>${meanMembersReachedByIdtyPerCert[8]}%</b></td>`:``}
+ ${(nbMaxCertifs>9) ? `<td><b>${meanMembersReachedByIdtyPerCert[9]}%</b></td>`:``}
+ </tr>
+ </table>
+ </div>
</div>
-</div>
+`:``}
<!-- Afficher le currentBlockchainTimestamp et le nombre d'identités au dossier complet -->
${LANG["BLOCKCHAIN_TIME"]} : <b>${timestampToDatetime(currentBlockchainTimestamp)}</b> (#<b>${currentBlockNumber}</b>).<br>
@@ -175,10 +177,14 @@ ${(help != 'no') ? `
</td>
${(idty.expires_on > 0) ? `
<td align='center' style="background:${idty.colorPending}">
- ${(idty.membership && !idty.detailedDistance.isOutdistanced && idty.nbValidPendingCert >= sigQty) ? `<font color="green">${LANG['OK']}` : `<font color="DarkRed">${LANG['KO']}` }</font>
- <br>${LANG['MEMBERSHIP_ASKED']} : ${idty.membership? `<font color="green">${LANG['YES']}` : `<font color="DarkRed">${LANG['NO']}` }</font>
- <br><font color="${idty.detailedDistance.isOutdistanced ? 'DarkRed' : 'blue' }">${idty.percentSentriesReached}% (${idty.detailedDistance.nbSuccess}/${idty.detailedDistance.nbSentries})
- <br>${LANG['QUALITY_CERTIFIERS']} : <b>${(idty.validBlockStamp) ? ((idty.detailedDistance.nbSuccess/idty.detailedDistance.nbSentries)/xpercent).toFixed(2):`0.00`}</b></font>
+ ${(idty.membership && !idty.detailedDistance.isOutdistanced && idty.nbValidPendingCert >= sigQty) ? `<font color="green">${LANG['OK']}` : `<font color="DarkRed">${LANG['KO']}` }</font><br>
+ ${LANG['MEMBERSHIP_ASKED']} : ${idty.membership? `<font color="green">${LANG['YES']}` : `<font color="DarkRed">${LANG['NO']}` }</font><br>
+ ${ (USE_WOTB6) ? `
+ <font color="${idty.detailedDistance.isOutdistanced ? 'DarkRed' : 'blue' }">${idty.percentSentriesReached}% (${idty.detailedDistance.nbSuccess}/${idty.detailedDistance.nbSentries})
+ <br>${LANG['QUALITY_CERTIFIERS']} : <b>${(idty.validBlockStamp) ? ((idty.detailedDistance.nbSuccess/idty.detailedDistance.nbSentries)/xpercent).toFixed(2):`0.00`}</b></font>
+ `:`
+ <font color="${idty.detailedDistance ? 'DarkRed' : 'blue' }">${LANG['DISTANCE']} : ${idty.detailedDistance ? LANG['KO']:LANG['OK'] }</font>
+ `}
<br>${LANG['CERTIFIERS_COUNT']} : ${(idty.nbValidPendingCert >= sigQty) ? `<font color="green">${idty.nbValidPendingCert}/${sigQty}` : `<font color="DarkRed">${idty.nbValidPendingCert}/${sigQty}` }</font>
</td>
`:`
@@ -193,7 +199,9 @@ ${(help != 'no') ? `
${cert.issuerIsSentry ? '<b>':''}
<a href="wotex?lg=${MENU_LANG['LG']}${(typeof(help) != 'undefined' && help == 'no') ? '&help=no':''}&to=${cert['from']}&pending=on&mode=undefined">${cert['from']}</a>
${cert.issuerIsSentry ? '</b>':''}
- <br>${LANG['QUALITY']} : <b>${(typeof(membersQualityExt[cert.from])=='undefined' || !cert.validBlockStamp) ? `0.00`:membersQualityExt[cert.from]}</b>
+ ${ (USE_WOTB6) ? `
+ <br>${LANG['QUALITY']} : <b>${(typeof(membersQualityExt[cert.from])=='undefined' || !cert.validBlockStamp) ? `0.00`:membersQualityExt[cert.from]}</b>
+ `:''}
<br>${timestampToDatetime(cert.timestampExpire)}
<br>#${cert['blockNumber']}
${j==(4+idty.pendingCertifications.length-idty.nbValidPendingCert)?'<b>':''}