@windward/integrations 0.20.0 → 0.23.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 (151) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/components/Content/Blocks/ActionPanel/TransformActivity.vue +386 -0
  3. package/components/Content/Blocks/ActionPanel/TransformBlock.vue +875 -105
  4. package/components/Content/Blocks/ExternalIntegration/LtiConsumer.vue +22 -2
  5. package/components/ExternalIntegration/Driver/Lti1p1/ManageConsumer.vue +8 -2
  6. package/components/ExternalIntegration/Driver/Lti1p1/ManageProvider.vue +4 -0
  7. package/components/ExternalIntegration/Driver/Lti1p3/ManageConsumer.vue +2 -2
  8. package/components/Integration/JobTable.vue +35 -3
  9. package/components/Integration/TranslateCourse.vue +574 -0
  10. package/components/Settings/ExternalIntegration/LtiConsumerSettings.vue +45 -12
  11. package/helpers/ExternalIntegration/ScormHelper.ts +1 -1
  12. package/i18n/ar-SA/components/ai_agent/chat.ts +20 -0
  13. package/i18n/ar-SA/components/ai_agent/index.ts +5 -0
  14. package/i18n/ar-SA/components/content/blocks/action_panel/index.ts +5 -0
  15. package/i18n/ar-SA/components/content/blocks/action_panel/transform_block.ts +9 -0
  16. package/i18n/ar-SA/components/content/blocks/external_integration/index.ts +5 -0
  17. package/i18n/ar-SA/components/content/blocks/external_integration/lti_consumer.ts +17 -0
  18. package/i18n/ar-SA/components/content/blocks/index.ts +7 -0
  19. package/i18n/ar-SA/components/content/index.ts +5 -0
  20. package/i18n/ar-SA/components/external_integration/driver/lti1p1.ts +17 -0
  21. package/i18n/ar-SA/components/external_integration/driver/lti1p3.ts +25 -0
  22. package/i18n/ar-SA/components/external_integration/driver/scorm.ts +14 -0
  23. package/i18n/ar-SA/components/external_integration/index.ts +36 -0
  24. package/i18n/ar-SA/components/external_integration/provider_target.ts +9 -0
  25. package/i18n/ar-SA/components/file_import/index.ts +5 -0
  26. package/i18n/ar-SA/components/file_import/resourcespace.ts +4 -0
  27. package/i18n/ar-SA/components/index.ts +19 -0
  28. package/i18n/ar-SA/components/integration/driver.ts +67 -0
  29. package/i18n/ar-SA/components/integration/index.ts +9 -0
  30. package/i18n/ar-SA/components/integration/job.ts +25 -0
  31. package/i18n/ar-SA/components/integration/job_log.ts +24 -0
  32. package/i18n/ar-SA/components/llm/blooms.ts +15 -0
  33. package/i18n/ar-SA/components/llm/content_selector.ts +3 -0
  34. package/i18n/ar-SA/components/llm/generate_content/fake_text_stream.ts +62 -0
  35. package/i18n/ar-SA/components/llm/generate_content/generate_questions.ts +92 -0
  36. package/i18n/ar-SA/components/llm/generate_content/index.ts +8 -0
  37. package/i18n/ar-SA/components/llm/index.ts +10 -0
  38. package/i18n/ar-SA/components/navigation/index.ts +5 -0
  39. package/i18n/ar-SA/components/navigation/integrations.ts +9 -0
  40. package/i18n/ar-SA/components/settings/external_integration/index.ts +5 -0
  41. package/i18n/ar-SA/components/settings/external_integration/lti_consumer.ts +10 -0
  42. package/i18n/ar-SA/components/settings/index.ts +5 -0
  43. package/i18n/ar-SA/index.ts +16 -0
  44. package/i18n/ar-SA/modules/index.ts +5 -0
  45. package/i18n/ar-SA/pages/admin/index.ts +5 -0
  46. package/i18n/ar-SA/pages/admin/translateCourse.ts +68 -0
  47. package/i18n/ar-SA/pages/course/external_integration/index.ts +6 -0
  48. package/i18n/ar-SA/pages/course/index.ts +5 -0
  49. package/i18n/ar-SA/pages/importContent.ts +3 -0
  50. package/i18n/ar-SA/pages/importCourse.ts +13 -0
  51. package/i18n/ar-SA/pages/index.ts +15 -0
  52. package/i18n/ar-SA/pages/login/index.ts +9 -0
  53. package/i18n/ar-SA/pages/login/lti.ts +23 -0
  54. package/i18n/ar-SA/pages/login/saml.ts +7 -0
  55. package/i18n/ar-SA/pages/login/scorm.ts +28 -0
  56. package/i18n/ar-SA/pages/vendor.ts +11 -0
  57. package/i18n/ar-SA/shared/content_blocks.ts +9 -0
  58. package/i18n/ar-SA/shared/error.ts +9 -0
  59. package/i18n/ar-SA/shared/file.ts +5 -0
  60. package/i18n/ar-SA/shared/index.ts +17 -0
  61. package/i18n/ar-SA/shared/menu.ts +3 -0
  62. package/i18n/ar-SA/shared/notification.ts +14 -0
  63. package/i18n/ar-SA/shared/permission.ts +52 -0
  64. package/i18n/ar-SA/shared/settings.ts +9 -0
  65. package/i18n/en-US/components/content/blocks/action_panel/index.ts +2 -0
  66. package/i18n/en-US/components/content/blocks/action_panel/transform_activity.ts +8 -0
  67. package/i18n/en-US/components/content/blocks/action_panel/transform_block.ts +3 -1
  68. package/i18n/en-US/components/content/blocks/external_integration/lti_consumer.ts +3 -2
  69. package/i18n/en-US/components/integration/job.ts +2 -0
  70. package/i18n/en-US/components/navigation/integrations.ts +1 -0
  71. package/i18n/en-US/components/settings/external_integration/lti_consumer.ts +2 -0
  72. package/i18n/en-US/pages/admin/index.ts +5 -0
  73. package/i18n/en-US/pages/admin/translateCourse.ts +68 -0
  74. package/i18n/en-US/pages/index.ts +2 -0
  75. package/i18n/es-ES/components/content/blocks/action_panel/index.ts +2 -0
  76. package/i18n/es-ES/components/content/blocks/action_panel/transform_activity.ts +8 -0
  77. package/i18n/es-ES/components/content/blocks/action_panel/transform_block.ts +3 -1
  78. package/i18n/es-ES/components/content/blocks/external_integration/lti_consumer.ts +10 -9
  79. package/i18n/es-ES/components/integration/job.ts +2 -0
  80. package/i18n/es-ES/components/navigation/integrations.ts +1 -0
  81. package/i18n/es-ES/components/settings/external_integration/lti_consumer.ts +3 -0
  82. package/i18n/es-ES/pages/admin/index.ts +5 -0
  83. package/i18n/es-ES/pages/admin/translateCourse.ts +68 -0
  84. package/i18n/es-ES/pages/index.ts +2 -0
  85. package/i18n/fr-FR/components/ai_agent/chat.ts +20 -0
  86. package/i18n/fr-FR/components/ai_agent/index.ts +5 -0
  87. package/i18n/fr-FR/components/content/blocks/action_panel/index.ts +5 -0
  88. package/i18n/fr-FR/components/content/blocks/action_panel/transform_block.ts +9 -0
  89. package/i18n/fr-FR/components/content/blocks/external_integration/index.ts +5 -0
  90. package/i18n/fr-FR/components/content/blocks/external_integration/lti_consumer.ts +17 -0
  91. package/i18n/fr-FR/components/content/blocks/index.ts +7 -0
  92. package/i18n/fr-FR/components/content/index.ts +5 -0
  93. package/i18n/fr-FR/components/external_integration/driver/lti1p1.ts +17 -0
  94. package/i18n/fr-FR/components/external_integration/driver/lti1p3.ts +25 -0
  95. package/i18n/fr-FR/components/external_integration/driver/scorm.ts +14 -0
  96. package/i18n/fr-FR/components/external_integration/index.ts +36 -0
  97. package/i18n/fr-FR/components/external_integration/provider_target.ts +9 -0
  98. package/i18n/fr-FR/components/file_import/index.ts +5 -0
  99. package/i18n/fr-FR/components/file_import/resourcespace.ts +4 -0
  100. package/i18n/fr-FR/components/index.ts +19 -0
  101. package/i18n/fr-FR/components/integration/driver.ts +67 -0
  102. package/i18n/fr-FR/components/integration/index.ts +9 -0
  103. package/i18n/fr-FR/components/integration/job.ts +25 -0
  104. package/i18n/fr-FR/components/integration/job_log.ts +24 -0
  105. package/i18n/fr-FR/components/llm/blooms.ts +15 -0
  106. package/i18n/fr-FR/components/llm/content_selector.ts +3 -0
  107. package/i18n/fr-FR/components/llm/generate_content/fake_text_stream.ts +62 -0
  108. package/i18n/fr-FR/components/llm/generate_content/generate_questions.ts +92 -0
  109. package/i18n/fr-FR/components/llm/generate_content/index.ts +8 -0
  110. package/i18n/fr-FR/components/llm/index.ts +10 -0
  111. package/i18n/fr-FR/components/navigation/index.ts +5 -0
  112. package/i18n/fr-FR/components/navigation/integrations.ts +9 -0
  113. package/i18n/fr-FR/components/settings/external_integration/index.ts +5 -0
  114. package/i18n/fr-FR/components/settings/external_integration/lti_consumer.ts +10 -0
  115. package/i18n/fr-FR/components/settings/index.ts +5 -0
  116. package/i18n/fr-FR/index.ts +16 -0
  117. package/i18n/fr-FR/modules/index.ts +5 -0
  118. package/i18n/fr-FR/pages/admin/index.ts +5 -0
  119. package/i18n/fr-FR/pages/admin/translateCourse.ts +68 -0
  120. package/i18n/fr-FR/pages/course/external_integration/index.ts +6 -0
  121. package/i18n/fr-FR/pages/course/index.ts +5 -0
  122. package/i18n/fr-FR/pages/importContent.ts +3 -0
  123. package/i18n/fr-FR/pages/importCourse.ts +13 -0
  124. package/i18n/fr-FR/pages/index.ts +15 -0
  125. package/i18n/fr-FR/pages/login/index.ts +9 -0
  126. package/i18n/fr-FR/pages/login/lti.ts +23 -0
  127. package/i18n/fr-FR/pages/login/saml.ts +7 -0
  128. package/i18n/fr-FR/pages/login/scorm.ts +28 -0
  129. package/i18n/fr-FR/pages/vendor.ts +11 -0
  130. package/i18n/fr-FR/shared/content_blocks.ts +9 -0
  131. package/i18n/fr-FR/shared/error.ts +9 -0
  132. package/i18n/fr-FR/shared/file.ts +5 -0
  133. package/i18n/fr-FR/shared/index.ts +17 -0
  134. package/i18n/fr-FR/shared/menu.ts +3 -0
  135. package/i18n/fr-FR/shared/notification.ts +14 -0
  136. package/i18n/fr-FR/shared/permission.ts +52 -0
  137. package/i18n/fr-FR/shared/settings.ts +9 -0
  138. package/i18n/index.ts +4 -0
  139. package/i18n/sv-SE/components/content/blocks/action_panel/index.ts +2 -0
  140. package/i18n/sv-SE/components/content/blocks/action_panel/transform_activity.ts +8 -0
  141. package/i18n/sv-SE/components/content/blocks/action_panel/transform_block.ts +3 -1
  142. package/i18n/sv-SE/components/content/blocks/external_integration/lti_consumer.ts +11 -10
  143. package/i18n/sv-SE/components/integration/job.ts +6 -4
  144. package/i18n/sv-SE/components/navigation/integrations.ts +1 -0
  145. package/i18n/sv-SE/components/settings/external_integration/lti_consumer.ts +3 -0
  146. package/i18n/sv-SE/pages/admin/index.ts +5 -0
  147. package/i18n/sv-SE/pages/admin/translateCourse.ts +68 -0
  148. package/i18n/sv-SE/pages/index.ts +2 -0
  149. package/package.json +1 -1
  150. package/pages/admin/translateCourse.vue +81 -0
  151. package/plugin.js +38 -1
