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": {
|
||||
"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-popover';
|
||||
import './card';
|
||||
import './note';
|
||||
import './summary';
|
||||
import './log';
|
||||
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": [
|
||||
{"state": "entry.card.basicData", "icon": "settings"},
|
||||
{"state": "entry.card.buy", "icon": "icon-lines"},
|
||||
{"state": "entry.card.observation", "icon": "insert_drive_file"},
|
||||
{"state": "entry.card.log", "icon": "history"}
|
||||
]
|
||||
},
|
||||
|
@ -61,7 +62,15 @@
|
|||
"params": {
|
||||
"entry": "$ctrl.entry"
|
||||
}
|
||||
}, {
|
||||
},{
|
||||
"url": "/observation",
|
||||
"state": "entry.card.observation",
|
||||
"component": "vn-entry-observation",
|
||||
"description": "Notes",
|
||||
"params": {
|
||||
"entry": "$ctrl.entry"
|
||||
}
|
||||
},{
|
||||
"url" : "/log",
|
||||
"state": "entry.card.log",
|
||||
"component": "vn-entry-log",
|
||||
|
|
Loading…
Reference in New Issue