45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
import Download from './Download';
|
|
|
|
export default class {
|
|
constructor() {
|
|
this.downloadsCount = 0;
|
|
|
|
this.addDownloads(FleetCart.data['product.downloads']);
|
|
|
|
if (this.downloadsCount === 0) {
|
|
this.addDownload();
|
|
}
|
|
|
|
this.attachEventListeners();
|
|
this.makeDownloadsSortable();
|
|
}
|
|
|
|
addDownloads(downloads) {
|
|
for (let attributes of downloads) {
|
|
this.addDownload(attributes);
|
|
}
|
|
}
|
|
|
|
addDownload(attributes = {}) {
|
|
let download = new Download({ download: attributes });
|
|
|
|
$('#downloads-wrapper').append(download.render());
|
|
|
|
this.downloadsCount++;
|
|
window.admin.tooltip();
|
|
}
|
|
|
|
attachEventListeners() {
|
|
$('#add-new-file').on('click', () => {
|
|
this.addDownload();
|
|
});
|
|
}
|
|
|
|
makeDownloadsSortable() {
|
|
Sortable.create(document.getElementById('downloads-wrapper'), {
|
|
handle: '.drag-icon',
|
|
animation: 150,
|
|
});
|
|
}
|
|
}
|