@@ -0,0 +1,81 @@
1
+ <template>
2
+ <div>
3
+ <v-tabs v-model="tab" class="mb-5">
4
+ <v-tabs-slider></v-tabs-slider>
5
+
6
+ <v-tab>
7
+ {{ $t('windward.integrations.pages.admin.translateCourse.tab_title') }}
8
+ </v-tab>
9
+
10
+ <v-tab>
11
+ {{ $t('windward.integrations.pages.admin.translateCourse.recent_jobs_tab_title') }}
12
+ </v-tab>
13
+ </v-tabs>
14
+ <v-tabs-items v-model="tab">
15
+ <v-tab-item>
16
+ <TranslateCourse @translation-started="onTranslationStarted" />
17
+ </v-tab-item>
18
+ <v-tab-item>
19
+ <h2 tabindex="0">
20
+ {{ $t('windward.integrations.pages.admin.translateCourse.recent_jobs_tab_title') }}
21
+ </h2>
22
+ <IntegrationJobTable
23
+ ref="integrationJobTable"
24
+ :channel="'integrations.organizations.' + organization.id"
25
+ :event="'.Windward\\Integrations\\App\\Events\\CourseTranslationProgressEvent'"
26
+ job-type="translation"
27
+ ></IntegrationJobTable>
28
+ </v-tab-item>
29
+ </v-tabs-items>
30
+ </div>
31
+ </template>
32
+
33
+ <script>
34
+ import { mapGetters } from 'vuex'
35
+ import TranslateCourse from '../../components/Integration/TranslateCourse.vue'
36
+ import IntegrationJobTable from '../../components/Integration/JobTable.vue'
37
+
38
+ export default {
39
+ name: 'PluginIntegrationsAdminTranslateCoursePage',
40
+ components: {
41
+ TranslateCourse,
42
+ IntegrationJobTable,
43
+ },
44
+ layout: 'authenticated',
45
+ meta: {
46
+ privilege: {
47
+ 'plugin.windward.integrations.course': {
48
+ writable: true,
49
+ },
50
+ },
51
+ },
52
+ data() {
53
+ return {
54
+ tab: 0,
55
+ }
56
+ },
57
+ computed: {
58
+ ...mapGetters({
59
+ organization: 'organization/get',
60
+ }),
61
+ },
62
+ watch: {
63
+ // Refresh jobs list when "Recent Translation Jobs" tab is selected
64
+ tab(newTab) {
65
+ if (newTab === 1 && this.$refs.integrationJobTable) {
66
+ this.$refs.integrationJobTable.loadJobs()
67
+ }
68
+ },
69
+ },
70
+ methods: {
71
+ onTranslationStarted() {
72
+ // Reload the jobs table when a new translation is started
73
+ if (this.$refs.integrationJobTable) {
74
+ this.$refs.integrationJobTable.loadJobs()
75
+ }
76
+ // Switch to the jobs tab to show the new job
77
+ this.tab = 1
78
+ },
79
+ },
80
+ }
81
+ </script>
package/plugin.js CHANGED
@@ -3,6 +3,7 @@ import locales from './i18n'
3
3
 
