@windward/core 0.1.3 → 0.2.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.
- package/components/Content/Blocks/Email.vue +62 -12
- package/components/Content/Blocks/HorizontalRule.vue +52 -0
- package/components/Content/Blocks/Image.vue +4 -4
- package/components/Content/Blocks/Tab.vue +2 -8
- package/components/Content/Blocks/UserUpload/ManageDataTableUserFiles.vue +4 -4
- package/components/Content/Blocks/UserUpload.vue +48 -12
- package/components/Navigation/Items/AskTheExpert.vue +2 -2
- package/components/Navigation/Items/CourseGlossaryToolNav.vue +2 -2
- package/components/Settings/HorizontalRuleSettings.vue +42 -0
- package/components/Settings/ImageSettings.vue +69 -9
- package/components/Settings/ScenarioChoiceSettings.vue +4 -4
- package/components/Settings/TabSettings.vue +0 -3
- package/components/Settings/TextEditorSettings.vue +2 -2
- package/components/utils/MathExpressionEditor.vue +1 -1
- package/components/utils/TinyMCEWrapper.vue +3 -1
- package/components/utils/assets/tinymce/css/content.scss +2 -2
- package/components/utils/glossary/CourseGlossary.vue +16 -3
- package/components/utils/glossary/CourseGlossaryForm.vue +1 -0
- package/components/utils/glossary/GlossaryToolTip.vue +2 -2
- package/helpers/MathHelper.ts +1 -1
- package/i18n/en-US/components/content/blocks/feedback.ts +2 -2
- package/i18n/en-US/components/settings/horizontal_rule.ts +3 -0
- package/i18n/en-US/components/settings/image.ts +8 -0
- package/i18n/en-US/components/settings/index.ts +2 -0
- package/i18n/en-US/shared/content_blocks.ts +1 -0
- package/i18n/en-US/shared/settings.ts +1 -0
- package/i18n/es-ES/components/settings/horizontal_rule.ts +3 -0
- package/i18n/es-ES/components/settings/image.ts +8 -0
- package/i18n/es-ES/components/settings/index.ts +2 -0
- package/i18n/es-ES/shared/content_blocks.ts +1 -0
- package/i18n/es-ES/shared/settings.ts +1 -0
- package/i18n/sv-SE/components/settings/horizontal_rule.ts +3 -0
- package/i18n/sv-SE/components/settings/image.ts +8 -0
- package/i18n/sv-SE/components/settings/index.ts +2 -0
- package/i18n/sv-SE/shared/content_blocks.ts +1 -0
- package/i18n/sv-SE/shared/settings.ts +1 -0
- package/package.json +7 -2
- package/plugin.js +34 -26
- package/test/__mocks__/componentsMock.js +2 -2
- package/.vscode/settings.json +0 -3
|
@@ -46,8 +46,15 @@
|
|
|
46
46
|
elevation="0"
|
|
47
47
|
>
|
|
48
48
|
<v-expansion-panel-header>
|
|
49
|
-
<v-row>
|
|
50
|
-
<v-col
|
|
49
|
+
<v-row class="container-header">
|
|
50
|
+
<v-col
|
|
51
|
+
xl="1"
|
|
52
|
+
lg="1"
|
|
53
|
+
md="1"
|
|
54
|
+
sm="2"
|
|
55
|
+
xs="2"
|
|
56
|
+
class="pa-0 d-flex align-center"
|
|
57
|
+
>
|
|
51
58
|
<v-btn fab x-small class="primary" elevation="0"
|
|
52
59
|
>{{ item.initials ? item.initials : '' }}
|
|
53
60
|
</v-btn>
|
|
@@ -66,28 +73,54 @@
|
|
|
66
73
|
color="secondary"
|
|
67
74
|
>mdi-circle-medium</v-icon
|
|
68
75
|
>
|
|
76
|
+
</v-col>
|
|
77
|
+
<v-col
|
|
78
|
+
xl="1"
|
|
79
|
+
lg="3"
|
|
80
|
+
md="11"
|
|
81
|
+
sm="10"
|
|
82
|
+
xs="10"
|
|
83
|
+
class="d-flex align-center"
|
|
84
|
+
>
|
|
69
85
|
<span class="span-details"
|
|
70
86
|
>{{ item.from ? item.from : 'From' }}
|
|
71
87
|
</span>
|
|
72
88
|
</v-col>
|
|
89
|
+
<v-col
|
|
90
|
+
v-if="selectedPanels !== index"
|
|
91
|
+
xl="10"
|
|
92
|
+
lg="8"
|
|
93
|
+
class="d-flex align-center container-body-preview"
|
|
94
|
+
>
|
|
95
|
+
<div class="div-preview">
|
|
96
|
+
{{ onRemoveTags(item.body) }}
|
|
97
|
+
</div>
|
|
98
|
+
</v-col>
|
|
73
99
|
</v-row>
|
|
74
100
|
</v-expansion-panel-header>
|
|
75
101
|
<v-expansion-panel-content>
|
|
76
|
-
<v-container class="pa-0
|
|
102
|
+
<v-container class="pa-0">
|
|
77
103
|
<v-row>
|
|
78
|
-
<v-col cols="1"></v-col>
|
|
79
104
|
<v-col
|
|
80
|
-
|
|
105
|
+
cols="1"
|
|
106
|
+
xl="1"
|
|
107
|
+
lg="1"
|
|
108
|
+
md="1"
|
|
109
|
+
sm="2"
|
|
110
|
+
xs="2"
|
|
111
|
+
></v-col>
|
|
112
|
+
<v-col
|
|
113
|
+
class="div-details"
|
|
81
114
|
v-if="item.to || item.cc"
|
|
82
115
|
>
|
|
83
|
-
<div class="div-details-to
|
|
116
|
+
<div class="div-details-to">
|
|
84
117
|
{{
|
|
85
118
|
$t(
|
|
86
119
|
'windward.core.components.content.blocks.email.to'
|
|
87
120
|
)
|
|
88
121
|
}}: {{ item.to }}
|
|
89
122
|
</div>
|
|
90
|
-
<div class="div-details-cc
|
|
123
|
+
<div class="div-details-cc">
|
|
91
124
|
{{
|
|
92
125
|
$t(
|
|
93
126
|
'windward.core.components.content.blocks.email.cc'
|
|
@@ -220,7 +253,11 @@ export default {
|
|
|
220
253
|
mounted() {
|
|
221
254
|
this.selectedPanels = this.block.metadata.config.emails.length - 1
|
|
222
255
|
},
|
|
223
|
-
methods: {
|
|
256
|
+
methods: {
|
|
257
|
+
onRemoveTags(body) {
|
|
258
|
+
return body.replace(/(<([^>]+)>)/gi, '')
|
|
259
|
+
},
|
|
260
|
+
},
|
|
224
261
|
}
|
|
225
262
|
</script>
|
|
226
263
|
<style scoped>
|
|
@@ -230,12 +267,10 @@ export default {
|
|
|
230
267
|
.column-simulation {
|
|
231
268
|
font-size: 12px;
|
|
232
269
|
}
|
|
233
|
-
.container-details {
|
|
234
|
-
font-size: 10px;
|
|
235
|
-
margin-top: -26px;
|
|
236
|
-
}
|
|
237
270
|
.div-details {
|
|
238
271
|
color: grey;
|
|
272
|
+
font-size: 10px;
|
|
273
|
+
margin-top: -25px;
|
|
239
274
|
}
|
|
240
275
|
.div-details-cc {
|
|
241
276
|
margin-top: -9px;
|
|
@@ -247,4 +282,19 @@ export default {
|
|
|
247
282
|
.v-expansion-panel {
|
|
248
283
|
border: 1px solid var(--v-primary-base);
|
|
249
284
|
}
|
|
285
|
+
@media only screen and (max-width: 1264px) {
|
|
286
|
+
.container-body-preview {
|
|
287
|
+
display: none !important;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
.div-preview {
|
|
291
|
+
overflow: hidden;
|
|
292
|
+
text-overflow: ellipsis;
|
|
293
|
+
white-space: nowrap;
|
|
294
|
+
margin-top: auto;
|
|
295
|
+
margin-bottom: auto;
|
|
296
|
+
}
|
|
297
|
+
.container-header {
|
|
298
|
+
width: 100%;
|
|
299
|
+
}
|
|
250
300
|
</style>
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<hr :class="isDashed" />
|
|
4
|
+
</div>
|
|
5
|
+
</template>
|
|
6
|
+
<script>
|
|
7
|
+
import _ from 'lodash'
|
|
8
|
+
import BaseContentBlock from '~/components/Content/Blocks/BaseContentBlock'
|
|
9
|
+
export default {
|
|
10
|
+
name: 'HorizontalRule',
|
|
11
|
+
extends: BaseContentBlock,
|
|
12
|
+
beforeMount() {
|
|
13
|
+
if (_.isEmpty(this.block)) {
|
|
14
|
+
this.block = {}
|
|
15
|
+
}
|
|
16
|
+
if (_.isEmpty(this.block.metadata)) {
|
|
17
|
+
this.block.metadata = {}
|
|
18
|
+
}
|
|
19
|
+
if (_.isEmpty(this.block.metadata.config)) {
|
|
20
|
+
this.block.metadata.config = {}
|
|
21
|
+
}
|
|
22
|
+
if (_.isEmpty(this.block.metadata.config)) {
|
|
23
|
+
this.block.metadata.config = {}
|
|
24
|
+
}
|
|
25
|
+
if (_.isEmpty(this.block.metadata.config.dashed)) {
|
|
26
|
+
this.block.metadata.config.dashed = false
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
data() {
|
|
30
|
+
return {
|
|
31
|
+
isDashed: 'solid',
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
watch: {
|
|
35
|
+
value(newValue) {
|
|
36
|
+
if (newValue.metadata.config.dashed) {
|
|
37
|
+
this.isDashed = 'dashed'
|
|
38
|
+
} else if (newValue.metadata.config.dashed === false) {
|
|
39
|
+
this.isDashed = 'solid'
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
}
|
|
44
|
+
</script>
|
|
45
|
+
<style>
|
|
46
|
+
.solid {
|
|
47
|
+
border-bottom: solid 1px var(--v-primary-base);
|
|
48
|
+
}
|
|
49
|
+
.dashed {
|
|
50
|
+
border-bottom: dashed 1px var(--v-primary-base);
|
|
51
|
+
}
|
|
52
|
+
</style>
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
class="sr-only"
|
|
44
44
|
></TextViewer>
|
|
45
45
|
</v-container>
|
|
46
|
-
<
|
|
46
|
+
<DialogBox v-model="dialog" persistent :trigger="false">
|
|
47
47
|
<template #title></template>
|
|
48
48
|
<template #form="{ on, attrs }">
|
|
49
49
|
<v-responsive
|
|
@@ -72,13 +72,13 @@
|
|
|
72
72
|
</v-img>
|
|
73
73
|
</v-responsive>
|
|
74
74
|
</template>
|
|
75
|
-
</
|
|
75
|
+
</DialogBox>
|
|
76
76
|
</div>
|
|
77
77
|
</template>
|
|
78
78
|
|
|
79
79
|
<script>
|
|
80
80
|
import _ from 'lodash'
|
|
81
|
-
import
|
|
81
|
+
import DialogBox from '~/components/DialogBox'
|
|
82
82
|
import TextViewer from '~/components/Text/TextViewer'
|
|
83
83
|
import Crypto from '~/helpers/Crypto'
|
|
84
84
|
import BaseContentBlock from '~/components/Content/Blocks/BaseContentBlock'
|
|
@@ -87,7 +87,7 @@ export default {
|
|
|
87
87
|
name: 'ContentBlockImage',
|
|
88
88
|
extends: BaseContentBlock,
|
|
89
89
|
components: {
|
|
90
|
-
|
|
90
|
+
DialogBox,
|
|
91
91
|
TextViewer,
|
|
92
92
|
},
|
|
93
93
|
data() {
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<v-container>
|
|
4
|
-
<v-tabs
|
|
5
|
-
background-color="primary"
|
|
6
|
-
v-model="block.metadata.config.currentTab"
|
|
7
|
-
>
|
|
3
|
+
<v-container class="pa-0">
|
|
4
|
+
<v-tabs dark v-model="block.metadata.config.currentTab" show-arrows>
|
|
8
5
|
<v-tabs-slider></v-tabs-slider>
|
|
9
6
|
<v-tab
|
|
10
7
|
v-for="(tab, tabIndex) in block.metadata.config.items"
|
|
@@ -60,9 +57,6 @@ export default {
|
|
|
60
57
|
content: '',
|
|
61
58
|
}
|
|
62
59
|
this.block.metadata.config.items = []
|
|
63
|
-
if (_.isEmpty(this.block.metadata.config.tab)) {
|
|
64
|
-
this.block.metadata.config.tab = 0
|
|
65
|
-
}
|
|
66
60
|
this.block.metadata.config.items.push(defaultObject)
|
|
67
61
|
} else {
|
|
68
62
|
this.block.metadata.config.items.forEach((element) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="text-center">
|
|
3
|
-
<
|
|
3
|
+
<DialogBox
|
|
4
4
|
v-bind="$attrs"
|
|
5
5
|
transition="dialog-bottom-transition"
|
|
6
6
|
:color="color"
|
|
@@ -22,20 +22,20 @@
|
|
|
22
22
|
:enrollment="enrollment"
|
|
23
23
|
></DisplayUserFilesTable>
|
|
24
24
|
</template>
|
|
25
|
-
</
|
|
25
|
+
</DialogBox>
|
|
26
26
|
<span v-else>---</span>
|
|
27
27
|
</div>
|
|
28
28
|
</template>
|
|
29
29
|
|
|
30
30
|
<script>
|
|
31
31
|
import _ from 'lodash'
|
|
32
|
-
import
|
|
32
|
+
import DialogBox from '~/components/DialogBox'
|
|
33
33
|
|
|
34
34
|
import DisplayUserFilesTable from './DisplayUserFilesTable.vue'
|
|
35
35
|
|
|
36
36
|
export default {
|
|
37
37
|
name: 'ManageDataTableUserFiles',
|
|
38
|
-
components: {
|
|
38
|
+
components: { DialogBox, DisplayUserFilesTable },
|
|
39
39
|
props: {
|
|
40
40
|
value: { type: Object, required: true },
|
|
41
41
|
enrollment: { type: Object, required: true },
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
:enrollment="enrollment"
|
|
39
39
|
></DisplayUserFilesTable>
|
|
40
40
|
</v-col>
|
|
41
|
-
<v-col cols="12">
|
|
41
|
+
<v-col cols="12" v-if="showUpload">
|
|
42
42
|
<div v-if="blockExists">
|
|
43
43
|
<v-form
|
|
44
44
|
ref="form"
|
|
@@ -149,6 +149,7 @@ export default {
|
|
|
149
149
|
uploadFiles: [],
|
|
150
150
|
userFileAsset: {},
|
|
151
151
|
studentUpload: null,
|
|
152
|
+
maxFileLimit: 10,
|
|
152
153
|
}
|
|
153
154
|
},
|
|
154
155
|
computed: {
|
|
@@ -160,17 +161,27 @@ export default {
|
|
|
160
161
|
},
|
|
161
162
|
canUpload() {
|
|
162
163
|
if (this.valid) {
|
|
164
|
+
const currentFiles = _.get(
|
|
165
|
+
this.userFileAsset,
|
|
166
|
+
'file_assets',
|
|
167
|
+
[]
|
|
168
|
+
)
|
|
169
|
+
|
|
163
170
|
// Multiple disabled, single file selected
|
|
164
171
|
if (
|
|
165
172
|
!Array.isArray(this.uploadFiles) &&
|
|
166
173
|
!this.block.metadata.config.uploadSettings.multiple &&
|
|
167
|
-
this.uploadFiles
|
|
174
|
+
this.uploadFiles &&
|
|
175
|
+
currentFiles.length === 0
|
|
168
176
|
) {
|
|
169
177
|
return true
|
|
170
178
|
} else if (
|
|
171
179
|
// Multi enabled, one or more files selected
|
|
180
|
+
this.block.metadata.config.uploadSettings.multiple &&
|
|
172
181
|
Array.isArray(this.uploadFiles) &&
|
|
173
|
-
this.uploadFiles.length > 0
|
|
182
|
+
this.uploadFiles.length > 0 &&
|
|
183
|
+
this.uploadFiles.length + currentFiles.length <=
|
|
184
|
+
this.maxFileLimit
|
|
174
185
|
) {
|
|
175
186
|
return true
|
|
176
187
|
} else {
|
|
@@ -180,6 +191,26 @@ export default {
|
|
|
180
191
|
}
|
|
181
192
|
return false
|
|
182
193
|
},
|
|
194
|
+
showUpload() {
|
|
195
|
+
const currentFiles = _.get(this.userFileAsset, 'file_assets', [])
|
|
196
|
+
|
|
197
|
+
// Multiple disabled, confirm there's no current files
|
|
198
|
+
if (
|
|
199
|
+
!this.block.metadata.config.uploadSettings.multiple &&
|
|
200
|
+
currentFiles.length === 0
|
|
201
|
+
) {
|
|
202
|
+
return true
|
|
203
|
+
} else if (
|
|
204
|
+
// Multi enabled, make sure we're not over our max limit
|
|
205
|
+
this.block.metadata.config.uploadSettings.multiple &&
|
|
206
|
+
currentFiles.length < this.maxFileLimit
|
|
207
|
+
) {
|
|
208
|
+
return true
|
|
209
|
+
} else {
|
|
210
|
+
// Hide the uploader
|
|
211
|
+
return false
|
|
212
|
+
}
|
|
213
|
+
},
|
|
183
214
|
},
|
|
184
215
|
mounted() {
|
|
185
216
|
if (this.blockExists) {
|
|
@@ -202,19 +233,24 @@ export default {
|
|
|
202
233
|
}
|
|
203
234
|
|
|
204
235
|
// Create a new UserFileAsset if we don't have an instance yet
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
236
|
+
let userFileAssetRequest = new UserFileAsset({
|
|
237
|
+
file: uploadFiles,
|
|
238
|
+
}).for(
|
|
239
|
+
new Enrollment(this.enrollment),
|
|
240
|
+
new ContentBlock({ id: this.block.id })
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
// Apply the existing id if we already have an instance
|
|
244
|
+
if (Uuid.test(this.userFileAsset.id)) {
|
|
245
|
+
userFileAssetRequest.id = this.userFileAsset.id
|
|
212
246
|
}
|
|
213
247
|
|
|
214
|
-
|
|
248
|
+
// Add our files to upload
|
|
249
|
+
userFileAssetRequest.file = uploadFiles
|
|
215
250
|
|
|
216
251
|
try {
|
|
217
|
-
|
|
252
|
+
// Apply the response back to the reactive this.userFileAsset
|
|
253
|
+
this.userFileAsset = await userFileAssetRequest.save()
|
|
218
254
|
} catch (e) {
|
|
219
255
|
this.$toast.error(this.$t('shared.forms.errors.unknown'))
|
|
220
256
|
console.log(e)
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<v-list-item-title>
|
|
8
8
|
{{ $t(config.i18n) }}
|
|
9
9
|
</v-list-item-title>
|
|
10
|
-
<
|
|
10
|
+
<DialogBox v-model="dialog" color="primary" text :trigger="false">
|
|
11
11
|
<template #title>{{ $t(config.i18n) }}</template>
|
|
12
12
|
<template #form="{ on, attrs }">
|
|
13
13
|
<v-card flat v-bind="attrs" v-on="on">
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
</v-container>
|
|
105
105
|
</v-card>
|
|
106
106
|
</template>
|
|
107
|
-
</
|
|
107
|
+
</DialogBox>
|
|
108
108
|
</v-list-item-content>
|
|
109
109
|
</v-list-item>
|
|
110
110
|
</template>
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
</v-list-item-action>
|
|
6
6
|
<v-list-item-content>
|
|
7
7
|
<v-list-item-title>{{ $t(config.i18n) }}</v-list-item-title>
|
|
8
|
-
<
|
|
8
|
+
<DialogBox v-model="dialog" color="primary" text :trigger="false">
|
|
9
9
|
<template #title>{{ $t(config.i18n) }}</template>
|
|
10
10
|
<template #form="{ on, attrs }">
|
|
11
11
|
<div v-bind="attrs" v-on="on">
|
|
12
12
|
<CourseGlossary />
|
|
13
13
|
</div>
|
|
14
14
|
</template>
|
|
15
|
-
</
|
|
15
|
+
</DialogBox>
|
|
16
16
|
</v-list-item-content>
|
|
17
17
|
</v-list-item>
|
|
18
18
|
</template>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<v-switch
|
|
4
|
+
v-model="block.metadata.config.dashed"
|
|
5
|
+
:label="
|
|
6
|
+
$t('windward.core.components.settings.horizontal_rule.dashed')
|
|
7
|
+
"
|
|
8
|
+
></v-switch>
|
|
9
|
+
</div>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
import _ from 'lodash'
|
|
14
|
+
import BaseContentSettings from '~/components/Content/Tool/BaseContentSettings.js'
|
|
15
|
+
|
|
16
|
+
export default {
|
|
17
|
+
name: 'HorizontalRuleSettings',
|
|
18
|
+
extends: BaseContentSettings,
|
|
19
|
+
components: {},
|
|
20
|
+
beforeMount() {
|
|
21
|
+
if (_.isEmpty(this.block)) {
|
|
22
|
+
this.block = {}
|
|
23
|
+
}
|
|
24
|
+
if (_.isEmpty(this.block.metadata)) {
|
|
25
|
+
this.block.metadata = {}
|
|
26
|
+
}
|
|
27
|
+
if (_.isEmpty(this.block.metadata.config)) {
|
|
28
|
+
this.block.metadata.config = {}
|
|
29
|
+
}
|
|
30
|
+
if (_.isEmpty(this.block.metadata.config)) {
|
|
31
|
+
this.block.metadata.config = {}
|
|
32
|
+
}
|
|
33
|
+
if (!_.isBoolean(this.block.metadata.config.dashed)) {
|
|
34
|
+
this.block.metadata.config.dashed = false
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
data() {
|
|
38
|
+
return {}
|
|
39
|
+
},
|
|
40
|
+
}
|
|
41
|
+
</script>
|
|
42
|
+
<style></style>
|
|
@@ -27,24 +27,68 @@
|
|
|
27
27
|
v-model="block.metadata.config.modal"
|
|
28
28
|
:label="$t('windward.core.components.settings.image.modal')"
|
|
29
29
|
></v-switch>
|
|
30
|
+
<v-tooltip top color="primary">
|
|
31
|
+
<template v-slot:activator="{ on, attrs }">
|
|
32
|
+
<div v-bind="attrs" v-on="on" class="d-flex justify-content">
|
|
33
|
+
<v-switch
|
|
34
|
+
v-model="block.metadata.config.decorative"
|
|
35
|
+
@change="onDecorativeToggled($event)"
|
|
36
|
+
:label="
|
|
37
|
+
$t(
|
|
38
|
+
'windward.core.components.settings.image.decorative'
|
|
39
|
+
)
|
|
40
|
+
"
|
|
41
|
+
></v-switch>
|
|
42
|
+
<div class="d-flex align-center pb-4">
|
|
43
|
+
<v-icon x-small>mdi-help</v-icon>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</template>
|
|
47
|
+
<span class="span-description">{{
|
|
48
|
+
$t('windward.core.components.settings.image.toggle_description')
|
|
49
|
+
}}</span>
|
|
50
|
+
</v-tooltip>
|
|
30
51
|
|
|
31
|
-
<v-form>
|
|
52
|
+
<v-form v-if="!block.metadata.config.decorative">
|
|
32
53
|
<v-text-field
|
|
33
54
|
v-model="block.metadata.config.alt"
|
|
55
|
+
outlined
|
|
56
|
+
counter
|
|
57
|
+
maxlength="125"
|
|
34
58
|
:label="
|
|
35
59
|
$t('windward.core.components.navigation.image.default_alt')
|
|
36
60
|
"
|
|
37
61
|
:rules="validation.textRules"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
62
|
+
>
|
|
63
|
+
<template v-slot:append>
|
|
64
|
+
<v-tooltip top color="primary">
|
|
65
|
+
<template v-slot:activator="{ on }">
|
|
66
|
+
<v-icon v-on="on" small>mdi-help</v-icon>
|
|
67
|
+
</template>
|
|
68
|
+
<span class="span-description">{{
|
|
69
|
+
$t(
|
|
70
|
+
'windward.core.components.settings.image.alt_description'
|
|
71
|
+
)
|
|
72
|
+
}}</span>
|
|
73
|
+
</v-tooltip>
|
|
74
|
+
</template>
|
|
75
|
+
</v-text-field>
|
|
76
|
+
<h5 class="pb-2">
|
|
77
|
+
{{ $t('windward.core.components.settings.image.screenreader') }}
|
|
78
|
+
<v-tooltip top color="primary">
|
|
79
|
+
<template v-slot:activator="{ on }">
|
|
80
|
+
<v-icon v-on="on" small class="pb-3">mdi-help</v-icon>
|
|
81
|
+
</template>
|
|
82
|
+
<span class="span-description">{{
|
|
83
|
+
$t(
|
|
84
|
+
'windward.core.components.settings.image.screenreader_description'
|
|
85
|
+
)
|
|
86
|
+
}}</span>
|
|
87
|
+
</v-tooltip>
|
|
88
|
+
</h5>
|
|
46
89
|
<TextEditor
|
|
47
90
|
v-model="block.metadata.config.aria_describedby"
|
|
91
|
+
menubar="bullist numlist"
|
|
48
92
|
></TextEditor>
|
|
49
93
|
</v-form>
|
|
50
94
|
</v-container>
|
|
@@ -86,6 +130,9 @@ export default {
|
|
|
86
130
|
if (!_.isBoolean(this.block.metadata.config.modal)) {
|
|
87
131
|
this.block.metadata.config.modal = false
|
|
88
132
|
}
|
|
133
|
+
if (!_.isBoolean(this.block.metadata.config.decorative)) {
|
|
134
|
+
this.block.metadata.config.decorative = false
|
|
135
|
+
}
|
|
89
136
|
if (_.isEmpty(this.block.metadata.config.aria_describedby)) {
|
|
90
137
|
this.block.metadata.config.aria_describedby = ''
|
|
91
138
|
}
|
|
@@ -108,6 +155,12 @@ export default {
|
|
|
108
155
|
watch: {},
|
|
109
156
|
mounted() {},
|
|
110
157
|
methods: {
|
|
158
|
+
onDecorativeToggled(evt) {
|
|
159
|
+
if (evt) {
|
|
160
|
+
this.block.metadata.config.aria_describedby = ''
|
|
161
|
+
this.block.metadata.config.alt = ''
|
|
162
|
+
}
|
|
163
|
+
},
|
|
111
164
|
onFileSelect(file) {
|
|
112
165
|
// file = null when you remove a file
|
|
113
166
|
if (_.isEmpty(file)) {
|
|
@@ -139,3 +192,10 @@ export default {
|
|
|
139
192
|
},
|
|
140
193
|
}
|
|
141
194
|
</script>
|
|
195
|
+
<style>
|
|
196
|
+
.span-description {
|
|
197
|
+
display: flex;
|
|
198
|
+
justify-content: center;
|
|
199
|
+
width: 200px;
|
|
200
|
+
}
|
|
201
|
+
</style>
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
</v-col>
|
|
118
118
|
</v-container>
|
|
119
119
|
|
|
120
|
-
<
|
|
120
|
+
<DialogBox
|
|
121
121
|
v-model="showLinkDialog"
|
|
122
122
|
:trigger="false"
|
|
123
123
|
action-save
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
</v-treeview>
|
|
172
172
|
</v-form>
|
|
173
173
|
</template>
|
|
174
|
-
</
|
|
174
|
+
</DialogBox>
|
|
175
175
|
</div>
|
|
176
176
|
</template>
|
|
177
177
|
<script>
|
|
@@ -180,14 +180,14 @@ import { mapGetters } from 'vuex'
|
|
|
180
180
|
import BaseContentSettings from '~/components/Content/Tool/BaseContentSettings.js'
|
|
181
181
|
import TextEditor from '~/components/Text/TextEditor'
|
|
182
182
|
import SortableExpansionPanel from '~/components/SortableExpansionPanel.vue'
|
|
183
|
-
import
|
|
183
|
+
import DialogBox from '~/components/DialogBox.vue'
|
|
184
184
|
|
|
185
185
|
export default {
|
|
186
186
|
name: 'ScenarioChoiceSettings',
|
|
187
187
|
components: {
|
|
188
188
|
SortableExpansionPanel,
|
|
189
189
|
TextEditor,
|
|
190
|
-
|
|
190
|
+
DialogBox,
|
|
191
191
|
},
|
|
192
192
|
extends: BaseContentSettings,
|
|
193
193
|
computed: {
|
|
@@ -94,9 +94,6 @@ export default {
|
|
|
94
94
|
if (_.isEmpty(this.block.metadata.config)) {
|
|
95
95
|
this.block.metadata.config = {}
|
|
96
96
|
}
|
|
97
|
-
if (_.isEmpty(this.block.metadata.config.tab)) {
|
|
98
|
-
this.block.metadata.config.tab = 0
|
|
99
|
-
}
|
|
100
97
|
if (_.isEmpty(this.block.metadata.config.currentTab)) {
|
|
101
98
|
this.block.metadata.config.currentTab = 0
|
|
102
99
|
}
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
type=" table-row-divider, list-item, divider, list-item, divider, image,image"
|
|
109
109
|
v-show="settingSelector.includes(1) && block.metadata.config.expand"
|
|
110
110
|
></v-skeleton-loader>
|
|
111
|
-
<
|
|
111
|
+
<DialogBox
|
|
112
112
|
v-model="dialog"
|
|
113
113
|
color="primary"
|
|
114
114
|
max-width="600px"
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
v-on="on"
|
|
130
130
|
/>
|
|
131
131
|
</template>
|
|
132
|
-
</
|
|
132
|
+
</DialogBox>
|
|
133
133
|
</div>
|
|
134
134
|
</template>
|
|
135
135
|
|
|
@@ -64,6 +64,8 @@ export default {
|
|
|
64
64
|
visual: false,
|
|
65
65
|
forced_root_block: this.root_block,
|
|
66
66
|
menubar: this.menubar,
|
|
67
|
+
browser_spellcheck: true,
|
|
68
|
+
contextmenu: false,
|
|
67
69
|
menu: {
|
|
68
70
|
insert: {
|
|
69
71
|
title: 'Insert',
|
|
@@ -82,7 +84,7 @@ export default {
|
|
|
82
84
|
'advlist autolink lists link charmap',
|
|
83
85
|
'searchreplace visualblocks code fullscreen',
|
|
84
86
|
'anchor insertdatetime ',
|
|
85
|
-
'paste code wordcount table WindwardToolKit
|
|
87
|
+
'paste code wordcount table WindwardToolKit',
|
|
86
88
|
],
|
|
87
89
|
toolbar: this.toolbar,
|
|
88
90
|
table_advtab: false,
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
>
|
|
12
12
|
<template #top>
|
|
13
13
|
<v-toolbar flat>
|
|
14
|
-
<
|
|
14
|
+
<DialogBox
|
|
15
15
|
v-model="dialog"
|
|
16
16
|
color="primary"
|
|
17
17
|
max-width="600px"
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
v-on="on"
|
|
61
61
|
/>
|
|
62
62
|
</template>
|
|
63
|
-
</
|
|
63
|
+
</DialogBox>
|
|
64
64
|
<v-spacer></v-spacer>
|
|
65
65
|
<v-text-field
|
|
66
66
|
v-model="search"
|
|
@@ -77,7 +77,20 @@
|
|
|
77
77
|
<tr>
|
|
78
78
|
<td>{{ item.term }}</td>
|
|
79
79
|
<td>{{ item.definition }}</td>
|
|
80
|
-
<td>
|
|
80
|
+
<td>
|
|
81
|
+
<v-row>
|
|
82
|
+
<div
|
|
83
|
+
v-for="(
|
|
84
|
+
item, index
|
|
85
|
+
) in item.alternate_forms"
|
|
86
|
+
:key="index"
|
|
87
|
+
>
|
|
88
|
+
<v-chip>
|
|
89
|
+
{{ item }}
|
|
90
|
+
</v-chip>
|
|
91
|
+
</div>
|
|
92
|
+
</v-row>
|
|
93
|
+
</td>
|
|
81
94
|
<td>{{ item.related_term }}</td>
|
|
82
95
|
|
|
83
96
|
<td>
|
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
</template>
|
|
19
19
|
<div>
|
|
20
20
|
<div v-if="this.$slots['definition']">
|
|
21
|
-
<
|
|
21
|
+
<h6 class="text-capitalize">
|
|
22
22
|
{{
|
|
23
23
|
$t(
|
|
24
24
|
'windward.core.components.utils.tiny_mce_wrapper.definition'
|
|
25
25
|
)
|
|
26
26
|
}}
|
|
27
27
|
:
|
|
28
|
-
</
|
|
28
|
+
</h6>
|
|
29
29
|
<p>
|
|
30
30
|
<slot name="definition"></slot>
|
|
31
31
|
</p>
|
package/helpers/MathHelper.ts
CHANGED
|
@@ -22,10 +22,10 @@ export default {
|
|
|
22
22
|
sent_feedback:
|
|
23
23
|
'Thank you for submitting feedback. Your input is very important and valuable to us. If you suggested improvements in your comments, we will consider those suggestions seriously. Course quality and usability are our highest priorities.',
|
|
24
24
|
scale: {
|
|
25
|
-
strongly_agree: '
|
|
25
|
+
strongly_agree: 'Strongly Agree',
|
|
26
26
|
agree: 'Agree',
|
|
27
27
|
neutral: 'Neutral',
|
|
28
28
|
disagree: 'Disagree',
|
|
29
|
-
strongly_disagree: '
|
|
29
|
+
strongly_disagree: 'Strongly Disagree',
|
|
30
30
|
},
|
|
31
31
|
}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
hide_background: 'Hide Background',
|
|
3
3
|
modal: 'Click to open in modal',
|
|
4
|
+
decorative: 'Decorative Image',
|
|
5
|
+
toggle_description:
|
|
6
|
+
'To meet accessibility standards, alt text is required for all images except for purely decorative images. This setting will add the proper alt text and screen reader text for learners.',
|
|
7
|
+
alt_description:
|
|
8
|
+
'Alternative text is descriptive text that conveys the meaning and context of a visual item in a digital setting, intended for users who are visually impaired or otherwise unable to visually identify an image. This should be short and clear.',
|
|
9
|
+
screenreader: 'Screen Reader Text',
|
|
10
|
+
screenreader_description:
|
|
11
|
+
'Screen reader text can be added to give a user using assistive technology more information about the elements on the page',
|
|
4
12
|
}
|
|
@@ -10,6 +10,7 @@ import accordion from './accordion'
|
|
|
10
10
|
import tab from './tab'
|
|
11
11
|
import email from './email'
|
|
12
12
|
import block_quote from './block_quote'
|
|
13
|
+
import horizontal_rule from './horizontal_rule'
|
|
13
14
|
|
|
14
15
|
export default {
|
|
15
16
|
accordion,
|
|
@@ -24,4 +25,5 @@ export default {
|
|
|
24
25
|
scenario_choice: scenarioChoice,
|
|
25
26
|
email,
|
|
26
27
|
block_quote,
|
|
28
|
+
horizontal_rule,
|
|
27
29
|
}
|
|
@@ -14,6 +14,7 @@ export default {
|
|
|
14
14
|
table: 'Table Settings',
|
|
15
15
|
math: 'Math Settings',
|
|
16
16
|
feedback: 'Feedback Settings',
|
|
17
|
+
horizontal_line: 'Divider Settings',
|
|
17
18
|
email: 'Ajustes del correo electrónico',
|
|
18
19
|
click_to_enter: 'Click here to enter text',
|
|
19
20
|
block_quote: 'Block Quote Settings',
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
hide_background: 'Ocultar fondo',
|
|
3
3
|
modal: 'Haga clic para abrir en modal',
|
|
4
|
+
decorative: 'Imagen decorativa',
|
|
5
|
+
toggle_description:
|
|
6
|
+
'Para cumplir con los estándares de accesibilidad, se requiere texto alternativo para todas las imágenes, excepto para las imágenes puramente decorativas. Esta configuración agregará el texto alternativo y el texto del lector de pantalla adecuados para los estudiantes.',
|
|
7
|
+
alt_description:
|
|
8
|
+
'El texto alternativo es un texto descriptivo que transmite el significado y el contexto de un elemento visual en un entorno digital, destinado a usuarios con discapacidad visual o que no pueden identificar visualmente una imagen. Esto debe ser breve y claro.',
|
|
9
|
+
screenreader: 'Texto del lector de pantalla',
|
|
10
|
+
screenreader_description:
|
|
11
|
+
'Se puede agregar texto al lector de pantalla para brindarle al usuario que utiliza tecnología de asistencia más información sobre los elementos de la página',
|
|
4
12
|
}
|
|
@@ -10,6 +10,7 @@ import accordion from './accordion'
|
|
|
10
10
|
import tab from './tab'
|
|
11
11
|
import block_quote from './block_quote'
|
|
12
12
|
import email from './email'
|
|
13
|
+
import horizontal_rule from './horizontal_rule'
|
|
13
14
|
|
|
14
15
|
export default {
|
|
15
16
|
accordion,
|
|
@@ -24,4 +25,5 @@ export default {
|
|
|
24
25
|
scenario_choice: scenarioChoice,
|
|
25
26
|
block_quote,
|
|
26
27
|
email,
|
|
28
|
+
horizontal_rule,
|
|
27
29
|
}
|
|
@@ -16,6 +16,7 @@ export default {
|
|
|
16
16
|
table: 'Configuración de la tabla',
|
|
17
17
|
math: 'Configuración matemática',
|
|
18
18
|
feedback: 'Configuración de comentarios',
|
|
19
|
+
horizontal_line: 'Configuración del divisor',
|
|
19
20
|
email: 'Ajustes del correo electrónico',
|
|
20
21
|
click_to_enter: 'Haga clic para ingresar texto',
|
|
21
22
|
block_quote: 'Configuración de cotización en bloque',
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
hide_background: 'Dölj bakgrund',
|
|
3
3
|
modal: 'Klicka för att öppna i modal',
|
|
4
|
+
decorative: 'Dekorativ bild',
|
|
5
|
+
toggle_description:
|
|
6
|
+
'För att uppfylla tillgänglighetsstandarder krävs alt-text för alla bilder utom för rent dekorativa bilder. Den här inställningen kommer att lägga till rätt alt-text och skärmläsartext för eleverna.',
|
|
7
|
+
alt_description:
|
|
8
|
+
'Alternativ text är beskrivande text som förmedlar innebörden och sammanhanget av ett visuellt föremål i en digital miljö, avsedd för användare som är synskadade eller på annat sätt oförmögna att visuellt identifiera en bild. Detta ska vara kort och tydligt.',
|
|
9
|
+
screenreader: 'Skärmläsartext',
|
|
10
|
+
screenreader_description:
|
|
11
|
+
'Skärmläsartext kan läggas till för att ge en användare som använder hjälpmedel mer information om elementen på sidan',
|
|
4
12
|
}
|
|
@@ -10,6 +10,7 @@ import accordion from './accordion'
|
|
|
10
10
|
import tab from './tab'
|
|
11
11
|
import block_quote from './block_quote'
|
|
12
12
|
import email from './email'
|
|
13
|
+
import horizontal_rule from './horizontal_rule'
|
|
13
14
|
|
|
14
15
|
export default {
|
|
15
16
|
accordion,
|
|
@@ -24,4 +25,5 @@ export default {
|
|
|
24
25
|
scenario_choice: scenarioChoice,
|
|
25
26
|
block_quote,
|
|
26
27
|
email,
|
|
28
|
+
horizontal_rule,
|
|
27
29
|
}
|
|
@@ -14,6 +14,7 @@ export default {
|
|
|
14
14
|
table: 'Tabellinställningar',
|
|
15
15
|
math: 'Matematiska inställningar',
|
|
16
16
|
feedback: 'Feedback-inställningar',
|
|
17
|
+
horizontal_line: 'Inställningar för avdelare',
|
|
17
18
|
email: 'E-postinställningar',
|
|
18
19
|
click_to_enter: 'Klicka för att skriva in text',
|
|
19
20
|
block_quote: 'Blockera offertinställningar',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@windward/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Windward UI Core Plugins",
|
|
5
5
|
"main": "plugin.js",
|
|
6
6
|
"scripts": {
|
|
@@ -12,7 +12,12 @@
|
|
|
12
12
|
"type": "git",
|
|
13
13
|
"url": "git+ssh://git@bitbucket.org/mindedge/windward-ui-plugin-core.git"
|
|
14
14
|
},
|
|
15
|
-
"author": "Jacob Rogaishio",
|
|
15
|
+
"author": "Jacob Rogaishio <jrogaishio@mindedge.com>",
|
|
16
|
+
"contributors": [
|
|
17
|
+
"Jacob Rogaishio <jrogaishio@mindedge.com>",
|
|
18
|
+
"Ted Celestin <tcelestin@mindedge.com>",
|
|
19
|
+
"Christina Passafaro <cpassafaro@mindedge.com>"
|
|
20
|
+
],
|
|
16
21
|
"license": "MIT",
|
|
17
22
|
"homepage": "https://bitbucket.org/mindedge/windward-ui-plugin-core#readme",
|
|
18
23
|
"dependencies": {
|
package/plugin.js
CHANGED
|
@@ -11,6 +11,7 @@ import ClickableIcons from './components/Content/Blocks/ClickableIcons'
|
|
|
11
11
|
import ScenarioChoice from './components/Content/Blocks/ScenarioChoice'
|
|
12
12
|
import Email from './components/Content/Blocks/Email'
|
|
13
13
|
import BlockQuote from './components/Content/Blocks/BlockQuote.vue'
|
|
14
|
+
import HorizontalRule from './components/Content/Blocks/HorizontalRule.vue'
|
|
14
15
|
|
|
15
16
|
import UserUploadNav from './components/Navigation/Items/UserUploadNav.vue'
|
|
16
17
|
|
|
@@ -37,6 +38,7 @@ import TabSettings from './components/Settings/TabSettings.vue'
|
|
|
37
38
|
import FeedbackSettings from './components/Settings/FeedbackSettings.vue'
|
|
38
39
|
import EmailSettings from './components/Settings/EmailSettings.vue'
|
|
39
40
|
import BlockQuoteSettigns from './components/Settings/BlockQuoteSettings.vue'
|
|
41
|
+
import HorizontalRuleSettings from './components/Settings/HorizontalRuleSettings.vue'
|
|
40
42
|
|
|
41
43
|
import UserUploadPage from './pages/userUpload.vue'
|
|
42
44
|
import GlossaryToolTip from './components/utils/glossary/GlossaryToolTip.vue'
|
|
@@ -151,8 +153,7 @@ export default {
|
|
|
151
153
|
metadata: {
|
|
152
154
|
icon: 'mdi-video',
|
|
153
155
|
name: 'windward.core.shared.content_blocks.title.video',
|
|
154
|
-
grouping:
|
|
155
|
-
'windward.core.shared.content_blocks.grouping.multimedia',
|
|
156
|
+
grouping: 'components.content.blocks.group.multimedia',
|
|
156
157
|
},
|
|
157
158
|
},
|
|
158
159
|
{
|
|
@@ -161,8 +162,7 @@ export default {
|
|
|
161
162
|
metadata: {
|
|
162
163
|
icon: 'mdi-tab',
|
|
163
164
|
name: 'windward.core.shared.content_blocks.title.tab',
|
|
164
|
-
grouping:
|
|
165
|
-
'windward.core.shared.content_blocks.grouping.basic',
|
|
165
|
+
grouping: 'components.content.blocks.group.basic',
|
|
166
166
|
},
|
|
167
167
|
},
|
|
168
168
|
{
|
|
@@ -171,28 +171,25 @@ export default {
|
|
|
171
171
|
metadata: {
|
|
172
172
|
icon: 'mdi-view-list',
|
|
173
173
|
name: 'windward.core.shared.content_blocks.title.accordion',
|
|
174
|
-
grouping:
|
|
175
|
-
'windward.core.shared.content_blocks.grouping.basic',
|
|
174
|
+
grouping: 'components.content.blocks.group.basic',
|
|
176
175
|
},
|
|
177
176
|
},
|
|
178
177
|
{
|
|
179
178
|
tag: 'core-open-response',
|
|
180
179
|
template: OpenResponse,
|
|
181
180
|
metadata: {
|
|
182
|
-
icon: 'mdi-
|
|
181
|
+
icon: 'mdi-text-long',
|
|
183
182
|
name: 'windward.core.shared.content_blocks.title.open_response',
|
|
184
|
-
grouping:
|
|
185
|
-
'windward.core.shared.content_blocks.grouping.basic',
|
|
183
|
+
grouping: 'components.content.blocks.group.basic',
|
|
186
184
|
},
|
|
187
185
|
},
|
|
188
186
|
{
|
|
189
187
|
tag: 'core-open-response-collate',
|
|
190
188
|
template: OpenResponseCollate,
|
|
191
189
|
metadata: {
|
|
192
|
-
icon: 'mdi-
|
|
190
|
+
icon: 'mdi-text-long',
|
|
193
191
|
name: 'windward.core.shared.content_blocks.title.open_response_collate',
|
|
194
|
-
grouping:
|
|
195
|
-
'windward.core.shared.content_blocks.grouping.basic',
|
|
192
|
+
grouping: 'components.content.blocks.group.basic',
|
|
196
193
|
},
|
|
197
194
|
},
|
|
198
195
|
{
|
|
@@ -201,8 +198,7 @@ export default {
|
|
|
201
198
|
metadata: {
|
|
202
199
|
icon: 'mdi-image',
|
|
203
200
|
name: 'windward.core.shared.content_blocks.title.image',
|
|
204
|
-
grouping:
|
|
205
|
-
'windward.core.shared.content_blocks.grouping.multimedia',
|
|
201
|
+
grouping: 'components.content.blocks.group.multimedia',
|
|
206
202
|
},
|
|
207
203
|
},
|
|
208
204
|
{
|
|
@@ -211,8 +207,7 @@ export default {
|
|
|
211
207
|
metadata: {
|
|
212
208
|
icon: 'mdi-cloud-upload',
|
|
213
209
|
name: 'windward.core.shared.content_blocks.title.user_upload',
|
|
214
|
-
grouping:
|
|
215
|
-
'windward.core.shared.content_blocks.grouping.multimedia',
|
|
210
|
+
grouping: 'components.content.blocks.group.multimedia',
|
|
216
211
|
},
|
|
217
212
|
},
|
|
218
213
|
{
|
|
@@ -221,8 +216,7 @@ export default {
|
|
|
221
216
|
metadata: {
|
|
222
217
|
icon: 'mdi-format-list-checks',
|
|
223
218
|
name: 'windward.core.shared.content_blocks.title.clickable_icons',
|
|
224
|
-
grouping:
|
|
225
|
-
'windward.core.shared.content_blocks.grouping.basic',
|
|
219
|
+
grouping: 'components.content.blocks.group.basic',
|
|
226
220
|
},
|
|
227
221
|
},
|
|
228
222
|
{
|
|
@@ -231,8 +225,7 @@ export default {
|
|
|
231
225
|
metadata: {
|
|
232
226
|
icon: 'mdi-ab-testing',
|
|
233
227
|
name: 'windward.core.shared.content_blocks.title.scenario_choice',
|
|
234
|
-
grouping:
|
|
235
|
-
'windward.core.shared.content_blocks.grouping.basic',
|
|
228
|
+
grouping: 'components.content.blocks.group.basic',
|
|
236
229
|
},
|
|
237
230
|
},
|
|
238
231
|
{
|
|
@@ -241,8 +234,7 @@ export default {
|
|
|
241
234
|
metadata: {
|
|
242
235
|
icon: 'mdi-message',
|
|
243
236
|
name: 'windward.core.shared.content_blocks.title.feedback',
|
|
244
|
-
grouping:
|
|
245
|
-
'windward.core.shared.content_blocks.grouping.basic',
|
|
237
|
+
grouping: 'components.content.blocks.group.basic',
|
|
246
238
|
},
|
|
247
239
|
},
|
|
248
240
|
{
|
|
@@ -251,8 +243,7 @@ export default {
|
|
|
251
243
|
metadata: {
|
|
252
244
|
icon: 'mdi-email',
|
|
253
245
|
name: 'windward.core.shared.content_blocks.title.email',
|
|
254
|
-
grouping:
|
|
255
|
-
'windward.core.shared.content_blocks.grouping.basic',
|
|
246
|
+
grouping: 'components.content.blocks.group.basic',
|
|
256
247
|
},
|
|
257
248
|
},
|
|
258
249
|
{
|
|
@@ -261,8 +252,16 @@ export default {
|
|
|
261
252
|
metadata: {
|
|
262
253
|
icon: 'mdi-format-quote-close',
|
|
263
254
|
name: 'windward.core.shared.content_blocks.title.block_quote',
|
|
264
|
-
grouping:
|
|
265
|
-
|
|
255
|
+
grouping: 'components.content.blocks.group.basic',
|
|
256
|
+
},
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
tag: 'core-horizontal-rule',
|
|
260
|
+
template: HorizontalRule,
|
|
261
|
+
metadata: {
|
|
262
|
+
icon: 'mdi-minus',
|
|
263
|
+
name: 'windward.core.shared.content_blocks.title.horizontal_rule',
|
|
264
|
+
grouping: 'components.content.blocks.group.basic',
|
|
266
265
|
},
|
|
267
266
|
},
|
|
268
267
|
],
|
|
@@ -393,6 +392,15 @@ export default {
|
|
|
393
392
|
name: 'windward.core.shared.settings.title.block_quote',
|
|
394
393
|
},
|
|
395
394
|
},
|
|
395
|
+
{
|
|
396
|
+
tag: 'core-horizontal-rule-settings',
|
|
397
|
+
template: HorizontalRuleSettings,
|
|
398
|
+
context: ['block.core-horizontal-rule'],
|
|
399
|
+
metadata: {
|
|
400
|
+
icon: 'mdi-cog',
|
|
401
|
+
name: 'windward.core.shared.settings.title.horizontal_line',
|
|
402
|
+
},
|
|
403
|
+
},
|
|
396
404
|
],
|
|
397
405
|
},
|
|
398
406
|
}
|
|
@@ -23,7 +23,7 @@ jest.mock(
|
|
|
23
23
|
)
|
|
24
24
|
|
|
25
25
|
jest.mock(
|
|
26
|
-
'~/components/
|
|
26
|
+
'~/components/DialogBox.vue',
|
|
27
27
|
() => {
|
|
28
28
|
return {
|
|
29
29
|
props: {},
|
|
@@ -35,7 +35,7 @@ jest.mock(
|
|
|
35
35
|
)
|
|
36
36
|
|
|
37
37
|
jest.mock(
|
|
38
|
-
'~/components/
|
|
38
|
+
'~/components/DialogBox.vue',
|
|
39
39
|
() => {
|
|
40
40
|
return {
|
|
41
41
|
props: {},
|
package/.vscode/settings.json
DELETED