@windward/core 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/.eslintrc.js +5 -1
  2. package/.prettierrc +3 -2
  3. package/components/Content/Blocks/Accordion.vue +10 -2
  4. package/components/Content/Blocks/BlockQuote.vue +6 -2
  5. package/components/Content/Blocks/ClickableIcons.vue +12 -10
  6. package/components/Content/Blocks/Email.vue +7 -7
  7. package/components/Content/Blocks/GenerateAIQuestionButton.vue +85 -18
  8. package/components/Content/Blocks/HorizontalRule.vue +2 -0
  9. package/components/Content/Blocks/Image.vue +7 -182
  10. package/components/Content/Blocks/OpenResponse.vue +25 -0
  11. package/components/Content/Blocks/OpenResponseCollate.vue +13 -12
  12. package/components/Content/Blocks/ScenarioChoice.vue +10 -2
  13. package/components/Content/Blocks/Tab.vue +27 -3
  14. package/components/Content/Blocks/UserUpload.vue +5 -3
  15. package/components/Content/Blocks/Video.vue +33 -7
  16. package/components/Navigation/Items/GlossaryNav.vue +25 -10
  17. package/components/Settings/AccordionSettings.vue +20 -34
  18. package/components/Settings/BlockQuoteSettings.vue +17 -41
  19. package/components/Settings/ClickableIconsSettings.vue +18 -40
  20. package/components/Settings/EmailSettings.vue +12 -38
  21. package/components/Settings/FileDownloadSettings.vue +10 -35
  22. package/components/Settings/ImageSettings.vue +13 -247
  23. package/components/Settings/OpenResponseCollateSettings.vue +47 -55
  24. package/components/Settings/OpenResponseSettings.vue +62 -36
  25. package/components/Settings/ScenarioChoiceSettings.vue +13 -35
  26. package/components/Settings/TabSettings.vue +25 -34
  27. package/components/Settings/UserUploadSettings.vue +6 -30
  28. package/components/Settings/VideoSettings/SourcePicker.vue +1 -0
  29. package/components/Settings/VideoSettings.vue +6 -42
  30. package/components/utils/ContentViewer.vue +0 -3
  31. package/components/utils/FillInBlank/FillInBlankInput.vue +29 -47
  32. package/components/utils/TinyMCEWrapper.vue +42 -81
  33. package/components/utils/glossary/GlossaryToolTip.vue +6 -0
  34. package/helpers/GlossaryHelper.ts +12 -2
  35. package/helpers/tinymce/WindwardPlugins.ts +166 -118
  36. package/i18n/en-US/components/content/blocks/generate_questions.ts +3 -2
  37. package/i18n/en-US/components/settings/open_response_collate.ts +1 -1
  38. package/i18n/en-US/components/settings/scenario_choice.ts +3 -2
  39. package/i18n/en-US/components/settings/video.ts +1 -1
  40. package/i18n/en-US/components/utils/FillInBlank/FillInBlankInput.ts +2 -0
  41. package/i18n/en-US/components/utils/tiny_mce_wrapper.ts +1 -0
  42. package/i18n/en-US/shared/settings.ts +1 -1
  43. package/i18n/es-ES/components/content/blocks/generate_questions.ts +2 -1
  44. package/i18n/es-ES/components/settings/open_response_collate.ts +1 -1
  45. package/i18n/es-ES/components/settings/scenario_choice.ts +3 -2
  46. package/i18n/es-ES/components/settings/video.ts +1 -1
  47. package/i18n/es-ES/components/utils/FillInBlank/FillInBlankInput.ts +2 -0
  48. package/i18n/es-ES/components/utils/tiny_mce_wrapper.ts +3 -2
  49. package/i18n/es-ES/shared/settings.ts +1 -1
  50. package/i18n/sv-SE/components/content/blocks/generate_questions.ts +2 -1
  51. package/i18n/sv-SE/components/settings/open_response_collate.ts +1 -1
  52. package/i18n/sv-SE/components/settings/scenario_choice.ts +3 -2
  53. package/i18n/sv-SE/components/settings/video.ts +1 -1
  54. package/i18n/sv-SE/components/utils/FillInBlank/FillInBlankInput.ts +2 -0
  55. package/i18n/sv-SE/components/utils/tiny_mce_wrapper.ts +2 -0
  56. package/package.json +3 -2
  57. package/pages/glossary.vue +1 -1
  58. package/stylelint.config.js +14 -0
  59. package/test/Components/Content/Blocks/OpenResponseCollate.spec.js +3 -3
  60. package/test/Components/Settings/TabSettings.spec.js +2 -2
  61. package/test/__mocks__/contentBlockMock.js +20 -0
  62. package/test/__mocks__/modelMock.js +1 -1
  63. package/test/helpers/GlossaryHelper.spec.js +22 -3
  64. package/test/mocks.js +8 -0
