5066-vehicleSorted #1467
|
@ -1,3 +1,3 @@
|
|||
INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalId`)
|
||||
VALUES
|
||||
('Vehicle','getVehiclesSorted','WRITE','ALLOW','employee');
|
||||
('Vehicle','sorted','WRITE','ALLOW','employee');
|
|
@ -24,7 +24,7 @@ describe('Route basic Data path', () => {
|
|||
const form = 'vn-route-basic-data form';
|
||||
const values = {
|
||||
worker: 'adminBossNick',
|
||||
vehicle: '1111-IMK',
|
||||
vehicle: '1111-IMK - Warehouse One',
|
||||
created: nextMonth,
|
||||
kmStart: 1,
|
||||
kmEnd: 2,
|
||||
|
|
|
@ -174,7 +174,6 @@ export default class Autocomplete extends Field {
|
|||
|
||||
refreshDisplayed() {
|
||||
let display = '';
|
||||
let hasTemplate = this.$transclude && this.$transclude.isSlotFilled('tplItem');
|
||||
|
||||
if (this._selection && this.showField) {
|
||||
if (this.multiple && Array.isArray(this._selection)) {
|
||||
|
@ -182,19 +181,8 @@ export default class Autocomplete extends Field {
|
|||
if (display.length > 0) display += ', ';
|
||||
display += item[this.showField];
|
||||
}
|
||||
} else {
|
||||
} else
|
||||
display = this._selection[this.showField];
|
||||
if (hasTemplate) {
|
||||
let template = this.$transclude(() => {}, null, 'tplItem');
|
||||
const element = template[0];
|
||||
const description = element.querySelector('.text-secondary');
|
||||
if (description) description.remove();
|
||||
|
||||
const displayElement = angular.element(element);
|
||||
const displayText = displayElement.text();
|
||||
display = this.$interpolate(displayText)(this._selection);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.input.value = display;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
module.exports = Self => {
|
||||
Self.remoteMethod('getVehiclesSorted', {
|
||||
Self.remoteMethod('sorted', {
|
||||
description: 'Sort the vehicles by warehouse',
|
||||
accessType: 'WRITE',
|
||||
accepts: [{
|
||||
|
@ -11,12 +11,12 @@ module.exports = Self => {
|
|||
root: true
|
||||
},
|
||||
http: {
|
||||
path: `/getVehiclesSorted`,
|
||||
path: `/sorted`,
|
||||
verb: `POST`
|
||||
}
|
||||
});
|
||||
|
||||
Self.getVehiclesSorted = async warehouseFk => {
|
||||
Self.sorted = async warehouseFk => {
|
||||
const vehicles = await Self.rawSql(`
|
||||
|
||||
SELECT ROW_NUMBER() OVER (ORDER BY v.warehouseFk = ? DESC, w.id, v.numberPlate) AS 'order',
|
||||
jgallego
commented
crec que es pot fer amb les funcions de loopback, @alexm ? crec que es pot fer amb les funcions de loopback, @alexm ?
alexm
commented
Buenas, ja ho vaig mirar i no es podia, #1467 (comment) Buenas, ja ho vaig mirar i no es podia, https://gitea.verdnatura.es/verdnatura/salix/pulls/1467#issuecomment-22736
|
||||
v.id,
|
|
@ -1,3 +1,3 @@
|
|||
module.exports = Self => {
|
||||
require('../methods/vehicle/getVehiclesSorted')(Self);
|
||||
require('../methods/vehicle/sorted')(Self);
|
||||
};
|
||||
|
|
|
@ -28,7 +28,8 @@
|
|||
show-field="description"
|
||||
jgallego
commented
desde back no has de pasar el concat, al autocomplete busca exemples en el que el autocomplete es genera ell el concat desde back no has de pasar el concat, al autocomplete busca exemples en el que el autocomplete es genera ell el concat
|
||||
order="order"
|
||||
value-field="id"
|
||||
label="Vehicle">
|
||||
label="Vehicle"
|
||||
vn-name="vehicle">
|
||||
</vn-autocomplete>
|
||||
</vn-horizontal>
|
||||
<vn-horizontal>
|
||||
|
|
|
@ -12,7 +12,7 @@ class Controller extends Section {
|
|||
this.$http.get(`UserConfigs/getUserConfig`)
|
||||
juan
commented
En lugar de hacer la petición, utilizar el servicio En lugar de hacer la petición, utilizar el servicio `vnConfig`.
|
||||
.then(res => {
|
||||
if (res && res.data) {
|
||||
this.$http.post(`Vehicles/getVehiclesSorted`, {warehouseFk: res.data.warehouseFk})
|
||||
this.$http.post(`Vehicles/sorted`, {warehouseFk: res.data.warehouseFk})
|
||||
.then(res => {
|
||||
if (res && res.data)
|
||||
juan
commented
Para que se compruebe si Para que se compruebe si `res` y `res.data` está definido?
carlossa
commented
Se utiliza para comprobar que res.data lleva la información, ya que si no da error al buscarlo
Se utiliza para comprobar que res.data lleva la información, ya que si no da error al buscarlo
juan
commented
En que casos En que casos `res` no esta definido?
carlossa
commented
Lo estaba haciendo como una comprobación de que también tenia res, pero he pensado que directamente comprobando res.data ya serviria ya que es el que lleva la información Lo estaba haciendo como una comprobación de que también tenia res, pero he pensado que directamente comprobando res.data ya serviria ya que es el que lleva la información
carlossa
commented
Porque si no habia res, res.data me daria error porque intenta hacer .data de undefined, pero como res esta definido, no hace falta la comprobación de si existe res Porque si no habia res, res.data me daria error porque intenta hacer .data de undefined, pero como res esta definido, no hace falta la comprobación de si existe res
juan
commented
El El `if (res.data)` no es necesario y no funcionará correctamente si no hay resultados.
|
||||
this.vehicles = res.data;
|
||||
|
|
el row number et tornat el numero, pero crec que simplement amb el order by es suficient
En la consulta se ha utilizado "ROW_ORDER" para extraer el número de registro después de ordenar por warehouse. De esa forma en el autocomplete se le puede decir que ordene por ese campo ya que siempre el autocomplete pide que se ordene por un campo de la consulta
Si ho lleves no funciona?
He vist en Alex altra manera, ja que la meua ho fea dos vegades, ja esta ficat sense ROW_ORDER