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;