Skip to content
Snippets Groups Projects
Commit 7ee1c17e authored by Pierre-Jean CHANCELLIER's avatar Pierre-Jean CHANCELLIER
Browse files

Display dates of losing membership and certs in MemberList

parent 4112087a
No related branches found
No related tags found
No related merge requests found
...@@ -87,3 +87,17 @@ thead.sortable th { ...@@ -87,3 +87,17 @@ thead.sortable th {
} }
} }
} }
.uid {
@extend .text-truncate;
display: inline-block;
max-width: 200px;
@media (min-width: 576px) {
max-width: 255px;
}
@media (min-width: 992px) {
max-width: 205px;
}
}
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<th scope="row" class="py-1"> <th scope="row" class="py-1">
<div> <div>
<div class="d-flex"> <div class="d-flex">
<div class="uid inline-block text-truncate"> <div class="uid inline-block">
<span v-if="$favourites.list.includes(certif.uid)" <span v-if="$favourites.list.includes(certif.uid)"
>&nbsp;</span >&nbsp;</span
>{{ certif.uid }} >{{ certif.uid }}
...@@ -140,16 +140,4 @@ thead th:last-child { ...@@ -140,16 +140,4 @@ thead th:last-child {
padding-right: 1.5rem; padding-right: 1.5rem;
text-align: right; text-align: right;
} }
.uid {
max-width: 130px;
@media (min-width: 576px) {
max-width: 255px;
}
@media (min-width: 992px) {
max-width: 205px;
}
}
</style> </style>
<template> <template>
<div class="card member"> <div class="card member">
<div class="card-body"> <div class="card-body">
<div class="uid d-flex align-items-center justify-content-between mb-4"> <div
class="uid-wrapper d-flex align-items-center justify-content-between mb-4">
<h2 class="card-title text-center"> <h2 class="card-title text-center">
{{ hash.uid }} <span class="text-truncate d-inline-block">
{{ hash.uid }}
</span>
<BadgeStatus :membre="hash" /> <BadgeStatus :membre="hash" />
</h2> </h2>
<button <button
...@@ -143,9 +146,13 @@ export default { ...@@ -143,9 +146,13 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
.uid { .uid-wrapper {
flex-direction: column; flex-direction: column;
.text-truncate {
max-width: 300px;
}
@media (min-width: 576px) { @media (min-width: 576px) {
flex-direction: row; flex-direction: row;
} }
......
<template> <template>
<div class="table-responsive pb-3"> <div class="table-responsive pb-3">
<table class="table table-striped table-hover text-center"> <table class="table table-striped table-hover text-center">
<thead class="thead-light sortable" v-if="displayHead"> <thead class="thead-light sortable">
<tr> <tr>
<th class="position-relative" scope="col" @click="sort('uid')"> <th class="position-relative" scope="col" @click="sort('uid')">
<BtnSort <BtnSort
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
scope="col" scope="col"
class="d-none d-md-table-cell position-relative" class="d-none d-md-table-cell position-relative"
@click="sort('pubkey')" @click="sort('pubkey')"
v-if="displayPubkey"> v-if="['search', 'favoris'].includes(type)">
<BtnSort <BtnSort
fieldName="pubkey" fieldName="pubkey"
:title="$t('cle.publique.title')" :title="$t('cle.publique.title')"
...@@ -24,11 +24,22 @@ ...@@ -24,11 +24,22 @@
<th <th
scope="col" scope="col"
class="d-none d-sm-table-cell position-relative" class="d-none d-sm-table-cell position-relative"
@click="sort('date_sortie')" @click="sort('date_membership')"
v-if="displayDate"> v-if="['adhesion', 'favoris'].includes(type)">
<BtnSort <BtnSort
fieldName="date_sortie" fieldName="date_membership"
:title="getTitleDate" :title="$t('membre.datelimpertestatut')"
:currentSort="currentSort"
:currentSortDir="currentSortDir" />
</th>
<th
scope="col"
class="d-none d-lg-table-cell position-relative"
@click="sort('date_certs')"
v-if="['certif', 'favoris'].includes(type)">
<BtnSort
fieldName="date_certs"
:title="$t('membre.datemanquecertifs')"
:currentSort="currentSort" :currentSort="currentSort"
:currentSortDir="currentSortDir" /> :currentSortDir="currentSortDir" />
</th> </th>
...@@ -38,9 +49,12 @@ ...@@ -38,9 +49,12 @@
<tbody> <tbody>
<tr v-for="member in membersSorted" :key="member.uid"> <tr v-for="member in membersSorted" :key="member.uid">
<th scope="row" @click="redirect(member.hash)"> <th scope="row" @click="redirect(member.hash)">
<div> <div class="d-flex justify-content-center">
<span v-if="$favourites.list.includes(member.uid)">&nbsp;</span <div class="uid inline-block">
>{{ member.uid }} <span v-if="$favourites.list.includes(member.uid)">&nbsp;</span
>{{ member.uid }}
</div>
&nbsp;
<BadgeDanger <BadgeDanger
:limitDate=" :limitDate="
Math.min( Math.min(
...@@ -51,7 +65,7 @@ ...@@ -51,7 +65,7 @@
:memberStatus="member.status" /> :memberStatus="member.status" />
</div> </div>
<div v-if="['adhesion', 'certif'].includes(type)" class="d-sm-none"> <div v-if="['adhesion', 'certif'].includes(type)" class="d-sm-none">
<BadgeDate :date="date(member)" styleDate="long" /> <BadgeDate :date="getDate(member)" styleDate="long" />
</div> </div>
<BadgeStatus :membre="member" /> <BadgeStatus :membre="member" />
<BadgeDispo <BadgeDispo
...@@ -62,15 +76,23 @@ ...@@ -62,15 +76,23 @@
</th> </th>
<td <td
class="d-none d-md-table-cell" class="d-none d-md-table-cell"
v-if="displayPubkey" v-if="['search', 'favoris'].includes(type)"
@click="redirect(member.hash)"> @click="redirect(member.hash)">
{{ member.pubkey.substring(0, 10) }} {{ member.pubkey.substring(0, 10) }}
</td> </td>
<td <td
class="d-none d-sm-table-cell" class="d-none d-sm-table-cell"
v-if="displayDate" v-if="['adhesion', 'favoris'].includes(type)"
@click="redirect(member.hash)">
<BadgeDate :date="member.limitDate" styleDate="long" />
</td>
<td
class="d-none d-lg-table-cell"
v-if="['certif', 'favoris'].includes(type)"
@click="redirect(member.hash)"> @click="redirect(member.hash)">
<BadgeDate :date="date(member)" styleDate="long" /> <BadgeDate
:date="member.received_certifications.limit"
styleDate="long" />
</td> </td>
<td class="py-1"> <td class="py-1">
<button <button
...@@ -106,23 +128,15 @@ export default { ...@@ -106,23 +128,15 @@ export default {
type: Array, type: Array,
required: true required: true
}, },
displayHead: {
type: Boolean,
default: true
},
displayPubkey: {
type: Boolean,
default: true
},
displayDate: {
type: Boolean,
default: true
},
type: { type: {
type: String, type: String,
default: "default", default: "default",
validator: function (value) { validator: function (value) {
return ["adhesion", "certif", "default"].indexOf(value) !== -1 return (
["adhesion", "certif", "favoris", "search", "default"].indexOf(
value
) !== -1
)
} }
}, },
defaultSortDir: { defaultSortDir: {
...@@ -144,7 +158,7 @@ export default { ...@@ -144,7 +158,7 @@ export default {
} }
this.currentSort = s this.currentSort = s
}, },
date(member) { getDate(member) {
if (this.type == "adhesion") return member.limitDate if (this.type == "adhesion") return member.limitDate
if (this.type == "certif") return member.received_certifications.limit if (this.type == "certif") return member.received_certifications.limit
return Math.min(member.limitDate, member.received_certifications.limit) return Math.min(member.limitDate, member.received_certifications.limit)
...@@ -173,26 +187,14 @@ export default { ...@@ -173,26 +187,14 @@ export default {
b["pubkey"].toLowerCase(), b["pubkey"].toLowerCase(),
modifier modifier
) )
} else if (this.currentSort == "date_sortie") { } else if (this.currentSort == "date_membership") {
if (this.type == "adhesion") { return this.getOrder(a["limitDate"], b["limitDate"], modifier)
return this.getOrder(a["limitDate"], b["limitDate"], modifier) } else if (this.currentSort == "date_certs") {
} else if (this.type == "certif") { return this.getOrder(
return this.getOrder( a["received_certifications"]["limit"],
a["received_certifications"]["limit"], b["received_certifications"]["limit"],
b["received_certifications"]["limit"], modifier
modifier )
)
} else {
let minA = Math.min(
a["limitDate"],
a["received_certifications"]["limit"]
)
let minB = Math.min(
b["limitDate"],
b["received_certifications"]["limit"]
)
return this.getOrder(minA, minB, modifier)
}
} }
return 0 return 0
}) })
...@@ -201,13 +203,6 @@ export default { ...@@ -201,13 +203,6 @@ export default {
let end = this.currentPage * this.pageSize let end = this.currentPage * this.pageSize
if (index >= start && index < end) return true if (index >= start && index < end) return true
}) })
},
getTitleDate() {
if (["adhesion", "certif"].includes(this.type)) {
return this.$t("date")
} else {
return this.$t("membre.datelimpertestatut")
}
} }
} }
} }
......
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
"title": "Membre calculant" "title": "Membre calculant"
}, },
"datelimadhesion": "Date limite d'adhésion", "datelimadhesion": "Date limite d'adhésion",
"datelimpertestatut": "Perte du statut de membre", "datelimpertestatut": "Perte d'adhesion",
"datelimrevoc": "Date limite avant révocation ", "datelimrevoc": "Date limite avant révocation ",
"datemanquecertifs": "Date avant de manquer de certifs", "datemanquecertifs": "Date avant de manquer de certifs",
"desc": "Individu dont l'adhésion est en cours et ayant reçu les 5 certifications nécessaires lui permettant de respecter la règle de distance. Ce qui lui permet d'être co-créateur de la monnaie via son Dividende Universel", "desc": "Individu dont l'adhésion est en cours et ayant reçu les 5 certifications nécessaires lui permettant de respecter la règle de distance. Ce qui lui permet d'être co-créateur de la monnaie via son Dividende Universel",
......
...@@ -11,8 +11,9 @@ ...@@ -11,8 +11,9 @@
</transition> </transition>
<transition name="fade"> <transition name="fade">
<MemberList <MemberList
defaultSort="date_sortie" defaultSort="date_membership"
:members="favoris" :members="favoris"
type="favoris"
v-if=" v-if="
!$apollo.queries.favoris.loading && favoris && favoris.length != 0 !$apollo.queries.favoris.loading && favoris && favoris.length != 0
" /> " />
......
...@@ -10,27 +10,15 @@ ...@@ -10,27 +10,15 @@
<div class="row text-center"> <div class="row text-center">
<div class="col-md-6 col-lg-4"> <div class="col-md-6 col-lg-4">
<h2 class="h4 text-success">{{ $t("bienvenue") }}</h2> <h2 class="h4 text-success">{{ $t("bienvenue") }}</h2>
<MemberList <MemberList :members="newMembers['entrees']" />
:members="newMembers['entrees']"
:displayPubkey="false"
:displayHead="false"
:displayDate="false" />
</div> </div>
<div class="col-md-6 col-lg-4"> <div class="col-md-6 col-lg-4">
<h2 class="h4 text-danger">{{ $t("aurevoir") }}</h2> <h2 class="h4 text-danger">{{ $t("aurevoir") }}</h2>
<MemberList <MemberList :members="newMembers['sorties']" />
:members="newMembers['sorties']"
:displayPubkey="false"
:displayHead="false"
:displayDate="false" />
</div> </div>
<div class="col-lg-4"> <div class="col-lg-4">
<h2 class="h4 text-info">{{ $t("revoila") }}</h2> <h2 class="h4 text-info">{{ $t("revoila") }}</h2>
<MemberList <MemberList :members="newMembers['renew']" />
:members="newMembers['renew']"
:displayPubkey="false"
:displayHead="false"
:displayDate="false" />
</div> </div>
</div> </div>
</div> </div>
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
idSearch && param.length > 2 && !$apollo.queries.idSearch.loading idSearch && param.length > 2 && !$apollo.queries.idSearch.loading
"> ">
<div class="col-lg-9 col-xl-8 m-auto"> <div class="col-lg-9 col-xl-8 m-auto">
<MemberList :members="idSearch.ids" /> <MemberList :members="idSearch.ids" type="search" />
</div> </div>
</div> </div>
</transition> </transition>
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
<MemberList <MemberList
defaultSort="date_sortie" defaultSort="date_sortie"
:members="memEnds" :members="memEnds"
:displayPubkey="false"
type="adhesion" /> type="adhesion" />
</div> </div>
<div class="col-lg-6" v-if="certEnds"> <div class="col-lg-6" v-if="certEnds">
...@@ -32,7 +31,6 @@ ...@@ -32,7 +31,6 @@
<MemberList <MemberList
defaultSort="date_sortie" defaultSort="date_sortie"
:members="certEnds" :members="certEnds"
:displayPubkey="false"
type="certif" /> type="certif" />
</div> </div>
</div> </div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment