Seccion nueva, "Note" mas campo entryObservation
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
This commit is contained in:
parent
a19064cb1b
commit
2948747da3
|
@ -7,5 +7,8 @@
|
||||||
},
|
},
|
||||||
"EntryLog": {
|
"EntryLog": {
|
||||||
"dataSource": "vn"
|
"dataSource": "vn"
|
||||||
|
},
|
||||||
|
"EntryObservation": {
|
||||||
|
"dataSource": "vn"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
const UserError = require('vn-loopback/util/user-error');
|
||||||
|
|
||||||
|
module.exports = Self => {
|
||||||
|
Self.rewriteDbError(function(err) {
|
||||||
|
if (err.code === 'ER_DUP_ENTRY')
|
||||||
|
return new UserError(`The observation type can't be repeated`);
|
||||||
|
return err;
|
||||||
|
});
|
||||||
|
};
|
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
"name": "EntryObservation",
|
||||||
|
"base": "Loggable",
|
||||||
|
"log": {
|
||||||
|
"model": "EntryLog",
|
||||||
|
"relation": "entry"
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"mysql": {
|
||||||
|
"table": "entryObservation"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"id": true,
|
||||||
|
"type": "Number",
|
||||||
|
"description": "Identifier"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "String",
|
||||||
|
"required": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"relations": {
|
||||||
|
"entry": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "Entry",
|
||||||
|
"foreignKey": "entryFk",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
"observationType": {
|
||||||
|
"type": "belongsTo",
|
||||||
|
"model": "ObservationType",
|
||||||
|
"foreignKey": "observationTypeFk",
|
||||||
|
"required": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,6 +10,7 @@ import './latest-buys-search-panel';
|
||||||
import './descriptor';
|
import './descriptor';
|
||||||
import './descriptor-popover';
|
import './descriptor-popover';
|
||||||
import './card';
|
import './card';
|
||||||
|
import './note';
|
||||||
import './summary';
|
import './summary';
|
||||||
import './log';
|
import './log';
|
||||||
import './buy';
|
import './buy';
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
<vn-crud-model
|
||||||
|
vn-id="model"
|
||||||
|
url="EntryObservations"
|
||||||
|
fields="['id', 'entryFk', 'observationTypeFk', 'description']"
|
||||||
|
link="{entryFk: $ctrl.$params.id}"
|
||||||
|
data="observations"
|
||||||
|
auto-load="true">
|
||||||
|
</vn-crud-model>
|
||||||
|
<vn-crud-model
|
||||||
|
url="ObservationTypes"
|
||||||
|
data="observationTypes"
|
||||||
|
auto-load="true">
|
||||||
|
</vn-crud-model>
|
||||||
|
<vn-watcher
|
||||||
|
vn-id="watcher"
|
||||||
|
data="observations"
|
||||||
|
form="form">
|
||||||
|
</vn-watcher>
|
||||||
|
<form name="form" ng-submit="$ctrl.onSubmit()" class="vn-w-md">
|
||||||
|
<vn-card class="vn-pa-lg">
|
||||||
|
<vn-one class="vn-mt-md">
|
||||||
|
<vn-horizontal ng-repeat="observation in observations track by $index">
|
||||||
|
<vn-autocomplete
|
||||||
|
ng-attr-disabled="observation.id ? true : false"
|
||||||
|
ng-model="observation.observationTypeFk"
|
||||||
|
data="observationTypes"
|
||||||
|
show-field="description"
|
||||||
|
label="Observation type"
|
||||||
|
vn-one
|
||||||
|
vn-focus>
|
||||||
|
</vn-autocomplete>
|
||||||
|
<vn-textfield
|
||||||
|
vn-two
|
||||||
|
class="vn-mr-lg"
|
||||||
|
label="Description"
|
||||||
|
ng-model="observation.description"
|
||||||
|
rule="EntryObservation">
|
||||||
|
</vn-textfield>
|
||||||
|
<vn-auto class="vn-pt-md">
|
||||||
|
<vn-icon-button
|
||||||
|
pointer
|
||||||
|
vn-tooltip="Remove note"
|
||||||
|
icon="delete"
|
||||||
|
ng-click="model.remove($index)">
|
||||||
|
</vn-icon-button>
|
||||||
|
</vn-auto>
|
||||||
|
</vn-horizontal>
|
||||||
|
</vn-one>
|
||||||
|
<vn-one>
|
||||||
|
<vn-icon-button
|
||||||
|
vn-tooltip="Add note"
|
||||||
|
icon="add_circle"
|
||||||
|
vn-bind="+"
|
||||||
|
ng-if="observationTypes.length > observations.length"
|
||||||
|
ng-click="model.insert()">
|
||||||
|
</vn-icon-button>
|
||||||
|
</vn-one>
|
||||||
|
</vn-card>
|
||||||
|
<vn-button-bar>
|
||||||
|
<vn-submit
|
||||||
|
disabled="!watcher.dataChanged()"
|
||||||
|
label="Save">
|
||||||
|
</vn-submit>
|
||||||
|
<!-- # #2680 Undo changes button bugs -->
|
||||||
|
<!-- <vn-button
|
||||||
|
class="cancel"
|
||||||
|
label="Undo changes"
|
||||||
|
disabled="!watcher.dataChanged()"
|
||||||
|
ng-click="watcher.loadOriginalData()">
|
||||||
|
</vn-button> -->
|
||||||
|
</vn-button-bar>
|
||||||
|
</form>
|
|
@ -0,0 +1,20 @@
|
||||||
|
import ngModule from '../module';
|
||||||
|
import Section from 'salix/components/section';
|
||||||
|
|
||||||
|
class Controller extends Section {
|
||||||
|
onSubmit() {
|
||||||
|
this.$.watcher.check();
|
||||||
|
this.$.model.save().then(() => {
|
||||||
|
this.$.watcher.notifySaved();
|
||||||
|
this.$.watcher.updateOriginalData();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ngModule.vnComponent('vnEntryObservation', {
|
||||||
|
template: require('./index.html'),
|
||||||
|
controller: Controller,
|
||||||
|
bindings: {
|
||||||
|
entry: '<'
|
||||||
|
}
|
||||||
|
});
|
|
@ -12,6 +12,7 @@
|
||||||
"card": [
|
"card": [
|
||||||
{"state": "entry.card.basicData", "icon": "settings"},
|
{"state": "entry.card.basicData", "icon": "settings"},
|
||||||
{"state": "entry.card.buy", "icon": "icon-lines"},
|
{"state": "entry.card.buy", "icon": "icon-lines"},
|
||||||
|
{"state": "entry.card.observation", "icon": "insert_drive_file"},
|
||||||
{"state": "entry.card.log", "icon": "history"}
|
{"state": "entry.card.log", "icon": "history"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -61,6 +62,14 @@
|
||||||
"params": {
|
"params": {
|
||||||
"entry": "$ctrl.entry"
|
"entry": "$ctrl.entry"
|
||||||
}
|
}
|
||||||
|
},{
|
||||||
|
"url": "/observation",
|
||||||
|
"state": "entry.card.observation",
|
||||||
|
"component": "vn-entry-observation",
|
||||||
|
"description": "Notes",
|
||||||
|
"params": {
|
||||||
|
"entry": "$ctrl.entry"
|
||||||
|
}
|
||||||
},{
|
},{
|
||||||
"url" : "/log",
|
"url" : "/log",
|
||||||
"state": "entry.card.log",
|
"state": "entry.card.log",
|
||||||
|
|
Loading…
Reference in New Issue