From 10fafbe1f4f88a3449c792a2509e492e11a7c4b3 Mon Sep 17 00:00:00 2001 From: Michael Foiani Date: Thu, 2 Aug 2018 00:04:49 -0400 Subject: Finished registry of competitions showing for administrator logins. --- src/actions/app.js | 2 +- src/actions/firebase.js | 17 +++-- src/components/mao-admin.js | 64 +++++++++++++++--- src/components/mao-fourms.js | 2 +- src/components/registry-element.js | 135 +++++++++++++++++++++++++++++++++++++ src/components/request-element.js | 1 + 6 files changed, 205 insertions(+), 16 deletions(-) create mode 100644 src/components/registry-element.js (limited to 'src') diff --git a/src/actions/app.js b/src/actions/app.js index 5a77ae6..c60f6e9 100644 --- a/src/actions/app.js +++ b/src/actions/app.js @@ -49,7 +49,7 @@ const loadPage = (page) => (dispatch) => { dispatch(snapshotFourms()); hasSubscribedPosts = true; } - });; + }); break; case 'account': import('../components/mao-account.js'); diff --git a/src/actions/firebase.js b/src/actions/firebase.js index 631599f..5f24170 100644 --- a/src/actions/firebase.js +++ b/src/actions/firebase.js @@ -165,18 +165,24 @@ export const UPDATE_ADMIN_COMP_LIST = 'UPDATE_ADMIN_COMP_LIST'; export const registerComp = (compName) => (dispatch, getState) => { var docRef = firestore.collection('competitions').doc(compName); var uid = getState().firebase.uid; + var email = getState().firebase.userEmail; docRef.get().then((doc) => { if(doc.exists) { - var uidArr = doc.data().uids; + var uidArr = doc.data().uids; + var emailArr = doc.data().emails; + uidArr.push(uid); + emailArr.push(email); docRef.set({ - uids: uidArr + uids: uidArr, + emails: emailArr }); } else { docRef.set({ - uids : [uid] + uids : [uid], + emails: [email] }); } }); @@ -208,7 +214,10 @@ export const snapshotAdminCompList = () => (dispatch) => { docRef.onSnapshot((querySnapshot) => { var compList = []; querySnapshot.forEach((doc) => { - compList.push(doc.data()); + compList.push({ + ...doc.data(), + name: doc.id + }); }); dispatch(updateAdminCompList(compList)); }); diff --git a/src/components/mao-admin.js b/src/components/mao-admin.js index 724c0c9..4d8b28e 100644 --- a/src/components/mao-admin.js +++ b/src/components/mao-admin.js @@ -37,6 +37,7 @@ import '@polymer/paper-button/paper-button.js'; // Import custom elements import './request-element.js'; +import './registry-element.js'; class MaoAdmin extends connect(store)(PageViewElement) { _render(props) { @@ -52,10 +53,9 @@ class MaoAdmin extends connect(store)(PageViewElement) { paper-button { display: block; - width: 50%; } - .requests-grid { + .main-grid { display: grid; grid-gap: 10px; @@ -64,7 +64,7 @@ class MaoAdmin extends connect(store)(PageViewElement) { @media (min-width: 460px) { - .requests-grid { + .main-grid { grid-template-columns: 1fr 1fr; } } @@ -77,14 +77,27 @@ class MaoAdmin extends connect(store)(PageViewElement) {

Hello Admin!

- Show Hours Requests +
+ Show Hours Requests + Show Competitions And Registry +

+ + - + + + `; } @@ -95,9 +108,10 @@ class MaoAdmin extends connect(store)(PageViewElement) { isAdmin: Boolean, requests: Array, - compList: Array, + registry: Array, - requestsHidden: Boolean + requestsHidden: Boolean, + registryHidden: Boolean }} _stateChanged(state) { @@ -105,10 +119,12 @@ class MaoAdmin extends connect(store)(PageViewElement) { this.isAdmin = state.firebase.isAdmin; this.requests = state.firebase.requests; - this.compList = state.firebase.compList; - this.updateInformation(); + this.registry = state.firebase.compList; this.requestsHidden = true; + this.registryHidden = true; + + this.updateInformation(); } toggleRequests() { @@ -118,12 +134,27 @@ class MaoAdmin extends connect(store)(PageViewElement) { var btn = this.shadowRoot.getElementById('toggleRequestsBtn'); if(this.requestsHidden) { btn.innerHTML = "Show Hours Requests"; + this.updateInformation(); } else { btn.innerHTML = "Hide Hours Requests"; } } } + toggleRegistry() { + this.registryHidden = !this.registryHidden; + + if(this.shadowRoot) { + var btn = this.shadowRoot.getElementById('toggleRegistryBtn'); + if(this.registryHidden) { + btn.innerHTML = "Show Comps & Registry"; + this.updateInformation(); + } else { + btn.innerHTML = "Hide Comps & Registry"; + } + } + } + updateInformation() { if(this.shadowRoot) { //update requests @@ -142,6 +173,19 @@ class MaoAdmin extends connect(store)(PageViewElement) { requestGrid.appendChild(requestElement); } + + //update registry + var registryGrid = this.shadowRoot.getElementById('registry-grid'); + registryGrid.innerHTML = ""; + + for(var i = 0; i + + paper-card { + --paper-card-background-color: #ffffff; + width: 100%; + text-align: center; + + font-size: 125%; + } + + .mus { + color: #f09300; + } + + .thetas { + color: #f09300; + } + + .alphas { + color: #7baaf7; + } + + ol, h4 { + text-align: left; + word-break: break-all; + } + + + +
+

${props.name}

+ +
+
+ `; + } + + static get properties() { return { + name: String, + emails: Array, + + infoTabOpen: Boolean + }}; + + constructor() { + super(); + + this.name = ""; + this.emails = []; + + this.infoTabOpen = false; + } + + toggleTabOpen() { + this.sortNames(); + this.infoTabOpen = true; + } + + toggleTabClosed() { + this.infoTabOpen = false; + } + + sortNames() { + var thetas = this.shadowRoot.getElementById('name-list-theta'); + var alphas = this.shadowRoot.getElementById('name-list-alpha'); + var mus = this.shadowRoot.getElementById('name-list-mu'); + //var stats = this.shadowRoot.getElementById('name-list-stats'); + + thetas.innerHTML = ""; + alphas.innerHTML = ""; + mus .innerHTML = ""; + + for(var i=0; i