4
4
  import AdminVendorsPage from './pages/admin/vendors.vue'
5
5
  import AdminImportCoursePage from './pages/admin/importCourse.vue'
6
+ import AdminTranslateCoursePage from './pages/admin/translateCourse.vue'
6
7
  import ExternalIntegrationIndexPage from './pages/course/externalIntegration/index.vue'
7
8
  import LoginLtiErrorPage from './pages/login/lti/error.vue'
8
9
  import LoginScormErrorPage from './pages/login/scorm/error.vue'
@@ -18,6 +19,7 @@ import LtiConsumerBlockSettings from './components/Settings/ExternalIntegration/
18
19
  import ScormConsumerBlockSettings from './components/Settings/ExternalIntegration/ScormConsumerSettings'
19
20
 
20
21
  import ActionPanelTransformBlock from './components/Content/Blocks/ActionPanel/TransformBlock.vue'
22
+ import ActionPanelTransformActivity from './components/Content/Blocks/ActionPanel/TransformActivity.vue'
21
23
 
22
24
  import ManageCourseIntegrationSettings from './components/Settings/ExternalIntegration/ManageCourseIntegrationSettings'
23
25
 
@@ -124,6 +126,13 @@ export default {
124
126
  name: 'PluginIntegrationsAdminImportCoursePage',
125
127
  template: AdminImportCoursePage,
126
128
  },
