diff --git a/.directus/docker-compose.yaml b/.directus/docker-compose.yaml
index 3b76d58..53f9cc9 100644
--- a/.directus/docker-compose.yaml
+++ b/.directus/docker-compose.yaml
@@ -17,7 +17,7 @@ services:
image: redis:6
directus:
- image: directus/directus:10.6.3
+ image: directus/directus:10.8.3
ports:
- 8055:8055
volumes:
diff --git a/app.config.ts b/app.config.ts
index a9db24b..9109a3d 100644
--- a/app.config.ts
+++ b/app.config.ts
@@ -84,6 +84,15 @@ export default defineAppConfig({
},
},
},
+ avatar: {
+ default: {},
+ rounded: 'rounded-button',
+ },
+ breadcrumb: {
+ default: {
+ divider: 'material-symbols:chevron-right',
+ },
+ },
pagination: {
rounded: 'first:rounded-l-button last:rounded-r-button',
default: {
diff --git a/components/PageBuilder.vue b/components/PageBuilder.vue
index b2ec601..0489c9e 100644
--- a/components/PageBuilder.vue
+++ b/components/PageBuilder.vue
@@ -1,5 +1,5 @@
-
+
{{ item.title }}
-
+
diff --git a/components/base/VGallery.vue b/components/base/VGallery.vue
index 36a7871..692d6c8 100644
--- a/components/base/VGallery.vue
+++ b/components/base/VGallery.vue
@@ -1,14 +1,9 @@
diff --git a/components/blocks/Hero.vue b/components/blocks/Hero.vue
index acdc3ff..a16e3a8 100644
--- a/components/blocks/Hero.vue
+++ b/components/blocks/Hero.vue
@@ -1,5 +1,5 @@
diff --git a/layers/portal/components/Task.vue b/layers/portal/components/Task.vue
index 937ad54..be119a2 100644
--- a/layers/portal/components/Task.vue
+++ b/layers/portal/components/Task.vue
@@ -1,5 +1,5 @@
@@ -144,7 +144,7 @@ const emit = defineEmits(['close']);
>
-
+
{{ taskStatus?.label }}
-
+
@@ -200,7 +200,7 @@ const emit = defineEmits(['close']);
-
+
diff --git a/layers/portal/components/TaskList.vue b/layers/portal/components/TaskList.vue
index b5bb056..9737953 100644
--- a/layers/portal/components/TaskList.vue
+++ b/layers/portal/components/TaskList.vue
@@ -82,7 +82,7 @@ async function openTask(id: string) {
showTask.value = true;
}
-const searchQuery: Ref
= ref(null);
+const searchQuery = ref();
const tasksShown = computed(() => {
// Filter out tasks with a type of "milestone" and use search query to filter tasks
@@ -100,7 +100,7 @@ const tasksShown = computed(() => {
-
+
@@ -134,6 +134,6 @@ const tasksShown = computed(() => {
width: 'max-w-xl',
}"
>
-
+
diff --git a/layers/portal/components/TaskWidget.vue b/layers/portal/components/TaskWidget.vue
index be606fc..12aeb96 100644
--- a/layers/portal/components/TaskWidget.vue
+++ b/layers/portal/components/TaskWidget.vue
@@ -91,7 +91,7 @@ async function openTask(id: string) {
-
+
{{ row.name ?? 'Task with no name' }}
@@ -107,7 +107,7 @@ async function openTask(id: string) {
width: 'max-w-xl',
}"
>
-
+
diff --git a/layers/portal/pages/portal.vue b/layers/portal/pages/portal.vue
index dcb9a7c..58ab26b 100644
--- a/layers/portal/pages/portal.vue
+++ b/layers/portal/pages/portal.vue
@@ -6,7 +6,7 @@ definePageMeta({
middleware: ['auth'],
});
-const { logout } = useDirectusAuth();
+const { logout, user } = useDirectusAuth();
const NuxtLink = resolveComponent('NuxtLink');
@@ -108,15 +108,9 @@ const mobileMenuOpen = ref(false);
-
diff --git a/layers/portal/pages/portal/billing/invoices/[id].vue b/layers/portal/pages/portal/billing/invoices/[id].vue
index fee8d30..0d09a91 100644
--- a/layers/portal/pages/portal/billing/invoices/[id].vue
+++ b/layers/portal/pages/portal/billing/invoices/[id].vue
@@ -169,7 +169,7 @@ const billingAddress = computed(() => {
-
+
{{ invoice?.contact.email }}
{{ invoice?.contact.phone }}
diff --git a/layers/portal/pages/portal/billing/invoices/index.vue b/layers/portal/pages/portal/billing/invoices/index.vue
index fe85d09..70d07a5 100644
--- a/layers/portal/pages/portal/billing/invoices/index.vue
+++ b/layers/portal/pages/portal/billing/invoices/index.vue
@@ -3,9 +3,9 @@ const { path, query } = useRoute();
const router = useRouter();
// Filters
-const search: Ref = ref(query?.search?.toString() ?? undefined);
+const search: Ref = ref(query?.search?.toString() ?? undefined);
const debouncedSearch = refDebounced(search as any, 500);
-const status: Ref = ref(query.status?.toString() ?? undefined);
+const status: Ref = ref(query.status?.toString() ?? undefined);
const page = ref(1);
const rowsPerPage = ref(25);
@@ -176,7 +176,7 @@ function clearFilters() {
-
+
diff --git a/layers/portal/pages/portal/index.vue b/layers/portal/pages/portal/index.vue
index 755bf8c..d0b45bf 100644
--- a/layers/portal/pages/portal/index.vue
+++ b/layers/portal/pages/portal/index.vue
@@ -33,11 +33,12 @@ function useGreetings() {
}
const { getTodaysMessage } = useGreetings();
+const { user } = useDirectusAuth();
- {{ greetUser() }} Bryant,
+ {{ greetUser() }} {{ user?.first_name ?? 'friend' }},
diff --git a/layers/portal/pages/portal/projects/[id].vue b/layers/portal/pages/portal/projects/[id].vue
index a71d5f0..21821ab 100644
--- a/layers/portal/pages/portal/projects/[id].vue
+++ b/layers/portal/pages/portal/projects/[id].vue
@@ -11,32 +11,22 @@ const {
const tabs = [
{
- slot: 'overview',
- label: 'Overview',
name: 'Overview',
href: `/portal/projects/${params.id}`,
},
{
- slot: 'tasks',
- label: 'Tasks',
name: 'Tasks',
href: `/portal/projects/${params.id}/tasks`,
},
{
- label: 'Messages',
- slot: 'messages',
name: 'Conversations',
href: `/portal/projects/${params.id}/conversations`,
},
{
- label: 'Files',
- content: 'Files',
name: 'Files',
href: `/portal/projects/${params.id}/files`,
},
{
- label: 'Billing',
- content: 'Billing',
name: 'Billing',
href: `/portal/projects/${params.id}/billing`,
},
diff --git a/layers/portal/pages/portal/projects/[id]/conversations.vue b/layers/portal/pages/portal/projects/[id]/conversations.vue
index 2f94e21..a26ef14 100644
--- a/layers/portal/pages/portal/projects/[id]/conversations.vue
+++ b/layers/portal/pages/portal/projects/[id]/conversations.vue
@@ -10,6 +10,6 @@ const { params } = useRoute();
size="sm"
/>
-
+
diff --git a/layers/portal/pages/portal/projects/[id]/index.vue b/layers/portal/pages/portal/projects/[id]/index.vue
index becab21..3c3772a 100644
--- a/layers/portal/pages/portal/projects/[id]/index.vue
+++ b/layers/portal/pages/portal/projects/[id]/index.vue
@@ -72,7 +72,7 @@ const milestones = computed(() => {
-
+
diff --git a/layers/portal/pages/portal/projects/[id]/tasks.vue b/layers/portal/pages/portal/projects/[id]/tasks.vue
index bb39dcf..e541066 100644
--- a/layers/portal/pages/portal/projects/[id]/tasks.vue
+++ b/layers/portal/pages/portal/projects/[id]/tasks.vue
@@ -10,6 +10,6 @@ const { params } = useRoute();
content="Teamwork makes the dreamwork. These are the open tasks you'll need to complete for a successful project."
/>
-
+
diff --git a/layers/portal/pages/portal/projects/index.vue b/layers/portal/pages/portal/projects/index.vue
index d980155..5dd02c4 100644
--- a/layers/portal/pages/portal/projects/index.vue
+++ b/layers/portal/pages/portal/projects/index.vue
@@ -130,7 +130,7 @@ const projectsShown = computed(() => {
-
+
diff --git a/layers/portal/server/api/portal/search.get.ts b/layers/portal/server/api/portal/search.get.ts
index 7441a5d..ebbdca9 100644
--- a/layers/portal/server/api/portal/search.get.ts
+++ b/layers/portal/server/api/portal/search.get.ts
@@ -100,7 +100,7 @@ export default cachedEventHandler(
const cookies = parseCookies(event);
- const directusData = JSON.parse(cookies['directus-data']);
+ const directusData = JSON.parse(cookies['directus-auth']);
const access_token = directusData?.access_token;
// console.log(access_token);
diff --git a/layers/proposals/nuxt.config.ts b/layers/proposals/nuxt.config.ts
index edc4311..6b831ba 100644
--- a/layers/proposals/nuxt.config.ts
+++ b/layers/proposals/nuxt.config.ts
@@ -1,6 +1,10 @@
export default defineNuxtConfig({
components: [{ path: './components/', prefix: 'Proposals' }],
+ routeRules: {
+ '/proposals/**': { ssr: true },
+ },
+
build: {
transpile: ['v-perfect-signature'],
},
diff --git a/layers/proposals/pages/proposals/[id].vue b/layers/proposals/pages/proposals/[id].vue
index d151d5c..88ab259 100644
--- a/layers/proposals/pages/proposals/[id].vue
+++ b/layers/proposals/pages/proposals/[id].vue
@@ -1,4 +1,6 @@