|
@@ -54,6 +54,21 @@
|
|
|
{{ label.name }}
|
|
|
</option>
|
|
|
</select>
|
|
|
+
|
|
|
+ <button-input type="transparent" v-if="project.model.supports.includes('bounding-boxes') || project.model.supports.includes('labeled-bounding-boxes')">
|
|
|
+ <img alt="label" src="@/assets/icons/people.svg"
|
|
|
+ @touchstart.stop @mousedown.stop
|
|
|
+ @click.stop="showFilterSelection = true">
|
|
|
+ </button-input>
|
|
|
+
|
|
|
+ <select v-if="showFilterSelection"
|
|
|
+ @touchstart.stop @mousedown.stop
|
|
|
+ @change="filterSelf"
|
|
|
+ @focusout="showFilterSelection = false">
|
|
|
+ <option :selected="this.filter === ''" value="">None</option>
|
|
|
+ <option :selected="this.filter === 'user'" value="user">User</option>
|
|
|
+ <option :selected="this.filter === 'pipeline'" value="pipeline">Pipeline</option>
|
|
|
+ </select>
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
@@ -65,10 +80,11 @@ import ButtonRow from "@/components/base/button-row";
|
|
|
export default {
|
|
|
name: "media-control",
|
|
|
components: {ButtonRow, ButtonInput},
|
|
|
- props: ['hasPrevious', 'hasNext', 'control', 'data', 'project', 'socket'],
|
|
|
+ props: ['hasPrevious', 'hasNext', 'control', 'data', 'project', 'socket', 'filter'],
|
|
|
data: function () {
|
|
|
return {
|
|
|
- showLabelSelection: false
|
|
|
+ showLabelSelection: false,
|
|
|
+ showFilterSelection: false,
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -108,6 +124,9 @@ export default {
|
|
|
});
|
|
|
this.showLabelSelection = false;
|
|
|
},
|
|
|
+ filterSelf: function (event) {
|
|
|
+ this.$emit('filter', event.target.value);
|
|
|
+ },
|
|
|
reset: function () {
|
|
|
this.socket.post(this.mediaUrl, {
|
|
|
reset: true
|