diff --git a/common/locales/de.json b/common/locales/de.json index 0a06360a60..0df54a9e2d 100644 --- a/common/locales/de.json +++ b/common/locales/de.json @@ -56,6 +56,7 @@ "info": "Hier kannst du den Inhalt von diesem Block planen.{br}In der linken Spalte [Zeit] kannst du die Dauer der einzelnen Elemente erfassen.{br}In der rechten Spalte [Verantwortlich] kannst du Personen zuteilen.", "entity": { "section": { + "controls": "Aktionen", "fields": { "column1": "Zeit", "column2Html": "Programm", @@ -198,4 +199,4 @@ } } } -} \ No newline at end of file +} diff --git a/common/locales/en.json b/common/locales/en.json index 8d068b2577..85450dcef8 100644 --- a/common/locales/en.json +++ b/common/locales/en.json @@ -60,6 +60,7 @@ "storyboard": { "info": "Here you can plan the content of this block.{br}In the left column [Time] you can record the duration of the individual elements.{br}In the right column [Responsible] you can assign persons.", "entity": { + "controls": "Controls", "section": { "fields": { "column1": "Time", @@ -205,4 +206,4 @@ } } } -} \ No newline at end of file +} diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 3b8315037e..a236d96cab 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -54,6 +54,7 @@ "url-template": "3.1.0", "util": "0.12.5", "uuid": "9.0.0", + "v-resize-observer": "^1.6.3", "vee-validate": "3.4.14", "vue": "2.7.14", "vue-axios": "3.5.2", @@ -19451,6 +19452,11 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -21338,6 +21344,15 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/v-resize-observer": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/v-resize-observer/-/v-resize-observer-1.6.3.tgz", + "integrity": "sha512-Dm8SSaNbag34DuTrdg4OIzyIj6MnVaU1VgU48Dv9/VX33gaN4IEoRywjZp/e9ooqtmZG47OhbSfUMoGFqNiPxg==", + "dependencies": { + "lodash": "^4.17.21", + "resize-observer-polyfill": "^1.5.1" + } + }, "node_modules/v8-to-istanbul": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index 98aad5d7ae..a7de4d2464 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -68,6 +68,7 @@ "url-template": "3.1.0", "util": "0.12.5", "uuid": "9.0.0", + "v-resize-observer": "^1.6.3", "vee-validate": "3.4.14", "vue": "2.7.14", "vue-axios": "3.5.2", diff --git a/frontend/src/components/activity/CardContentNode.vue b/frontend/src/components/activity/CardContentNode.vue index 10bf035adb..bf558c9258 100644 --- a/frontend/src/components/activity/CardContentNode.vue +++ b/frontend/src/components/activity/CardContentNode.vue @@ -2,7 +2,7 @@ - {{ icon }} + {{ icon }}
- diff --git a/frontend/src/components/activity/content/StoryboardRow.vue b/frontend/src/components/activity/content/StoryboardRow.vue new file mode 100644 index 0000000000..769a2f49d8 --- /dev/null +++ b/frontend/src/components/activity/content/StoryboardRow.vue @@ -0,0 +1,188 @@ + + + diff --git a/frontend/src/components/activity/content/StoryboardSortable.vue b/frontend/src/components/activity/content/StoryboardSortable.vue new file mode 100644 index 0000000000..edf0f15102 --- /dev/null +++ b/frontend/src/components/activity/content/StoryboardSortable.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/frontend/src/components/form/tiptap/VTiptapEditor.vue b/frontend/src/components/form/tiptap/VTiptapEditor.vue index cd4a86f125..b6f7b9810f 100644 --- a/frontend/src/components/form/tiptap/VTiptapEditor.vue +++ b/frontend/src/components/form/tiptap/VTiptapEditor.vue @@ -78,6 +78,7 @@ div.v-text-field__slot { .v-text-field.v-text-field--enclosed.v-text-field--single-line:not(.v-input--dense) .editor, .v-text-field.v-text-field--enclosed.v-text-field--outlined:not(.v-input--dense) .editor { - margin-top: 10px; + margin-top: 6px; + margin-bottom: 6px; } diff --git a/frontend/src/main.js b/frontend/src/main.js index f3be61c188..3c5498ffe9 100644 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -19,6 +19,7 @@ import Toast from 'vue-toastification' import 'vue-toastification/dist/index.css' import { Resize } from 'vuetify/lib/directives' +import ResizeObserver from 'v-resize-observer' if (window.environment && window.environment.SENTRY_FRONTEND_DSN) { const environment = window.environment.SENTRY_ENVIRONMENT ?? 'http://localhost:3000' @@ -45,6 +46,7 @@ Vue.use(Toast, { // manually importing necessary vuetify directives (there's no auomatic vuetify-loader for vitejs) Vue.directive('resize', Resize) +Vue.directive('resizeobserver', ResizeObserver.directive) new Vue({ router, diff --git a/frontend/src/scss/global.scss b/frontend/src/scss/global.scss index 37b11af379..e409db2aa0 100644 --- a/frontend/src/scss/global.scss +++ b/frontend/src/scss/global.scss @@ -98,3 +98,7 @@ body { .d-flow-root { display: flow-root; } + +.d-contents { + display: contents; +}