Compare commits

..
2 Commits
Author SHA1 Message Date
vadim 10ad1569fb favicon
Gitea Actions / Deploy (push) Successful in 8s
2026-10-29 09:57:17 +03:00
vadim 609fe517d7 wip 2026-10-26 21:48:43 +03:00
7 changed files with 53 additions and 12 deletions

No files matched your search

+1 -1
View File
@@ -2,7 +2,7 @@
<html lang=""> <html lang="">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<link rel="icon" href="/favicon.ico"> <link rel="icon" href="/favicon_.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title> <title>Vite App</title>
</head> </head>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 627 B

+16 -3
View File
@@ -16,6 +16,7 @@ import { useSplitPane } from '@/composables/useSplitPane.ts'
import FileUpload from '@/components/FileUpload.vue' import FileUpload from '@/components/FileUpload.vue'
import PriorityMenu from '@/components/PriorityMenu.vue' import PriorityMenu from '@/components/PriorityMenu.vue'
import IssueType from '@/components/IssueType.vue' import IssueType from '@/components/IssueType.vue'
import ObserversList from '@/components/ObserversList.vue'
interface Props { interface Props {
ckey: string ckey: string
@@ -133,6 +134,11 @@ defineExpose({
<div class="d-flex flex-column ga-4 details__main"> <div class="d-flex flex-column ga-4 details__main">
<div>{{ ckey }}</div> <div>{{ ckey }}</div>
<div class="d-flex ga-2">
<div class="text-medium-emphasis">Status:</div>
<status-menu :value="issue.status" @changed="onStatusChanged" />
</div>
<editable-text :text="issue.title" @changed="onTitleChanged" /> <editable-text :text="issue.title" @changed="onTitleChanged" />
<expansion-panel title="Info"> <expansion-panel title="Info">
@@ -144,15 +150,22 @@ defineExpose({
<div class="text-medium-emphasis">Assignee:</div> <div class="text-medium-emphasis">Assignee:</div>
<assignee-menu :value="issue.assignee" :compact="false" @changed="onAssigneeChanged" /> <assignee-menu :value="issue.assignee" :compact="false" @changed="onAssigneeChanged" />
<div class="text-medium-emphasis">Status:</div>
<status-menu :value="issue.status" @changed="onStatusChanged" />
<div class="text-medium-emphasis">Type:</div> <div class="text-medium-emphasis">Type:</div>
<issue-type :value="issue.type" :compact="false" @changed="onTypeChanged" /> <issue-type :value="issue.type" :compact="false" @changed="onTypeChanged" />
<div class="text-medium-emphasis">Priority:</div> <div class="text-medium-emphasis">Priority:</div>
<priority-menu :value="issue.priority" :compact="false" @changed="onPriorityChanged" /> <priority-menu :value="issue.priority" :compact="false" @changed="onPriorityChanged" />
</v-card-text>
<v-divider />
<v-card-text class="u-grid">
<div class="text-medium-emphasis">Observers:</div>
<observers-list />
</v-card-text>
<v-divider />
<v-card-text class="u-grid">
<div class="text-medium-emphasis">Created At:</div> <div class="text-medium-emphasis">Created At:</div>
<div>{{ createdAtFormatted }}</div> <div>{{ createdAtFormatted }}</div>
+2 -2
View File
@@ -50,8 +50,8 @@ const select = (value: unknown) => {
v-bind="activatorProps" v-bind="activatorProps"
/> />
<v-btn v-else density="compact" class="px-1" variant="text" v-bind="activatorProps"> <v-btn v-else density="comfortable" slim v-bind="activatorProps">
<div class="d-flex align-center ga-1"> <div class="d-flex align-center ga-2">
<v-icon :color="currentColor" :icon="currentIcon" /> <v-icon :color="currentColor" :icon="currentIcon" />
<span>{{ currentName }}</span> <span>{{ currentName }}</span>
</div> </div>
+27
View File
@@ -0,0 +1,27 @@
<script setup lang="ts">
const observers = [{ name: 'A' }, { name: 'B' }]
const remove = () => {
console.log('remove')
}
</script>
<template>
<div class="d-flex ga-1">
<template v-for="(o, id) in observers" :key="id">
<v-avatar :text="o.name" size="28" color="primary" rounded="circle" density="compact" border />
</template>
<v-menu>
<template v-slot:activator="{ props: activatorProps }">
<v-btn rounded="circle" density="compact" icon="mdi-plus" variant="tonal" v-bind="activatorProps" />
</template>
<v-list>
<v-list-item>a</v-list-item>
<v-list-item>b</v-list-item>
</v-list>
</v-menu>
</div>
</template>
<style scoped lang="scss"></style>
+6 -5
View File
@@ -46,7 +46,7 @@ const select = (value: unknown) => {
</script> </script>
<template> <template>
<div class=""> <div>
<v-menu> <v-menu>
<template v-slot:activator="{ props: activatorProps }"> <template v-slot:activator="{ props: activatorProps }">
<v-btn <v-btn
@@ -54,14 +54,15 @@ const select = (value: unknown) => {
density="compact" density="compact"
:icon="currentIcon" :icon="currentIcon"
:color="currentColor" :color="currentColor"
:title="currentLabel"
variant="text" variant="text"
v-bind="activatorProps" v-bind="activatorProps"
/> />
<v-btn v-else density="compact" class="px-1" variant="text" v-bind="activatorProps"> <v-btn v-else density="comfortable" slim v-bind="activatorProps">
<div class="d-flex align-center ga-1"> <div class="d-flex align-center ga-2">
<v-icon :color="currentColor" size="x-large" :icon="currentIcon"></v-icon> <v-icon :color="currentColor" :icon="currentIcon" />
<span>{{ currentLabel }}</span> {{ currentLabel }}
</div> </div>
</v-btn> </v-btn>
</template> </template>
+1 -1
View File
@@ -16,7 +16,7 @@ const currentInitials = computed(() => (user ? initials(user) : '?'))
</script> </script>
<template> <template>
<div class=""> <div>
<div class="d-flex align-center ga-2"> <div class="d-flex align-center ga-2">
<v-btn rounded="circle" density="compact" icon variant="text"> <v-btn rounded="circle" density="compact" icon variant="text">
<v-avatar <v-avatar