@@ -1,5 +1,12 @@
1
1
  <template>
2
2
  <div>
3
+ <h2 v-if="block.metadata.config.title" tabindex="0">
4
+ {{ block.metadata.config.title }}
5
+ </h2>
6
+ <p v-if="block.metadata.config.description" tabindex="0" class="pt-3">
7
+ {{ block.metadata.config.description }}
8
+ </p>
9
+
3
10
  <v-card v-if="render && !hasSource">
4
11
  <v-card-title>
5
12
  <v-icon class="mr-2">mdi-cloud-question</v-icon>
@@ -19,12 +26,7 @@
19
26
  type="image, image, list-item-avatar"
20
27
  class="reload-skeleton"
21
28
  ></v-skeleton-loader>
22
- <h2 v-if="block.metadata.config.title">
23
- {{ block.metadata.config.title }}
24
- </h2>
25
- <p v-if="block.metadata.config.description" class="pb-0 mb-0">
26
- {{ block.metadata.config.description }}
27
- </p>
29
+
28
30
  <VuetifyPlayer
29
31
  v-if="hasSource"
30
32
  :language="$i18n && $i18n.locale ? $i18n.locale : 'en-US'"
@@ -57,6 +59,8 @@
57
59
  block.metadata.config.attributes.playlistautoadvance
58
60
  "
59
61
  :playbackrates="block.metadata.config.attributes.playbackrates"
62
+ @seeking="onSeeking"
63
+ @timeupdate="onTimeupdate"
60
64
  />
61
65
  <!-- display first note in the playlist for now -->
62
66
  <v-alert
@@ -213,7 +217,6 @@ export default {
213
217
  },
214
218
  data() {
215
219
  return {
216
- saveState: false,
217
220
  fileTab: null,
218
221
  // Default config settings
219
222
  defaultConfig: {
@@ -283,6 +286,10 @@ export default {
283
286
  },*/
284
287
  ],
285
288
  },
289
+ tracking: {
290
+ hasSkipped: false,
291
+ percentComplete: 0,
292
+ },
286
293
  }
287
294
  },
288
295
  beforeMount() {
@@ -303,6 +310,25 @@ export default {
303
310
  }
304
311
  },
