fixes
Build And Push Image / docker (push) Successful in 1m29s
Details
Build And Push Image / docker (push) Successful in 1m29s
Details
This commit is contained in:
parent
b059d81c21
commit
4adbb0465a
|
|
@ -231,7 +231,7 @@ const openUserManagement = () => {
|
|||
};
|
||||
|
||||
const navigateToProfile = () => {
|
||||
navigateTo('/dashboard/user');
|
||||
navigateTo('/dashboard/profile');
|
||||
};
|
||||
|
||||
const navigateToSettings = () => {
|
||||
|
|
|
|||
|
|
@ -12,32 +12,34 @@
|
|||
<p class="text-h6 text-medium-emphasis">
|
||||
MonacoUSA Board Portal
|
||||
</p>
|
||||
<v-chip color="primary" variant="elevated" class="mt-2">
|
||||
<v-icon start>mdi-shield-account</v-icon>
|
||||
Board Member
|
||||
</v-chip>
|
||||
<div class="text-center">
|
||||
<v-chip color="primary" variant="elevated" class="mt-2">
|
||||
<v-icon start>mdi-shield-account</v-icon>
|
||||
Board Member
|
||||
</v-chip>
|
||||
</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Board Tools -->
|
||||
<v-row class="mb-6">
|
||||
<v-col cols="12" md="3">
|
||||
<v-col cols="12" md="6">
|
||||
<v-card class="pa-4 text-center" elevation="2" hover>
|
||||
<v-icon size="48" color="primary" class="mb-2">mdi-calendar-clock</v-icon>
|
||||
<h3 class="mb-2">Meetings</h3>
|
||||
<p class="text-body-2 mb-4">Schedule and manage board meetings</p>
|
||||
<v-icon size="48" color="primary" class="mb-2">mdi-calendar</v-icon>
|
||||
<h3 class="mb-2">Events</h3>
|
||||
<p class="text-body-2 mb-4">View and manage association events</p>
|
||||
<v-btn
|
||||
color="primary"
|
||||
variant="outlined"
|
||||
style="border-color: #a31515; color: #a31515;"
|
||||
@click="navigateToMeetings"
|
||||
@click="navigateToEvents"
|
||||
>
|
||||
Manage Meetings
|
||||
View Events
|
||||
</v-btn>
|
||||
</v-card>
|
||||
</v-col>
|
||||
|
||||
<v-col cols="12" md="3">
|
||||
<v-col cols="12" md="6">
|
||||
<v-card class="pa-4 text-center" elevation="2" hover>
|
||||
<v-icon size="48" color="primary" class="mb-2">mdi-account-group</v-icon>
|
||||
<h3 class="mb-2">Members</h3>
|
||||
|
|
@ -52,38 +54,6 @@
|
|||
</v-btn>
|
||||
</v-card>
|
||||
</v-col>
|
||||
|
||||
<v-col cols="12" md="3">
|
||||
<v-card class="pa-4 text-center" elevation="2" hover>
|
||||
<v-icon size="48" color="primary" class="mb-2">mdi-chart-line</v-icon>
|
||||
<h3 class="mb-2">Reports</h3>
|
||||
<p class="text-body-2 mb-4">Financial and activity reports</p>
|
||||
<v-btn
|
||||
color="primary"
|
||||
variant="outlined"
|
||||
style="border-color: #a31515; color: #a31515;"
|
||||
@click="navigateToReports"
|
||||
>
|
||||
View Reports
|
||||
</v-btn>
|
||||
</v-card>
|
||||
</v-col>
|
||||
|
||||
<v-col cols="12" md="3">
|
||||
<v-card class="pa-4 text-center" elevation="2" hover>
|
||||
<v-icon size="48" color="primary" class="mb-2">mdi-tools</v-icon>
|
||||
<h3 class="mb-2">Tools</h3>
|
||||
<p class="text-body-2 mb-4">Board management tools</p>
|
||||
<v-btn
|
||||
color="primary"
|
||||
variant="outlined"
|
||||
style="border-color: #a31515; color: #a31515;"
|
||||
@click="navigateToTools"
|
||||
>
|
||||
Access Tools
|
||||
</v-btn>
|
||||
</v-card>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Board Statistics -->
|
||||
|
|
@ -104,13 +74,9 @@
|
|||
<div class="text-h4 font-weight-bold" style="color: #a31515;">{{ stats.activeMembers }}</div>
|
||||
<div class="text-body-2">Active Members</div>
|
||||
</v-col>
|
||||
<v-col cols="6" md="3" class="text-center">
|
||||
<div class="text-h4 font-weight-bold" style="color: #a31515;">{{ stats.upcomingMeetings }}</div>
|
||||
<div class="text-body-2">Upcoming Meetings</div>
|
||||
</v-col>
|
||||
<v-col cols="6" md="3" class="text-center">
|
||||
<div class="text-h4 font-weight-bold" style="color: #a31515;">{{ stats.pendingActions }}</div>
|
||||
<div class="text-body-2">Pending Actions</div>
|
||||
<v-col cols="6" md="6" class="text-center">
|
||||
<div class="text-h4 font-weight-bold" style="color: #a31515;">{{ stats.upcomingEvents }}</div>
|
||||
<div class="text-body-2">Upcoming Events</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-card-text>
|
||||
|
|
@ -121,24 +87,24 @@
|
|||
<v-card elevation="2">
|
||||
<v-card-title class="pa-4" style="background-color: #f5f5f5;">
|
||||
<v-icon class="mr-2" color="primary">mdi-calendar-today</v-icon>
|
||||
Next Meeting
|
||||
Next Event
|
||||
</v-card-title>
|
||||
<v-card-text class="pa-4">
|
||||
<div class="text-h6 mb-2">Board Meeting</div>
|
||||
<div class="text-h6 mb-2">{{ nextEvent.title }}</div>
|
||||
<div class="text-body-2 mb-2">
|
||||
<v-icon size="small" class="mr-1">mdi-calendar</v-icon>
|
||||
{{ nextMeeting.date }}
|
||||
{{ nextEvent.date }}
|
||||
</div>
|
||||
<div class="text-body-2 mb-4">
|
||||
<v-icon size="small" class="mr-1">mdi-clock</v-icon>
|
||||
{{ nextMeeting.time }}
|
||||
{{ nextEvent.time }}
|
||||
</div>
|
||||
<v-btn
|
||||
color="primary"
|
||||
variant="outlined"
|
||||
size="small"
|
||||
style="border-color: #a31515; color: #a31515;"
|
||||
@click="viewMeetingDetails"
|
||||
@click="viewEventDetails"
|
||||
>
|
||||
View Details
|
||||
</v-btn>
|
||||
|
|
@ -159,82 +125,6 @@
|
|||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Recent Board Activity -->
|
||||
<v-row class="mb-6">
|
||||
<v-col cols="12">
|
||||
<v-card elevation="2">
|
||||
<v-card-title class="pa-4" style="background-color: #f5f5f5;">
|
||||
<v-icon class="mr-2" color="primary">mdi-history</v-icon>
|
||||
Recent Board Activity
|
||||
</v-card-title>
|
||||
<v-card-text class="pa-4">
|
||||
<v-list>
|
||||
<v-list-item v-for="activity in recentActivity" :key="activity.id">
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>{{ activity.title }}</v-list-item-title>
|
||||
<v-list-item-subtitle>{{ activity.description }}</v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
<v-list-item-action>
|
||||
<v-chip :color="activity.type" size="small">{{ activity.status }}</v-chip>
|
||||
</v-list-item-action>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Quick Actions -->
|
||||
<v-row>
|
||||
<v-col cols="12">
|
||||
<v-card elevation="2">
|
||||
<v-card-title class="pa-4" style="background-color: #f5f5f5;">
|
||||
<v-icon class="mr-2" color="primary">mdi-lightning-bolt</v-icon>
|
||||
Quick Actions
|
||||
</v-card-title>
|
||||
<v-card-text class="pa-4">
|
||||
<v-row>
|
||||
<v-col cols="12" md="4">
|
||||
<v-btn
|
||||
color="primary"
|
||||
variant="outlined"
|
||||
block
|
||||
style="border-color: #a31515; color: #a31515;"
|
||||
@click="scheduleNewMeeting"
|
||||
>
|
||||
<v-icon start>mdi-plus</v-icon>
|
||||
Schedule New Meeting
|
||||
</v-btn>
|
||||
</v-col>
|
||||
<v-col cols="12" md="4">
|
||||
<v-btn
|
||||
color="primary"
|
||||
variant="outlined"
|
||||
block
|
||||
style="border-color: #a31515; color: #a31515;"
|
||||
@click="createAnnouncement"
|
||||
>
|
||||
<v-icon start>mdi-bullhorn</v-icon>
|
||||
Create Announcement
|
||||
</v-btn>
|
||||
</v-col>
|
||||
<v-col cols="12" md="4">
|
||||
<v-btn
|
||||
color="primary"
|
||||
variant="outlined"
|
||||
block
|
||||
style="border-color: #a31515; color: #a31515;"
|
||||
@click="generateReport"
|
||||
>
|
||||
<v-icon start>mdi-file-chart</v-icon>
|
||||
Generate Report
|
||||
</v-btn>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- View Member Dialog -->
|
||||
<ViewMemberDialog
|
||||
|
|
@ -284,17 +174,16 @@ const selectedMember = ref<Member | null>(null);
|
|||
const stats = ref({
|
||||
totalMembers: 0,
|
||||
activeMembers: 0,
|
||||
upcomingMeetings: 0,
|
||||
pendingActions: 0
|
||||
upcomingEvents: 0
|
||||
});
|
||||
|
||||
const nextMeeting = ref({
|
||||
const nextEvent = ref({
|
||||
id: null,
|
||||
title: 'Board Meeting',
|
||||
title: 'Next Event',
|
||||
date: 'Loading...',
|
||||
time: 'Loading...',
|
||||
location: 'TBD',
|
||||
description: 'Monthly board meeting'
|
||||
description: 'Upcoming association event'
|
||||
});
|
||||
|
||||
const isLoading = ref(true);
|
||||
|
|
@ -321,8 +210,7 @@ const loadBoardData = async () => {
|
|||
stats.value = {
|
||||
totalMembers: statsData.data.totalMembers || 0,
|
||||
activeMembers: statsData.data.activeMembers || 0,
|
||||
upcomingMeetings: statsData.data.upcomingMeetings || 0,
|
||||
pendingActions: statsData.data.pendingActions || 0
|
||||
upcomingEvents: statsData.data.upcomingEvents || 0
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -331,13 +219,13 @@ const loadBoardData = async () => {
|
|||
if (meetingResponse.status === 'fulfilled') {
|
||||
const meetingData = meetingResponse.value as any;
|
||||
if (meetingData?.success) {
|
||||
nextMeeting.value = {
|
||||
nextEvent.value = {
|
||||
id: meetingData.data.id,
|
||||
title: meetingData.data.title || 'Board Meeting',
|
||||
title: meetingData.data.title || 'Next Event',
|
||||
date: meetingData.data.date || 'TBD',
|
||||
time: meetingData.data.time || 'TBD',
|
||||
location: meetingData.data.location || 'TBD',
|
||||
description: meetingData.data.description || 'Monthly board meeting'
|
||||
description: meetingData.data.description || 'Upcoming association event'
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -401,9 +289,10 @@ const handleMemberUpdated = (member: Member) => {
|
|||
// stats.value = await fetchUpdatedStats();
|
||||
};
|
||||
|
||||
// Navigation methods (placeholder implementations)
|
||||
const navigateToMeetings = () => {
|
||||
console.log('Navigate to meetings');
|
||||
// Navigation methods
|
||||
const navigateToEvents = () => {
|
||||
// Navigate to events page
|
||||
navigateTo('/dashboard/events');
|
||||
};
|
||||
|
||||
const navigateToMembers = () => {
|
||||
|
|
@ -411,16 +300,8 @@ const navigateToMembers = () => {
|
|||
navigateTo('/dashboard/member-list');
|
||||
};
|
||||
|
||||
const navigateToReports = () => {
|
||||
console.log('Navigate to reports');
|
||||
};
|
||||
|
||||
const navigateToTools = () => {
|
||||
console.log('Navigate to tools');
|
||||
};
|
||||
|
||||
const viewMeetingDetails = () => {
|
||||
console.log('View meeting details');
|
||||
const viewEventDetails = () => {
|
||||
console.log('View event details');
|
||||
};
|
||||
|
||||
const scheduleNewMeeting = () => {
|
||||
|
|
|
|||
|
|
@ -341,6 +341,33 @@
|
|||
</v-card>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Contact Support -->
|
||||
<v-row class="mt-6">
|
||||
<v-col cols="12">
|
||||
<v-card elevation="2">
|
||||
<v-card-title class="pa-4" style="background-color: #f5f5f5;">
|
||||
<v-icon class="mr-2" color="primary">mdi-help-circle-outline</v-icon>
|
||||
Need Help?
|
||||
</v-card-title>
|
||||
<v-card-text class="pa-4">
|
||||
<p class="mb-4">
|
||||
If you need assistance or have questions about your membership,
|
||||
please don't hesitate to contact our support team.
|
||||
</p>
|
||||
<v-btn
|
||||
color="primary"
|
||||
variant="outlined"
|
||||
style="border-color: #a31515; color: #a31515;"
|
||||
@click="contactSupport"
|
||||
>
|
||||
<v-icon start>mdi-email</v-icon>
|
||||
Contact Support
|
||||
</v-btn>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
|
||||
<!-- Snackbar for notifications -->
|
||||
|
|
@ -596,6 +623,23 @@ const getDaysRemainingColor = (days: number): string => {
|
|||
return 'text-success';
|
||||
};
|
||||
|
||||
const contactSupport = () => {
|
||||
const subject = encodeURIComponent('MonacoUSA Portal Support Request');
|
||||
const body = encodeURIComponent(`Hello,
|
||||
|
||||
I need assistance with:
|
||||
|
||||
[Please describe your issue]
|
||||
|
||||
Member ID: ${memberData.value?.member_id || 'Not provided'}
|
||||
Name: ${fullName.value || 'Not provided'}
|
||||
Email: ${memberData.value?.email || user.value?.email || 'Not provided'}
|
||||
|
||||
Thank you!`);
|
||||
|
||||
window.open(`mailto:support@monacousa.org?subject=${subject}&body=${body}`, '_self');
|
||||
};
|
||||
|
||||
// Initialize
|
||||
onMounted(() => {
|
||||
loadMemberData();
|
||||
|
|
|
|||
Loading…
Reference in New Issue