Files
backroad/app/portainer/components/custom-template-selector/custom-template-selector.controller.js

37 lines
1.1 KiB
JavaScript

class CustomTemplateSelectorController {
/* @ngInject */
constructor($async, CustomTemplateService, Notifications) {
Object.assign(this, { $async, CustomTemplateService, Notifications });
this.selectedTemplate = null;
this.templates = null;
}
async handleChangeTemplate(templateId) {
this.selectedTemplate = this.templates.find((t) => t.Id === templateId);
this.onChange(templateId, this.selectedTemplate);
}
$onChanges({ value }) {
if (value && value.currentValue && this.templates) {
this.handleChangeTemplate(value.currentValue);
}
}
$onInit() {
return this.$async(async () => {
try {
const templates = await this.CustomTemplateService.customTemplates(this.stackType);
this.templates = templates.map((template) => ({ ...template, label: `${template.Title} - ${template.Description}` }));
if (this.value) {
this.handleChangeTemplate(this.value);
}
} catch (err) {
this.Notifications.error('Failure', err, 'Unable to retrieve Custom Templates');
}
});
}
}
export default CustomTemplateSelectorController;