removed unused ScreenshotCell, introduced some directory structure, translation component and vue-select for column filtering
Some checks failed
continuous-integration/drone Build is failing
Some checks failed
continuous-integration/drone Build is failing
This commit is contained in:
parent
8abbb3e50a
commit
c6fef60068
@ -19,6 +19,7 @@
|
|||||||
"single-spa-vue": "^2.5.1",
|
"single-spa-vue": "^2.5.1",
|
||||||
"systemjs-webpack-interop": "^2.3.7",
|
"systemjs-webpack-interop": "^2.3.7",
|
||||||
"vue": "^3.2.39",
|
"vue": "^3.2.39",
|
||||||
|
"vue-select": "beta",
|
||||||
"vuetify": "^3.0.0-beta.0",
|
"vuetify": "^3.0.0-beta.0",
|
||||||
"webfontloader": "^1.0.0"
|
"webfontloader": "^1.0.0"
|
||||||
},
|
},
|
||||||
|
@ -13,3 +13,8 @@ div#app {
|
|||||||
.ag-theme-material {
|
.ag-theme-material {
|
||||||
--ag-value-change-value-highlight-background-color: #f9ff99;
|
--ag-value-change-value-highlight-background-color: #f9ff99;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ag-popup-child .ag-filter {
|
||||||
|
width: 300px;
|
||||||
|
height: 390px;
|
||||||
|
}
|
@ -1,29 +0,0 @@
|
|||||||
export default {
|
|
||||||
template: `
|
|
||||||
<select v-model="filter" class="v-select">
|
|
||||||
<option value=""> </option>
|
|
||||||
<option v-for="option in params.options" :value="option">
|
|
||||||
{{ option }}
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
`,
|
|
||||||
data: function () {
|
|
||||||
return {
|
|
||||||
filter: '',
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
updateFilter() {
|
|
||||||
this.params.filterChangedCallback();
|
|
||||||
},
|
|
||||||
|
|
||||||
doesFilterPass(params) {
|
|
||||||
const value = this.params.field.split('.').reduce((a, b) => a[b], params.data);
|
|
||||||
return value === this.filter;
|
|
||||||
},
|
|
||||||
|
|
||||||
isFilterActive() {
|
|
||||||
return this.filter !== ''
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
38
src/components/Filter/Combobox.vue
Normal file
38
src/components/Filter/Combobox.vue
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<template>
|
||||||
|
<v-select
|
||||||
|
v-model="filter"
|
||||||
|
:options="options"
|
||||||
|
class="ag-custom-component-popup"
|
||||||
|
></v-select>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import vSelect from "vue-select"
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Combobox",
|
||||||
|
components: {
|
||||||
|
vSelect
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
options: {
|
||||||
|
},
|
||||||
|
changeValue: {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
filter: null,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
filter(value) {
|
||||||
|
this.changeValue(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
33
src/components/Filter/ComboboxFilter.js
Normal file
33
src/components/Filter/ComboboxFilter.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
import Combobox from "./Combobox.vue";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
// This is a helper component to translate between ag-grid's custom filter logic and a regular Vue component
|
||||||
|
// https://www.ag-grid.com/vue-data-grid/component-filter/#custom-filter-interface-3
|
||||||
|
components: {
|
||||||
|
Combobox
|
||||||
|
},
|
||||||
|
template: `<Combobox
|
||||||
|
:options="params.options"
|
||||||
|
:change-value="updateFilter"
|
||||||
|
/>`,
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
filter: '',
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
updateFilter(value) {
|
||||||
|
this.filter = value
|
||||||
|
this.params.filterChangedCallback();
|
||||||
|
},
|
||||||
|
|
||||||
|
doesFilterPass(params) {
|
||||||
|
const value = this.params.field.split('.').reduce((a, b) => a[b], params.data);
|
||||||
|
return value === this.filter;
|
||||||
|
},
|
||||||
|
|
||||||
|
isFilterActive() {
|
||||||
|
return this.filter !== '' && this.filter
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
@ -22,17 +22,14 @@
|
|||||||
import { AgGridVue } from "ag-grid-vue3";
|
import { AgGridVue } from "ag-grid-vue3";
|
||||||
import "ag-grid-community/styles//ag-grid.css";
|
import "ag-grid-community/styles//ag-grid.css";
|
||||||
import "ag-grid-community/styles//ag-theme-material.css";
|
import "ag-grid-community/styles//ag-theme-material.css";
|
||||||
import ScreenshotCell from "./ScreenshotCell.js";
|
import ExamineLogModal from "./Modal/ExamineLogModal.vue";
|
||||||
import ExamineLogModal from "./ExamineLogModal.vue";
|
import ComboboxFilter from "./Filter/ComboboxFilter.js";
|
||||||
import ComboboxFilter from "./ComboboxFilter.js";
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
ExamineLogModal,
|
ExamineLogModal,
|
||||||
AgGridVue,
|
AgGridVue,
|
||||||
ComboboxFilter,
|
ComboboxFilter
|
||||||
ScreenshotCell: ScreenshotCell
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -36,6 +36,7 @@ import { VTable } from 'vuetify/components/VTable'
|
|||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
name: "ExamineLogModal",
|
||||||
components: {
|
components: {
|
||||||
AgGridVue,
|
AgGridVue,
|
||||||
VCard,
|
VCard,
|
||||||
@ -43,8 +44,7 @@ export default {
|
|||||||
VCardActions,
|
VCardActions,
|
||||||
VBtn,
|
VBtn,
|
||||||
VDialog,
|
VDialog,
|
||||||
VTable,
|
VTable
|
||||||
ScreenshotCell: ScreenshotCell
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
@ -1,30 +0,0 @@
|
|||||||
export default {
|
|
||||||
template: `<div>
|
|
||||||
<a @click="openDrawer">View screenshots</a>
|
|
||||||
<div v-if="drawerOpen" class="screenshots-drawer">
|
|
||||||
<img v-for="screenshot in screenshots" :src="screenshot.orig"/>
|
|
||||||
</div>
|
|
||||||
</div>`,
|
|
||||||
data: function () {
|
|
||||||
return {
|
|
||||||
screenshots: [],
|
|
||||||
drawerOpen: false,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
beforeMount() {
|
|
||||||
this.updateImage(this.params);
|
|
||||||
this.updateImage(this.params);
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
updateImage(params) {
|
|
||||||
this.screenshots = params.value
|
|
||||||
this.value = params.value;
|
|
||||||
},
|
|
||||||
refresh(params) {
|
|
||||||
this.updateImage(params);
|
|
||||||
},
|
|
||||||
openDrawer () {
|
|
||||||
this.drawerOpen = true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
@ -3,6 +3,7 @@ import App from './App.vue'
|
|||||||
import vuetify from './plugins/vuetify'
|
import vuetify from './plugins/vuetify'
|
||||||
import { loadFonts } from './plugins/webfontloader'
|
import { loadFonts } from './plugins/webfontloader'
|
||||||
import './assets/main.css'
|
import './assets/main.css'
|
||||||
|
import 'vue-select/dist/vue-select.css';
|
||||||
loadFonts()
|
loadFonts()
|
||||||
|
|
||||||
createApp(App)
|
createApp(App)
|
||||||
|
Loading…
Reference in New Issue
Block a user