diff --git a/web/src/router.ts b/web/src/router.ts index 0246f52..c7e6ef6 100644 --- a/web/src/router.ts +++ b/web/src/router.ts @@ -3,8 +3,9 @@ import { default as Router, Route } from 'vue-router'; import Login from '@/views/Login.vue'; import Measures from '@/views/Measures.vue'; -import UserAccount from '@/views/UserAccount.vue'; +import NewMeasure from '@/views/NewMeasure.vue'; import QuickPanels from '@/views/QuickPanels.vue'; +import UserAccount from '@/views/UserAccount.vue'; import { authStore } from '@/store'; import { logService } from '@/services/logging'; @@ -43,6 +44,12 @@ const router = new Router({ name: 'quick-panels', component: QuickPanels, meta: { requiresAuth: true } + }, + { + path: '/new/measure', + name: 'new-measure', + component: NewMeasure, + meta: { requiresAuth: true } } ] }); diff --git a/web/src/views/NewMeasure.vue b/web/src/views/NewMeasure.vue new file mode 100644 index 0000000..f522f3c --- /dev/null +++ b/web/src/views/NewMeasure.vue @@ -0,0 +1,39 @@ + + + diff --git a/web/src/views/new-measure.scss b/web/src/views/new-measure.scss new file mode 100644 index 0000000..0b8e05c --- /dev/null +++ b/web/src/views/new-measure.scss @@ -0,0 +1,29 @@ +@import '~@/styles/vars'; + +input, +select { +// background-color: $bg-primary; + +/* + &::placeholder { + color: $fg-primary; + opacity: 1; + } +*/ + border: solid thin $color1; + border-radius: 4px; +} + +select { background-color: white; } + +form { + display: flex; + flex-direction: column; + justify-content: space-between; + + label { + display: inline-block; + margin: .5rem 0; + min-width: 10em; + } +} diff --git a/web/src/views/new-measure.ts b/web/src/views/new-measure.ts new file mode 100644 index 0000000..5d86ea9 --- /dev/null +++ b/web/src/views/new-measure.ts @@ -0,0 +1,34 @@ +import { Component, Prop, Vue, Watch } from 'vue-property-decorator'; +import { logService } from '@/services/logging'; +import { userStore } from '@/store'; +import { Measure, MeasureConfig, MeasureType } from '@/models'; +import MeasureConfigForm from '@/components/measure-config/MeasureConfigForm.vue'; + +const logger = logService.getLogger('/views/new-measure'); + +@Component({ + components: { MeasureConfigForm } +}) +export class NewMeasure extends Vue { + private test: string = 'test'; + private measure: Measure = { + id: '', + config: { + type: 'simple' as MeasureType, + isVisible: true + }, + description: '', + name: '', + slug: '', + userId: '' + }; + + private get slugFromName() { + return this.measure.name + .toLowerCase() + .replace(/[^\w\s]/g, '') + .replace(/\s+/g, '-'); + } +} + +export default NewMeasure;