@windward/games 0.5.1 → 0.7.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 (56) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/bitbucket-pipelines.yml +14 -0
  3. package/components/content/blocks/dragDrop/BucketGame.vue +24 -8
  4. package/components/content/blocks/flashcards/CardFace.vue +3 -3
  5. package/components/content/blocks/matchingGame/MatchingGame.vue +30 -38
  6. package/components/content/blocks/sevenStrikes/SevenStikes.vue +2 -6
  7. package/components/content/blocks/wordJumble/WordJumble.vue +9 -8
  8. package/components/settings/BucketGameSettingsManager.vue +253 -243
  9. package/components/settings/CrosswordPuzzleSettingsManager.vue +164 -111
  10. package/components/settings/FlashCardSlidesManager.vue +337 -336
  11. package/components/settings/MatchingGameManager.vue +347 -323
  12. package/components/settings/MultipleChoiceSettingsManager.vue +100 -69
  13. package/components/settings/QuizShowSettingsManager.vue +223 -203
  14. package/components/settings/SevenStrikesSettingsManager.vue +173 -133
  15. package/components/settings/SlideShowManager.vue +174 -134
  16. package/components/settings/SortingGameSettingsManager.vue +157 -108
  17. package/components/settings/WordJumbleSettingsManager.vue +171 -135
  18. package/i18n/en-US/components/content/blocks/bucket_game.ts +1 -0
  19. package/i18n/en-US/components/content/blocks/flashcard.ts +2 -2
  20. package/i18n/en-US/components/content/blocks/quizshow_game.ts +1 -1
  21. package/i18n/en-US/components/settings/bucket_game.ts +2 -1
  22. package/i18n/en-US/components/settings/crossword.ts +1 -0
  23. package/i18n/en-US/components/settings/flashcard.ts +2 -1
  24. package/i18n/en-US/components/settings/matching_game.ts +1 -0
  25. package/i18n/en-US/components/settings/multiple_choice.ts +1 -0
  26. package/i18n/en-US/components/settings/quizshow_game.ts +1 -1
  27. package/i18n/en-US/components/settings/seven_strikes.ts +1 -1
  28. package/i18n/en-US/components/settings/slideshow.ts +3 -2
  29. package/i18n/en-US/components/settings/sorting_game.ts +1 -0
  30. package/i18n/en-US/components/settings/word_jumble.ts +1 -0
  31. package/i18n/en-US/shared/settings.ts +3 -0
  32. package/i18n/es-ES/components/content/blocks/bucket_game.ts +1 -0
  33. package/i18n/es-ES/components/settings/bucket_game.ts +3 -1
  34. package/i18n/es-ES/components/settings/crossword.ts +2 -0
  35. package/i18n/es-ES/components/settings/flashcard.ts +1 -0
  36. package/i18n/es-ES/components/settings/matching_game.ts +1 -0
  37. package/i18n/es-ES/components/settings/multiple_choice.ts +2 -0
  38. package/i18n/es-ES/components/settings/quizshow_game.ts +1 -1
  39. package/i18n/es-ES/components/settings/slideshow.ts +1 -0
  40. package/i18n/es-ES/components/settings/sorting_game.ts +1 -0
  41. package/i18n/es-ES/components/settings/word_jumble.ts +1 -0
  42. package/i18n/es-ES/shared/settings.ts +3 -0
  43. package/i18n/sv-SE/components/content/blocks/bucket_game.ts +1 -0
  44. package/i18n/sv-SE/components/content/blocks/quizshow_game.ts +1 -1
  45. package/i18n/sv-SE/components/settings/bucket_game.ts +2 -0
  46. package/i18n/sv-SE/components/settings/crossword.ts +1 -0
  47. package/i18n/sv-SE/components/settings/flashcard.ts +1 -0
  48. package/i18n/sv-SE/components/settings/matching_game.ts +1 -0
  49. package/i18n/sv-SE/components/settings/multiple_choice.ts +1 -0
  50. package/i18n/sv-SE/components/settings/quizshow_game.ts +1 -1
  51. package/i18n/sv-SE/components/settings/slideshow.ts +1 -0
  52. package/i18n/sv-SE/components/settings/sorting_game.ts +1 -0
  53. package/i18n/sv-SE/components/settings/word_jumble.ts +2 -1
  54. package/i18n/sv-SE/shared/content_blocks.ts +5 -5
  55. package/i18n/sv-SE/shared/settings.ts +8 -5
  56. package/package.json +1 -1
