diff --git a/assets/css/style.scss b/assets/css/style.scss index aeceb245d6f872061ea674f7ce0d6d3d03410db8..7ba1d0d1bd1c6b4bf69682d0e3c8ae2a841008ff 100644 --- a/assets/css/style.scss +++ b/assets/css/style.scss @@ -41,4 +41,8 @@ $close-font-weight: 500; .card-subtitle { font-style: italic; font-size: 90%; +} + +.table-hover { + cursor: pointer; } \ No newline at end of file diff --git a/components/Graph.vue b/components/Graph.vue index 8bf10f0c5afd0cf7a00953d3e7e771cb0d7c43e1..aa2f218d4535da83c749fd07a6ff99c7d4685493 100644 --- a/components/Graph.vue +++ b/components/Graph.vue @@ -82,8 +82,4 @@ export default { } } } -</script> - -<style> - -</style> \ No newline at end of file +</script> \ No newline at end of file diff --git a/components/badge/CertifStatus.vue b/components/badge/CertifStatus.vue new file mode 100644 index 0000000000000000000000000000000000000000..cee160b0a99cc0848f26e5b21308c37fd35377bb --- /dev/null +++ b/components/badge/CertifStatus.vue @@ -0,0 +1,28 @@ +<template> + <span class="font-weight-normal" :class="classWarning" :title="textWarning" v-if="($options.filters.dateStatus(limitDate) != 'success') && (['MEMBER', 'MISSING'].includes(memberStatus))">⚠+ <span class="sr-only">{{ textWarning }}</span> + </span> +</template> + +<script> +export default { + props: { + limitDate : { + type: Number, + default: 0 + }, + memberStatus : String + }, + computed: { + classWarning: function() { + return { + 'text-danger' : this.$options.filters.dateStatus(this.limitDate) == 'danger', + 'text-warning' : this.$options.filters.dateStatus(this.limitDate) == 'warning' + } + }, + textWarning: function() { + return (this.$options.filters.dateStatus(this.limitDate) == 'danger') ? 'En manque de certifications' : 'Bientôt en manque de certifications' + } + } +} +</script> \ No newline at end of file diff --git a/components/badge/Quality.vue b/components/badge/Quality.vue index 37e4b49a9a78844784df9fd5dfc1c47b80a1580d..261bb7444b53bfbbc846cb4e06614597d6563f43 100644 --- a/components/badge/Quality.vue +++ b/components/badge/Quality.vue @@ -19,8 +19,4 @@ export default { } } } -</script> - -<style> - -</style> \ No newline at end of file +</script> \ No newline at end of file diff --git a/components/badge/Status.vue b/components/badge/Status.vue index c6fe45d6ce9a9d762dc1a9c6a4e529692d22d470..0301cf79597804c2dd73d3806ef442000c90fc9a 100644 --- a/components/badge/Status.vue +++ b/components/badge/Status.vue @@ -36,8 +36,4 @@ export default { } } } -</script> - -<style> - -</style> \ No newline at end of file +</script> \ No newline at end of file diff --git a/components/certif/List.vue b/components/certif/List.vue index f68d26a8da35b0552d01fb1e68d8a2a154935823..a41453e73a079c4a79acdf14ddb43174fe4b77bb 100644 --- a/components/certif/List.vue +++ b/components/certif/List.vue @@ -1,19 +1,22 @@ <template> -<div class="list-group"> - <NuxtLink - :to="'/membres/'+getNeighbor(certif).hash" - class="list-group-item list-group-item-action d-lg-flex justify-content-between align-items-center" - :class="'list-group-item-'+ $options.filters.dateStatus(certif.expires_on)" - v-for="certif in certifsTriees" - :key="getNeighbor(certif).uid"> - <div> - {{ getNeighbor(certif).uid }} - <BadgeStatus :membre="getNeighbor(certif)" /> - <BadgeQuality :quality="getNeighbor(certif).quality.ratio" /> - </div> - <small>Expire le {{ certif.expires_on | formatDate }}</small> - </NuxtLink> -</div> + <div class="table-responsive"> + <table class="table table-striped table-hover"> + <tbody> + <tr v-for="certif in certifsTriees" :key="getNeighbor(certif).uid" + @click="$router.push({ path: '/membres/' + getNeighbor(certif).hash })"> + <th scope="row"> + {{ getNeighbor(certif).uid }} + <BadgeCertifStatus :limitDate="getNeighbor(certif).received_certifications.limit" :memberStatus="getNeighbor(certif).status" /> + <BadgeStatus :membre="getNeighbor(certif)" /> + <BadgeQuality :quality="getNeighbor(certif).quality.ratio" /> + </th> + <td class="text-right"> + <small><span class="badge" :class="'badge-'+ $options.filters.dateStatus(certif.expires_on)">Expire le {{ certif.expires_on | formatDate }}</span></small> + </td> + </tr> + </tbody> + </table> + </div> </template> <script> @@ -43,8 +46,4 @@ export default { } } } -</script> - -<style> - -</style> \ No newline at end of file +</script> \ No newline at end of file diff --git a/pages/index.vue b/pages/index.vue index f38fe3cb1486f801f4412e6b4643db80137c9a08..99cad9fa301f8b2efff101405a935690090c0662 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -36,9 +36,4 @@ export default { $nuxt.$emit('changeRoute',this.breadcrumb) } } -</script> - -<style lang="sass" scoped> -// CSS Lié au composant - -</style> \ No newline at end of file +</script> \ No newline at end of file diff --git a/pages/membres/_hash.vue b/pages/membres/_hash.vue index 157f88238f5a385ce7283e71eea7f17c65b052db..e40420d18ede0d2aeb5acf14b4ef66e703c5741b 100644 --- a/pages/membres/_hash.vue +++ b/pages/membres/_hash.vue @@ -10,10 +10,7 @@ <div class="row mt-3" v-if="idFromHash.status != 'REVOKED'"> <div class="col-12 col-md-6 mb-3"> <h3>Certifications reçues - <span :class="classWarning" v-if="(($options.filters.dateStatus(idFromHash.received_certifications.limit) == 'warning') || (!idFromHash.received_certifications.limit)) && idFromHash.status != 'NEWCOMER'">⚠- <span class="sr-only" v-if="$options.filters.dateStatus(idFromHash.received_certifications.limit) == 'danger'">En manque de certifications</span> - <span class="sr-only" v-else>Bientôt en manque de certifications</span> - </span> + <BadgeCertifStatus :limitDate="idFromHash.received_certifications.limit" :memberStatus="idFromHash.status" /> </h3> <CertifList :certifs="idFromHash.received_certifications.certifications" type="recieved" /> </div> @@ -71,7 +68,6 @@ export default { dist_ok } received_certifications { - limit certifications { from { ...memberAttributes @@ -94,6 +90,9 @@ export default { quality { ratio } + received_certifications { + limit + } } `, variables() { @@ -121,8 +120,4 @@ export default { } } }; -</script> - -<style lang="sass"> - -</style> +</script> \ No newline at end of file diff --git a/pages/membres/index.vue b/pages/membres/index.vue index 633b7e54caf2e87fdb6ffdcb8c5663d435d6ca33..9fd6540a9d51f1f4ed9aea989a76b532e3cb7684 100644 --- a/pages/membres/index.vue +++ b/pages/membres/index.vue @@ -22,7 +22,11 @@ <tbody> <tr v-for="member in idSearch.ids" :key="member.uid" @click="redirect('/membres/' + member.hash)"> - <th scope="row">{{ member.uid }} <BadgeStatus :membre="member" /></th> + <th scope="row"> + {{ member.uid }} + <BadgeCertifStatus :limitDate="member.received_certifications.limit" :memberStatus="member.status" /> + <BadgeStatus :membre="member" /> + </th> <td class="d-none d-xl-table-cell">{{ member.pubkey }}</td> </tr> </tbody> @@ -73,6 +77,9 @@ export default { status hash limitDate + received_certifications { + limit + } } } } `, @@ -89,11 +96,4 @@ export default { } } } -</script> - -<style lang="sass" scoped> -// CSS Lié au composant -.table.table-striped tbody - tr - cursor: pointer -</style> \ No newline at end of file +</script> \ No newline at end of file