FleetCart/Modules/Attribute/Resources/assets/admin/js/AttributeValues.js
2023-06-11 13:14:03 +01:00

48 lines
1.2 KiB
JavaScript

export default class {
constructor() {
this.attributeId = 0;
this.valuesCount = 0;
this.addOldValues(FleetCart.data['attribute.values']);
if (this.valuesCount === 0) {
this.addAttributeValue();
}
this.eventListeners();
this.sortable();
window.admin.removeSubmitButtonOffsetOn('#values');
}
addOldValues(values = {}) {
for (let value of values) {
this.addAttributeValue(value);
}
}
addAttributeValue(value = { id: '', value: '' }) {
let template = _.template($('#attribute-value-template').html());
let html = template({ valueId: this.valuesCount++, value });
$('#attribute-values').append(html);
window.admin.tooltip();
}
eventListeners() {
$('#add-new-value').on('click', () => this.addAttributeValue());
$('#attribute-values').on('click', '.delete-row', (e) => {
$(e.currentTarget).closest('tr').remove();
});
}
sortable() {
Sortable.create(document.getElementById('attribute-values'), {
handle: '.drag-icon',
animation: 150,
});
}
}