From c23ae49e4a389df6673a24cd84842b96c3ff11aa Mon Sep 17 00:00:00 2001
From: paidge <paidge_cs@hotmail.com>
Date: Mon, 24 Jan 2022 18:13:51 +0100
Subject: [PATCH] add date of membership loss in favorites vue

---
 components/badge/CertifStatus.vue |  6 ------
 components/member/List.vue        | 25 +++++++++++++++++++++++--
 i18n/locales/en.json              |  1 +
 i18n/locales/es.json              |  1 +
 i18n/locales/fr.json              |  1 +
 pages/index.vue                   |  9 ++++++---
 pages/membres/_hash.vue           |  8 ++++++--
 pages/membres/index.vue           |  2 +-
 8 files changed, 39 insertions(+), 14 deletions(-)

diff --git a/components/badge/CertifStatus.vue b/components/badge/CertifStatus.vue
index c24c671..b079d09 100644
--- a/components/badge/CertifStatus.vue
+++ b/components/badge/CertifStatus.vue
@@ -38,9 +38,3 @@ export default {
 	}
 }
 </script>
-
-<style lang="scss" scoped>
-.danger {
-	cursor: default;
-}
-</style>
diff --git a/components/member/List.vue b/components/member/List.vue
index f4aa91e..ceaa396 100644
--- a/components/member/List.vue
+++ b/components/member/List.vue
@@ -5,7 +5,10 @@
 				<tr>
 					<th scope="col">UID</th>
 					<th scope="col" class="d-none d-xl-table-cell" v-if="displayPubkey">
-						PUBKEY
+						{{ $t("cle.publique.title") }}
+					</th>
+					<th scope="col" class="d-none d-xl-table-cell" v-if="displayDate">
+						{{ $t("membre.datelimpertestatut") }}
 					</th>
 				</tr>
 			</thead>
@@ -23,8 +26,9 @@
 						<BadgeStatus :membre="member" />
 					</th>
 					<td class="d-none d-xl-table-cell" v-if="displayPubkey">
-						{{ member.pubkey }}
+						{{ member.pubkey.substring(0, 10) }}
 					</td>
+					<td v-if="displayDate" v-html="getDatePerteStatus(member)"></td>
 				</tr>
 			</tbody>
 		</table>
@@ -45,6 +49,10 @@ export default {
 		displayHead: {
 			type: Boolean,
 			default: true
+		},
+		displayDate: {
+			type: Boolean,
+			default: true
 		}
 	},
 	methods: {
@@ -52,6 +60,19 @@ export default {
 			this.$router.push(
 				this.localePath({ name: "membres-hash", params: { hash } })
 			)
+		},
+		getDatePerteStatus(member) {
+			let date = Math.min(
+				member.limitDate,
+				member.received_certifications.limit
+			)
+			return date == 0
+				? "N/A"
+				: "<span class='badge badge-" +
+						this.$options.filters.dateStatus(date) +
+						"'>" +
+						this.$d(new Date(date * 1000), "long") +
+						"</span>"
 		}
 	}
 }
diff --git a/i18n/locales/en.json b/i18n/locales/en.json
index fbfd6b4..2d2967b 100644
--- a/i18n/locales/en.json
+++ b/i18n/locales/en.json
@@ -79,6 +79,7 @@
 			"title": "Calculating member"
 		},
 		"datelimadhesion": "Membership deadline",
+		"datelimpertestatut": "Loss of Membership",
 		"datelimrevoc": "Deadline before revocation ",
 		"datemanquecertifs": "Date before running out of certs",
 		"desc": "Individual whose membership is in progress and who has received the 5 necessary certifications allowing him to respect the distance rule. Which allows him to be co-creator of the currency via his Universal Dividend",
diff --git a/i18n/locales/es.json b/i18n/locales/es.json
index 22e9c86..158f517 100644
--- a/i18n/locales/es.json
+++ b/i18n/locales/es.json
@@ -80,6 +80,7 @@
 		},
 		"datelimadhesion": "Fecha límite de membresía",
 		"datelimrevoc": "Fecha límite de la autorevocación",
+		"datelimpertestatut": "Pérdida de Membresía",
 		"datemanquecertifs": "Fecha antes de quedarse sin certificaciones",
 		"desc": "Individuo cuya afiliación está en curso y que ha recibido las 5 certificaciones necesarias que le permitan respetar la regla de distanciamiento. Lo que le permite ser co-creador de la moneda a través de su Dividendo Universal",
 		"dispo": "Disponible",
diff --git a/i18n/locales/fr.json b/i18n/locales/fr.json
index 0407b24..043e0e2 100644
--- a/i18n/locales/fr.json
+++ b/i18n/locales/fr.json
@@ -79,6 +79,7 @@
 			"title": "Membre calculant"
 		},
 		"datelimadhesion": "Date limite d'adhésion",
+		"datelimpertestatut": "Perte du statut de membre",
 		"datelimrevoc": "Date limite avant révocation ",
 		"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",
diff --git a/pages/index.vue b/pages/index.vue
index 8724b06..5aeb489 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -13,21 +13,24 @@
 						<MemberList
 							:members="newMembers['entrees']"
 							:displayPubkey="false"
-							:displayHead="false" />
+							:displayHead="false"
+							:displayDate="false" />
 					</div>
 					<div class="col-md-6 col-lg-4">
 						<h2 class="h4 text-danger">{{ $t("aurevoir") }}</h2>
 						<MemberList
 							:members="newMembers['sorties']"
 							:displayPubkey="false"
-							:displayHead="false" />
+							:displayHead="false"
+							:displayDate="false" />
 					</div>
 					<div class="col-lg-4">
 						<h2 class="h4 text-info">{{ $t("revoila") }}</h2>
 						<MemberList
 							:members="newMembers['renew']"
 							:displayPubkey="false"
-							:displayHead="false" />
+							:displayHead="false"
+							:displayDate="false" />
 					</div>
 				</div>
 			</div>
diff --git a/pages/membres/_hash.vue b/pages/membres/_hash.vue
index c857e04..5fed055 100644
--- a/pages/membres/_hash.vue
+++ b/pages/membres/_hash.vue
@@ -63,10 +63,8 @@
 
 <script>
 import { SEARCH_MEMBER } from "@/graphql/queries"
-import CertifStatus from "~/components/badge/CertifStatus.vue"
 
 export default {
-	components: { CertifStatus },
 	data() {
 		return {
 			breadcrumb: [
@@ -152,3 +150,9 @@ export default {
 	}
 }
 </script>
+
+<style lang="scss" scoped>
+.danger {
+	cursor: default;
+}
+</style>
diff --git a/pages/membres/index.vue b/pages/membres/index.vue
index 47ef31c..480e75f 100644
--- a/pages/membres/index.vue
+++ b/pages/membres/index.vue
@@ -28,7 +28,7 @@
 					idSearch && param.length > 2 && !$apollo.queries.idSearch.loading
 				">
 				<div class="col-8 m-auto">
-					<MemberList :members="idSearch.ids" />
+					<MemberList :members="idSearch.ids" :displayDate="false" />
 				</div>
 			</div>
 		</transition>
-- 
GitLab