zone basic data

This commit is contained in:
Joan Sanchez 2018-09-24 10:43:54 +02:00
parent 6fc85b0e5a
commit 564370180c
8 changed files with 138 additions and 22 deletions

View File

@ -4,18 +4,19 @@ import './style.scss';
export default class InputTime extends Textfield {
constructor($element, $scope, $attrs, vnTemplate, $transclude, $filter) {
super($element, $scope, $attrs, vnTemplate, $transclude);
this.$filter = $filter;
}
get value() {
return this._value;
}
set value(value) {
this._value = value;
if (!value) return;
let newDate = new Date(value);
newDate.setSeconds(0);
newDate.setMilliseconds(0);
this._value = newDate;
this.hasValue = this._value !== null;
if (this.hasValue) this.element.classList.add('not-empty');
@ -24,7 +25,7 @@ export default class InputTime extends Textfield {
}
get step() {
return parseFloat(this.input.step);
return parseInt(this.input.step);
}
set step(value) {
@ -32,7 +33,7 @@ export default class InputTime extends Textfield {
}
}
InputTime.$inject = ['$element', '$scope', '$attrs', 'vnTemplate', '$transclude', '$filter'];
InputTime.$inject = ['$element', '$scope', '$attrs', 'vnTemplate', '$transclude'];
ngModule.component('vnInputTime', {
template: require('./index.html'),

View File

@ -3,7 +3,7 @@
vn-input-time {
@extend vn-textfield;
input[type="time"] {
clip-path: inset(0 17px 0 0);
outline:none;

View File

@ -223,13 +223,15 @@ export default class Watcher extends Component {
let newCopy = {};
if (data && typeof data === 'object') {
Object.keys(data).forEach(
val => {
if (!isFullEmpty(data[val])) {
if (typeof data[val] === 'object') {
newCopy[val] = this.copyInNewObject(data[val]);
} else {
newCopy[val] = data[val];
}
key => {
let value = data[key];
if (value instanceof Date)
newCopy[key] = new Date(value.getTime());
else if (!isFullEmpty(value)) {
if (typeof value === 'object')
newCopy[key] = this.copyInNewObject(value);
else
newCopy[key] = value;
}
}
);

View File

@ -2,15 +2,17 @@ import isEqual from './equals';
export default function getModifiedData(object, objectOld) {
var newObject = {};
if (objectOld === null) {
if (objectOld === null)
return object;
}
for (var k in object) {
var val = object[k];
var valOld = objectOld[k] === undefined ? null : objectOld[k];
if (!isEqual(val, valOld)) {
if (val instanceof Object) {
if (val instanceof Date) {
newObject[k] = new Date(val.getTime());
} else if (val instanceof Object) {
newObject[k] = getModifiedData(val, valOld);
} else {
newObject[k] = val;

View File

@ -0,0 +1,67 @@
<mg-ajax path="/route/api/Zones/{{patch.params.id}}" options="vnPatch"></mg-ajax>
<vn-watcher
vn-id="watcher"
data="$ctrl.zone"
form="form"
save="patch">
</vn-watcher>
<form name="form" ng-submit="$ctrl.onSubmit()">
<vn-card pad-large>
<vn-title>Basic data</vn-title>
<vn-horizontal>
<vn-textfield vn-two vn-focus
label="Name"
field="$ctrl.zone.name">
</vn-textfield>
</vn-horizontal>
<vn-horizontal>
<vn-autocomplete
vn-one
field="$ctrl.zone.warehouseFk"
url="/route/api/Warehouses"
show-field="name"
value-field="id"
label="Warehouse">
</vn-autocomplete>
<vn-autocomplete
vn-one
field="$ctrl.zone.agencyModeFk"
url="/route/api/AgencyModes"
show-field="name"
value-field="id"
label="Agency">
</vn-autocomplete>
</vn-horizontal>
<vn-horizontal>
<vn-input-number
vn-two
min="0"
step="1"
label="Traveling days"
field="$ctrl.zone.travelingDays">
</vn-input-number>
<vn-input-time
vn-two
label="Estimated hour (ETD)"
field="$ctrl.zone.hour">
</vn-input-time>
</vn-horizontal>
<vn-horizontal>
<vn-input-number vn-one
label="Price"
field="$ctrl.zone.price"
min="0.00"
step="0.50">
</vn-input-number>
<vn-input-number vn-one
label="Bonus"
field="$ctrl.zone.bonus"
min="0.00"
step="0.50">
</vn-input-number>
</vn-horizontal>
</vn-card>
<vn-button-bar>
<vn-submit label="Save"></vn-submit>
</vn-button-bar>
</form>

View File

@ -0,0 +1,27 @@
import ngModule from '../../module';
class Controller {
constructor($scope) {
this.$scope = $scope;
}
onSubmit() {
this.$scope.watcher.submit().then(() => {
this.card.reload();
});
}
}
Controller.$inject = ['$scope'];
ngModule.component('vnZoneBasicData', {
template: require('./index.html'),
controller: Controller,
bindings: {
zone: '<'
},
require: {
card: '^vnZoneCard'
}
});

View File

@ -5,4 +5,21 @@ ALTER TABLE `vn`.`zoneNest`
RENAME TO `vn`.`zoneGeo` ;
ALTER TABLE `vn`.`zone`
CHANGE COLUMN `agencyFk` `agencyModeFk` INT(11) NOT NULL ;
CHANGE COLUMN `agencyFk` `agencyModeFk` INT(11) NOT NULL,
CHANGE COLUMN `hour` `hour` DATETIME NOT NULL,
CHANGE COLUMN `warehouseFk` `warehouseFk` SMALLINT(6) UNSIGNED NOT NULL ;
ALTER TABLE `vn`.`zone`
ADD INDEX `fk_zone_1_idx` (`warehouseFk` ASC),
ADD INDEX `fk_zone_2_idx` (`agencyModeFk` ASC);
ALTER TABLE `vn`.`zone`
ADD CONSTRAINT `fk_zone_1`
FOREIGN KEY (`warehouseFk`)
REFERENCES `vn2008`.`warehouse` (`id`)
ON DELETE NO ACTION
ON UPDATE CASCADE,
ADD CONSTRAINT `fk_zone_2`
FOREIGN KEY (`agencyModeFk`)
REFERENCES `vn2008`.`Agencias` (`Id_Agencia`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;

View File

@ -16,7 +16,7 @@
"required": true
},
"hour": {
"type": "Date",
"type": "date",
"required": true
},
"travelingDays": {