web: updated structure
Co-authored-by: wollenberg.niklas@gmail.com <wollenberg.niklas@gmail.com>
This commit is contained in:
parent
ab22d6d830
commit
89c9a9a345
9 changed files with 165 additions and 13 deletions
6
web/components.d.ts
vendored
6
web/components.d.ts
vendored
|
@ -7,7 +7,11 @@ export {}
|
||||||
|
|
||||||
declare module 'vue' {
|
declare module 'vue' {
|
||||||
export interface GlobalComponents {
|
export interface GlobalComponents {
|
||||||
HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
|
CategoryContainer: typeof import('./src/components/CategoryContainer.vue')['default']
|
||||||
|
HeaderBar: typeof import('./src/components/HeaderBar.vue')['default']
|
||||||
|
ListViewElement: typeof import('./src/components/ListViewElement.vue')['default']
|
||||||
|
ListViewTemplate: typeof import('./src/components/ListViewTemplate.vue')['default']
|
||||||
|
SearchElement: typeof import('./src/components/SearchElement.vue')['default']
|
||||||
StartPage: typeof import('./src/components/StartPage.vue')['default']
|
StartPage: typeof import('./src/components/StartPage.vue')['default']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,12 +2,13 @@
|
||||||
"name": "web",
|
"name": "web",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite --host",
|
||||||
"build": "vue-tsc --noEmit && vite build",
|
"build": "vue-tsc --noEmit && vite build",
|
||||||
"preview": "vite preview"
|
"preview": "vite preview"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mdi/font": "6.2.95",
|
"@mdi/font": "6.2.95",
|
||||||
|
"lucide-vue-next": "^0.402.0",
|
||||||
"roboto-fontface": "*",
|
"roboto-fontface": "*",
|
||||||
"vue": "^3.4.21",
|
"vue": "^3.4.21",
|
||||||
"vuetify": "^3.5.8"
|
"vuetify": "^3.5.8"
|
||||||
|
@ -16,7 +17,6 @@
|
||||||
"@babel/types": "^7.24.0",
|
"@babel/types": "^7.24.0",
|
||||||
"@types/node": "^20.11.25",
|
"@types/node": "^20.11.25",
|
||||||
"@vitejs/plugin-vue": "^5.0.4",
|
"@vitejs/plugin-vue": "^5.0.4",
|
||||||
"sass": "^1.71.1",
|
|
||||||
"typescript": "^5.4.2",
|
"typescript": "^5.4.2",
|
||||||
"unplugin-fonts": "^1.1.1",
|
"unplugin-fonts": "^1.1.1",
|
||||||
"unplugin-vue-components": "^0.26.0",
|
"unplugin-vue-components": "^0.26.0",
|
||||||
|
|
|
@ -11,6 +11,9 @@ importers:
|
||||||
'@mdi/font':
|
'@mdi/font':
|
||||||
specifier: 6.2.95
|
specifier: 6.2.95
|
||||||
version: 6.2.95
|
version: 6.2.95
|
||||||
|
lucide-vue-next:
|
||||||
|
specifier: ^0.402.0
|
||||||
|
version: 0.402.0(vue@3.4.31(typescript@5.5.3))
|
||||||
roboto-fontface:
|
roboto-fontface:
|
||||||
specifier: '*'
|
specifier: '*'
|
||||||
version: 0.10.0
|
version: 0.10.0
|
||||||
|
@ -30,9 +33,6 @@ importers:
|
||||||
'@vitejs/plugin-vue':
|
'@vitejs/plugin-vue':
|
||||||
specifier: ^5.0.4
|
specifier: ^5.0.4
|
||||||
version: 5.0.5(vite@5.3.3(@types/node@20.14.9)(sass@1.77.6))(vue@3.4.31(typescript@5.5.3))
|
version: 5.0.5(vite@5.3.3(@types/node@20.14.9)(sass@1.77.6))(vue@3.4.31(typescript@5.5.3))
|
||||||
sass:
|
|
||||||
specifier: ^1.71.1
|
|
||||||
version: 1.77.6
|
|
||||||
typescript:
|
typescript:
|
||||||
specifier: ^5.4.2
|
specifier: ^5.4.2
|
||||||
version: 5.5.3
|
version: 5.5.3
|
||||||
|
@ -499,6 +499,11 @@ packages:
|
||||||
resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
|
resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
|
lucide-vue-next@0.402.0:
|
||||||
|
resolution: {integrity: sha512-oxFgGTh/6aFDORHDCUlG8kvueJjEuR0dkX7HoSfNyCBDas8Dg8QQyZQFHo5D5aoThik+JAg80ByefkcJw85w9Q==}
|
||||||
|
peerDependencies:
|
||||||
|
vue: '>=3.0.1'
|
||||||
|
|
||||||
magic-string@0.30.10:
|
magic-string@0.30.10:
|
||||||
resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
|
resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
|
||||||
|
|
||||||
|
@ -1075,7 +1080,8 @@ snapshots:
|
||||||
|
|
||||||
he@1.2.0: {}
|
he@1.2.0: {}
|
||||||
|
|
||||||
immutable@4.3.6: {}
|
immutable@4.3.6:
|
||||||
|
optional: true
|
||||||
|
|
||||||
is-binary-path@2.1.0:
|
is-binary-path@2.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -1095,6 +1101,10 @@ snapshots:
|
||||||
|
|
||||||
local-pkg@0.4.3: {}
|
local-pkg@0.4.3: {}
|
||||||
|
|
||||||
|
lucide-vue-next@0.402.0(vue@3.4.31(typescript@5.5.3)):
|
||||||
|
dependencies:
|
||||||
|
vue: 3.4.31(typescript@5.5.3)
|
||||||
|
|
||||||
magic-string@0.30.10:
|
magic-string@0.30.10:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/sourcemap-codec': 1.4.15
|
'@jridgewell/sourcemap-codec': 1.4.15
|
||||||
|
@ -1179,6 +1189,7 @@ snapshots:
|
||||||
chokidar: 3.6.0
|
chokidar: 3.6.0
|
||||||
immutable: 4.3.6
|
immutable: 4.3.6
|
||||||
source-map-js: 1.2.0
|
source-map-js: 1.2.0
|
||||||
|
optional: true
|
||||||
|
|
||||||
semver@7.6.2: {}
|
semver@7.6.2: {}
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,25 @@
|
||||||
<template>
|
<template>
|
||||||
<v-app>
|
<v-app>
|
||||||
<v-main>
|
<v-main>
|
||||||
<StartPage />
|
<HeaderBar />
|
||||||
|
<div class="categoryContainer">
|
||||||
|
<CategoryContainer licenseGroupName="Jetbrains Ultimate"/>
|
||||||
|
<CategoryContainer licenseGroupName="Microsoft"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
</v-main>
|
</v-main>
|
||||||
</v-app>
|
</v-app>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import StartPage from './components/StartPage.vue';
|
import HeaderBar from './components/HeaderBar.vue';
|
||||||
|
import CategoryContainer from './components/CategoryContainer.vue';
|
||||||
|
|
||||||
//
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.categoryContainer {
|
||||||
</style>
|
margin-left: 5%;
|
||||||
|
margin-top: 5%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
43
web/src/components/CategoryContainer.vue
Normal file
43
web/src/components/CategoryContainer.vue
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
<template>
|
||||||
|
<div class="root">
|
||||||
|
<h2>{{ props.licenseGroupName }}:</h2>
|
||||||
|
<ListViewElement
|
||||||
|
licenseName="Jetbrains Ultimate 2024.2.1"
|
||||||
|
licenseKey="321z8321789"
|
||||||
|
startDate="12.12.2020"
|
||||||
|
endDate="13.12.2021"
|
||||||
|
amount="1"
|
||||||
|
tags=""
|
||||||
|
notes="No notes"
|
||||||
|
/>
|
||||||
|
<!-- <ListViewElement
|
||||||
|
licenseName="Jetbrains Ultimate 2024.2.1"
|
||||||
|
key=""
|
||||||
|
startDate=""
|
||||||
|
endDate=""
|
||||||
|
amount=""
|
||||||
|
tags=""
|
||||||
|
notes=""
|
||||||
|
/> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { defineProps } from 'vue'
|
||||||
|
import ListViewElement from './ListViewElement.vue'
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
licenseGroupName: String
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.root {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
50
web/src/components/HeaderBar.vue
Normal file
50
web/src/components/HeaderBar.vue
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
<template >
|
||||||
|
<v-row justify="end" class="header-component">
|
||||||
|
<v-col cols="auto">
|
||||||
|
<v-app-bar :elevation="0" color="cyan-darken-3">
|
||||||
|
<Building2 id="placeholderIcon"/>
|
||||||
|
<v-text-field
|
||||||
|
class="compact-form"
|
||||||
|
label="Search"
|
||||||
|
variant="solo"
|
||||||
|
prepend-icon="mdi-magnify"
|
||||||
|
hide-details
|
||||||
|
single-line
|
||||||
|
clearable
|
||||||
|
rounded="pill"
|
||||||
|
></v-text-field>
|
||||||
|
<!-- <v-btn icon>
|
||||||
|
<v-icon>mdi-dots-vertical</v-icon>
|
||||||
|
</v-btn> -->
|
||||||
|
<CircleUser id="userIcon"/>
|
||||||
|
</v-app-bar>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { Building2 } from 'lucide-vue-next';
|
||||||
|
import { CircleUser } from 'lucide-vue-next';
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
.bg-main-color {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.compact-form {
|
||||||
|
transform: scale(0.7);
|
||||||
|
transform-origin: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#placeholderIcon {
|
||||||
|
margin-right: 20%;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#userIcon {
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
</style>
|
33
web/src/components/ListViewElement.vue
Normal file
33
web/src/components/ListViewElement.vue
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
<template>
|
||||||
|
<v-sheet
|
||||||
|
elevation="4"
|
||||||
|
width="60vw"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
licenseName: {{ props.licenseName }}
|
||||||
|
licenseKey: {{ props.licenseKey }}
|
||||||
|
</div>
|
||||||
|
</v-sheet>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { defineProps } from 'vue'
|
||||||
|
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
licenseName: String,
|
||||||
|
licenseKey: String,
|
||||||
|
startDate: String,
|
||||||
|
endDate: String,
|
||||||
|
amount: Number,
|
||||||
|
tags: Array,
|
||||||
|
notes: String,
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
|
@ -9,6 +9,7 @@ import { registerPlugins } from '@/plugins'
|
||||||
|
|
||||||
// Components
|
// Components
|
||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
|
import './assets/styles/variables.scss'
|
||||||
|
|
||||||
// Composables
|
// Composables
|
||||||
import { createApp } from 'vue'
|
import { createApp } from 'vue'
|
||||||
|
@ -18,3 +19,5 @@ const app = createApp(App)
|
||||||
registerPlugins(app)
|
registerPlugins(app)
|
||||||
|
|
||||||
app.mount('#app')
|
app.mount('#app')
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,6 @@ import { createVuetify } from 'vuetify'
|
||||||
// https://vuetifyjs.com/en/introduction/why-vuetify/#feature-guides
|
// https://vuetifyjs.com/en/introduction/why-vuetify/#feature-guides
|
||||||
export default createVuetify({
|
export default createVuetify({
|
||||||
theme: {
|
theme: {
|
||||||
defaultTheme: 'dark',
|
defaultTheme: 'light',
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue