231801_test_to_master #1519
|
@ -166,7 +166,7 @@ export default class Field extends FormInput {
|
||||||
if (event.defaultPrevented) return;
|
if (event.defaultPrevented) return;
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
this.field = null;
|
this.field = null;
|
||||||
this.input.dispatchEvent(new Event('change'));
|
this.element.dispatchEvent(new Event('change'));
|
||||||
}
|
}
|
||||||
|
|
||||||
buildInput(type) {
|
buildInput(type) {
|
||||||
|
|
|
@ -6,8 +6,7 @@
|
||||||
where="{changedModel: $ctrl.changedModel, changedModelId: $ctrl.changedModelId}"
|
where="{changedModel: $ctrl.changedModel, changedModelId: $ctrl.changedModelId}"
|
||||||
data="$ctrl.logs"
|
data="$ctrl.logs"
|
||||||
order="creationDate DESC, id DESC"
|
order="creationDate DESC, id DESC"
|
||||||
limit="20"
|
limit="20">
|
||||||
auto-load="true">
|
|
||||||
</vn-crud-model>
|
</vn-crud-model>
|
||||||
<vn-crud-model
|
<vn-crud-model
|
||||||
url="{{$ctrl.url}}/{{$ctrl.originId}}/models"
|
url="{{$ctrl.url}}/{{$ctrl.originId}}/models"
|
||||||
|
@ -122,21 +121,37 @@
|
||||||
</vn-data-viewer>
|
</vn-data-viewer>
|
||||||
<vn-side-menu side="right">
|
<vn-side-menu side="right">
|
||||||
<form vn-vertical
|
<form vn-vertical
|
||||||
ng-submit="$ctrl.applyFilter(filter)"
|
|
||||||
ng-model-options="{updateOn: 'change blur'}"
|
ng-model-options="{updateOn: 'change blur'}"
|
||||||
class="vn-pa-md filter">
|
class="vn-pa-md filter">
|
||||||
<vn-autocomplete
|
<h6
|
||||||
label="Model"
|
class="text-secondary vn-mb-md"
|
||||||
ng-model="filter.changedModel"
|
style="font-weight: normal;"
|
||||||
value-field="changedModel"
|
translate>
|
||||||
show-field="changedModel"
|
Filter
|
||||||
data="models">
|
</h6>
|
||||||
</vn-autocomplete>
|
|
||||||
<vn-textfield
|
<vn-textfield
|
||||||
label="Id"
|
label="Name"
|
||||||
ng-model="filter.changedModelId">
|
ng-model="filter.changedModelValue">
|
||||||
</vn-textfield>
|
</vn-textfield>
|
||||||
|
<vn-vertical>
|
||||||
|
<vn-radio
|
||||||
|
label="All"
|
||||||
|
val="all"
|
||||||
|
ng-model="filter.who">
|
||||||
|
</vn-radio>
|
||||||
|
<vn-radio
|
||||||
|
label="User"
|
||||||
|
val="user"
|
||||||
|
ng-model="filter.who">
|
||||||
|
</vn-radio>
|
||||||
|
<vn-radio
|
||||||
|
label="System"
|
||||||
|
val="system"
|
||||||
|
ng-model="filter.who">
|
||||||
|
</vn-radio>
|
||||||
|
</div>
|
||||||
<vn-autocomplete
|
<vn-autocomplete
|
||||||
|
ng-show="filter.who != 'system'"
|
||||||
label="User"
|
label="User"
|
||||||
ng-model="filter.userFk"
|
ng-model="filter.userFk"
|
||||||
value-field="id"
|
value-field="id"
|
||||||
|
@ -150,30 +165,37 @@
|
||||||
<div class="text-secondary text-caption">{{name}}</div>
|
<div class="text-secondary text-caption">{{name}}</div>
|
||||||
</tpl-item>
|
</tpl-item>
|
||||||
</vn-autocomplete>
|
</vn-autocomplete>
|
||||||
<div vn-vertical>
|
<vn-autocomplete
|
||||||
|
label="Model"
|
||||||
|
ng-model="filter.changedModel"
|
||||||
|
value-field="changedModel"
|
||||||
|
show-field="changedModel"
|
||||||
|
data="models">
|
||||||
|
</vn-autocomplete>
|
||||||
|
<vn-textfield
|
||||||
|
label="Id"
|
||||||
|
ng-model="filter.changedModelId">
|
||||||
|
</vn-textfield>
|
||||||
|
<vn-vertical>
|
||||||
<vn-check
|
<vn-check
|
||||||
label="Creates"
|
label="Creates"
|
||||||
val="insert"
|
|
||||||
ng-model="filter.actions.insert">
|
ng-model="filter.actions.insert">
|
||||||
</vn-check>
|
</vn-check>
|
||||||
<vn-check
|
<vn-check
|
||||||
label="Updates"
|
label="Updates"
|
||||||
val="update"
|
|
||||||
ng-model="filter.actions.update">
|
ng-model="filter.actions.update">
|
||||||
</vn-check>
|
</vn-check>
|
||||||
<vn-check
|
<vn-check
|
||||||
label="Deletes"
|
label="Deletes"
|
||||||
val="delete"
|
|
||||||
ng-model="filter.actions.delete">
|
ng-model="filter.actions.delete">
|
||||||
</vn-check>
|
</vn-check>
|
||||||
<vn-check
|
<vn-check
|
||||||
label="Views"
|
label="Views"
|
||||||
val="select"
|
|
||||||
ng-model="filter.actions.select">
|
ng-model="filter.actions.select">
|
||||||
</vn-check>
|
</vn-check>
|
||||||
</div>
|
</div>
|
||||||
<vn-date-picker
|
<vn-date-picker
|
||||||
label="From"
|
label="Date"
|
||||||
ng-model="filter.from">
|
ng-model="filter.from">
|
||||||
</vn-date-picker>
|
</vn-date-picker>
|
||||||
<vn-date-picker
|
<vn-date-picker
|
||||||
|
@ -181,11 +203,14 @@
|
||||||
ng-model="filter.to">
|
ng-model="filter.to">
|
||||||
</vn-date-picker>
|
</vn-date-picker>
|
||||||
<vn-button-bar vn-vertical class="vn-mt-sm">
|
<vn-button-bar vn-vertical class="vn-mt-sm">
|
||||||
<vn-submit label="Filter"></vn-submit>
|
<vn-button
|
||||||
|
label="Filter"
|
||||||
|
ng-click="$ctrl.applyFilter(filter)">
|
||||||
|
</vn-button>
|
||||||
<vn-button
|
<vn-button
|
||||||
label="Reset"
|
label="Reset"
|
||||||
class="flat"
|
class="flat"
|
||||||
ng-click="$ctrl.removeFilter()"
|
ng-click="$ctrl.resetFilter()"
|
||||||
ng-if="model.userFilter">
|
ng-if="model.userFilter">
|
||||||
</vn-button>
|
</vn-button>
|
||||||
</vn-button-bar>
|
</vn-button-bar>
|
||||||
|
|
|
@ -19,8 +19,6 @@ export default class Controller extends Section {
|
||||||
delete: 'alert',
|
delete: 'alert',
|
||||||
select: 'notice'
|
select: 'notice'
|
||||||
};
|
};
|
||||||
|
|
||||||
$.filter = {};
|
|
||||||
this.filter = {
|
this.filter = {
|
||||||
include: [{
|
include: [{
|
||||||
relation: 'user',
|
relation: 'user',
|
||||||
|
@ -42,21 +40,23 @@ export default class Controller extends Section {
|
||||||
this.today.setHours(0, 0, 0, 0);
|
this.today.setHours(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
$onInit() {
|
$postLink() {
|
||||||
|
this.resetFilter();
|
||||||
const {$} = this;
|
const {$} = this;
|
||||||
$.$watch(
|
$.$watch(
|
||||||
() => [
|
() => [
|
||||||
$.filter.actions,
|
$.filter.changedModelValue,
|
||||||
|
$.filter.who,
|
||||||
$.filter.changedModel,
|
$.filter.changedModel,
|
||||||
$.filter.userFk
|
$.filter.changedModelId,
|
||||||
|
$.filter.userFk,
|
||||||
|
$.filter.actions,
|
||||||
|
$.filter.from,
|
||||||
|
$.filter.to
|
||||||
],
|
],
|
||||||
() => this.applyFilter(),
|
() => this.applyFilter(),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
$.$watch(
|
|
||||||
() => $.filter.from,
|
|
||||||
() => $.filter.to = $.filter.from
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get logs() {
|
get logs() {
|
||||||
|
@ -135,12 +135,27 @@ export default class Controller extends Section {
|
||||||
this.$.workerDescriptor.show(event.target, workerId);
|
this.$.workerDescriptor.show(event.target, workerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resetFilter() {
|
||||||
|
this.$.filter = {who: 'all'};
|
||||||
|
}
|
||||||
|
|
||||||
applyFilter() {
|
applyFilter() {
|
||||||
const filter = this.$.filter;
|
const filter = this.$.filter;
|
||||||
|
|
||||||
function getParam(prop, value) {
|
function getParam(prop, value) {
|
||||||
if (value == null || value == '') return null;
|
if (value == null || value == '') return null;
|
||||||
switch (prop) {
|
switch (prop) {
|
||||||
|
case 'changedModelValue':
|
||||||
|
return {[prop]: {like: `%${value}%`}};
|
||||||
|
case 'who':
|
||||||
|
switch (value) {
|
||||||
|
case 'all':
|
||||||
|
return null;
|
||||||
|
case 'user':
|
||||||
|
return {userFk: {neq: null}};
|
||||||
|
case 'system':
|
||||||
|
return {userFk: null};
|
||||||
|
}
|
||||||
case 'actions':
|
case 'actions':
|
||||||
const inq = [];
|
const inq = [];
|
||||||
for (const action in value) {
|
for (const action in value) {
|
||||||
|
@ -149,7 +164,13 @@ export default class Controller extends Section {
|
||||||
}
|
}
|
||||||
return inq.length ? {action: {inq}} : null;
|
return inq.length ? {action: {inq}} : null;
|
||||||
case 'from':
|
case 'from':
|
||||||
|
if (filter.to) {
|
||||||
return {creationDate: {gte: value}};
|
return {creationDate: {gte: value}};
|
||||||
|
} else {
|
||||||
|
const to = new Date(value);
|
||||||
|
to.setHours(23, 59, 59, 999);
|
||||||
|
return {creationDate: {between: [value, to]}};
|
||||||
|
}
|
||||||
case 'to':
|
case 'to':
|
||||||
const to = new Date(value);
|
const to = new Date(value);
|
||||||
to.setHours(23, 59, 59, 999);
|
to.setHours(23, 59, 59, 999);
|
||||||
|
@ -164,12 +185,9 @@ export default class Controller extends Section {
|
||||||
const param = getParam(prop, filter[prop]);
|
const param = getParam(prop, filter[prop]);
|
||||||
if (param) and.push(param);
|
if (param) and.push(param);
|
||||||
}
|
}
|
||||||
this.$.model.applyFilter(and.length ? {where: {and}} : null);
|
|
||||||
}
|
|
||||||
|
|
||||||
removeFilter() {
|
const lbFilter = and.length ? {where: {and}} : null;
|
||||||
this.$.filter = {};
|
return this.$.model.applyFilter(lbFilter);
|
||||||
this.applyFilter();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
searchUser(search) {
|
searchUser(search) {
|
||||||
|
|
Loading…
Reference in New Issue