dev #1731
|
@ -0,0 +1,3 @@
|
||||||
|
INSERT INTO `salix`.`ACL` (id, model, property, accessType, permission, principalType, principalId)
|
||||||
|
VALUES
|
||||||
|
('Worker', 'search', 'READ', 'ALLOW', 'ROLE', 'employee');
|
|
@ -17,10 +17,9 @@ import './style.scss';
|
||||||
* @event change Thrown when value is changed
|
* @event change Thrown when value is changed
|
||||||
*/
|
*/
|
||||||
export default class Autocomplete extends Field {
|
export default class Autocomplete extends Field {
|
||||||
constructor($element, $, $compile, $transclude) {
|
constructor($element, $, $transclude) {
|
||||||
super($element, $, $compile);
|
super($element, $, $transclude);
|
||||||
this.$transclude = $transclude;
|
this.$transclude = $transclude;
|
||||||
this.$compile = $compile;
|
|
||||||
this._selection = null;
|
this._selection = null;
|
||||||
this.input = this.element.querySelector('input');
|
this.input = this.element.querySelector('input');
|
||||||
}
|
}
|
||||||
|
@ -282,7 +281,7 @@ export default class Autocomplete extends Field {
|
||||||
this.refreshSelection();
|
this.refreshSelection();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Autocomplete.$inject = ['$element', '$scope', '$compile', '$transclude'];
|
Autocomplete.$inject = ['$element', '$scope', '$transclude'];
|
||||||
|
|
||||||
ngModule.vnComponent('vnAutocomplete', {
|
ngModule.vnComponent('vnAutocomplete', {
|
||||||
template: require('./index.html'),
|
template: require('./index.html'),
|
||||||
|
|
|
@ -3,8 +3,8 @@ import FormInput from '../form-input';
|
||||||
import './style.scss';
|
import './style.scss';
|
||||||
|
|
||||||
export default class Field extends FormInput {
|
export default class Field extends FormInput {
|
||||||
constructor($element, $scope) {
|
constructor($element, $scope, $transclude) {
|
||||||
super($element, $scope);
|
super($element, $scope, $transclude);
|
||||||
|
|
||||||
this.prefix = null;
|
this.prefix = null;
|
||||||
this.suffix = null;
|
this.suffix = null;
|
||||||
|
@ -197,7 +197,7 @@ export default class Field extends FormInput {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Field.$inject = ['$element', '$scope'];
|
Field.$inject = ['$element', '$scope', '$transclude'];
|
||||||
|
|
||||||
ngModule.vnComponent('vnField', {
|
ngModule.vnComponent('vnField', {
|
||||||
template: require('./index.html'),
|
template: require('./index.html'),
|
||||||
|
|
|
@ -8,7 +8,7 @@ export default class WorkerAutocomplete extends Autocomplete {
|
||||||
label: 'Worker',
|
label: 'Worker',
|
||||||
url: 'Workers/search',
|
url: 'Workers/search',
|
||||||
fields: ['id', 'name', 'nickname'],
|
fields: ['id', 'name', 'nickname'],
|
||||||
searchFunction: function($search) {
|
searchFunction: function({$search}) {
|
||||||
return {and: [
|
return {and: [
|
||||||
{active: {neq: false}},
|
{active: {neq: false}},
|
||||||
{or: [
|
{or: [
|
||||||
|
|
|
@ -12,10 +12,9 @@ export default class Component extends EventEmitter {
|
||||||
* @param {HTMLElement} $element The main component element
|
* @param {HTMLElement} $element The main component element
|
||||||
* @param {$rootScope.Scope} $scope The element scope
|
* @param {$rootScope.Scope} $scope The element scope
|
||||||
* @param {Function} $transclude The transclusion function
|
* @param {Function} $transclude The transclusion function
|
||||||
* @param {Function} $location The location function
|
|
||||||
*/
|
*/
|
||||||
constructor($element, $scope, $transclude, $location) {
|
constructor($element, $scope, $transclude) {
|
||||||
super($element, $scope, $transclude, $location);
|
super();
|
||||||
this.$ = $scope;
|
this.$ = $scope;
|
||||||
|
|
||||||
if (!$element) return;
|
if (!$element) return;
|
||||||
|
@ -165,7 +164,7 @@ export default class Component extends EventEmitter {
|
||||||
$transclude.$$boundTransclude.$$slots[slot];
|
$transclude.$$boundTransclude.$$slots[slot];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Component.$inject = ['$element', '$scope', '$location', '$state'];
|
Component.$inject = ['$element', '$scope', '$transclude'];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Automatically adds the most used services to the prototype, so they are
|
* Automatically adds the most used services to the prototype, so they are
|
||||||
|
|
|
@ -83,4 +83,3 @@ export default class EventEmitter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EventEmitter.$inject = ['$element', '$scope'];
|
|
||||||
|
|
|
@ -19,6 +19,22 @@ module.exports = Self => {
|
||||||
|
|
||||||
Self.search = async filter => {
|
Self.search = async filter => {
|
||||||
const $ = Self.app.models;
|
const $ = Self.app.models;
|
||||||
return await $.VnUser.find(filter);
|
|
||||||
|
let {where} = filter;
|
||||||
|
const users = where && await $.VnUser.find({
|
||||||
|
fields: ['id'],
|
||||||
|
where
|
||||||
|
});
|
||||||
|
|
||||||
|
const workers = await Self.find({
|
||||||
|
fields: ['id'],
|
||||||
|
where: {
|
||||||
|
businessFk: {neq: null},
|
||||||
|
id: users ? {inq: users.map(u => u.id)} : undefined
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
where = {id: {inq: workers.map(w => w.id)}};
|
||||||
|
return await $.VnUser.find(Object.assign({}, filter, {where}));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue