@windward/integrations 0.2.0 → 0.2.1
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/ExternalIntegration/Driver/Lti1p1/ManageConsumers.vue +43 -24
- package/components/ExternalIntegration/Driver/Lti1p1/ManageProvider.vue +4 -4
- package/components/ExternalIntegration/Driver/Lti1p1/ManageProviders.vue +47 -23
- package/components/ExternalIntegration/Driver/Lti1p3/ManageConsumers.vue +66 -43
- package/components/ExternalIntegration/Driver/Lti1p3/ManageProviders.vue +43 -23
- package/components/ExternalIntegration/ProviderTargetPicker.vue +2 -2
- package/helpers/IntegrationHelper.ts +2 -2
- package/i18n/en-US/components/external_integration/driver/lti1p1.ts +3 -0
- package/i18n/es-ES/components/external_integration/driver/lti1p1.ts +3 -0
- package/i18n/sv-SE/components/external_integration/driver/lti1p1.ts +3 -0
- package/package.json +1 -1
|
@@ -44,33 +44,51 @@
|
|
|
44
44
|
{{ $d(new Date(item.created_at), 'long') }}
|
|
45
45
|
</template>
|
|
46
46
|
<template #[`item.actions`]="{ index, item }">
|
|
47
|
-
<
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
47
|
+
<SpeedDial
|
|
48
|
+
direction="left"
|
|
49
|
+
color="primary"
|
|
50
|
+
transition="slide-x-reverse-transition"
|
|
51
|
+
>
|
|
52
|
+
<v-btn
|
|
53
|
+
color="error"
|
|
54
|
+
outlined
|
|
55
|
+
class="outlined"
|
|
56
|
+
@click="onConfirmDelete(item)"
|
|
57
|
+
>
|
|
58
|
+
{{ $t('shared.forms.delete') }}
|
|
55
59
|
<span class="sr-only">{{
|
|
60
|
+
$t('shared.forms.delete')
|
|
61
|
+
}}</span>
|
|
62
|
+
</v-btn>
|
|
63
|
+
<DialogBox
|
|
64
|
+
color="primary"
|
|
65
|
+
outlined
|
|
66
|
+
:class-prop="'outlined'"
|
|
67
|
+
action-save
|
|
68
|
+
@click:save="onSaved"
|
|
69
|
+
>
|
|
70
|
+
<template #title>{{
|
|
56
71
|
$t(
|
|
57
72
|
'windward.integrations.components.external_integration.driver.lti1p1.edit'
|
|
58
73
|
)
|
|
59
|
-
}}</
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
}}</template>
|
|
75
|
+
<template #trigger>
|
|
76
|
+
{{ $t('shared.forms.edit') }}
|
|
77
|
+
<span class="sr-only">{{
|
|
78
|
+
$t(
|
|
79
|
+
'windward.integrations.components.external_integration.driver.lti1p1.edit'
|
|
80
|
+
)
|
|
81
|
+
}}</span>
|
|
82
|
+
</template>
|
|
83
|
+
<template #form="{ on, attrs }"
|
|
84
|
+
><ManageConsumer
|
|
85
|
+
v-model="consumers[index]"
|
|
86
|
+
v-bind="attrs"
|
|
87
|
+
v-on="on"
|
|
88
|
+
></ManageConsumer
|
|
89
|
+
></template>
|
|
90
|
+
</DialogBox>
|
|
91
|
+
</SpeedDial>
|
|
74
92
|
</template>
|
|
75
93
|
</v-data-table>
|
|
76
94
|
</div>
|
|
@@ -84,10 +102,11 @@ import ManageConsumer from './ManageConsumer.vue'
|
|
|
84
102
|
import Course from '~/models/Course'
|
|
85
103
|
import Organization from '~/models/Organization'
|
|
86
104
|
import DialogBox from '~/components/DialogBox.vue'
|
|
105
|
+
import SpeedDial from '~/components/SpeedDial.vue'
|
|
87
106
|
|
|
88
107
|
export default {
|
|
89
108
|
name: 'ManageLti1p1ConsumersDriver',
|
|
90
|
-
components: { DialogBox, ManageConsumer },
|
|
109
|
+
components: { DialogBox, ManageConsumer, SpeedDial },
|
|
91
110
|
data() {
|
|
92
111
|
return {
|
|
93
112
|
consumers: [],
|
|
@@ -52,12 +52,12 @@
|
|
|
52
52
|
"
|
|
53
53
|
:label="
|
|
54
54
|
$t(
|
|
55
|
-
'windward.integrations.components.external_integration.driver.lti1p1.
|
|
55
|
+
'windward.integrations.components.external_integration.driver.lti1p1.key_auto'
|
|
56
56
|
)
|
|
57
57
|
"
|
|
58
58
|
:hint="
|
|
59
59
|
$t(
|
|
60
|
-
'windward.integrations.components.external_integration.driver.lti1p1.
|
|
60
|
+
'windward.integrations.components.external_integration.driver.lti1p1.key_auto'
|
|
61
61
|
)
|
|
62
62
|
"
|
|
63
63
|
></v-text-field>
|
|
@@ -72,12 +72,12 @@
|
|
|
72
72
|
"
|
|
73
73
|
:label="
|
|
74
74
|
$t(
|
|
75
|
-
'windward.integrations.components.external_integration.driver.lti1p1.
|
|
75
|
+
'windward.integrations.components.external_integration.driver.lti1p1.secret_auto'
|
|
76
76
|
)
|
|
77
77
|
"
|
|
78
78
|
:hint="
|
|
79
79
|
$t(
|
|
80
|
-
'windward.integrations.components.external_integration.driver.lti1p1.
|
|
80
|
+
'windward.integrations.components.external_integration.driver.lti1p1.secret_auto'
|
|
81
81
|
)
|
|
82
82
|
"
|
|
83
83
|
>
|
|
@@ -63,33 +63,55 @@
|
|
|
63
63
|
{{ $d(new Date(item.created_at), 'short') }}
|
|
64
64
|
</template>
|
|
65
65
|
<template #[`item.actions`]="{ index, item }">
|
|
66
|
-
<
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
<SpeedDial
|
|
67
|
+
direction="left"
|
|
68
|
+
color="primary"
|
|
69
|
+
transition="slide-x-reverse-transition"
|
|
70
|
+
>
|
|
71
|
+
<v-btn
|
|
72
|
+
color="error"
|
|
73
|
+
outlined
|
|
74
|
+
class="outlined"
|
|
75
|
+
@click="onConfirmDelete(item)"
|
|
76
|
+
>
|
|
77
|
+
{{ $t('shared.forms.delete') }}
|
|
74
78
|
<span class="sr-only">{{
|
|
79
|
+
$t('shared.forms.delete')
|
|
80
|
+
}}</span>
|
|
81
|
+
</v-btn>
|
|
82
|
+
<DialogBox
|
|
83
|
+
color="primary"
|
|
84
|
+
outlined
|
|
85
|
+
:class-prop="'outlined'"
|
|
86
|
+
action-save
|
|
87
|
+
@click:save="onSaved"
|
|
88
|
+
>
|
|
89
|
+
<template #title>{{
|
|
75
90
|
$t(
|
|
76
91
|
'windward.integrations.components.external_integration.driver.lti1p1.edit'
|
|
77
92
|
)
|
|
78
|
-
}}</
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
}}</template>
|
|
94
|
+
<template #trigger>
|
|
95
|
+
{{
|
|
96
|
+
$t(
|
|
97
|
+
'windward.integrations.components.external_integration.driver.lti1p1.edit_display'
|
|
98
|
+
)
|
|
99
|
+
}}
|
|
100
|
+
<span class="sr-only">{{
|
|
101
|
+
$t(
|
|
102
|
+
'windward.integrations.components.external_integration.driver.lti1p1.edit'
|
|
103
|
+
)
|
|
104
|
+
}}</span>
|
|
105
|
+
</template>
|
|
106
|
+
<template #form="{ on, attrs }"
|
|
107
|
+
><ManageProvider
|
|
108
|
+
v-model="providers[index]"
|
|
109
|
+
v-bind="attrs"
|
|
110
|
+
v-on="on"
|
|
111
|
+
></ManageProvider
|
|
112
|
+
></template>
|
|
113
|
+
</DialogBox>
|
|
114
|
+
</SpeedDial>
|
|
93
115
|
</template>
|
|
94
116
|
</v-data-table>
|
|
95
117
|
</div>
|
|
@@ -105,6 +127,7 @@ import ManageProvider from './ManageProvider.vue'
|
|
|
105
127
|
import DialogBox from '~/components/DialogBox.vue'
|
|
106
128
|
import Organization from '~/models/Organization'
|
|
107
129
|
import Course from '~/models/Course'
|
|
130
|
+
import SpeedDial from '~/components/SpeedDial.vue'
|
|
108
131
|
|
|
109
132
|
export default {
|
|
110
133
|
name: 'ManageLti1p1ProvidersDriver',
|
|
@@ -113,6 +136,7 @@ export default {
|
|
|
113
136
|
DialogBox,
|
|
114
137
|
ManageProvider,
|
|
115
138
|
ProviderTargetViewer,
|
|
139
|
+
SpeedDial,
|
|
116
140
|
},
|
|
117
141
|
data() {
|
|
118
142
|
return {
|
|
@@ -44,55 +44,77 @@
|
|
|
44
44
|
{{ $d(new Date(item.created_at), 'long') }}
|
|
45
45
|
</template>
|
|
46
46
|
<template #[`item.actions`]="{ index, item }">
|
|
47
|
-
<
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
47
|
+
<SpeedDial
|
|
48
|
+
direction="left"
|
|
49
|
+
color="primary"
|
|
50
|
+
transition="slide-x-reverse-transition"
|
|
51
|
+
>
|
|
52
|
+
<v-btn
|
|
53
|
+
color="error"
|
|
54
|
+
outlined
|
|
55
|
+
class="outlined"
|
|
56
|
+
@click="onConfirmDelete(item)"
|
|
57
|
+
>
|
|
58
|
+
{{ $t('shared.forms.delete') }}
|
|
55
59
|
<span class="sr-only">{{
|
|
60
|
+
$t('shared.forms.delete')
|
|
61
|
+
}}</span>
|
|
62
|
+
</v-btn>
|
|
63
|
+
<DialogBox
|
|
64
|
+
color="primary"
|
|
65
|
+
outlined
|
|
66
|
+
:class-prop="'outlined'"
|
|
67
|
+
>
|
|
68
|
+
<template #title>{{
|
|
56
69
|
$t(
|
|
57
70
|
'windward.integrations.components.external_integration.driver.lti1p3.view'
|
|
58
71
|
)
|
|
59
|
-
}}</
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
}}</template>
|
|
73
|
+
<template #trigger>
|
|
74
|
+
<v-icon small>mdi-eye-outline</v-icon>
|
|
75
|
+
<span class="sr-only">{{
|
|
76
|
+
$t(
|
|
77
|
+
'windward.integrations.components.external_integration.driver.lti1p3.view'
|
|
78
|
+
)
|
|
79
|
+
}}</span>
|
|
80
|
+
</template>
|
|
81
|
+
<template #form="{ on, attrs }"
|
|
82
|
+
><ViewConsumer
|
|
83
|
+
v-model="consumers[index]"
|
|
84
|
+
v-bind="attrs"
|
|
85
|
+
v-on="on"
|
|
86
|
+
></ViewConsumer
|
|
87
|
+
></template>
|
|
88
|
+
</DialogBox>
|
|
89
|
+
<DialogBox
|
|
90
|
+
color="primary"
|
|
91
|
+
outlined
|
|
92
|
+
:class-prop="'outlined'"
|
|
93
|
+
action-save
|
|
94
|
+
@click:save="onSaved"
|
|
95
|
+
>
|
|
96
|
+
<template #title>{{
|
|
78
97
|
$t(
|
|
79
98
|
'windward.integrations.components.external_integration.driver.lti1p3.edit'
|
|
80
99
|
)
|
|
81
|
-
}}</
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
100
|
+
}}</template>
|
|
101
|
+
<template #trigger>
|
|
102
|
+
<v-icon small>mdi-pencil</v-icon>
|
|
103
|
+
<span class="sr-only">{{
|
|
104
|
+
$t(
|
|
105
|
+
'windward.integrations.components.external_integration.driver.lti1p3.edit'
|
|
106
|
+
)
|
|
107
|
+
}}</span>
|
|
108
|
+
</template>
|
|
109
|
+
<template #form="{ on, attrs }"
|
|
110
|
+
><ManageConsumer
|
|
111
|
+
v-model="consumers[index]"
|
|
112
|
+
v-bind="attrs"
|
|
113
|
+
v-on="on"
|
|
114
|
+
></ManageConsumer
|
|
115
|
+
></template>
|
|
116
|
+
</DialogBox>
|
|
117
|
+
</SpeedDial>
|
|
96
118
|
</template>
|
|
97
119
|
</v-data-table>
|
|
98
120
|
</div>
|
|
@@ -107,10 +129,11 @@ import ViewConsumer from './ViewConsumer.vue'
|
|
|
107
129
|
import Course from '~/models/Course'
|
|
108
130
|
import Organization from '~/models/Organization'
|
|
109
131
|
import DialogBox from '~/components/DialogBox.vue'
|
|
132
|
+
import SpeedDial from '~/components/SpeedDial.vue'
|
|
110
133
|
|
|
111
134
|
export default {
|
|
112
135
|
name: 'ManageLti1p1ConsumersDriver',
|
|
113
|
-
components: { DialogBox, ManageConsumer, ViewConsumer },
|
|
136
|
+
components: { DialogBox, ManageConsumer, ViewConsumer, SpeedDial },
|
|
114
137
|
data() {
|
|
115
138
|
return {
|
|
116
139
|
consumers: [],
|
|
@@ -69,33 +69,51 @@
|
|
|
69
69
|
{{ $d(new Date(item.created_at), 'short') }}
|
|
70
70
|
</template>
|
|
71
71
|
<template #[`item.actions`]="{ index, item }">
|
|
72
|
-
<
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
<SpeedDial
|
|
73
|
+
direction="left"
|
|
74
|
+
color="primary"
|
|
75
|
+
transition="slide-x-reverse-transition"
|
|
76
|
+
>
|
|
77
|
+
<v-btn
|
|
78
|
+
color="error"
|
|
79
|
+
outlined
|
|
80
|
+
class="outlined"
|
|
81
|
+
@click="onConfirmDelete(item)"
|
|
82
|
+
>
|
|
83
|
+
{{ $t('shared.forms.delete') }}
|
|
80
84
|
<span class="sr-only">{{
|
|
85
|
+
$t('shared.forms.delete')
|
|
86
|
+
}}</span>
|
|
87
|
+
</v-btn>
|
|
88
|
+
<DialogBox
|
|
89
|
+
color="primary"
|
|
90
|
+
outlined
|
|
91
|
+
:class-prop="'outlined'"
|
|
92
|
+
action-save
|
|
93
|
+
@click:save="onSaved"
|
|
94
|
+
>
|
|
95
|
+
<template #title>{{
|
|
81
96
|
$t(
|
|
82
97
|
'windward.integrations.components.external_integration.driver.lti1p3.edit'
|
|
83
98
|
)
|
|
84
|
-
}}</
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
+
}}</template>
|
|
100
|
+
<template #trigger>
|
|
101
|
+
{{ $t('shared.forms.edit') }}
|
|
102
|
+
<span class="sr-only">{{
|
|
103
|
+
$t(
|
|
104
|
+
'windward.integrations.components.external_integration.driver.lti1p3.edit'
|
|
105
|
+
)
|
|
106
|
+
}}</span>
|
|
107
|
+
</template>
|
|
108
|
+
<template #form="{ on, attrs }"
|
|
109
|
+
><ManageProvider
|
|
110
|
+
v-model="providers[index]"
|
|
111
|
+
v-bind="attrs"
|
|
112
|
+
v-on="on"
|
|
113
|
+
></ManageProvider
|
|
114
|
+
></template>
|
|
115
|
+
</DialogBox>
|
|
116
|
+
</SpeedDial>
|
|
99
117
|
</template>
|
|
100
118
|
</v-data-table>
|
|
101
119
|
</div>
|
|
@@ -111,6 +129,7 @@ import ManageProvider from './ManageProvider.vue'
|
|
|
111
129
|
import DialogBox from '~/components/DialogBox.vue'
|
|
112
130
|
import Organization from '~/models/Organization'
|
|
113
131
|
import Course from '~/models/Course'
|
|
132
|
+
import SpeedDial from '~/components/SpeedDial.vue'
|
|
114
133
|
|
|
115
134
|
export default {
|
|
116
135
|
name: 'ManageLti1p1ProvidersDriver',
|
|
@@ -119,6 +138,7 @@ export default {
|
|
|
119
138
|
DialogBox,
|
|
120
139
|
ManageProvider,
|
|
121
140
|
ProviderTargetViewer,
|
|
141
|
+
SpeedDial,
|
|
122
142
|
},
|
|
123
143
|
data() {
|
|
124
144
|
return {
|
|
@@ -144,10 +144,10 @@ export default {
|
|
|
144
144
|
targetType === 'locked_course_content' ||
|
|
145
145
|
targetType === 'locked_course_content_children')
|
|
146
146
|
) {
|
|
147
|
-
url = `/course/${this.course.id}/content/${this.selectedContent.id}`
|
|
147
|
+
url = `/course/${this.course.id}/section/{section.id}/content/${this.selectedContent.id}`
|
|
148
148
|
this.provider.course_content_id = this.selectedContent.id
|
|
149
149
|
} else if (targetType === 'course') {
|
|
150
|
-
url = `/course/${this.course.id}
|
|
150
|
+
url = `/course/${this.course.id}/section/{section.id}`
|
|
151
151
|
this.provider.course_content_id = null
|
|
152
152
|
}
|
|
153
153
|
this.provider.target = url
|
|
@@ -105,7 +105,7 @@ export default class IntegrationHelper {
|
|
|
105
105
|
return new Driver()
|
|
106
106
|
} else {
|
|
107
107
|
throw new TypeError(
|
|
108
|
-
`Could not determine
|
|
108
|
+
`Could not determine integration driver for product code '${settings.vendor.product_code}' of id '${_vendorId}'`
|
|
109
109
|
)
|
|
110
110
|
}
|
|
111
111
|
}
|
|
@@ -132,7 +132,7 @@ export default class IntegrationHelper {
|
|
|
132
132
|
return settings
|
|
133
133
|
} else {
|
|
134
134
|
throw new TypeError(
|
|
135
|
-
`Could not determine vendor driver for
|
|
135
|
+
`Could not determine vendor driver for product code '${vendorModel.product_code}' of id '${_vendorId}'`
|
|
136
136
|
)
|
|
137
137
|
}
|
|
138
138
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
key: 'Key',
|
|
3
3
|
secret: 'Secret',
|
|
4
|
+
key_auto: 'Key (Autogenerated)',
|
|
5
|
+
secret_auto: 'Secret (Autogenerated)',
|
|
4
6
|
parameter_name: 'Custom Parameter Name',
|
|
5
7
|
value: 'Value',
|
|
6
8
|
auto_key: 'Leave empty for autogenerated key',
|
|
@@ -11,4 +13,5 @@ export default {
|
|
|
11
13
|
new_secret: 'New Secret',
|
|
12
14
|
new: 'New LTI Link',
|
|
13
15
|
edit: 'Edit LTI Link',
|
|
16
|
+
edit_display: 'Edit',
|
|
14
17
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
key: 'Clave',
|
|
3
3
|
secret: 'Secreto',
|
|
4
|
+
key_auto: 'Clave (generada automáticamente)',
|
|
5
|
+
secret_auto: 'Secreto (autogenerado)',
|
|
4
6
|
parameter_name: 'Nombre de parámetro personalizado',
|
|
5
7
|
value: 'Valor',
|
|
6
8
|
auto_key: 'Dejar vacío para la clave generada automáticamente',
|
|
@@ -11,4 +13,5 @@ export default {
|
|
|
11
13
|
new_secret: 'Nuevo secreto',
|
|
12
14
|
new: 'Nuevo enlace LTI',
|
|
13
15
|
edit: 'Editar enlace LTI',
|
|
16
|
+
edit_display: 'Editar',
|
|
14
17
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
key: 'Nyckel',
|
|
3
3
|
secret: 'Secret',
|
|
4
|
+
key_auto: 'Nyckel (autogenererad)',
|
|
5
|
+
secret_auto: 'Hemlighet (autogenererad)',
|
|
4
6
|
parameter_name: 'Anpassat parameternamn',
|
|
5
7
|
value: 'Värde',
|
|
6
8
|
auto_key: 'Lämna tomt för autogenererad nyckel',
|
|
@@ -11,4 +13,5 @@ export default {
|
|
|
11
13
|
new_secret: 'Ny hemlighet',
|
|
12
14
|
new: 'Ny LTI-länk',
|
|
13
15
|
edit: 'Redigera LTI-länk',
|
|
16
|
+
edit_display: 'Redigera',
|
|
14
17
|
}
|