305
312
  methods: {
313
+ onSeeking(e) {
314
+ this.tracking.hasSkipped = true
315
+ },
316
+ onTimeupdate(e) {
317
+ // If you were seeking / skipped parts only "resume" if you start back from where you left off
318
+ if (e.current_percent <= this.tracking.percentComplete) {
319
+ this.tracking.hasSkipped = false
320
+ }
321
+
322
+ if (!this.tracking.hasSkipped) {
323
+ if (e.current_percent >= this.tracking.percentComplete) {
324
+ this.tracking.percentComplete = e.current_percent
325
+ }
326
+
327
+ if (!this.completed && this.tracking.percentComplete >= 90) {
328
+ this.emitCompleted()
329
+ }
330
+ }
331
+ },
306
332
  async onBeforeSave() {
307
333
  this.block.body = 'video'
308
334
  },
@@ -1,14 +1,26 @@
1
1
  <template>
2
- <v-list-item :to="'/course/' + course.id + '/glossary'">
3
- <v-list-item-action>
4
- <v-icon>mdi-comment-text-multiple</v-icon>
5
- </v-list-item-action>
6
- <v-list-item-content>
7
- <v-list-item-title
8
- >{{ $t('windward.core.shared.menu.course_glossary') }}
9
- </v-list-item-title>
10
- </v-list-item-content>
11
- </v-list-item>
2
+ <v-tooltip right>
3
+ <template #activator="{ on, attrs }">
4
+ <v-list-item
5
+ :class="color"
6
+ v-on="on"
7
+ v-bind="attrs"
8
+ :to="'/course/' + course.id + '/glossary'"
9
+ >
10
+ <v-list-item-action>
11
+ <v-icon v-on="on" v-bind="attrs"
12
+ >mdi-comment-text-multiple</v-icon
13
+ >
14
+ </v-list-item-action>
15
+ <v-list-item-content>
16
+ <v-list-item-title
17
+ >{{ $t('windward.core.shared.menu.course_glossary') }}
18
+ </v-list-item-title>
19
+ </v-list-item-content>
20
+ </v-list-item>
21
+ </template>
22
+ <span>{{ $t('windward.core.shared.menu.course_glossary') }}</span>
23
+ </v-tooltip>
12
24
  </template>
13
25
 
14
26
  <script>
@@ -18,6 +30,9 @@ export default {
18
30
  name: 'GlossaryNav',
19
31
  layout: 'course',
20
32
  middleware: ['auth'],
33
+ props: {
34
+ color: { type: String, required: false, default: '' },
35
+ },
21
36
  data() {
22
37
  return {}
23
38
  },
@@ -3,12 +3,12 @@
3
3
  <v-container class="pa-0">
4
4
  <v-row class="pl-3 pr-3">
5
5
  <v-text-field
6
+ id="block-settings-title"
6
7
  v-model="block.metadata.config.title"
7
8
  :autofocus="true"
8
- :rules="validation.shortInputRules"
9
- :counter="50"
9
+ :rules="$Validation.getRule('block.title')"
10
+ :counter="$Validation.getLimit('block.title')"
10
11
  outlined
11
- id="title"
12
12
  :label="
13
13
  $t(
14
14
  'windward.core.components.settings.clickable_icon.title'
@@ -17,9 +17,10 @@
17
17
  :disabled="render"
18
18
  ></v-text-field>
19
19
  <v-textarea
20
+ id="block-settings-instructions"
20
21
  v-model="block.metadata.config.instructions"
21
- :rules="validation.instructionRule"
22
- :counter="255"
22
+ :rules="$Validation.getRule('block.instructions')"
23
+ :counter="$Validation.getLimit('block.instructions')"
23
24
  outlined
24
25
  :label="$t('components.content.settings.base.instructions')"
25
26
  :disabled="render"
@@ -46,8 +47,8 @@
46
47
  <v-text-field
47
48
  v-model="block.metadata.config.items[index].header"
48
49
  :autofocus="true"
49
- :counter="50"
50
- :rules="validation.shortInputRules"
50
+ :rules="$Validation.getRule('shortInput')"
51
+ :counter="$Validation.getLimit('shortInput')"
51
52
  outlined
52
53
  :label="
53
54
  $t('components.content.settings.base.title')
@@ -110,6 +111,7 @@
110
111
  'windward.core.shared.settings.alt_image'
111
112
  )
112
113
  "
114
+ :disabled="render"
113
115
  ></v-text-field>
114
116
  <v-text-field
115
117
  v-model="
@@ -125,6 +127,7 @@
125
127
  'windward.core.shared.settings.aria_described'
126
128
  )
127
129
  "
130
+ :disabled="render"
128
131
  ></v-text-field>
129
132
  <ContentBlockAsset
130
133
  v-model="
@@ -132,7 +135,16 @@
132
135
  "
133
136
  mimes="image/png,image/jpeg"
134
137
  :assets.sync="block.assets"
135
- ></ContentBlockAsset>
138
+ outlined
139
+ >
140
+ <template #title>
141
+ {{
142
+ $t(
143
+ 'windward.core.components.settings.image.place_image'
144
+ )
145
+ }}
146
+ </template>
147
+ </ContentBlockAsset>
136
148
  </v-container>
137
149
  </v-container>
138
150
  </template>
@@ -222,32 +234,6 @@ export default {
222
234
  return {
223
235
  expansionPanelKey: '0',
224
236
  loading: false,
225
- validation: {
226
- shortInputRules: [
227
- (v) => {
228
- if (v && v.length >= 50) {
229
- return this.$t(
230
- 'windward.core.shared.settings.errors.input_limitations',
231
- [50]
232
- )
233
- } else {
234
- return true
235
- }
236
- },
237
- ],
238
- instructionRule: [
239
- (v) => {
240
- if (v && v.length >= 255) {
241
- return this.$t(
242
- 'windward.core.shared.settings.errors.input_limitations',
243
- [255]
244
- )
245
- } else {
246
- return true
247
- }
248
- },
249
- ],
250
- },
251
237
  }
252
238
  },
253
239
  beforeDestroy() {
@@ -2,21 +2,23 @@
2
2
  <div>
3
3
  <v-container class="pa-0">
4
4
  <v-text-field
5
+ id="block-settings-title"
6
+ ref="title"
5
7
  v-model="block.metadata.config.title"
6
8
  :autofocus="true"
7
9
  outlined
8
- :counter="50"
9
- :rules="validation.shortInputRules"
10
+ :counter="$Validation.getLimit('block.title')"
11
+ :rules="$Validation.getRule('block.title')"
10
12
  :label="$t('components.content.settings.base.title')"
11
- ref="title"
12
13
  :disabled="render"
13
14
  ></v-text-field>
14
15
  <v-textarea
16
+ id="block-settings-instructions"
15
17
  v-model="block.metadata.config.instructions"
16
18
  outlined
17
19
  auto-grow
18
- :rules="validation.longInputRules"
19
- :counter="255"
20
+ :rules="$Validation.getRule('block.instructions')"
21
+ :counter="$Validation.getLimit('block.instructions')"
20
22
  :label="$t('components.content.settings.base.instructions')"
21
23
  :disabled="render"
22
24
  ></v-textarea>
@@ -25,10 +27,10 @@
25
27
  <v-container class="pa-0">
26
28
  <TextEditor
27
29
  v-model="block.metadata.config.block_quote.quote"
28
- :rules="validation.longInputRules"
30
+ :rules="$Validation.getRule('longInput')"
31
+ :counter="$Validation.getLimit('longInput')"
29
32
  outlined
30
33
  auto-grow
31
- :counter="255"
32
34
  :height="200"
33
35
  :label="
34
36
  $t('windward.core.components.settings.block_quote.body')
@@ -40,8 +42,8 @@
40
42
  <v-container class="pa-0">
41
43
  <v-text-field
42
44
  v-model="block.metadata.config.block_quote.author"
43
- :rules="validation.shortInputRules"
44
- :counter="50"
45
+ :rules="$Validation.getRule('shortInput')"
46
+ :counter="$Validation.getLimit('shortInput')"
45
47
  outlined
46
48
  auto-grow
47
49
  :label="
@@ -52,8 +54,8 @@
52
54
  <v-text-field
53
55
  v-model="block.metadata.config.block_quote.author_title"
54
56
  outlined
55
- :rules="validation.shortInputRules"
56
- :counter="50"
57
+ :rules="$Validation.getRule('shortInput')"
58
+ :counter="$Validation.getLimit('shortInput')"
57
59
  auto-grow
58
60
  :label="
59
61
  $t('windward.core.components.settings.block_quote.title')
@@ -62,8 +64,8 @@
62
64
  ></v-text-field>
63
65
  <v-text-field
64
66
  v-model="block.metadata.config.block_quote.organization"
65
- :rules="validation.shortInputRules"
66
- :counter="50"
67
+ :rules="$Validation.getRule('shortInput')"
68
+ :counter="$Validation.getLimit('shortInput')"
67
69
  outlined
68
70
  auto-grow
69
71
  :label="$t('windward.core.components.settings.block_quote.org')"
@@ -72,8 +74,8 @@
72
74
  <v-text-field
73
75
  v-model="block.metadata.config.block_quote.source_title"
74
76
  outlined
75
- :rules="validation.shortInputRules"
76
- :counter="50"
77
+ :rules="$Validation.getRule('shortInput')"
78
+ :counter="$Validation.getLimit('shortInput')"
77
79
  auto-grow
78
80
  :label="
79
81
  $t(
@@ -182,32 +184,6 @@ export default {
182
184
  value: 'online_journal',
183
185
  },
184
186
  ],
185
- validation: {
186
- shortInputRules: [
187
- (v) => {
188
- if (v && v.length >= 50) {
189
- return this.$t(
190
- 'windward.core.shared.settings.errors.input_limitations',
191
- [50]
192
- )
193
- } else {
194
- return true
195
- }
196
- },
197
- ],
198
- longInputRules: [
199
- (v) => {
200
- if (v && v.length >= 255) {
201
- return this.$t(
202
- 'windward.core.shared.settings.errors.input_limitations',
203
- [255]
204
- )
205
- } else {
206
- return true
207
- }
208
- },
209
- ],
210
- },
211
187
  }
212
188
  },
