From 92347cd9c4556e6f9291aa1e2a5153ca62d2a2c7 Mon Sep 17 00:00:00 2001 From: Carlos Jimenez Ruiz Date: Thu, 21 Mar 2019 13:46:14 +0100 Subject: [PATCH] #1233 route.index --- db/install/dump/fixtures.sql | 18 ++--- front/module-import.js | 3 +- modules/route/back/models/route.json | 5 +- modules/route/front/index.js | 4 ++ modules/route/front/index/index.html | 75 +++++++++++++++++++ modules/route/front/index/index.js | 80 +++++++++++++++++++++ modules/route/front/module.js | 3 + modules/route/front/routes.json | 23 ++++++ modules/route/front/search-panel/index.html | 57 +++++++++++++++ modules/route/front/search-panel/index.js | 7 ++ 10 files changed, 261 insertions(+), 14 deletions(-) create mode 100644 modules/route/front/index.js create mode 100644 modules/route/front/index/index.html create mode 100644 modules/route/front/index/index.js create mode 100644 modules/route/front/module.js create mode 100644 modules/route/front/routes.json create mode 100644 modules/route/front/search-panel/index.html create mode 100644 modules/route/front/search-panel/index.js diff --git a/db/install/dump/fixtures.sql b/db/install/dump/fixtures.sql index 644a1d2a6c..d451b94a37 100644 --- a/db/install/dump/fixtures.sql +++ b/db/install/dump/fixtures.sql @@ -353,15 +353,15 @@ INSERT INTO `vn`.`creditInsurance`(`id`, `creditClassification`, `credit`, `crea (2, 2 , 6000, DATE_ADD(CURDATE(), INTERVAL -2 MONTH), NULL), (3, 3, 10000 , DATE_ADD(CURDATE(), INTERVAL -3 MONTH), NULL); -INSERT INTO `vn`.`route`(`id`, `created`, `workerFk`, `vehicleFk`, `isOk`, `description`) +INSERT INTO `vn`.`route`(`id`, `workerFk`, `created`, `vehicleFk`, `agencyModeFk`, `description`, `m3`) VALUES - (1, CURDATE(), 56, 1, 0, 'first route' ), - (2, CURDATE(), 56, 1, 0, 'second route' ), - (3, CURDATE(), 56, 2, 0, 'third route' ), - (4, CURDATE(), 56, 3, 0, 'fourth route' ), - (5, CURDATE(), 56, 4, 0, 'fifth route' ), - (6, CURDATE(), 57, 5, 0, 'sixth route' ), - (7, CURDATE(), 57, 6, 0, 'seventh route'); + (1, 56, CURDATE(), 1, 1, 'first route', null), + (2, 56, CURDATE(), 1, 1, 'second route', 4.2), + (3, 56, CURDATE(), 2, 7, 'third route', 5.3), + (4, 56, CURDATE(), 3, 7, 'fourth route', 6.4), + (5, 56, CURDATE(), 4, 8, 'fifth route', 7.5), + (6, 57, CURDATE(), 5, 8, 'sixth route', 8.6), + (7, 57, CURDATE(), 6, null, 'seventh route', 9.7); INSERT INTO `vn2008`.`empresa_grupo`(`empresa_grupo_id`, `grupo`) VALUES @@ -1188,7 +1188,7 @@ INSERT INTO `postgresql`.`person`(`person_id`, `name`, `nickname`, `nif`, `first VALUES (1, 'Haller', 'DavidCharlesHaller', '53136686Q', 'David Charles', 106 ), (2, 'Pym', 'HankPym', '09854837G', 'Hank', 107), - (3, 'VERDNATURA EVANTE SL', 'VNL', 'B78945612', NULL, NULL); + (3, 'VERDNATURA LEVANTE SL', 'VNL', 'B78945612', NULL, NULL); INSERT INTO `postgresql`.`profile`(`profile_id`, `person_id`, `profile_type_id`) VALUES diff --git a/front/module-import.js b/front/module-import.js index ed46b5b377..1d093eaf2b 100755 --- a/front/module-import.js +++ b/front/module-import.js @@ -1,6 +1,6 @@ export default function moduleImport(moduleName) { - // FIXME: Webpack watches module backend files when using dynamic import + // TODO: Webpack watches module backend files when using dynamic import //return import( // /* webpackInclude: /modules\/[a-z0-9-]+\/front\/index.js$/ */ // '../modules/'+ moduleName +'/front/index.js' @@ -16,5 +16,6 @@ export default function moduleImport(moduleName) { case 'travel' : return import('travel/front'); case 'worker' : return import('worker/front'); case 'invoice' : return import('invoice/front'); + case 'route' : return import('route/front'); } } diff --git a/modules/route/back/models/route.json b/modules/route/back/models/route.json index afe078b3a0..8c0ff6776e 100644 --- a/modules/route/back/models/route.json +++ b/modules/route/back/models/route.json @@ -3,7 +3,7 @@ "base": "VnModel", "options": { "mysql": { - "table": "route" + "table": "route" } }, "properties": { @@ -18,9 +18,6 @@ "time": { "type": "date" }, - "isOk": { - "type": "Number" - }, "kmStart": { "type": "Number" }, diff --git a/modules/route/front/index.js b/modules/route/front/index.js new file mode 100644 index 0000000000..6849e9df36 --- /dev/null +++ b/modules/route/front/index.js @@ -0,0 +1,4 @@ +export * from './module'; + +import './index/'; +import './search-panel'; diff --git a/modules/route/front/index/index.html b/modules/route/front/index/index.html new file mode 100644 index 0000000000..5716509090 --- /dev/null +++ b/modules/route/front/index/index.html @@ -0,0 +1,75 @@ + + +
+
+ + + + +
+ + + + + id + Worker + Agency + Vehicle + Created + + Description + + + + + + {{::route.id | dashIfEmpty}} + + + {{::route.worker.user.nickname}} + + + {{::route.agencyMode.name | dashIfEmpty}} + {{::route.vehicle.numberPlate | dashIfEmpty}} + {{::route.created | dateTime:'dd/MM/yyyy' | dashIfEmpty}} + {{::route.m3 | dashIfEmpty}} + {{::route.description | dashIfEmpty}} + + + + + + + + + +
+ + + + + + + diff --git a/modules/route/front/index/index.js b/modules/route/front/index/index.js new file mode 100644 index 0000000000..724dcf9683 --- /dev/null +++ b/modules/route/front/index/index.js @@ -0,0 +1,80 @@ +import ngModule from '../module'; + +export default class Controller { + constructor($scope, vnToken) { + this.accessToken = vnToken.token; + this.$ = $scope; + this.ticketSelected = null; + + this.filter = { + include: [ + { + relation: 'agencyMode', + scope: { + fields: ['name'] + } + }, + { + relation: 'vehicle', + scope: { + fields: ['numberPlate'] + } + }, + { + relation: 'worker', + scope: { + fields: ['userFk'], + include: { + relation: 'user', + scope: { + fields: ['nickname'] + } + } + } + }, + ] + }; + } + + exprBuilder(param, value) { + switch (param) { + case 'search': + return {id: value}; + case 'from': + return {created: {gte: value}}; + case 'to': + return {created: {lte: value}}; + case 'workerFk': + case 'vehicleFk': + case 'agencyModeFk': + case 'm3': + case 'description': + return {[param]: value}; + } + } + + showWorkerDescriptor(event, userId) { + if (event.defaultPrevented) return; + + event.preventDefault(); + event.stopPropagation(); + + this.selectedWorker = userId; + this.$.workerDescriptor.parent = event.target; + this.$.workerDescriptor.show(); + } + + preview(event, route) { + this.routeSelected = route; + this.$.dialogSummaryClaim.show(); + event.preventDefault(); + event.stopImmediatePropagation(); + } +} + +Controller.$inject = ['$scope', 'vnToken']; + +ngModule.component('vnRouteIndex', { + template: require('./index.html'), + controller: Controller +}); diff --git a/modules/route/front/module.js b/modules/route/front/module.js new file mode 100644 index 0000000000..bd7b1516b5 --- /dev/null +++ b/modules/route/front/module.js @@ -0,0 +1,3 @@ +import {ng} from 'core/vendor'; + +export default ng.module('route', ['vnCore']); diff --git a/modules/route/front/routes.json b/modules/route/front/routes.json new file mode 100644 index 0000000000..2671d3e0d8 --- /dev/null +++ b/modules/route/front/routes.json @@ -0,0 +1,23 @@ +{ + "module": "route", + "name": "Routes", + "icon": "icon-delivery", + "validations" : true, + "dependencies": ["client", "worker"], + "routes": [ + { + "url": "/route", + "state": "route", + "abstract": true, + "component": "ui-view", + "description": "Routes", + "acl": ["employee"] + }, + { + "url": "/index?q", + "state": "route.index", + "component": "vn-route-index", + "description": "Routes" + } + ] +} \ No newline at end of file diff --git a/modules/route/front/search-panel/index.html b/modules/route/front/search-panel/index.html new file mode 100644 index 0000000000..dbf7de0ae0 --- /dev/null +++ b/modules/route/front/search-panel/index.html @@ -0,0 +1,57 @@ +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/modules/route/front/search-panel/index.js b/modules/route/front/search-panel/index.js new file mode 100644 index 0000000000..6226236f27 --- /dev/null +++ b/modules/route/front/search-panel/index.js @@ -0,0 +1,7 @@ +import ngModule from '../module'; +import SearchPanel from 'core/components/searchbar/search-panel'; + +ngModule.component('vnRouteSearchPanel', { + template: require('./index.html'), + controller: SearchPanel +});