Skip to content
Snippets Groups Projects
Commit 007cc3df authored by Baptiste Lemoine's avatar Baptiste Lemoine Committed by Cédric Moreau
Browse files

[feat] rearrange members page

parent 345b69f9
Branches
No related tags found
No related merge requests found
...@@ -14,7 +14,7 @@ ${ (host.substr(host.length-6,6) =='.onion') ? HTML_TOR_HEAD:HTML_HEAD} ...@@ -14,7 +14,7 @@ ${ (host.substr(host.length-6,6) =='.onion') ? HTML_TOR_HEAD:HTML_HEAD}
<script type='text/javascript' > <script type='text/javascript' >
$(document).ready(function () { $(document).ready(function () {
// $('.table').DataTable(); $('.table').DataTable({pagination:false});
// $('#tableMmembersExpiracy').DataTable(); // $('#tableMmembersExpiracy').DataTable();
}); });
</script > </script >
...@@ -47,22 +47,34 @@ function filterRows(tableElem, rowIndex, colIndex, filterString) { ...@@ -47,22 +47,34 @@ function filterRows(tableElem, rowIndex, colIndex, filterString) {
<!-- Afficher le menu --> <!-- Afficher le menu -->
${ printMenu(MENU_LANG, help, "MEMBERS")} ${ printMenu(MENU_LANG, help, "MEMBERS")}
<main > <main class='members-page'>
<!-- Afficher le formulaire --> <!-- Afficher le formulaire -->
<div class='columns form-fields' > <div class='columns form-fields' >
<div class='column' > <div class='column' >
${ LANG["ORDER_BY"]} ${ LANG["FORM1"]}
<div class='field'>
<div class='control'>
<input <input
autofocus autofocus
class='input' class='input'
id='days_counter'
name='d' name='d'
type='number' type='number'
value='${ days}' /> value='${ days}' />
<hr > </div>
</div>
<div class='field'>
<label class="label" for='days_counter' >
${ LANG["FORM1"]}
</label >
<div class='control'>
<!-- jour tri par-->
<div class='select'>
<select <select
class='input select'
name='sort_by' > name='sort_by' >
<option <option
name='sort_by' name='sort_by'
...@@ -71,68 +83,51 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -71,68 +83,51 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
<option <option
name='sort_by' name='sort_by'
value='expireMembership' value='expireMembership'
${ ${ sort_by=='expireMembership' ? 'selected' : '' } >
sort_by=='expireMembership'
?
'selected' : '' } >
${ LANG["SORT_BY_EXPIRE_MEMBERSHIP"]} ${ LANG["SORT_BY_EXPIRE_MEMBERSHIP"]}
<option <option
name='sort_by' name='sort_by'
value='lastRenewal' value='lastRenewal'
${ ${ sort_by=='lastRenewal' ? 'selected' : '' } >
sort_by=='lastRenewal'
?
'selected' : '' } >
${ LANG["SORT_LAST_RENEWAL"]} ${ LANG["SORT_LAST_RENEWAL"]}
<option <option
name='sort_by' name='sort_by'
value='oldestSig' value='oldestSig'
${ ${ sort_by=='oldestSig' ? 'selected' : '' } >
sort_by=='oldestSig'
?
'selected' : '' } >
${ LANG["SORT_BY_OLDEST_SIG"]} ${ LANG["SORT_BY_OLDEST_SIG"]}
<option <option
name='sort_by' name='sort_by'
value='lastSig' value='lastSig'
${ ${ sort_by=='lastSig' ? 'selected' : '' } >
sort_by=='lastSig'
?
'selected' : '' } >
${ LANG["SORT_BY_LAST_SIG"]} ${ LANG["SORT_BY_LAST_SIG"]}
${ (sort_by == `centrality` ? `selected` : `` }
<option <option
name='sort_by' name='sort_by'
selected='
${
(sort_by=="centrality"
?
`selected`
:
``
}'
value='centrality' value='centrality'
> ${ sort_by== 'centrality' ? 'selected' : '' } >
${ LANG["SORT_BY_CENTRALITY"]} ${ LANG["SORT_BY_CENTRALITY"]}
<option <option
name='sort_by' name='sort_by'
value='quality' value='quality'
${ ${ sort_by =='quality' ? 'selected' : '' } >
sort_by=='quality'
?
'selected' : '' } >
${ LANG["SORT_BY_QUALITY"]} ${ LANG["SORT_BY_QUALITY"]}
<option <option
name='sort_by' name='sort_by'
value='sigCount' value='sigCount'
${ ${ sort_by=='sigCount' ? 'selected' : '' } >
sort_by=='sigCount'
?
'selected' : '' } >
${ LANG["SORT_BY_SIG_COUNT"]} ${ LANG["SORT_BY_SIG_COUNT"]}
</select > </select >
<!-- dans l'ordre-->
</div>
</div>
</div>
<label for='select_order' >
${ LANG["ORDER_BY"]}
</label >
<div class='select'>
<select <select
class='input select'
id='select_order'
name='order' > name='order' >
<option <option
name='order' name='order'
...@@ -140,18 +135,14 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -140,18 +135,14 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
<option <option
name='order' name='order'
value='desc' value='desc'
${ ${ order=='desc' ? 'selected' : '' } > ${ LANG["DESC"]}
order=='desc'
?
'selected' : '' } > ${ LANG["DESC"]}
</select > </select >
</div> </div>
</div >
<div class='column' > <div class='column' >
<input
class='button is-primary is-fullwidth'
type='submit'
value="${ LANG['SUBMIT_BUTTON']}" ><br >
<input <input
name='centrality' name='centrality'
type='checkbox' type='checkbox'
...@@ -161,42 +152,32 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -161,42 +152,32 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
name='pendingSigs' name='pendingSigs'
type='checkbox' type='checkbox'
value='yes' value='yes'
${ ${ pendingSigs=='yes' ? 'checked' : '' } >
pendingSigs=='yes'
? 'checked' : '' } >
${ LANG["CHECKBOX_PENDING_SIGS"]}.<br > ${ LANG["CHECKBOX_PENDING_SIGS"]}.<br >
<input <input
name='mode' name='mode'
type='checkbox' type='checkbox'
value='emitted' value='emitted'
${ ${ mode=='emitted' ? 'checked' : '' } >
mode=='emitted'
? 'checked' : '' } >
${ LANG["CHECKBOX_MODE_SIG"]}.<br > ${ LANG["CHECKBOX_MODE_SIG"]}.<br >
<input <input
name='nextYn' name='nextYn'
type='checkbox' type='checkbox'
value='yes' value='yes'
${ ${ nextYn =='yes' ? 'checked' : '' } >
nextYn=='yes'
? 'checked' : '' } >
${ LANG["NEXT_YN"]}<br > ${ LANG["NEXT_YN"]}<br >
<input <input
name='randomList' name='randomList'
type='checkbox' type='checkbox'
value='yes' value='yes'
${ ${ randomList =='yes' ? 'checked' : '' } >
randomList=='yes'
? 'checked' : '' } >
${ LANG["RANDOM_LIST"]} ${ LANG["RANDOM_LIST"]}
<input <input
name='randomCounts' name='randomCounts'
type='number' type='number'
value='${ numberOfRandomMembers}' /> value='${ numberOfRandomMembers}' />
${ LANG["RANDOM_LIST_END"]}.<br > ${ LANG["RANDOM_LIST_END"]}.<br >
<input ${ <input ${ uidOrPubList =='checked' ? 'checked' : '' }
uidOrPubList=='checked'
? 'checked' : '' }
name='uidOrPubList' name='uidOrPubList'
type='checkbox' type='checkbox'
value='yes' > value='yes' >
...@@ -205,15 +186,19 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -205,15 +186,19 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
name='uidOrPubValue' name='uidOrPubValue'
type='search' type='search'
value="${ uidOrPubValue || '' }" /> ${ LANG["UID_OR_PUB_LIST_END"]}.<br > value="${ uidOrPubValue || '' }" /> ${ LANG["UID_OR_PUB_LIST_END"]}.<br >
<hr > <input
class='button is-primary is-fullwidth'
type='submit'
value="${ LANG['SUBMIT_BUTTON']}" ><br >
</div > </div >
</div > </div >
<hr >
<!-- Afficher la légende et l'aide --> <!-- Afficher la légende et l'aide -->
${ (help != 'no') ? ` ${ (help != 'no') ? `
<div class='columns legend-and-help' > <div class='columns legend-and-help' >
<div class='column' > <div class='column is-one-fifth' >
<b > <b >
${ LANG["LEGEND"]} ${ LANG["LEGEND"]}
</b > </b >
...@@ -227,7 +212,7 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -227,7 +212,7 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
<br > <br >
${ LANG["WHAT_IS_CENTRALITY_TEXT"]} ${ LANG["WHAT_IS_CENTRALITY_TEXT"]}
</div > </div >
<div class='column' > <div class='column is-one-third' >
<b > <b >
${ LANG["QUALITY_MEMBER_TITLE"]}</b > ${ LANG["QUALITY_MEMBER_TITLE"]}</b >
<br > <br >
...@@ -256,38 +241,38 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -256,38 +241,38 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
<table class='table is-striped is-hoverable is-outlined' > <table class='table is-striped is-hoverable is-outlined' >
<tr > <tr >
<td align='center' > <td >
${ LANG["MEAN_LENGTH_PATH"]} ${ LANG["MEAN_LENGTH_PATH"]}
</td > </td >
<td align='center' ><b > <td ><b >
${ (meanShortestsPathLength).toFixed(2)}</b ></td > ${ (meanShortestsPathLength).toFixed(2)}</b ></td >
</tr > </tr >
<tr > <tr >
<td align='center' > <td >
${ LANG["MEAN_CENTRALITY"]} ${ LANG["MEAN_CENTRALITY"]}
</td > </td >
<td align='center' ><b > <td ><b >
${ meanCentrality.toFixed(2)}</b ></td > ${ meanCentrality.toFixed(2)}</b ></td >
</tr > </tr >
<tr > <tr >
<td align='center' > <td >
${ LANG["NUMBER_OF_PAIRS_MEMBER"]} ${ LANG["NUMBER_OF_PAIRS_MEMBER"]}
</td > </td >
<td align='center' > <td >
${ (membersListFiltered.length*(membersListFiltered.length-1))} ${ (membersListFiltered.length*(membersListFiltered.length-1))}
</td > </td >
</tr > </tr >
<tr > <tr >
<td align='center' > <td >
${ LANG["NUMBER_OF_EXIST_PATH"]} ${ LANG["NUMBER_OF_EXIST_PATH"]}
</td > </td >
<td align='center' ><b > <td ><b >
${ nbShortestsPath}</b ></td > ${ nbShortestsPath}</b ></td >
</tr > </tr >
<tr > <tr >
<td align='center' ><b > <td ><b >
${ LANG["PROPORTION_OF_EXIST_PATH"]}</b ></td > ${ LANG["PROPORTION_OF_EXIST_PATH"]}</b ></td >
<td align='center' > <td >
<font color='red' > <font color='red' >
<b > <b >
${ ((nbShortestsPath/(membersListFiltered.length*(membersListFiltered.length-1)))*100).toFixed(2) }% ${ ((nbShortestsPath/(membersListFiltered.length*(membersListFiltered.length-1)))*100).toFixed(2) }%
...@@ -301,26 +286,25 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -301,26 +286,25 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
`} `}
</div > </div >
<div class='column' > <div class='column' >
<table class='table is-hoverable is-stripped is-bordered' > <table class='table is-hoverable is-stripped is-bordered' >
<thead > <thead >
<tr > <tr >
<td <td
align='center'
colspan='3' > colspan='3' >
<h2 class='title is-2' > <h4 class='title is-4' >
${ LANG["DATA_AT"]} ${ timestampToDatetime(membersLastUptime)} ${ LANG["DATA_AT"]} ${ timestampToDatetime(membersLastUptime)}
</h2 > </h4 >
</td > </td >
</tr > </tr >
<tr > <tr >
<td align='center' > <td >
${ LANG["meanMembersReachedByMembers"]} ${ LANG["meanMembersReachedByMembers"]}
</td > </td >
<td align='center' > <td >
${ LANG["SENTRIES_REACHED"]} ${ LANG["SENTRIES_REACHED"]}
</td > </td >
<td align='center' > <td >
${ LANG["MEMBERS_REACHED"]} ${ LANG["MEMBERS_REACHED"]}
</td > </td >
</tr > </tr >
...@@ -328,46 +312,46 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -328,46 +312,46 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
<tbody > <tbody >
<tr > <tr >
<td align='center' > <td >
${ LANG["SENTRY_CERT"]} ${ LANG["SENTRY_CERT"]}
</td > </td >
<td align='center' > <td >
${ (meansMembersQuality.meanSentriesReachedBySentries).toFixed(2)}% ${ (meansMembersQuality.meanSentriesReachedBySentries).toFixed(2)}%
</td > </td >
<td align='center' > <td >
${ (meansMembersQuality.meanMembersReachedBySentries).toFixed(2)}% ${ (meansMembersQuality.meanMembersReachedBySentries).toFixed(2)}%
</td > </td >
</tr > </tr >
<tr > <tr >
<td align='center' > <td >
${ LANG["MEMBER_CERT"]} ${ LANG["MEMBER_CERT"]}
</td > </td >
<td align='center' ><font ${ <td ><font ${
(meansMembersQuality.meanSentriesReachedByMembers (meansMembersQuality.meanSentriesReachedByMembers
<xpercent ) <xpercent )
? ?
'color="DarkRed"' : 'color="blue"' } ><b > 'color="DarkRed"' : 'color="blue"' } ><b >
${ meansMembersQuality.meanSentriesReachedByMembers}%</b ></font></td > ${ meansMembersQuality.meanSentriesReachedByMembers}%</b ></font></td >
<td align='center' ><b > <td ><b >
${ meansMembersQuality.meanMembersReachedByMembers}%</b ></td > ${ meansMembersQuality.meanMembersReachedByMembers}%</b ></td >
</tr > </tr >
<tr > <tr >
<td align='center' ><b > <td ><b >
${ LANG["MEAN_QUALITY"]}</b ></td > ${ LANG["MEAN_QUALITY"]}</b ></td >
<td align='center' ><font color='red' ><b > <td ><font color='red' ><b >
${ (meansMembersQuality.meanSentriesReachedByMembers/(xpercent*100)).toFixed(2)}</b ></font > ${ (meansMembersQuality.meanSentriesReachedByMembers/(xpercent*100)).toFixed(2)}</b ></font >
</td > </td >
<td align='center' ><b > <td ><b >
${ (meansMembersQuality.meanMembersReachedByMembers/(xpercent*100)).toFixed(2)}</b > ${ (meansMembersQuality.meanMembersReachedByMembers/(xpercent*100)).toFixed(2)}</b >
</td > </td >
</tr > </tr >
<tr > <tr >
<td align='center' ><b > <td ><b >
${ LANG["PROPORTION_MEMBERS_WITH_QUALITY_UPPER_1"]}</b ></td > ${ LANG["PROPORTION_MEMBERS_WITH_QUALITY_UPPER_1"]}</b ></td >
<td align='center' > <td >
<font color='red' ><b > <font color='red' ><b >
${ (proportionMembersWithQualityUpper1*100).toFixed(2)}%</b ></font ></td > ${ (proportionMembersWithQualityUpper1*100).toFixed(2)}%</b ></font ></td >
<td align='center' ><b > <td ><b >
${ (proportionMembersWithQualityUpper1IfNoSentries*100).toFixed(2)}%</b ></td > ${ (proportionMembersWithQualityUpper1IfNoSentries*100).toFixed(2)}%</b ></td >
</tr > </tr >
</tbody > </tbody >
...@@ -401,6 +385,7 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -401,6 +385,7 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
oninput='this.onchange();' oninput='this.onchange();'
onkeypress='this.onchange();' onkeypress='this.onchange();'
onpaste='this.onchange();' onpaste='this.onchange();'
placeholder='Chuck Norris'
type='text' type='text'
value='' /><br > value='' /><br >
</form> </form>
...@@ -415,26 +400,25 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -415,26 +400,25 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
<thead > <thead >
<tr > <tr >
<td <td
align='center'
style='display :none' ></td > style='display :none' ></td >
<td align='center' > <td >
${ LANG["COL_UID"]} ${ LANG["COL_UID"]}
</td > </td >
<td align='center' > <td >
${ LANG["COL_IDTY_WRITTEN_TIME"]} ${ LANG["COL_IDTY_WRITTEN_TIME"]}
</td > </td >
<td align='center' > <td >
${ LANG["COL_LAST_RENEWAL"]} ${ LANG["COL_LAST_RENEWAL"]}
</td > </td >
<td align='center' > <td >
${ LANG["COL_EXPIRE_MEMBERSHIP"]} ${ LANG["COL_EXPIRE_MEMBERSHIP"]}
</td > </td >
<td align='center' > <td >
${ LANG['COL_DISTANCE']} ${ LANG['COL_DISTANCE']}
</td > </td >
<td <td
style='background:#000000;' class='bordering-element' >
width='3px' >-
</td > </td >
<td <td
colspan='${ nbMaxCertifs}' colspan='${ nbMaxCertifs}'
...@@ -452,12 +436,12 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -452,12 +436,12 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
<tr > <tr >
${ (member.proportion = proportion(member.expireMembershipTimestamp,msValidity,0,120),'')} ${ (member.proportion = proportion(member.expireMembershipTimestamp,msValidity,0,120),'')}
<td <td
align='center'
style='display :none' > style='display :none' >
${ member.uid} ${ member.uid}
</td > </td >
<td <td
align='center'
style='background:hsla(${ member.proportion}, 80%, 70%, 1)' ><b > style='background:hsla(${ member.proportion}, 80%, 70%, 1)' ><b >
${ member.uid}</b ><br > ${ member.uid}</b ><br >
...@@ -480,22 +464,22 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -480,22 +464,22 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
: '' } : '' }
</td > </td >
<td <td
align='center'
style='background:hsla(${ member.proportion}, 80%, 70%, 1)' > style='background:hsla(${ member.proportion}, 80%, 70%, 1)' >
<span data-tip='${ timestampToDatetime(member.idtyWrittenTimestamp)}' >#${ member.idtyWrittenBloc}</span > <span data-tip='${ timestampToDatetime(member.idtyWrittenTimestamp)}' >#${ member.idtyWrittenBloc}</span >
</td > </td >
<td <td
align='center'
style='background:hsla(${ member.proportion}, 80%, 70%, 1)' > style='background:hsla(${ member.proportion}, 80%, 70%, 1)' >
<span data-tip='${ timestampToDatetime(member.lastRenewalTimestamp)}' >#${ member.lastRenewalWrittenBloc}</span > <span data-tip='${ timestampToDatetime(member.lastRenewalTimestamp)}' >#${ member.lastRenewalWrittenBloc}</span >
</td > </td >
<td <td
align='center'
style='background:hsla(${ member.proportion}, 80%, 70%, 1)' > style='background:hsla(${ member.proportion}, 80%, 70%, 1)' >
${ timestampToDatetime(member.expireMembershipTimestamp)} ${ timestampToDatetime(member.expireMembershipTimestamp)}
</td > </td >
<td <td
align='center'
style='background:hsla(${ member.proportion}, 80%, 70%, 1)' > style='background:hsla(${ member.proportion}, 80%, 70%, 1)' >
<font color="${ member.detailedDistance.isOutdistanced ? 'red' : 'blue' }" > <font color="${ member.detailedDistance.isOutdistanced ? 'red' : 'blue' }" >
...@@ -506,14 +490,14 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -506,14 +490,14 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
(${ member.detailedDistance.nbSuccess}/${ member.detailedDistance.nbSentries}) (${ member.detailedDistance.nbSuccess}/${ member.detailedDistance.nbSentries})
</font > </font >
</td > </td >
<td style='background:#000000' >-</td > <td class='bordering-element' ></td >
<!-- Printer les certifications en piscine --> <!-- Printer les certifications en piscine -->
${ pendingSigs =="yes" && typeof(member.pendingCertifications) != 'undefined' ? ${ pendingSigs =="yes" && typeof(member.pendingCertifications) != 'undefined' ?
member.pendingCertifications.map( cert=> ` member.pendingCertifications.map( cert=> `
<!-- Printer la certification --> <!-- Printer la certification -->
<td <td
align='center'
style="background:${ (cert.validBlockStamp) ? cert.colorPending=color(cert.expires_on,idtyWindow,250) : cert.colorPending='#FF8000'}" > style="background:${ (cert.validBlockStamp) ? cert.colorPending=color(cert.expires_on,idtyWindow,250) : cert.colorPending='#FF8000'}" >
<b > <b >
${ cert.protagonist}</b ><br > ${ cert.protagonist}</b ><br >
...@@ -536,7 +520,7 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")} ...@@ -536,7 +520,7 @@ ${ printMenu(MENU_LANG, help, "MEMBERS")}
${ member.certifications.map( cert=> ` ${ member.certifications.map( cert=> `
<!-- Printer la certification --> <!-- Printer la certification -->
<td <td
align='center'
style='background:hsla(${ proportion(cert.timestampExpire,sigValidity,0,120)}, 80%, 70%, 1 )' > style='background:hsla(${ proportion(cert.timestampExpire,sigValidity,0,120)}, 80%, 70%, 1 )' >
<b > <b >
${ (mode=='emitted') ? cert.receiver:cert.issuer}</b ><br > ${ (mode=='emitted') ? cert.receiver:cert.issuer}</b ><br >
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment