Change-Id: I9842a710fc07b3c349f3f1ab9609db8a5b5b2e52changes/73/22773/8
parent
9b97844cd8
commit
c3963b1f35
@ -1,66 +0,0 @@
|
||||
<template>
|
||||
<div class="col">
|
||||
<div class="filterOptionsPanel">
|
||||
<csc-pbx-mac-input
|
||||
@filter="filterByMacAddress"
|
||||
@reset="resetMacAddressFilter"
|
||||
/>
|
||||
<csc-pbx-model-select
|
||||
:erasable="true"
|
||||
:profiles="profiles"
|
||||
:modelImages="modelImages"
|
||||
:label="$t('pbxConfig.filterPhoneModel')"
|
||||
@opened="modelSelectOpened()"
|
||||
@select="filterByProfile"
|
||||
@reseted="resetProfileFilter"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
import CscPbxModelSelect from './CscPbxModelSelect'
|
||||
import CscPbxMacInput from './CscPbxMacInput'
|
||||
|
||||
export default {
|
||||
name: 'csc-pbx-devices-filter',
|
||||
components: {
|
||||
CscPbxModelSelect,
|
||||
CscPbxMacInput
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('pbxConfig', [
|
||||
'profiles',
|
||||
'modelImages'
|
||||
])
|
||||
},
|
||||
methods: {
|
||||
filterByProfile(profile) {
|
||||
this.$store.dispatch('pbxConfig/filterByProfile', profile);
|
||||
},
|
||||
filterByMacAddress(identifier) {
|
||||
this.$store.dispatch('pbxConfig/filterByMacAddress', identifier);
|
||||
},
|
||||
resetProfileFilter() {
|
||||
this.$store.dispatch('pbxConfig/resetProfileFilter');
|
||||
},
|
||||
resetMacAddressFilter() {
|
||||
this.$store.dispatch('pbxConfig/resetMacAddressFilter');
|
||||
},
|
||||
modelSelectOpened() {
|
||||
this.$store.dispatch('pbxConfig/loadProfiles');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" rel="stylesheet/stylus">
|
||||
.filter-model-select
|
||||
margin 16px 16px 8px 16px
|
||||
|
||||
.filter-icon
|
||||
padding 10px
|
||||
</style>
|
||||
|
@ -1,163 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<q-toolbar
|
||||
color="primary"
|
||||
inverted
|
||||
class="row justify-center"
|
||||
>
|
||||
<div>
|
||||
<q-btn
|
||||
color="primary"
|
||||
icon="add"
|
||||
flat
|
||||
@click="enableForm()"
|
||||
:class="{ cscLabelMobile: isSmallLabelBreakpoint }"
|
||||
>
|
||||
{{ $t('pbxConfig.addDevice') }}
|
||||
</q-btn>
|
||||
</div>
|
||||
<q-btn
|
||||
v-if="isMobile"
|
||||
:disabled="checkDevicesCreated"
|
||||
color="primary"
|
||||
icon="fa-filter"
|
||||
flat
|
||||
@click="toggleFilterOptions()"
|
||||
:class="{ cscIconMobile: isSmallIconBreakpoint }"
|
||||
>
|
||||
{{ showFilterLabel }}
|
||||
</q-btn>
|
||||
<div
|
||||
v-if="!isMobile"
|
||||
@click="toggleFilterOptions()"
|
||||
>
|
||||
<q-btn
|
||||
:disabled="checkDevicesCreated"
|
||||
icon="fa-filter"
|
||||
flat
|
||||
:class="{ cscIconMobile: isSmallIconBreakpoint }"
|
||||
>
|
||||
{{ $t('pbxConfig.filterDevices') }}
|
||||
</q-btn>
|
||||
<q-chip
|
||||
small
|
||||
tag
|
||||
square
|
||||
color="primary"
|
||||
v-if="chipMacAddressFilter"
|
||||
>
|
||||
{{ chipMacAddressFilter | removeTrailingWildcard }}
|
||||
</q-chip>
|
||||
<q-chip
|
||||
small
|
||||
tag
|
||||
square
|
||||
color="primary"
|
||||
v-if="chipModelFilter"
|
||||
>
|
||||
{{ chipModelFilter }}
|
||||
</q-chip>
|
||||
</div>
|
||||
<div class="resetAllBtn">
|
||||
<q-btn
|
||||
color="primary"
|
||||
icon="highlight_off"
|
||||
flat
|
||||
:disabled="checkFiltersApplied"
|
||||
@click="resetAllFilters"
|
||||
:class="{ cscIconMobile: isSmallIconBreakpoint }"
|
||||
>
|
||||
{{ $t('pbxConfig.resetFilters') }}
|
||||
</q-btn>
|
||||
</div>
|
||||
</q-toolbar>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
QChip,
|
||||
QIcon,
|
||||
QBtn,
|
||||
QToolbar,
|
||||
Platform,
|
||||
dom
|
||||
} from 'quasar-framework'
|
||||
import { mapGetters } from 'vuex'
|
||||
const { viewport } = dom
|
||||
let { width } = viewport()
|
||||
|
||||
export default {
|
||||
name: 'csc-pbx-devices-toolbar',
|
||||
data () {
|
||||
return {
|
||||
formEnabled: false
|
||||
}
|
||||
},
|
||||
components: {
|
||||
QChip,
|
||||
QIcon,
|
||||
QBtn,
|
||||
QToolbar,
|
||||
Platform
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('pbxConfig', [
|
||||
'devices',
|
||||
'chipModelFilter',
|
||||
'chipMacAddressFilter'
|
||||
]),
|
||||
isSmallLabelBreakpoint() {
|
||||
return (width <= 390 && width > 352);
|
||||
},
|
||||
isSmallIconBreakpoint() {
|
||||
return (width <= 500);
|
||||
},
|
||||
isMobile() {
|
||||
return (Platform.is.mobile || width < 1270);
|
||||
},
|
||||
filtersApplied() {
|
||||
return (this.chipModelFilter || this.chipMacAddressFilter);
|
||||
},
|
||||
showFilterLabel() {
|
||||
return this.filtersApplied ? this.$t('pbxConfig.showFilters') : this.$t('pbxConfig.filterDevices');
|
||||
},
|
||||
checkFiltersApplied() {
|
||||
return !(this.chipModelFilter || this.chipMacAddressFilter);
|
||||
},
|
||||
checkDevicesCreated() {
|
||||
return (this.devices.length === 0 && !this.chipModelFilter && !this.chipMacAddressFilter);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
enableForm() {
|
||||
if(this.chipModelFilter || this.chipMacAddressFilter) {
|
||||
this.resetAllFilters();
|
||||
}
|
||||
this.$emit('showForm');
|
||||
},
|
||||
toggleFilterOptions() {
|
||||
if(this.devices.length !== 0 || this.chipModelFilter || this.chipMacAddressFilter) {
|
||||
this.$emit('toggleFilterOptions');
|
||||
}
|
||||
},
|
||||
resetAllFilters() {
|
||||
this.$emit('resetAll');
|
||||
}
|
||||
},
|
||||
filters: {
|
||||
removeTrailingWildcard: function(value) {
|
||||
return value.slice(0, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" rel="stylesheet/stylus">
|
||||
.cscIconMobile
|
||||
.on-left
|
||||
margin-right 0
|
||||
|
||||
.cscLabelMobile
|
||||
padding-bottom 20px
|
||||
</style>
|
@ -1,93 +0,0 @@
|
||||
<template>
|
||||
<div class="col">
|
||||
<q-field class="row">
|
||||
<q-input
|
||||
v-model="macAddress"
|
||||
:float-label="$t('pbxConfig.filterMacAddress')"
|
||||
:after="clearButton"
|
||||
@keyup="filterByMacAddress"
|
||||
/>
|
||||
</q-field>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { mapGetters } from 'vuex'
|
||||
import {
|
||||
QInnerLoading,
|
||||
QSpinnerMat,
|
||||
QField,
|
||||
QInput,
|
||||
debounce } from 'quasar-framework'
|
||||
|
||||
export default {
|
||||
name: 'csc-pbx-mac-input',
|
||||
data () {
|
||||
return {
|
||||
macAddress: ''
|
||||
}
|
||||
},
|
||||
components: {
|
||||
QInnerLoading,
|
||||
QSpinnerMat,
|
||||
QField,
|
||||
QInput
|
||||
},
|
||||
created() {
|
||||
if (this.listMacAddressFilter) {
|
||||
this.macAddress = this.listMacAddressFilter.slice(0, -1);
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('pbxConfig', [
|
||||
'listMacAddressFilter'
|
||||
]),
|
||||
clearButton() {
|
||||
let self = this;
|
||||
let buttons = [];
|
||||
if (this.macAddress) {
|
||||
buttons = [{
|
||||
icon: 'clear',
|
||||
error: false,
|
||||
handler (event) {
|
||||
event.stopPropagation();
|
||||
self.reset();
|
||||
}
|
||||
}];
|
||||
}
|
||||
return buttons;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.debouncedFilterByMacAddress = debounce(() => {
|
||||
if(this.macAddress === '') {
|
||||
this.reset();
|
||||
}
|
||||
else {
|
||||
this.$emit('filter', this.macAddress + '*');
|
||||
}
|
||||
}, 500)
|
||||
},
|
||||
methods: {
|
||||
reset() {
|
||||
this.macAddress = '';
|
||||
this.$emit('reset');
|
||||
},
|
||||
filterByMacAddress() {
|
||||
this.debouncedFilterByMacAddress();
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
listMacAddressFilter() {
|
||||
if (this.listMacAddressFilter === null) {
|
||||
this.macAddress = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" rel="stylesheet/stylus">
|
||||
@import '../../../themes/quasar.variables.styl';
|
||||
</style>
|
Loading…
Reference in new issue