213
189
  methods: {},
@@ -3,12 +3,12 @@
3
3
  <v-container class="pa-0">
4
4
  <v-col class="pa-0">
5
5
  <v-text-field
6
+ id="block-settings-title"
6
7
  v-model="block.metadata.config.title"
7
8
  :autofocus="true"
8
- :rules="validation.shortInputRules"
9
- :counter="50"
9
+ :rules="$Validation.getRule('block.title')"
10
+ :counter="$Validation.getLimit('block.title')"
10
11
  outlined
11
- id="title"
12
12
  :label="
13
13
  $t(
14
14
  'windward.core.components.settings.clickable_icon.title'
@@ -17,9 +17,10 @@
17
17
  :disabled="render"
18
18
  ></v-text-field>
19
19
  <v-textarea
20
+ id="block-settings-instructions"
20
21
  v-model="block.metadata.config.description"
21
- :rules="validation.instructionRule"
22
- :counter="255"
22
+ :rules="$Validation.getRule('block.instructions')"
23
+ :counter="$Validation.getLimit('block.instructions')"
23
24
  outlined
24
25
  :label="$t('components.content.settings.base.instructions')"
25
26
  :disabled="render"
@@ -157,16 +158,25 @@
157
158
  class="mb-4"
158
159
  mimes="image/jpeg,image/png,image/gif"
159
160
  :disabled="render"
161
+ outlined
160
162
  @click:file="onFileSelect($event, index)"
161
- ></ContentBlockAsset>
163
+ >
164
+ <template #title>
165
+ {{
166
+ $t(
167
+ 'windward.core.components.settings.image.place_image'
168
+ )
169
+ }}
170
+ </template>
171
+ </ContentBlockAsset>
162
172
  <v-text-field
163
173
  v-model="
164
174
  block.metadata.config.items[index].title
165
175
  "
166
176
  :id="'item-' + index + '-title'"
167
177
  outlined
168
- :counter="50"
169
- :rules="validation.shortInputRules"
178
+ :rules="$Validation.getRule('shortInput')"
179
+ :counter="$Validation.getLimit('shortInput')"
170
180
  :label="
171
181
  $t(
172
182
  'windward.core.components.settings.clickable_icon.item_title'
@@ -238,38 +248,6 @@ export default {
238
248
  data() {
239
249
  return {
240
250
  validation: {
241
- shortInputRules: [
242
- (v) => {
243
- if (v) {
244
- if (v.length <= 50) {
245
- return true
246
- } else {
247
- return this.$t(
248
- 'windward.core.shared.settings.errors.input_limitations',
249
- [50]
250
- )
251
- }
252
- } else {
253
- return true
254
- }
255
- },
256
- ],
257
- instructionRule: [
258
- (v) => {
259
- if (v) {
260
- if (v.length <= 255) {
261
- return true
262
- } else {
263
- return this.$t(
264
- 'windward.core.shared.settings.errors.input_limitations',
265
- [255]
266
- )
267
- }
268
- } else {
269
- return true
270
- }
271
- },
272
- ],
273
251
  iconRules: [
274
252
  (v) => {
275
253
  if (v) {
@@ -6,17 +6,17 @@
6
6
  :autofocus="true"
7
7
  ref="title"
8
8
  outlined
9
- :counter="50"
10
- :rules="validation.shortInputRules"
9
+ :rules="$Validation.getRule('block.title')"
10
+ :counter="$Validation.getLimit('block.title')"
11
11
  :label="$t('components.content.settings.base.title')"
12
12
  :disabled="render"
13
13
  ></v-text-field>
14
14
  <v-textarea
15
15
  v-model="block.metadata.config.instructions"
16
16
  outlined
17
- :rules="validation.instructionRule"
17
+ :rules="$Validation.getRule('block.instructions')"
18
+ :counter="$Validation.getLimit('block.instructions')"
18
19
  auto-grow
19
- :counter="255"
20
20
  :label="$t('components.content.settings.base.instructions')"
21
21
  :disabled="render"
22
22
  ></v-textarea>
@@ -42,8 +42,8 @@
42
42
  <v-container :key="expansionPanelKey">
43
43
  <v-text-field
44
44
  v-model="block.metadata.config.emails[index].from"
45
- :rules="validation.shortInputRules"
46
- :counter="50"
45
+ :rules="$Validation.getRule('shortInput')"
46
+ :counter="$Validation.getLimit('shortInput')"
47
47
  outlined
48
48
  :label="
49
49
  $t(
@@ -54,8 +54,8 @@
54
54
  ></v-text-field>
55
55
  <v-text-field
56
56
  v-model="block.metadata.config.emails[index].to"
57
- :rules="validation.shortInputRules"
58
- :counter="50"
57
+ :rules="$Validation.getRule('shortInput')"
58
+ :counter="$Validation.getLimit('shortInput')"
59
59
  outlined
60
60
  :label="
61
61
  $t('windward.core.components.settings.email.to')
@@ -64,8 +64,8 @@
64
64
  ></v-text-field>
65
65
  <v-text-field
66
66
  v-model="block.metadata.config.emails[index].cc"
67
- :rules="validation.shortInputRules"
68
- :counter="50"
67
+ :rules="$Validation.getRule('shortInput')"
68
+ :counter="$Validation.getLimit('shortInput')"
69
69
  outlined
70
70
  :label="
71
71
  $t('windward.core.components.settings.email.cc')
@@ -76,8 +76,8 @@
76
76
  v-model="
77
77
  block.metadata.config.emails[index].subject
78
78
  "
79
- :rules="validation.shortInputRules"
80
- :counter="50"
79
+ :rules="$Validation.getRule('shortInput')"
80
+ :counter="$Validation.getLimit('shortInput')"
81
81
  outlined
82
82
  :label="
83
83
  $t(
@@ -213,32 +213,6 @@ export default {
213
213
  loading: false,
214
214
  expansionPanelKey: 0,
215
215
  editingPanel: 0,
216
- validation: {
217
- shortInputRules: [
218
- (v) => {
219
- if (v && v.length >= 50) {
220
- return this.$t(
221
- 'windward.core.shared.settings.errors.input_limitations',
222
- [50]
223
- )
224
- } else {
225
- return true
226
- }
227
- },
228
- ],
229
- instructionRule: [
230
- (v) => {
231
- if (v && v.length >= 255) {
232
- return this.$t(
233
- 'windward.core.shared.settings.errors.input_limitations',
234
- [255]
235
- )
236
- } else {
237
- return true
238
- }
239
- },
240
- ],
241
- },
242
216
  }
243
217
  },
244
218
  beforeDestroy() {
@@ -1,19 +1,21 @@
1
1
  <template>
2
2
  <div>
3
3
  <v-text-field
4
+ id="block-settings-title"
4
5
  v-model="block.metadata.config.title"
5
6
  outlined
6
- :counter="50"
7
- :rules="validation.shortInputRules"
7
+ :rules="$Validation.getRule('block.title')"
8
+ :counter="$Validation.getLimit('block.title')"
8
9
  :autofocus="true"
9
10
  :label="$t('components.content.settings.base.title')"
10
11
  :disabled="render"
11
12
  ></v-text-field>
12
13
  <v-textarea
14
+ id="block-settings-instructions"
13
15
  v-model="block.metadata.config.instructions"
14
16
  outlined
15
- :counter="255"
16
- :rules="validation.instructionRule"
17
+ :rules="$Validation.getRule('block.instructions')"
18
+ :counter="$Validation.getLimit('block.instructions')"
17
19
  :disabled="render"
18
20
  :label="$t('components.content.settings.base.instructions')"
19
21
  ></v-textarea>
@@ -39,8 +41,8 @@
39
41
  <v-text-field
40
42
  v-model="block.metadata.config.items[index].name"
41
43
  :autofocus="true"
42
- :counter="50"
43
- :rules="validation.shortInputRules"
44
+ :rules="$Validation.getRule('shortInput')"
45
+ :counter="$Validation.getLimit('shortInput')"
44
46
  outlined
45
47
  :label="
46
48
  $t(
@@ -79,7 +81,7 @@
79
81
  ><v-icon>mdi-plus</v-icon
80
82
  >{{
81
83
  $t(
82
- 'windward.core.components.settings.file_download.add'
84
+ 'windward.core.components.settings.file_download.place_file'
83
85
  )
84
86
  }}</v-btn
85
87
  >
@@ -98,34 +100,7 @@ export default {
98
100
  extends: BaseContentSettings,
99
101
  components: { TextEditor, SortableExpansionPanel },
100
102
  data() {
101
- return {
102
- validation: {
103
- shortInputRules: [
104
- (v) => {
105
- if (v && v.length >= 50) {
106
- return this.$t(
107
- 'windward.core.shared.settings.errors.input_limitations',
108
- [50]
109
- )
110
- } else {
111
- return true
112
- }
113
- },
114
- ],
115
- instructionRule: [
116
- (v) => {
117
- if (v && v.length >= 255) {
118
- return this.$t(
119
- 'windward.core.shared.settings.errors.input_limitations',
120
- [255]
121
- )
122
- } else {
123
- return true
124
- }
125
- },
126
- ],
127
- },
128
- }
103
+ return {}
129
104
  },
130
105
  computed: {
131
106
  filename() {