Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions frontend/src/data/reports.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,19 @@ export async function getEmailByUserId(id) {
},
});

const data = await response.json();
return data.email;
if (response.ok) {
const data = await response.json();
return data.email;
} else {
return null;
}
} catch (error) {
console.error("Errore da getEmailByUserId(" + id + "): ", error);
if (response.status === 404) {
console.error("Utente rimosso!");
} else {
console.error("Errore da getEmailByUserId(" + id + "): ", error);
}

return null;
}
}
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/states/loggedUser.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ function setLoggedUser(data) {
loggedUser.updatedAt = data.updatedAt;

// Save to cookies
Cookies.set('loggedUser', JSON.stringify(loggedUser), { expires: 7 }); // expires in 7 days
Cookies.set('loggedUser', JSON.stringify(loggedUser), { expires: 90 }); // expires in 3 months
}

function clearLoggedUser() {
Expand Down
28 changes: 17 additions & 11 deletions frontend/src/views/dashboard/ViewDashboard.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script setup>
import { ref, onMounted } from 'vue'
import { useRoute } from 'vue-router'
import { loggedUser } from '../../states/loggedUser.js'
import { loggedUser, loadUserFromCookies } from '../../states/loggedUser.js'
import { users, getUsers, nUsers } from '../../data/users'
import { reports, getReports, nReports } from '../../data/reports'
import { emergencies, getEmergencies, nEmergencies } from '../../data/emergencies'
Expand Down Expand Up @@ -30,7 +30,7 @@ onMounted(async () => {
if (route.query.published === 'true') {
createToast("success", "Successo!", "Comunicazione pubblicata correttamente")
}

if (route.query.published === 'true') {
createToast("success", "Successo!", "Comunicazione modificata correttamente")
}
Expand All @@ -43,14 +43,18 @@ onMounted(async () => {
createToast("info", "Successo!", "Segnalazione rifiutata correttamente")
}

getUsers()
getReports()
getEmergencies()
if (loggedUser.token && loggedUser.role === 'operator') {
loadUserFromCookies()

getUsers()
getReports()
getEmergencies()

countCitizens.value = await nUsers("citizen")
countOperators.value = await nUsers("operator")
countReports.value = await nReports()
countEmergencies.value = await nEmergencies()
countCitizens.value = await nUsers("citizen")
countOperators.value = await nUsers("operator")
countReports.value = await nReports()
countEmergencies.value = await nEmergencies()
}
});

function calcolaPercentuale(value, total) {
Expand Down Expand Up @@ -138,9 +142,11 @@ function createToast(type, title, msg) {
<input type="radio" name="tab-admin" role="tab" class="tab me-2" aria-label="Segnalazioni" />
<div role="tabpanel" class="tab-content border-green-950 rounded-box p-6">
<h4 class="text-white font-bold text-2xl mb-4">Segnalazioni in attesa:</h4>
<TabellaSegnalazioni :reports="reports" :is-operator="true" :reviewable="true" :pending-only="true" />
<TabellaSegnalazioni :reports="reports" :is-operator="true" :reviewable="true"
:pending-only="true" />
<h4 class="text-white font-bold text-2xl mt-8 mb-4">Segnalazioni approvate/rifiutate:</h4>
<TabellaSegnalazioni :reports="reports" :is-operator="true" :reviewable="false" :non-pending-only="true" />
<TabellaSegnalazioni :reports="reports" :is-operator="true" :reviewable="false"
:non-pending-only="true" />
</div>

<input type="radio" name="tab-admin" role="tab" class="tab me-2" aria-label="Comunicazioni" />
Expand Down
6 changes: 4 additions & 2 deletions frontend/src/views/user/ViewProfilo.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script setup>
import { ref, onMounted } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { loggedUser, clearLoggedUser } from '../../states/loggedUser.js'
import { loggedUser, loadUserFromCookies, clearLoggedUser } from '../../states/loggedUser.js'

import Toast from '@/components/Toast/Toast.vue'
import AccessLimited from '@/components/Error/AccessLimited.vue'
Expand All @@ -22,8 +22,10 @@ const toastType = ref()
const toastTitle = ref()
const toastMsg = ref()

// Se l'utente non è loggato
// Se l'utente si è loggato
if (loggedUser.token) {
loadUserFromCookies()

onMounted(() => {
// Toast di conferma registrazione
if (route.query.fromLogin === 'true') {
Expand Down