61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
|
import ngModule from '../../module';
|
||
|
import Section from 'salix/components/section';
|
||
|
|
||
|
class Controller extends Section {
|
||
|
get checked() {
|
||
|
const roadmaps = this.$.model.data || [];
|
||
|
const checkedRoadmap = [];
|
||
|
for (let roadmap of roadmaps) {
|
||
|
if (roadmap.checked)
|
||
|
checkedRoadmap.push(roadmap);
|
||
|
}
|
||
|
|
||
|
return checkedRoadmap;
|
||
|
}
|
||
|
|
||
|
get totalChecked() {
|
||
|
return this.checked.length;
|
||
|
}
|
||
|
|
||
|
preview(roadmap) {
|
||
|
this.roadmapSelected = roadmap;
|
||
|
this.$.summary.show();
|
||
|
}
|
||
|
|
||
|
openClonationDialog() {
|
||
|
this.$.clonationDialog.show();
|
||
|
this.etd = Date.vnNew();
|
||
|
}
|
||
|
|
||
|
cloneSelectedRoadmaps() {
|
||
|
try {
|
||
|
if (!this.etd)
|
||
|
throw new Error(`The date can't be empty`);
|
||
|
|
||
|
const roadmapsIds = [];
|
||
|
for (let roadmap of this.checked)
|
||
|
roadmapsIds.push(roadmap.id);
|
||
|
|
||
|
return this.$http.post('Roadmaps/clone', {ids: roadmapsIds, etd: this.etd}).then(() => {
|
||
|
this.$.model.refresh();
|
||
|
this.vnApp.showSuccess(this.$t('Data saved!'));
|
||
|
});
|
||
|
} catch (e) {
|
||
|
this.vnApp.showError(this.$t(e.message));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
deleteRoadmaps() {
|
||
|
for (const roadmap of this.checked) {
|
||
|
this.$http.delete(`Roadmaps/${roadmap.id}`)
|
||
|
.then(() => this.$.model.refresh())
|
||
|
.then(() => this.vnApp.showSuccess(this.$t('Roadmaps removed')));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ngModule.vnComponent('vnRoadmapIndex', {
|
||
|
template: require('./index.html'),
|
||
|
controller: Controller
|
||
|
});
|