Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dashboard rewrite #11

Draft
wants to merge 50 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
fb5e30d
move old dashboard
anbraten Dec 16, 2023
04df7de
add new dashboard
anbraten Dec 16, 2023
242a72a
update lockfile
anbraten Dec 16, 2023
6d9f77a
rename old dashboard
anbraten Dec 16, 2023
db6e3df
improve ui
anbraten Dec 16, 2023
2743fa7
add vercel json
anbraten Dec 16, 2023
b4106a0
improve project views
anbraten Dec 16, 2023
43b180c
improve ui
anbraten Dec 17, 2023
763cd99
improve analytics
anbraten Dec 18, 2023
7047b00
cleanup code
anbraten Dec 18, 2023
5190e3d
improve ui
anbraten Dec 19, 2023
e1bcd38
improve ui
anbraten Dec 26, 2023
c863f82
fix projects in org
anbraten Jan 16, 2024
3073dce
improvements
anbraten Jan 16, 2024
cc438e9
fix project loading
anbraten Jan 16, 2024
3b4b508
improve breadcrumbs
anbraten Jan 19, 2024
eccd684
improve ui
anbraten Jan 20, 2024
4d3bf37
convert to sqlite / turso
anbraten Jan 20, 2024
f6c4044
add project creation
anbraten Jan 21, 2024
6f54b04
blacklist app
anbraten Jan 21, 2024
5d63c6c
adjust db util
anbraten Jan 21, 2024
5f88db9
nits
anbraten Jan 22, 2024
5cafbfe
fix code
anbraten Jan 22, 2024
f83124d
fix auth
anbraten Jan 22, 2024
23b0955
hints for deployments and logs empty
programonaut Jan 22, 2024
b73246e
Merge branch 'dashboard-v2' of github.com:lagossapp/lagoss into dashb…
anbraten Jan 22, 2024
7ca4596
fix import
anbraten Jan 22, 2024
85cce16
add trcp
anbraten Jan 22, 2024
5282205
adjust project view
programonaut Jan 22, 2024
2550fb9
add blacklisted subdomain
anbraten Jan 22, 2024
88824a8
Revert "convert to sqlite / turso"
anbraten Jan 22, 2024
204fdc2
some db fixes
anbraten Jan 23, 2024
1581f2f
improve ui loading
anbraten Jan 23, 2024
8d3e77c
trpc
anbraten Feb 27, 2024
c4e344f
Merge remote-tracking branch 'origin/main' into dashboard-v2
anbraten Feb 29, 2024
3cf3587
remove old dashboard
anbraten Feb 29, 2024
a45ed19
Merge remote-tracking branch 'origin/main' into dashboard-v2
anbraten Mar 3, 2024
efc07f7
Merge remote-tracking branch 'origin/main' into dashboard-v2
anbraten Jun 18, 2024
aec2a92
Merge remote-tracking branch 'origin/main' into dashboard-v2
anbraten Jul 5, 2024
aa9496c
use use db
anbraten Jul 5, 2024
4b2ff26
fix
anbraten Jul 5, 2024
7a418d4
pretty
anbraten Jul 5, 2024
9067dc5
fix auth
anbraten Jul 5, 2024
efd17ba
enhance
anbraten Jul 22, 2024
4a02151
lagoss preset
anbraten Jul 22, 2024
9bd0649
Merge remote-tracking branch 'origin/main' into dashboard-v2
anbraten Nov 20, 2024
3e80dd1
Merge remote-tracking branch 'origin/main' into dashboard-v2
anbraten Nov 21, 2024
cecb01c
add deployments endpoint
anbraten Nov 21, 2024
14e6e6e
update
anbraten Nov 28, 2024
d16d0e2
Merge remote-tracking branch 'origin/main' into dashboard-v2
anbraten Nov 29, 2024
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
6 changes: 0 additions & 6 deletions packages/dashboard/.eslintrc.json

This file was deleted.

43 changes: 20 additions & 23 deletions packages/dashboard/.gitignore
Original file line number Diff line number Diff line change
@@ -1,29 +1,26 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# Nuxt dev/build outputs
.output
.data
.nuxt
.nitro
.cache
dist

# dependencies
/node_modules
/.pnp
.pnp.js
# Node dependencies
node_modules

# testing
/coverage
# Logs
logs
*.log

# next.js
/.next/
/out/

# production
/build

# misc
# Misc
.DS_Store
*.pem
.fleet
.idea

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# Local env files
.env
.env.*
!.env.example