@@ -1,138 +1,140 @@
1
1
  <template>
2
2
  <div>
3
- <v-form ref="form" v-model="valid" v-if="!loading">
4
- <v-container class="pa-0">
5
- <v-text-field
6
- ref="title"
7
- v-model="block.metadata.config.title"
8
- outlined
9
- :counter="50"
10
- :autofocus="true"
11
- :label="
12
- $t(
13
- 'windward.games.components.settings.bucket_game.form.title'
14
- )
15
- "
16
- :disabled="render"
17
- ></v-text-field>
18
- <v-textarea
19
- v-model="block.metadata.config.instructions"
20
- outlined
21
- auto-grow
22
- :label="
23
- $t(
24
- 'windward.games.components.settings.bucket_game.form.instructions'
25
- )
26
- "
27
- :disabled="render"
28
- ></v-textarea>
29
- </v-container>
30
- <v-divider class="my-4 primary"></v-divider>
31
- <v-container class="pa-0">
32
- <p>
3
+ <v-container class="pa-0">
4
+ <v-text-field
5
+ ref="title"
6
+ v-model="block.metadata.config.title"
7
+ :rules="validation.shortInputRules"
8
+ outlined
9
+ :counter="50"
10
+ :autofocus="true"
11
+ :label="
12
+ $t(
13
+ 'windward.games.components.settings.bucket_game.form.title'
14
+ )
15
+ "
16
+ :disabled="render"
17
+ ></v-text-field>
18
+ <v-textarea
19
+ v-model="block.metadata.config.instructions"
20
+ :counter="255"
21
+ :rules="validation.instructionRule"
22
+ outlined
23
+ auto-grow
24
+ :label="
25
+ $t(
26
+ 'windward.games.components.settings.bucket_game.form.instructions'
27
+ )
28
+ "
29
+ :disabled="render"
30
+ ></v-textarea>
31
+ </v-container>
32
+ <v-divider class="my-4 primary"></v-divider>
33
+ <v-container class="pa-0">
34
+ <p>
35
+ {{
36
+ $t('windward.games.components.settings.seven_strikes.items')
37
+ }}
38
+ </p>
39
+ <SortableExpansionPanel
40
+ v-model="block.metadata.config.words"
41
+ v-bind:currentPanel.sync="block.metadata.config.currentWord"
42
+ :disabled="render"
43
+ @click:close="onDelete($event)"
44
+ >
45
+ <template #header="{ item, index }">
33
46
  {{
34
- $t(
35
- 'windward.games.components.settings.seven_strikes.items'
36
- )
47
+ item.value
48
+ ? block.metadata.config.words[index].value
49
+ : $t(
50
+ 'windward.games.components.settings.bucket_game.form.enter_text'
51
+ )
37
52
  }}
