@windward/integrations 0.9.0 → 0.11.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/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ### Release [0.11.0] created - 2025-03-11
4
+
5
+
6
+ ### Hotfix [0.10.1] created - 2025-03-04
7
+
8
+
9
+ ### Release [0.10.0] created - 2025-01-03
10
+
11
+
3
12
  ## Release [0.7.0] - 2024-08-29
4
13
 
5
14
  * Version bump to 0.7.0
@@ -230,6 +230,9 @@ export default {
230
230
  if (_.isEmpty(this.block.metadata.config.instructions)) {
231
231
  this.block.metadata.config.instructions = ''
232
232
  }
233
+ if (_.isEmpty(this.block.metadata.config.launch_type)) {
234
+ this.block.metadata.config.launch_type = 'new_window'
235
+ }
233
236
  },
234
237
  mounted() {
235
238
  if (
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div>
3
- <v-expansion-panels v-model="panel">
3
+ <v-expansion-panels flat accordion>
4
4
  <v-expansion-panel>
5
5
  <v-expansion-panel-header>
6
6
  {{
@@ -37,9 +37,7 @@ export default {
37
37
  name: 'ManageLti1p1Driver',
38
38
  components: { ManageProviders, ManageConsumers },
39
39
  data() {
40
- return {
41
- panel: 0,
42
- }
40
+ return {}
43
41
  },
44
42
  }
45
43
  </script>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div>
3
- <v-expansion-panels v-model="panel">
3
+ <v-expansion-panels flat accordion>
4
4
  <v-expansion-panel>
5
5
  <v-expansion-panel-header>
6
6
  {{
@@ -37,9 +37,7 @@ export default {
37
37
  name: 'ManageLti1p3Driver',
38
38
  components: { ManageProviders, ManageConsumers },
39
39
  data() {
40
- return {
41
- panel: 0,
42
- }
40
+ return {}
43
41
  },
44
42
  }
45
43
  </script>
@@ -1,14 +1,15 @@
1
1
  <template>
2
2
  <div>
3
3
  <v-list-item
4
- v-for="importVendor in enabledFileImports"
5
- :key="importVendor.product_code"
6
- @click="onClickImport(importVendor)"
4
+ v-for="vendor in vendors"
5
+ :key="vendor.product_code"
6
+ :disabled="!vendor.enabled"
7
+ @click="onClickImport(vendor)"
7
8
  >
8
9
  <v-list-item-icon>
9
- <v-icon>{{ importVendor.icon }}</v-icon>
10
+ <v-icon>{{ vendor.icon }}</v-icon>
10
11
  </v-list-item-icon>
11
- <v-list-item-title>{{ $t(importVendor.i18n) }}</v-list-item-title>
12
+ <v-list-item-title>{{ $t(vendor.i18n) }}</v-list-item-title>
12
13
  </v-list-item>
13
14
 
14
15
  <DialogBox
@@ -22,7 +23,7 @@
22
23
  <template #form="{ on, attrs }">
23
24
  <component
24
25
  :is="activeVendor.template"
25
- v-if="activeVendor"
26
+ v-if="activeVendor && activeVendor.organization_integration"
26
27
  :organization-integration="
27
28
  activeVendor.organization_integration
28
29
  "
@@ -38,8 +39,8 @@
38
39
  <script>
39
40
  import _ from 'lodash'
40
41
  import { mapGetters } from 'vuex'
41
- import Organization from '../../models/Organization'
42
42
  import DialogBox from '~/components/Core/DialogBox.vue'
43
+ import Organization from '../../models/Organization'
43
44
 
44
45
  export default {
45
46
  name: 'FileImportMenu',
@@ -77,26 +78,30 @@ export default {
77
78
  ...mapGetters({
78
79
  organization: 'organization/get',
79
80
  }),
80
- enabledFileImports() {
81
- const enabled = []
81
+ vendors() {
82
82
  // Get only the vendors that are defined to be displayed as a fileImport vendor from plugin.js
83
- const available = _.get(this.metadata, 'vendors', [])
83
+ const vendors = _.cloneDeep(_.get(this.metadata, 'vendors', []))
84
84
 
85
- // Loop over all the orgIntegrations that we've confirmed are enabled
86
- this.organizationIntegrations.forEach((orgInt) => {
87
- const productCode = _.get(orgInt, 'vendor.product_code')
88
- const found = available.find((c) => {
89
- return c.product_code === productCode && !!c.template
85
+ for (const vendorIndex in vendors) {
86
+ const productCode = vendors[vendorIndex].product_code
87
+ const found = this.organizationIntegrations.find((orgInt) => {
88
+ return (
89
+ _.get(orgInt, 'vendor.product_code') === productCode &&
90
+ !!vendors[vendorIndex].template
91
+ )
90
92
  })
91
93
 
92
94
  if (found) {
93
95
  // Set the organization integration so we can reference the api later
94
- found.organization_integration = orgInt
95
- enabled.push(found)
96
+ vendors[vendorIndex].organization_integration = found
96
97
  }
97
- })
98
98
 
99
- return enabled
99
+ vendors[vendorIndex].enabled =
100
+ vendors[vendorIndex].enabled &&
101
+ _.get(found, 'enabled', false)
102
+ }
103
+
104
+ return vendors
100
105
  },
101
106
  },
102
107
  mounted() {},
@@ -171,7 +171,12 @@ export default {
171
171
  }),
172
172
  },
173
173
  watch: {},
174
- beforeMount() {},
174
+ beforeMount() {
175
+ // Default the launch type to new window if undefined
176
+ if (_.isEmpty(this.block.metadata.config.launch_type)) {
177
+ this.block.metadata.config.launch_type = 'new_window'
178
+ }
179
+ },
175
180
  mounted() {},
176
181
  methods: {},
177
182
  }
@@ -19,7 +19,7 @@
19
19
  }}
20
20
  </v-tab>
21
21
 
22
- <v-tab>
22
+ <v-tab v-if="ltiReady">
23
23
  {{
24
24
  $t(
25
25
  'windward.integrations.pages.course.external_integration.scorm_1p2'
@@ -29,10 +29,11 @@
29
29
  </v-tabs>
30
30
 
31
31
  <v-tabs-items v-model="tab">
32
- <v-tab-item> <ManageLti1p1></ManageLti1p1> </v-tab-item>
32
+ <v-tab-item>
33
+ <ManageLti1p1></ManageLti1p1>
34
+ </v-tab-item>
33
35
  <v-tab-item>
34
36
  <ManageLti1p3 />
35
- <!-- <p class="ma-5">LTI 1.3 Not yet implemented</p>-->
36
37
  </v-tab-item>
37
38
  <v-tab-item>
38
39
  <p class="ma-5">SCORM 1.2 Not yet implemented</p>
@@ -50,6 +51,7 @@ export default {
50
51
  data() {
51
52
  return {
52
53
  tab: 0,
54
+ ltiReady: false,
53
55
  }
54
56
  },
55
57
  }
@@ -5,8 +5,10 @@ export default {
5
5
  driver: { lti1p1, lti1p3 },
6
6
  provider_target: providerTarget,
7
7
 
8
- provider_panel_title: 'Provider (Students incoming to Windward)',
9
- consumer_panel_title: 'Consumer (Students outgoing from Windward)',
8
+ provider_panel_title:
9
+ 'Provider (users incoming to LearningEdge from another system)',
10
+ consumer_panel_title:
11
+ 'Consumer (users outgoing from LearningEdge to another system)',
10
12
 
11
13
  target: 'Target',
12
14
  target_url: 'Target Url',
@@ -1,6 +1,7 @@
1
1
  import contentBlocks from './content_blocks'
2
2
  import settings from './settings'
3
3
  import menu from './menu'
4
+ import notification from './notification'
4
5
  import permission from './permission'
5
6
  import file from './file'
6
7
  import error from './error'
@@ -9,6 +10,7 @@ export default {
9
10
  content_blocks: contentBlocks,
10
11
  settings,
11
12
  menu,
13
+ notification,
12
14
  permission,
13
15
  file,
14
16
  error,
@@ -0,0 +1,14 @@
1
+ export default {
2
+ event: {
3
+ type_title: {
4
+ 'windward-integrations-import-complete':
5
+ '3rd Party Import Complete',
6
+ 'windward-integrations-import-fail': '3rd Party Import Failed',
7
+ },
8
+
9
+ type_description: {
10
+ 'windward-core-ask-the-expert': '3rd Party Import Complete',
11
+ 'windward-core-contact-support': '3rd Party Import Failed',
12
+ },
13
+ },
14
+ }
@@ -5,8 +5,10 @@ export default {
5
5
  driver: { lti1p1, lti1p3 },
6
6
  provider_target: providerTarget,
7
7
 
8
- provider_panel_title: 'Proveedor (Estudiantes que llegan a Windward)',
9
- consumer_panel_title: 'Consumidor (Estudiantes que salen de Barlovento)',
8
+ provider_panel_title:
9
+ 'Proveedor (usuarios que ingresan a LearningEdge desde otro sistema)',
10
+ consumer_panel_title:
11
+ 'Consumidor (usuarios que salen de LearningEdge a otro sistema)',
10
12
 
11
13
  target: 'Objetivo',
12
14
  target_url: 'URL de destino',
@@ -1,6 +1,7 @@
1
1
  import contentBlocks from './content_blocks'
2
2
  import settings from './settings'
3
3
  import menu from './menu'
4
+ import notification from './notification'
4
5
  import permission from './permission'
5
6
  import file from './file'
6
7
  import error from './error'
@@ -9,6 +10,7 @@ export default {
9
10
  content_blocks: contentBlocks,
10
11
  settings,
11
12
  menu,
13
+ notification,
12
14
  permission,
13
15
  file,
14
16
  error,
@@ -0,0 +1,16 @@
1
+ export default {
2
+ event: {
3
+ type_title: {
4
+ 'windward-integrations-import-complete':
5
+ 'Importación de terceros completa',
6
+ 'windward-integrations-import-fail':
7
+ 'Error en la importación de terceros',
8
+ },
9
+
10
+ type_description: {
11
+ 'windward-core-ask-the-expert': 'Importación de terceros completa',
12
+ 'windward-core-contact-support':
13
+ 'Error en la importación de terceros',
14
+ },
15
+ },
16
+ }
@@ -5,8 +5,10 @@ export default {
5
5
  driver: { lti1p1, lti1p3 },
6
6
  provider_target: providerTarget,
7
7
 
8
- provider_panel_title: 'Provider (studenter som kommer till Windward)',
9
- consumer_panel_title: 'Consumer (Students outgoing from Windward)',
8
+ provider_panel_title:
9
+ 'Leverantör (användare som kommer till LearningEdge från ett annat system)',
10
+ consumer_panel_title:
11
+ 'Konsument (användare som går från LearningEdge till ett annat system)',
10
12
 
11
13
  target: 'Mål',
12
14
  target_url: 'Måladress',
@@ -1,6 +1,7 @@
1
1
  import contentBlocks from './content_blocks'
2
2
  import settings from './settings'
3
3
  import menu from './menu'
4
+ import notification from './notification'
4
5
  import permission from './permission'
5
6
  import file from './file'
6
7
  import error from './error'
@@ -9,6 +10,7 @@ export default {
9
10
  content_blocks: contentBlocks,
10
11
  settings,
11
12
  menu,
13
+ notification,
12
14
  permission,
13
15
  file,
14
16
  error,
@@ -0,0 +1,15 @@
1
+ export default {
2
+ event: {
3
+ type_title: {
4
+ 'windward-integrations-import-complete':
5
+ 'Tredjepartsimport slutförd',
6
+ 'windward-integrations-import-fail':
7
+ 'Tredjepartsimport misslyckades',
8
+ },
9
+
10
+ type_description: {
11
+ 'windward-core-ask-the-expert': 'Tredje parts import klar',
12
+ 'windward-core-contact-support': 'Tredjepartsimport misslyckades',
13
+ },
14
+ },
15
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windward/integrations",
3
- "version": "0.9.0",
3
+ "version": "0.11.0",
4
4
  "description": "Windward UI Plugin Integrations for 3rd Party Systems",
5
5
  "main": "plugin.js",
6
6
  "scripts": {
@@ -17,7 +17,7 @@
17
17
  </v-tabs>
18
18
  <v-tabs-items v-model="tab">
19
19
  <v-tab-item>
20
- <h2>
20
+ <h2 tabindex="0">
21
21
  {{ $t('windward.integrations.pages.import_course.title') }}
22
22
  </h2>
23
23
 
@@ -144,7 +144,7 @@
144
144
  </div>
145
145
  </v-tab-item>
146
146
  <v-tab-item>
147
- <h2>
147
+ <h2 tabindex="0">
148
148
  {{
149
149
  $t(
150
150
  'windward.integrations.components.integration.job.recent_jobs_title'
@@ -4,7 +4,7 @@
4
4
  <v-row justify="center" align="center">
5
5
  <v-col cols="12">
6
6
  <div class="d-flex mb-5">
7
- <h2 class="mr-auto flex-grow-1">
7
+ <h2 class="mr-auto flex-grow-1" tabindex="0">
8
8
  {{
9
9
  $t(
10
10
  'windward.integrations.components.navigation.integrations.title'
package/plugin.js CHANGED
@@ -20,6 +20,7 @@ import CourseJobLog from './components/Navigation/Items/CourseJobLog.vue'
20
20
 
21
21
  export default {
22
22
  name: 'windward.integrations.name',
23
+ version: null,
23
24
  hooks: {
24
25
  beforeContent: (body) => {
25
26
  return body
@@ -245,21 +246,21 @@ export default {
245
246
  i18n: 'windward.integrations.shared.file.import_resourcespace',
246
247
  icon: 'mdi-cube',
247
248
  product_code: 'resourcespace',
248
- disabled: false,
249
+ enabled: true,
249
250
  },
250
251
  {
251
252
  template: FileImportGoogleDrive,
252
253
  i18n: 'windward.integrations.shared.file.import_google_drive',
253
254
  icon: 'mdi-google-drive',
254
255
  product_code: 'google_drive',
255
- disabled: true,
256
+ enabled: false,
256
257
  },
257
258
  {
258
259
  template: FileImportDropbox,
259
260
  i18n: 'windward.integrations.shared.file.import_dropbox',
260
261
  icon: 'mdi-dropbox',
261
262
  product_code: 'dropbox',
262
- disabled: true,
263
+ enabled: false,
263
264
  },
264
265
  ],
265
266
  },