# local env files
.env*.local
.next
1 change: 1 addition & 0 deletions packages/dashboard/.npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
shamefully-hoist=true
1 change: 0 additions & 1 deletion packages/dashboard/README.md

This file was deleted.

6 changes: 6 additions & 0 deletions packages/dashboard/app.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export default defineAppConfig({
ui: {
primary: 'neutral',
gray: 'zinc',
},
});
124 changes: 124 additions & 0 deletions packages/dashboard/components/AppBar.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
<template>
<header
class="border-b-1 sticky top-0 z-40 flex w-full items-center gap-4 border-transparent px-4 py-4 backdrop-blur"
>
<router-link to="/">
<img src="/icon-black.png" alt="Icon" class="w-6 dark:hidden" />
<img src="/icon-white.png" alt="Dark icon" class="hidden w-6 dark:block" />
</router-link>

<UPopover v-model:open="orgSelectOpen">
<UButton color="white" class="w-48">
<UAvatar :alt="selectedOrganization?.name" size="xs" />
<span>{{ selectedOrganization?.name }}</span>
<UIcon
name="i-heroicons-chevron-down-20-solid"
class="ms-auto h-4 w-4 transform transition-transform"
:class="{
'rotate-180': orgSelectOpen,
}"
/>
</UButton>

<template #panel>
<div class="flex w-48 flex-col divide-y divide-gray-200 dark:divide-gray-700">
<div class="p-1" @click="orgSelectOpen = !orgSelectOpen">
<UButton
v-for="organization in organizations"
:key="organization.id"
:label="organization.name"
size="sm"
:to="`/organizations/${organization.id}`"
variant="ghost"
class="w-full"
@click="authStore.selectOrganization(organization.id)"
>
<UAvatar :alt="organization.name" size="xs" />
<span class="truncate">{{ organization.name }}</span>
<UIcon
v-if="organization.id === selectedOrganization?.id"
name="i-heroicons-check-20-solid"
class="ml-auto h-4 w-4"
/>
</UButton>
</div>
<div class="p-1">
<UButton
label="Create organization"
icon="i-heroicons-plus"
variant="ghost"
class="w-full"
to="/organizations/create"
/>
</div>
</div>
</template>
</UPopover>

<template v-if="selectedOrganization">
<TabButton :to="`/organizations/${selectedOrganization.id}`" label="Projects" />
<TabButton :to="`/organizations/${selectedOrganization.id}/settings`" label="Settings" />
</template>

<div class="ml-auto flex items-center gap-4">
<ClientOnly>
<UButton
:icon="isDark ? 'i-heroicons-moon-20-solid' : 'i-heroicons-sun-20-solid'"
color="gray"
variant="ghost"
aria-label="Theme"
@click="isDark = !isDark"
/>

<template #fallback>
<div class="h-8 w-8" />
</template>
</ClientOnly>

<a href="https://docs.lagoss.com" rel="noopener noreferrer" target="_blank">
<UButton label="Docs" size="xs" color="white" />
</a>

<UPopover v-if="authStore.user" class="flex items-center">
<UAvatar :src="authStore.user.image || ''" alt="User avatar" size="sm" :initials="authStore.user.name" />

<template #panel>
<div class="flex w-48 flex-col items-center gap-2">
<div class="my-4 flex flex-col items-center gap-2">
<UAvatar :src="authStore.user.image || ''" alt="User avatar" size="xl" :initials="authStore.user.name" />
<span>{{ authStore.user.name }}</span>
</div>

<div class="flex w-full flex-col border-t border-gray-200 p-2 dark:border-gray-800">
<UButton label="Settings" variant="ghost" to="/settings" class="w-full" />
<UButton label="Logout" variant="ghost" class="w-full" @click="authStore.logout" />
</div>
</div>
</template>
</UPopover>
</div>
</header>
</template>

<script setup lang="ts">
const colorMode = useColorMode();

const isDark = computed({
get() {
return colorMode.value === 'dark';
},
set() {
colorMode.preference = colorMode.value === 'dark' ? 'light' : 'dark';
},
});

const authStore = useAuth();

const { data: organizations } = await useFetch('/api/organizations');

const selectedOrganization = computed(
() => organizations.value?.find(org => org.id === authStore.user?.currentOrganizationId),
);

const orgSelectOpen = ref(false);
</script>
5 changes: 5 additions & 0 deletions packages/dashboard/components/Card.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<template>
<div class="w-full rounded-md border border-gray-300 p-4 dark:border-zinc-600">
<slot />
</div>
</template>
Loading