diff --git a/graphql/queries.js b/graphql/queries.js index b981258d15ef42a8d74fde822873f3fe360aba30..1db39a0d6994ef6e4c98e78743967b609152aeee 100644 --- a/graphql/queries.js +++ b/graphql/queries.js @@ -2,28 +2,36 @@ import gql from "graphql-tag" // Pour la page index export const LAST_EVENTS = gql`query LastEvents($start: Int64, $end: Int64) { - membersCount(start: $start, end: $end) { - idList { - __typename - member : id { - __typename - pubkey - uid - status - hash - limitDate - received_certifications { - __typename - limit - } - } - inOut - }, - block { + membersCount(start: $start, end: $end) { + idList { + __typename + member : id { + __typename + pubkey + uid + status + hash + limitDate + history { + __typename + in + block { __typename number + } } + received_certifications { + __typename + limit + } + } + inOut + }, + block { + __typename + number } + } } ` // Pour la page previsions/index diff --git a/pages/index.vue b/pages/index.vue index 5169785c1c7af274bfabdfa2a93e14fefdd8e83f..39b3873bbb6e4f3a140f370fbdf0ab2242c2a120 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -6,14 +6,18 @@ <div class="alert alert-danger" v-if="error">{{ error }}</div> <div class="result" v-if="newMembers"> <div class="row text-center"> - <div class="col-lg-6"> + <div class="col-lg-4"> <h2 class="h4 text-success">Bienvenue à </h2> <MemberList :members="newMembers['entrees']" :displayPubkey="false" :displayHead="false" /> </div> - <div class="col-lg-6"> + <div class="col-lg-4"> <h2 class="h4 text-danger">Au revoir à </h2> <MemberList :members="newMembers['sorties']" :displayPubkey="false" :displayHead="false" /> </div> + <div class="col-lg-4"> + <h2 class="h4 text-info">Les revoilà </h2> + <MemberList :members="newMembers['renew']" :displayPubkey="false" :displayHead="false" /> + </div> </div> </div> </transition> @@ -37,25 +41,39 @@ export default { error: null } }, + methods: { + addValue(arr,val) { + if (arr.filter(function(e) { return e.uid === val.uid }).length == 0) { + arr.push(member.member) + } + return arr + } + }, apollo: { newMembers : { query: LAST_EVENTS, variables() {return {start:today-86400*2,end:today}}, update (data) { - let result = {'entrees':[],'sorties':[]} + let result = {'entrees':[],'sorties':[],'renew':[]} for (let i = 0; i < data.membersCount.length; i++) { for (let j =0; j < data.membersCount[i].idList.length; j++) { let member = data.membersCount[i].idList[j] member.member.inOut = member.inOut - if (member.inOut || member.member.status=='MEMBER') { - if (result['entrees'].filter(function(e) { return e.hash === member.member.hash; }).length == 0) { + console.log(member.member.uid + ' : ' + member.member.history.length) + + if (member.member.history.length==1) { + if (result['entrees'].filter(function(e) { return e.uid === member.member.uid }).length == 0) { result['entrees'].push(member.member) } - } else { - result['sorties'].push(member.member) - } + } else if (member.inOut) { + if (result['renew'].filter(function(e) { return e.uid === member.member.uid }).length == 0) { + result['renew'].push(member.member) + } + } else if (result['sorties'].filter(function(e) { return e.uid === member.member.uid }).length == 0) { + result['sorties'].push(member.member) + } } }