2019-09-15 14:16:32 +02:00
|
|
|
import { FieldView } from 'views/fields/field-view';
|
2016-06-05 16:49:00 +02:00
|
|
|
|
2017-01-31 07:50:28 +01:00
|
|
|
const FieldViewSelect = FieldView.extend({
|
2016-06-05 16:49:00 +02:00
|
|
|
readonly: true,
|
2016-07-17 13:30:38 +02:00
|
|
|
|
2019-08-18 10:17:09 +02:00
|
|
|
renderValue(value) {
|
2019-08-16 23:05:39 +02:00
|
|
|
return (
|
|
|
|
'<select>' +
|
|
|
|
value
|
|
|
|
.map(opt => {
|
|
|
|
return (
|
|
|
|
'<option ' +
|
|
|
|
'value="' +
|
|
|
|
_.escape(opt.id) +
|
|
|
|
'" ' +
|
|
|
|
(opt.selected ? 'selected ' : '') +
|
|
|
|
'>' +
|
|
|
|
_.escape(opt.value) +
|
|
|
|
'</option>'
|
|
|
|
);
|
|
|
|
})
|
|
|
|
.join('') +
|
|
|
|
'</select>'
|
|
|
|
);
|
2016-06-05 16:49:00 +02:00
|
|
|
},
|
|
|
|
|
2019-08-18 10:17:09 +02:00
|
|
|
render() {
|
2016-06-05 16:49:00 +02:00
|
|
|
FieldView.prototype.render.call(this);
|
|
|
|
this.valueEl.addClass('details__field-value--select');
|
2016-07-17 13:30:38 +02:00
|
|
|
this.valueEl.find('select:first').change(e => {
|
|
|
|
this.triggerChange({ val: e.target.value, field: this.model.name });
|
2016-06-05 16:49:00 +02:00
|
|
|
});
|
|
|
|
},
|
|
|
|
|
2019-08-18 10:17:09 +02:00
|
|
|
fieldLabelClick() {},
|
2016-06-05 16:49:00 +02:00
|
|
|
|
2019-08-18 10:17:09 +02:00
|
|
|
fieldValueClick() {},
|
2016-06-05 16:49:00 +02:00
|
|
|
|
2019-08-18 10:17:09 +02:00
|
|
|
edit() {},
|
2016-06-05 16:49:00 +02:00
|
|
|
|
2019-08-18 10:17:09 +02:00
|
|
|
startEdit() {},
|
2016-06-05 16:49:00 +02:00
|
|
|
|
2019-08-18 10:17:09 +02:00
|
|
|
endEdit(newVal, extra) {
|
2016-06-05 16:49:00 +02:00
|
|
|
if (!this.editing) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
delete this.input;
|
|
|
|
FieldView.prototype.endEdit.call(this, newVal, extra);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2019-09-15 14:16:32 +02:00
|
|
|
export { FieldViewSelect };
|