Skip to content

Commit bb74377

Browse files
authored
DIVE Metadata Edit from Annotator (#330)
* initial implementation of editing metadata inside annotation * add actions * remove increment/decrement * basic connection of functionality * working buttons/actions * add creation of Keys to the action editor * linting * fix: update masks cache seconds counting * update mask cache seconds calculation * package version increment * update data format documentation
1 parent fdda962 commit bb74377

18 files changed

Lines changed: 580 additions & 64 deletions

client/dive-common/components/ActionEditors/ActionEditor.vue

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,23 @@ import {
55
} from 'vue';
66
import {
77
CreateTrackAction, DIVEAction, TrackSelectAction, CreateFullFrameTrackAction,
8+
DIVEMetadataAction,
89
} from 'dive-common/use/useActions';
910
import {
1011
useAttributes, useTrackStyleManager,
1112
} from 'vue-media-annotator/provides';
1213
import TrackFilter from './TrackFilter.vue';
1314
import CreateTrackActionEditor from './CreateTrackActionEditor.vue';
1415
import CreateFullFrameTrackActionEditor from './CreateFullFrameTrackActionEditor.vue';
16+
import DiveMetadataActionVue from './DiveMetadataAction.vue';
1517
1618
export default defineComponent({
1719
name: 'ActionEditorSettings',
1820
components: {
1921
TrackFilter,
2022
CreateTrackActionEditor,
2123
CreateFullFrameTrackActionEditor,
24+
DiveMetadataActionVue,
2225
},
2326
props: {
2427
value: {
@@ -30,9 +33,9 @@ export default defineComponent({
3033
const typeStylingRef = useTrackStyleManager().typeStyling;
3134
const attributesList = useAttributes();
3235
const editingAction: Ref<DIVEAction> = ref(props.value);
33-
const addEditActionType: Ref<'TrackSelection' | 'GoToFrame' | 'CreateTrackAction' | 'CreateFullFrameTrackAction'> = ref(props.value.action.type);
36+
const addEditActionType: Ref<'TrackSelection' | 'GoToFrame' | 'CreateTrackAction' | 'CreateFullFrameTrackAction' | 'Metadata'> = ref(props.value.action.type);
3437
35-
const saveAction = (action: TrackSelectAction | CreateTrackAction | CreateFullFrameTrackAction, type: DIVEAction['action']['type']) => {
38+
const saveAction = (action: TrackSelectAction | CreateTrackAction | CreateFullFrameTrackAction | DIVEMetadataAction, type: DIVEAction['action']['type']) => {
3639
let diveAction: DIVEAction = {
3740
action,
3841
};
@@ -87,6 +90,17 @@ export default defineComponent({
8790
},
8891
};
8992
}
93+
if (addEditActionType.value === 'Metadata') {
94+
editingAction.value = {
95+
action: {
96+
type: 'Metadata',
97+
key: '',
98+
actionType: 'set',
99+
dataType: 'string',
100+
visibility: 'always',
101+
},
102+
};
103+
}
90104
};
91105
92106
const getAttributeColor = (item: string) => {
@@ -131,7 +145,7 @@ export default defineComponent({
131145
<v-row class="pt-4">
132146
<v-select
133147
v-model="addEditActionType"
134-
:items="['GoToFrame', 'TrackSelection', 'CreateTrackAction', 'CreateFullFrameTrackAction']"
148+
:items="['GoToFrame', 'TrackSelection', 'CreateTrackAction', 'CreateFullFrameTrackAction', 'Metadata']"
135149
label="Action Type"
136150
@change="changeType"
137151
/>
@@ -166,6 +180,13 @@ export default defineComponent({
166180
@cancel="$emit('cancel')"
167181
/>
168182
</v-row>
183+
<v-row v-else-if="addEditActionType === 'Metadata' && editingAction.action.type === 'Metadata'">
184+
<DiveMetadataActionVue
185+
:action="editingAction.action"
186+
@update:action="saveAction($event, addEditActionType)"
187+
@cancel="$emit('cancel')"
188+
/>
189+
</v-row>
169190
</div>
170191
</v-card-text>
171192
</v-card>

client/dive-common/components/ActionEditors/ActionEditorSettings.vue

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
defineComponent, ref, Ref,
55
} from 'vue';
66
import {
7-
DIVEAction, TrackSelectAction,
7+
DIVEAction, DIVEMetadataAction, TrackSelectAction,
88
} from 'dive-common/use/useActions';
99
import {
1010
useAttributes, useConfiguration, useTrackStyleManager,
@@ -44,7 +44,7 @@ export default defineComponent({
4444
const typeStylingRef = useTrackStyleManager().typeStyling;
4545
const attributesList = useAttributes();
4646
const editingAction: Ref<null | DIVEAction> = ref(null);
47-
const addEditActionType: Ref<'TrackSelection' | 'GoToFrame' | 'CreateTrackAction' | 'CreateFullFrameTrackAction'> = ref('TrackSelection');
47+
const addEditActionType: Ref<'TrackSelection' | 'GoToFrame' | 'CreateTrackAction' | 'CreateFullFrameTrackAction' | 'Metadata'> = ref('TrackSelection');
4848
const editAction = (index?: number) => {
4949
addEditAction.value = true;
5050
if (index !== undefined) {
@@ -118,6 +118,18 @@ export default defineComponent({
118118
},
119119
};
120120
}
121+
if (addEditActionType.value === 'Metadata') {
122+
editingAction.value = {
123+
action: {
124+
type: 'Metadata',
125+
key: '',
126+
actionType: 'set',
127+
dataType: 'string',
128+
value: '',
129+
visibility: 'connected',
130+
} as DIVEMetadataAction,
131+
};
132+
}
121133
};
122134
123135
const removeAction = (index: number) => {

client/dive-common/components/ActionEditors/ActionShortcuts.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export default defineComponent({
4949
const typeStylingRef = useTrackStyleManager().typeStyling;
5050
const attributesList = useAttributes();
5151
const editingShortcut: Ref<null | DIVEActionShortcut> = ref(null);
52-
const addEditActionType: Ref<'TrackSelection' | 'GoToFrame' | 'CreateTrackAction' | 'CreateFullFrameTrackAction'> = ref('TrackSelection');
52+
const addEditActionType: Ref<'TrackSelection' | 'GoToFrame' | 'CreateTrackAction' | 'CreateFullFrameTrackAction' | 'Metadata'> = ref('TrackSelection');
5353
const actionList: Ref<DIVEAction[]> = ref([]);
5454
const updateActionList = () => {
5555
actionList.value = editingShortcut.value?.actions || [];

client/dive-common/components/ActionEditors/CreateFullFrameTrackActionEditor.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { EditAnnotationTypes } from 'vue-media-annotator/layers/';
66
import { CreateFullFrameTrackAction } from 'dive-common/use/useActions';
77
88
export default defineComponent({
9-
name: 'EditFullFrameTrackAction',
9+
name: 'CreateFullFrameTrackAction',
1010
props: {
1111
action: {
1212
type: Object as PropType<CreateFullFrameTrackAction>,

client/dive-common/components/ActionEditors/CreateTrackActionEditor.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { EditAnnotationTypes } from 'vue-media-annotator/layers/';
77
import { CreateTrackAction } from 'dive-common/use/useActions';
88
99
export default defineComponent({
10-
name: 'EditTrackAction',
10+
name: 'CreateTrackActionEditor',
1111
props: {
1212
action: {
1313
type: Object as PropType<CreateTrackAction>,

0 commit comments

Comments
 (0)