Merge pull request '5609-ticket.index_searchByFilter' (!1554) from 5609-ticket.index_searchByFilter into dev
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
Reviewed-on: #1554 Reviewed-by: Javi Gallego <jgallego@verdnatura.es> Reviewed-by: Alex Moreno <alexm@verdnatura.es>
This commit is contained in:
commit
e43e0a8f9f
|
@ -203,7 +203,7 @@ export default class Searchbar extends Component {
|
||||||
|
|
||||||
doSearch(filter, source) {
|
doSearch(filter, source) {
|
||||||
if (filter === this.filter && !this.isIndex) return;
|
if (filter === this.filter && !this.isIndex) return;
|
||||||
let promise = this.onSearch({$params: filter});
|
let promise = this.onSearch({$params: filter}, source);
|
||||||
promise = promise || this.$q.resolve();
|
promise = promise || this.$q.resolve();
|
||||||
promise.then(data => this.onFilter(filter, source, data));
|
promise.then(data => this.onFilter(filter, source, data));
|
||||||
this.toBar(filter);
|
this.toBar(filter);
|
||||||
|
@ -259,12 +259,6 @@ export default class Searchbar extends Component {
|
||||||
|
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
|
|
||||||
if (source == 'removeBar') {
|
|
||||||
delete params[this.toRemove];
|
|
||||||
delete this.model.userParams[this.toRemove];
|
|
||||||
this.model.refresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!filter && this.model)
|
if (!filter && this.model)
|
||||||
this.model.clear();
|
this.model.clear();
|
||||||
if (source != 'state')
|
if (source != 'state')
|
||||||
|
@ -279,7 +273,7 @@ export default class Searchbar extends Component {
|
||||||
return {id: params.$row.id};
|
return {id: params.$row.id};
|
||||||
}
|
}
|
||||||
|
|
||||||
onSearch(args) {
|
onSearch(args, source) {
|
||||||
if (!this.model) return;
|
if (!this.model) return;
|
||||||
let filter = args.$params;
|
let filter = args.$params;
|
||||||
|
|
||||||
|
@ -325,6 +319,12 @@ export default class Searchbar extends Component {
|
||||||
for (let param in stateFilter.tableQ)
|
for (let param in stateFilter.tableQ)
|
||||||
params[param] = stateFilter.tableQ[param];
|
params[param] = stateFilter.tableQ[param];
|
||||||
|
|
||||||
|
if (source == 'removeBar') {
|
||||||
|
delete params[this.toRemove];
|
||||||
|
delete this.model.userParams[this.toRemove];
|
||||||
|
delete stateFilter[this.toRemove];
|
||||||
|
}
|
||||||
|
|
||||||
const newParams = Object.assign(stateFilter, params);
|
const newParams = Object.assign(stateFilter, params);
|
||||||
return this.model.applyParams(newParams)
|
return this.model.applyParams(newParams)
|
||||||
.then(() => this.model.data);
|
.then(() => this.model.data);
|
||||||
|
|
|
@ -197,7 +197,7 @@ describe('Component vnSearchbar', () => {
|
||||||
controller.doSearch(filter, 'any');
|
controller.doSearch(filter, 'any');
|
||||||
$scope.$apply();
|
$scope.$apply();
|
||||||
|
|
||||||
expect(controller.onSearch).toHaveBeenCalledWith({$params: filter});
|
expect(controller.onSearch).toHaveBeenCalledWith({$params: filter}, 'any');
|
||||||
expect(controller.onFilter).toHaveBeenCalledWith(filter, 'any', undefined);
|
expect(controller.onFilter).toHaveBeenCalledWith(filter, 'any', undefined);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import ngModule from '../module';
|
import ngModule from '../module';
|
||||||
import ModuleMain from 'salix/components/module-main';
|
import ModuleMain from 'salix/components/module-main';
|
||||||
|
const UserError = require('vn-loopback/util/user-error');
|
||||||
|
|
||||||
export default class Ticket extends ModuleMain {
|
export default class Ticket extends ModuleMain {
|
||||||
fetchParams($params) {
|
fetchParams($params) {
|
||||||
|
@ -14,10 +15,19 @@ export default class Ticket extends ModuleMain {
|
||||||
'scopeDays'
|
'scopeDays'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const seachPanelParams = Object.entries($params);
|
||||||
|
const hasFromParam = seachPanelParams.some(subarray => subarray.length > 0 && subarray[0] === 'from');
|
||||||
|
const hasToParam = seachPanelParams.some(subarray => subarray.length > 0 && subarray[0] === 'to');
|
||||||
|
|
||||||
|
if ((hasFromParam && !hasToParam) || (!hasFromParam && hasToParam))
|
||||||
|
throw new UserError(`Date range must have 'from' and 'to'`);
|
||||||
|
|
||||||
const hasExcludedParams = excludedParams.some(param => {
|
const hasExcludedParams = excludedParams.some(param => {
|
||||||
return $params && $params[param] != undefined;
|
return $params && $params[param] != undefined;
|
||||||
});
|
});
|
||||||
|
|
||||||
const hasParams = Object.entries($params).length;
|
const hasParams = Object.entries($params).length;
|
||||||
|
|
||||||
if (!hasParams || !hasExcludedParams)
|
if (!hasParams || !hasExcludedParams)
|
||||||
$params.scopeDays = 1;
|
$params.scopeDays = 1;
|
||||||
|
|
||||||
|
@ -28,7 +38,6 @@ export default class Ticket extends ModuleMain {
|
||||||
const to = new Date(from.getTime());
|
const to = new Date(from.getTime());
|
||||||
to.setDate(to.getDate() + $params.scopeDays);
|
to.setDate(to.getDate() + $params.scopeDays);
|
||||||
to.setHours(23, 59, 59, 999);
|
to.setHours(23, 59, 59, 999);
|
||||||
|
|
||||||
Object.assign($params, {from, to});
|
Object.assign($params, {from, to});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Date range must have 'from' and 'to': El rango de fechas debe tener 'desde' y 'hasta'
|
Loading…
Reference in New Issue