38
- </p>
39
- <SortableExpansionPanel
40
- v-model="block.metadata.config.words"
41
- v-bind:currentPanel.sync="block.metadata.config.currentWord"
53
+ </template>
54
+ <template #body="{ item, index }">
55
+ <v-container>
56
+ <v-flex xs12>
57
+ <p class="p-label">
58
+ {{
59
+ $t(
60
+ 'windward.games.components.settings.seven_strikes.word'
61
+ )
62
+ }}
63
+ </p>
64
+ <v-textarea
65
+ v-model="
66
+ block.metadata.config.words[index].value
67
+ "
68
+ :rules="validation.shortInputRules"
69
+ :counter="50"
70
+ outlined
71
+ :autofocus="true"
72
+ :disabled="render"
73
+ ></v-textarea>
74
+ <p class="p-label">
75
+ {{
76
+ $t(
77
+ 'windward.games.components.settings.seven_strikes.hint'
78
+ )
79
+ }}
80
+ </p>
81
+ <v-textarea
82
+ v-model="
83
+ block.metadata.config.words[index].hint
84
+ "
85
+ :rules="validation.clueRule"
86
+ :counter="155"
87
+ outlined
88
+ class="pt-4"
89
+ :disabled="render"
90
+ ></v-textarea>
91
+ </v-flex>
92
+ </v-container>
93
+ </template>
94
+ </SortableExpansionPanel>
95
+ </v-container>
96
+ <v-container class="pa-0">
97
+ <v-row justify="center" class="my-4">
98
+ <v-btn
99
+ color="primary"
100
+ elevation="0"
42
101
  :disabled="render"
43
- @click:close="onDelete($event)"
102
+ @click="onAddElement"
44
103
  >
45
- <template #header="{ item, index }">
46
- {{
47
- item.value
48
- ? block.metadata.config.words[index].value
49
- : $t(
50
- 'windward.games.components.settings.bucket_game.form.enter_text'
51
- )
52
- }}
53
- </template>
54
- <template #body="{ item, index }">
55
- <v-container>
56
- <v-flex xs12>
57
- <p class="p-label">
58
- {{
59
- $t(
60
- 'windward.games.components.settings.seven_strikes.word'
61
- )
62
- }}
63
- </p>
64
- <v-textarea
65
- v-model="
66
- block.metadata.config.words[index].value
67
- "
68
- outlined
69
- :autofocus="true"
70
- :disabled="render"
71
- ></v-textarea>
72
- <p class="p-label">
73
- {{
74
- $t(
75
- 'windward.games.components.settings.seven_strikes.hint'
76
- )
77
- }}
78
- </p>
79
- <v-textarea
80
- v-model="
81
- block.metadata.config.words[index].hint
82
- "
83
- outlined
84
- class="pt-4"
85
- :disabled="render"
86
- ></v-textarea>
87
- </v-flex>
88
- </v-container>
89
- </template>
90
- </SortableExpansionPanel>
91
- </v-container>
92
- <v-container class="pa-0">
93
- <v-row justify="center" class="my-4">
94
- <v-btn
95
- color="primary"
96
- elevation="0"
97
- :disabled="render"
98
- @click="onAddElement"
99
- >
100
- <v-icon>mdi-plus</v-icon>
101
- {{
102
- $t(
103
- 'windward.games.components.content.blocks.sorting_game.add_element'
104
- )
105
- }}
106
- </v-btn>
107
- </v-row>
108
- </v-container>
109
- <v-row class="mt-3">
110
- <v-textarea
111
- ref="title"
112
- v-model="block.metadata.config.feedback_correct"
113
- outlined
114
- auto-grow
115
- :counter="50"
116
- :label="
117
- $t(
118
- 'windward.games.components.settings.word_jumble.feedback_correct'
119
- )
120
- "
121
- :disabled="render"
122
- ></v-textarea>
123
- <v-textarea
124
- v-model="block.metadata.config.feedback_incorrect"
125
- outlined
126
- auto-grow
127
- :label="
104
+ <v-icon>mdi-plus</v-icon>
105
+ {{
128
106
  $t(
129
- 'windward.games.components.settings.word_jumble.feedback_incorrect'
107
+ 'windward.games.components.content.blocks.sorting_game.add_element'
130
108
  )
131
- "
132
- :disabled="render"
133
- ></v-textarea>
109
+ }}
110
+ </v-btn>
134
111
  </v-row>
