Skip to content
This repository was archived by the owner on Oct 14, 2020. It is now read-only.

Commit

Permalink
add admin navigation
Browse files Browse the repository at this point in the history
TripleThreads committed Aug 23, 2020
1 parent a13823a commit ea787c8
Showing 8 changed files with 86 additions and 17 deletions.
27 changes: 25 additions & 2 deletions covid-19-app-web/src/components/core/AppBar.vue
Original file line number Diff line number Diff line change
@@ -136,7 +136,8 @@
:to="{ name: link.to }"
v-if="
(!loggedInUser && link.roles.includes('none')) ||
link.roles.includes(loggedInUser.role.toLowerCase())
(loggedInUser &&
link.roles.includes(loggedInUser.role.toLowerCase()))
"
>
<v-list-item-icon>
@@ -214,7 +215,10 @@ import {
mdiInformation,
mdiLogoutVariant,
mdiNewspaper,
mdiTranslate
mdiTranslate,
mdiEmailSend,
mdiViewDashboard,
mdiVirus
} from "@mdi/js";
import { languages } from "../../plugins/i18n";
@@ -261,6 +265,25 @@ export default {
icon: mdiNewspaper,
to: "News",
roles: ["basic", "none"]
},
// admins
{
text: "navbar.dashboard",
icon: mdiViewDashboard,
to: "Dashboard",
roles: ["ephi_user"]
},
{
text: "map.symptoms",
icon: mdiVirus,
to: "Symptoms",
roles: ["ephi_user"]
},
{
text: "navbar.inviteAdmins",
icon: mdiEmailSend,
to: "InviteAdmin",
roles: ["ephi_user"]
}
// { text: "navbar.map", icon: mdiMap, to: "Map" }
],
4 changes: 3 additions & 1 deletion covid-19-app-web/src/locales/am.json
Original file line number Diff line number Diff line change
@@ -44,7 +44,9 @@
"about": "ስለኛ",
"news": "ዜና",
"map": "ካርታ",
"profile": "መገለጫ"
"profile": "መገለጫ",
"inviteAdmins": "አስተዳዳሪን ይጋብዙ",
"dashboard": "ዳሽቦርድ"
},

"titles": {
4 changes: 3 additions & 1 deletion covid-19-app-web/src/locales/ao.json
Original file line number Diff line number Diff line change
@@ -44,7 +44,9 @@
"about": "Waa'ee",
"news": "Oduu",
"map": "Kaartaa",
"profile": "Eenyummeessaa"
"profile": "Eenyummeessaa",
"inviteAdmins": "Invite Admins",
"dashboard": "Dashbordi"
},

"titles": {
5 changes: 4 additions & 1 deletion covid-19-app-web/src/locales/en.json
Original file line number Diff line number Diff line change
@@ -44,7 +44,10 @@
"about": "About",
"news": "News",
"map": "Map",
"profile": "Profile"
"profile": "Profile",
"symptom": "Symptoms",
"inviteAdmins": "Invite Admins",
"dashboard": "Dashboard"
},

"titles": {
4 changes: 3 additions & 1 deletion covid-19-app-web/src/locales/tr.json
Original file line number Diff line number Diff line change
@@ -44,7 +44,9 @@
"about": "Hakkında",
"news": "Haberler",
"map": "Harita",
"profile": "Profil"
"profile": "Profil",
"inviteAdmins": "Yönetici Davet Et",
"dashboard": "Gösterge Paneli"
},

"titles": {
51 changes: 42 additions & 9 deletions covid-19-app-web/src/views-admin/auth/InviteAdmin.vue
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
<template>
<v-container>
<h2 class="mx-auto text-center">Invite as many admins you can</h2>

<form
<v-snackbar top color="primary" v-model="snackbar" :timeout="5000">
<h4 class="ma-2" v-html="getMessage" />
<v-btn text icon x-small color="white" @click="snackbar = false">
<v-icon v-text="mdiCloseCircleOutline" />
</v-btn>
</v-snackbar>
<v-form
v-for="(textField, i) in textFields"
:key="i"
class="text-fields-row col-md-5 mx-auto align-center col-sm-8"
v-model="form"
>
<v-text-field
:label="textField.label"
@@ -18,7 +24,7 @@
mdiDeleteCircle
}}</v-icon>
</v-btn>
</form>
</v-form>
<div class="mx-auto align-center align-content-center">
<v-btn large @click="add" icon class="d-block mx-auto">
<v-icon large color="blue" class="text--darken-2">
@@ -28,6 +34,7 @@
<v-btn
large
@click="sendInvites"
:disabled="!form"
class="primary btn-lg d-block mt-2 mx-auto"
>
<v-icon left> {{ mdiEmailSend }} </v-icon>
@@ -38,8 +45,14 @@
</template>

<script>
import { mdiDeleteCircle, mdiEmailSend, mdiPlusCircle } from "@mdi/js";
import {
mdiCloseCircleOutline,
mdiDeleteCircle,
mdiEmailSend,
mdiPlusCircle
} from "@mdi/js";
import ajax from "../../auth/ajax";
import store from "@/store/";
export default {
name: "InviteAdmin",
@@ -48,10 +61,13 @@ export default {
},
data() {
return {
mdiCloseCircleOutline,
mdiDeleteCircle,
mdiEmailSend,
mdiPlusCircle,
textFields: [],
snackbar: false,
form: false,
emailRules: [
v => !!v || "E-mail is required",
v => /.+@.+\..+/.test(v) || "E-mail must be valid"
@@ -75,19 +91,36 @@ export default {
body.emails.push(this.textFields[i]["value"]);
}
ajax
.post(`${process.env.VUE_APP_BASE_URL}/api/user/invite-multiple`, body)
.post(`${this.server_url}/api/user/invite-multiple`, body)
.then(
res => {
console.log(res);
() => {
store.dispatch(
"setStateMessage",
"Invitation has been sent successfully"
);
},
err => {
console.log(err);
let error = err.response.data;
let emails = "";
for (let i = 0; i < error.emails.length; i++) {
emails += "<br>" + error.emails[i];
}
store.dispatch("setStateMessage", err.response.data.error + emails);
}
);
)
.finally(() => {
this.snackbar = true;
this.loading = false;
});
},
remove(index) {
this.textFields.splice(index, 1);
}
},
computed: {
getMessage() {
return store.getters.getMessage;
}
}
};
</script>
4 changes: 3 additions & 1 deletion covid-19-app-web/src/views-admin/auth/Login.vue
Original file line number Diff line number Diff line change
@@ -105,7 +105,9 @@ export default {
store.dispatch("setUser", { user: res.data.user });
store.dispatch("setToken", { token: res.data.token });
store.dispatch("setStateMessage", "Successfully logged in");
this.$router.push({ name: "Home" });
if (res.data.user.role === "ephi_user")
this.$router.push({ name: "Dashboard" });
else this.$router.push({ name: "Home" });
},
error => {
store.dispatch("setStateMessage", error.response.data);
4 changes: 3 additions & 1 deletion covid-19-app-web/src/views/Auth/Login.vue
Original file line number Diff line number Diff line change
@@ -95,7 +95,9 @@ export default {
store.dispatch("setUser", { user: res.data.user });
store.dispatch("setToken", { token: res.data.token });
store.dispatch("setStateMessage", "Successfully logged in");
this.$router.push({ name: "Home" });
if (res.data.user.role === "ephi_user")
this.$router.push({ name: "Dashboard" });
else this.$router.push({ name: "Home" });
},
error => {
store.dispatch("setStateMessage", error.response.data);

0 comments on commit ea787c8

Please sign in to comment.