Changes
This commit is contained in:
@@ -28,7 +28,7 @@ useHead({
|
||||
})
|
||||
|
||||
useSeoMeta({
|
||||
ogSiteName: 'spaces.software',
|
||||
ogSiteName: 'FEDEO',
|
||||
twitterCard: 'summary_large_image'
|
||||
})
|
||||
|
||||
|
||||
@@ -187,7 +187,7 @@ const updateDocumentAssignment = async () => {
|
||||
v-if="!documentData.tags.includes('Bild')"
|
||||
/>
|
||||
<img
|
||||
class="h-full w-full"
|
||||
class=" w-full"
|
||||
:src="documentData.url"
|
||||
alt=""
|
||||
v-else
|
||||
|
||||
@@ -33,7 +33,7 @@ const uploadFiles = async () => {
|
||||
let fileData = fileUploadFormData.value
|
||||
fileData[type] = elementId
|
||||
|
||||
await dataStore.uploadFiles(fileData, document.getElementById("fileUploadInput").files,true)
|
||||
await dataStore.uploadF632iles(fileData, document.getElementById("fileUploadInput").files,true)
|
||||
|
||||
uploadModalOpen.value = false;
|
||||
uploadInProgress.value = false;
|
||||
|
||||
@@ -156,7 +156,7 @@ const renderText = (text) => {
|
||||
<div class="flex items-center gap-3">
|
||||
<UAvatar
|
||||
v-if="!item.user"
|
||||
:src="colorMode.value === 'light' ? '/spaces_hell.svg' : '/spaces.svg' "
|
||||
:src="colorMode.value === 'light' ? '/Logo.png' : '/Logo_Dark.png' "
|
||||
/>
|
||||
<UAvatar
|
||||
:alt="dataStore.profiles.find(profile => profile.id === item.user).fullName"
|
||||
|
||||
@@ -13,10 +13,6 @@ const items = computed(() => [
|
||||
label: '',
|
||||
disabled: true
|
||||
}], [{
|
||||
label: 'Einstellungen',
|
||||
icon: 'i-heroicons-cog-8-tooth',
|
||||
to: '/settings'
|
||||
}, {
|
||||
label: 'Suche',
|
||||
icon: 'i-heroicons-command-line',
|
||||
shortcuts: [metaSymbol.value, 'K'],
|
||||
@@ -31,7 +27,7 @@ const items = computed(() => [
|
||||
}], [{
|
||||
label: 'Webseite',
|
||||
icon: 'i-heroicons-book-open',
|
||||
to: 'https://spaces.software',
|
||||
to: 'https://fedeo.de',
|
||||
target: '_blank'
|
||||
},/* {
|
||||
label: 'GitHub repository',
|
||||
|
||||
@@ -8,10 +8,8 @@ const _useDashboard = () => {
|
||||
|
||||
defineShortcuts({
|
||||
'g-h': () => router.push('/'),
|
||||
'g-i': () => router.push('/inbox'),
|
||||
'g-u': () => router.push('/profiles'),
|
||||
'g-s': () => router.push('/settings'),
|
||||
'?': () => isHelpSlideoverOpen.value = true,
|
||||
'g-a': () => router.push('/tasks'),
|
||||
'?': () => isHelpSlideoverOpen.value = !isHelpSlideoverOpen.value,
|
||||
n: () => isNotificationsSlideoverOpen.value = !isNotificationsSlideoverOpen.value
|
||||
})
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@ const navLinks = [
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
//const activeFeatures = dataStore.tenants.find(dataStore.currentTenant).features
|
||||
|
||||
let links = [
|
||||
{
|
||||
@@ -305,7 +305,8 @@ let links = [
|
||||
label: "Belege",
|
||||
to: "/receipts",
|
||||
icon: "i-heroicons-document-text"
|
||||
},{
|
||||
},
|
||||
{
|
||||
label: "Bank",
|
||||
to: "/banking",
|
||||
icon: "i-heroicons-document-text"
|
||||
@@ -482,14 +483,15 @@ const footerLinks = [/*{
|
||||
</UDashboardLayout>
|
||||
<div
|
||||
v-else
|
||||
class="flex-col mx-auto my-auto mt-10 w-3/4"
|
||||
class="flex flex-col"
|
||||
>
|
||||
<img
|
||||
:src="!isLight ? '/spaces.svg' : '/spaces_hell.svg'"
|
||||
alt="Logo"
|
||||
class="w-1/3 mx-auto"
|
||||
<UColorModeImage
|
||||
light="/Logo.png"
|
||||
dark="/Logo_Dark.png"
|
||||
class="w-1/2 mx-auto my-10"
|
||||
/>
|
||||
<UProgress animation="carousel"/>
|
||||
|
||||
<UProgress animation="carousel" class="w-3/4 mx-auto mt-10" />
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
@@ -46,13 +46,13 @@ export default defineNuxtConfig({
|
||||
icons: ['heroicons','mdi']
|
||||
},
|
||||
colorMode: {
|
||||
preference: 'dark'
|
||||
preference: 'system'
|
||||
},
|
||||
pwa: {
|
||||
manifest: {
|
||||
name: "spaces.software",
|
||||
short_name: "spaces",
|
||||
description: "spaces.software",
|
||||
name: "FEDEO",
|
||||
short_name: "FEDEO",
|
||||
description: "FEDEO",
|
||||
icons: [
|
||||
{
|
||||
src: "/icon.png",
|
||||
|
||||
@@ -91,6 +91,15 @@
|
||||
<p>Konto: {{selectedStatement.account}}</p>
|
||||
<p class="text-wrap">Beschreibung: <br>{{selectedStatement.text}}</p>
|
||||
</div>
|
||||
|
||||
<UFormGroup>
|
||||
<USelectMenu
|
||||
:options="dataStore.createddocuments"
|
||||
/>
|
||||
</UFormGroup>
|
||||
|
||||
|
||||
|
||||
</UCard>
|
||||
|
||||
</USlideover>
|
||||
|
||||
@@ -86,8 +86,8 @@ const onSubmit = async (data) => {
|
||||
<UCard class="max-w-sm w-full mx-auto mt-5">
|
||||
|
||||
<UColorModeImage
|
||||
light="/spaces_hell.svg"
|
||||
dark="/spaces.svg"
|
||||
light="/Logo.png"
|
||||
dark="/Logo_Dark.png"
|
||||
/>
|
||||
|
||||
<!-- <img
|
||||
|
||||
@@ -80,7 +80,7 @@ const mode = ref(route.params.mode || "show")
|
||||
const itemInfo = ref({
|
||||
name: "",
|
||||
customer: 0,
|
||||
users: [user.value.id]
|
||||
users: [dataStore.activeProfile.id]
|
||||
})
|
||||
const tags = dataStore.getDocumentTags
|
||||
|
||||
@@ -370,7 +370,9 @@ setupPage()
|
||||
</UTable>
|
||||
|
||||
<DocumentList :documents="dataStore.getDocumentsByProjectId(currentItem.id)"/>
|
||||
<!--
|
||||
{{dataStore.getDocumentsByProjectId(currentItem.id)}}
|
||||
-->
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
</template>
|
||||
<template #date-data="{row}">
|
||||
<span v-if="row.date">{{row.date ? dayjs(row.date).format("DD.MM.YY") : ''}}</span>
|
||||
<span v-if="row.documentDate">{{row.documentDate ? dayjs(row.documentDate).format("DD.MM.YY") : ''}}</span>
|
||||
</template>
|
||||
<template #dueDate-data="{row}">
|
||||
<span :class="dayjs(row.dueDate).diff(dayjs()) <= 0 ? ['text-rose-500'] : '' ">{{row.dueDate ? dayjs(row.dueDate).format("DD.MM.YY") : ''}}</span>
|
||||
@@ -108,6 +109,9 @@
|
||||
>
|
||||
{{getRowAmount(row) === 0 ? '' : `${String(getRowAmount(row).toFixed(2)).replace('.',',')} €`}}
|
||||
</div>
|
||||
<div v-else class="text-right">
|
||||
{{calculateDocSum(row.rows)}} €
|
||||
</div>
|
||||
</template>
|
||||
</UTable>
|
||||
|
||||
@@ -141,6 +145,11 @@ const templateColumns = [
|
||||
label: "Status.",
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: "amount",
|
||||
label: "Betrag",
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: 'partner',
|
||||
label: "Kunde / Lieferant",
|
||||
@@ -166,11 +175,6 @@ const templateColumns = [
|
||||
label: "Fällig:",
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
key: "amount",
|
||||
label: "Betrag",
|
||||
sortable: true
|
||||
},
|
||||
]
|
||||
const selectedColumns = ref(templateColumns)
|
||||
const columns = computed(() => templateColumns.filter((column) => selectedColumns.value.includes(column)))
|
||||
@@ -233,6 +237,18 @@ const filteredRows = computed(() => {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
const calculateDocSum = (rows) => {
|
||||
let sum = 0
|
||||
|
||||
rows.forEach(row => {
|
||||
if(row.mode !== "pagebreak") {
|
||||
sum += row.price * row.quantity * ( row.taxPercent + 100)/100
|
||||
}
|
||||
})
|
||||
|
||||
return sum.toFixed(2)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
@@ -103,8 +103,8 @@ const configTimeMode = ref("create")
|
||||
const startTime = async () => {
|
||||
console.log("started")
|
||||
timeInfo.value = {
|
||||
profile: dataStore.getOwnProfile.id,
|
||||
start: dayjs().format("HH:mm:ssZ"),
|
||||
profile: dataStore.activeProfile.id,
|
||||
start: dayjs().format("HH:mm:ss"),
|
||||
date: dayjs().format("YYYY-MM-DD"),
|
||||
tenant: dataStore.currentTenant,
|
||||
state: "Im Web gestartet"
|
||||
@@ -120,7 +120,7 @@ const startTime = async () => {
|
||||
} else if(data) {
|
||||
//timeInfo.value = data[0]
|
||||
await dataStore.fetchWorkingTimes()
|
||||
runningTimeInfo.value = dataStore.times.find(time => time.profile === dataStore.getOwnProfile.id && !time.end)
|
||||
runningTimeInfo.value = dataStore.times.find(time => time.profile === dataStore.activeProfile.id && !time.end)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -250,30 +250,35 @@ const setState = async (newState) => {
|
||||
</USelectMenu>
|
||||
</template>
|
||||
</UDashboardToolbar>
|
||||
<UCard v-if="runningTimeInfo.id" class="m-3">
|
||||
<template #header>
|
||||
Gestartete Zeit:
|
||||
</template>
|
||||
<p>Start: {{dayjs(runningTimeInfo.start, "HH:mm:ssZ").format("HH:mm")}}</p>
|
||||
<p>Dauer: {{dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ssZ"),'minutes') > 59 ? `${Math.floor(dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ssZ"),'minutes') / 60)}:${dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ssZ"),'minutes') % 60} h` : dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ssZ"),'minutes') + ' min' }}</p>
|
||||
|
||||
<UFormGroup
|
||||
class="mt-2"
|
||||
label="Notizen:"
|
||||
<div class="mx-3">
|
||||
<UAlert
|
||||
v-if="runningTimeInfo.id"
|
||||
class="my-3"
|
||||
title="Laufende Zeit:"
|
||||
>
|
||||
<UTextarea
|
||||
v-model="runningTimeInfo.notes"
|
||||
/>
|
||||
</UFormGroup>
|
||||
<template #footer>
|
||||
<UButton
|
||||
@click="stopStartedTime"
|
||||
:disabled="!runningTimeInfo.id"
|
||||
>
|
||||
Stop
|
||||
</UButton>
|
||||
</template>
|
||||
</UCard>
|
||||
<template #description>
|
||||
<p>Start: {{dayjs(runningTimeInfo.start, "HH:mm:ss").format("HH:mm")}}</p>
|
||||
<p>Dauer: {{dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ss"),'minutes') > 59 ? `${Math.floor(dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ss"),'minutes') / 60)}:${dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ss"),'minutes') % 60} h` : dayjs().diff(dayjs(runningTimeInfo.start, "HH:mm:ss"),'minutes') + ' min' }}</p>
|
||||
|
||||
<UFormGroup
|
||||
class="mt-2"
|
||||
label="Notizen:"
|
||||
>
|
||||
<UTextarea
|
||||
v-model="runningTimeInfo.notes"
|
||||
/>
|
||||
</UFormGroup>
|
||||
<UButton
|
||||
class="mt-3"
|
||||
@click="stopStartedTime"
|
||||
:disabled="!runningTimeInfo.id"
|
||||
>
|
||||
Stop
|
||||
</UButton>
|
||||
</template>
|
||||
</UAlert>
|
||||
</div>
|
||||
|
||||
|
||||
<UModal
|
||||
v-model="showConfigTimeModal"
|
||||
@@ -319,9 +324,6 @@ const setState = async (newState) => {
|
||||
/>
|
||||
</template>
|
||||
</UPopover>
|
||||
<UInput
|
||||
|
||||
/>
|
||||
</UFormGroup>
|
||||
<!-- <UFormGroup
|
||||
label="Start:"
|
||||
|
||||
BIN
spaces/public/Logo.png
Normal file
BIN
spaces/public/Logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
BIN
spaces/public/Logo_Dark.png
Normal file
BIN
spaces/public/Logo_Dark.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 35 KiB |
Reference in New Issue
Block a user