135
- </v-form>
112
+ </v-container>
113
+ <v-row class="mt-3">
114
+ <v-textarea
115
+ ref="title"
116
+ v-model="block.metadata.config.feedback_correct"
117
+ outlined
118
+ auto-grow
119
+ :label="
120
+ $t(
121
+ 'windward.games.components.settings.word_jumble.feedback_correct'
122
+ )
123
+ "
124
+ :disabled="render"
125
+ ></v-textarea>
126
+ <v-textarea
127
+ v-model="block.metadata.config.feedback_incorrect"
128
+ outlined
129
+ auto-grow
130
+ :label="
131
+ $t(
132
+ 'windward.games.components.settings.word_jumble.feedback_incorrect'
133
+ )
134
+ "
135
+ :disabled="render"
136
+ ></v-textarea>
137
+ </v-row>
136
138
  </div>
137
139
  </template>
138
140
 
@@ -142,6 +144,7 @@ import draggable from 'vuedraggable'
142
144
  import BaseContentSettings from '~/components/Content/Settings/BaseContentSettings.js'
143
145
  import CrudTable from '../content/CrudTable.vue'
144
146
  import SortableExpansionPanel from '~/components/Core/SortableExpansionPanel.vue'
147
+ import Uuid from '~/helpers/Uuid'
145
148
 
146
149
  export default {
147
150
  name: 'SevenStrikesSettingsManager',
@@ -165,20 +168,19 @@ export default {
165
168
  'windward.games.components.settings.seven_strikes.title'
166
169
  )
167
170
  }
168
- if (_.isEmpty(this.block.metadata.config.instructions)) {
171
+ if (
172
+ _.isEmpty(this.block.metadata.config.instructions) && this.block.id &&
173
+ !Uuid.test(this.block.id)
174
+ ) {
169
175
  this.block.metadata.config.instructions = this.$t(
170
176
  'windward.games.components.settings.seven_strikes.instructions'
171
177
  )
172
178
  }
173
179
  if (_.isEmpty(this.block.metadata.config.feedback_correct)) {
174
- this.block.metadata.config.feedback_correct = this.$t(
175
- 'windward.games.components.settings.bucket_game.form.feedback.correct_default'
176
- )
180
+ this.block.metadata.config.feedback_correct = ''
177
181
  }
178
182
  if (_.isEmpty(this.block.metadata.config.feedback_incorrect)) {
179
- this.block.metadata.config.feedback_incorrect = this.$t(
180
- 'windward.games.components.settings.bucket_game.form.feedback.incorrect_default'
181
- )
183
+ this.block.metadata.config.feedback_incorrect = ''
182
184
  }
183
185
  if (_.isEmpty(this.block.metadata.config.words)) {
184
186
  this.block.metadata.config.words = []
@@ -195,6 +197,44 @@ export default {
195
197
  return {
196
198
  valid: true,
197
199
  loading: false,
200
+ validation: {
201
+ shortInputRules: [
202
+ (v) => {
203
+ if (v && v.length >= 50) {
204
+ return this.$t(
205
+ 'windward.games.shared.settings.errors.input_limitations',
206
+ [50]
207
+ )
208
+ } else {
209
+ return true
210
+ }
211
+ },
212
+ ],
213
+ instructionRule: [
214
+ (v) => {
215
+ if (v && v.length >= 255) {
216
+ return this.$t(
217
+ 'windward.games.shared.settings.errors.input_limitations',
218
+ [255]
219
+ )
220
+ } else {
221
+ return true
222
+ }
223
+ },
224
+ ],
225
+ clueRule: [
226
+ (v) => {
227
+ if (v && v.length >= 155) {
228
+ return this.$t(
229
+ 'windward.games.shared.settings.errors.input_limitations',
230
+ [155]
231
+ )
232
+ } else {
233
+ return true
234
+ }
235
+ },
236
+ ],
237
+ },
198
238
  }
199
239
  },
200
240
  methods: {