129
+ {
130
+ page: 'admin-integrations',
131
+ path: '/admin/integrations/translate-course',
132
+ i18n: 'windward.integrations.components.navigation.integrations.translate_course',
133
+ name: 'PluginIntegrationsAdminTranslateCoursePage',
134
+ template: AdminTranslateCoursePage,
135
+ },
127
136
  {
128
137
  page: 'admin-integrations',
129
138
  path: '/course/:course/integrations/external',
@@ -194,6 +203,16 @@ export default {
194
203
  },
195
204
  },
196
205
  },
206
+ {
207
+ i18n: 'windward.integrations.components.navigation.integrations.translate_course',
208
+ path: '/admin/integrations/translate-course',
209
+ context: ['home'],
210
+ permissions: {
211
+ 'plugin.windward.integrations.course': {
212
+ writable: true,
213
+ },
214
+ },
215
+ },
197
216
  {
198
217
  i18n: 'windward.integrations.pages.course.external_integration.title',
199
218
  path: '/course/{course.id}/integrations/external',
@@ -318,7 +337,25 @@ export default {
318
337
  {
319
338
  tag: 'windward-integrations-action-panel-transform-block',
320
339
  template: ActionPanelTransformBlock,
321
- context: ['block.content-blocks-text'],
340
+ context: [
341
+ 'block.content-blocks-text',
342
+ 'block.core-accordion',
343
+ 'block.core-tab',
344
+ 'block.core-clickable-icons',
345
+ ],
346
+ },
347
+ {
348
+ tag: 'windward-integrations-action-panel-transform-activity',
349
+ template: ActionPanelTransformActivity,
350
+ context: [
351
+ 'block.games-flash-card',
352
+ 'block.games-matching-game',
353
+ 'block.games-bucket',
354
+ 'block.games-seven-strikes-game',
355
+ 'block.games-wordjumble-game',
356
+ 'block.games-crossword-puzzle-game',
357
+ 'block.games-multiple-choice',
358
+ ],
322
359
  },
323
360
  ],
324
361
  courseSetting: [