Sha256: a510dbf977ad6a58de7eec7f9be259aa7d7814cba46481ba66aaf5adb13f505a
Contents?: true
Size: 1.41 KB
Versions: 2
Compression:
Stored size: 1.41 KB
Contents
import { Controller } from 'stimulus' import URI from 'urijs' export default class extends Controller { static targets = ['urlRedirect'] // eslint-disable-next-line class-methods-use-this uriParams() { return URI(window.location.toString()).query(true) } viaResourceName() { return this.uriParams().via_resource_name } uriParam(param) { const viaResourceName = this.viaResourceName() if (viaResourceName) return `${this.viaResourceName}_${param}` return param } changeFilter() { const value = this.getFilterValue() const filterClass = this.getFilterClass() let filters = this.uriParams()[this.uriParam('filters')] if (filters) { filters = JSON.parse(atob(filters)) } else { filters = {} } filters[filterClass] = value const filtered = Object.keys(filters) .filter(key => filters[key] !== '') .reduce((obj, key) => { obj[key] = filters[key]; return obj; }, {}); let encodedFilters; if (filtered && Object.keys(filtered).length > 0) { encodedFilters = btoa(JSON.stringify(filtered)) } const url = new URI(this.urlRedirectTarget.href) const query = { ...url.query(true), } if (encodedFilters) { query['filters'] = encodedFilters } else { delete query['filters'] } url.query(query) this.urlRedirectTarget.href = url this.urlRedirectTarget.click() } }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
avo-0.5.0.beta9 | app/packs/js/controllers/filter_controller.js |
avo-0.5.0.beta8 | app/packs/js/controllers/filter_controller.js |