* chore(project): install prettier and lint-staged * chore(project): apply prettier to html too * chore(project): git ignore eslintcache * chore(project): add a comment about format script * chore(prettier): update printWidth * chore(prettier): remove useTabs option * chore(prettier): add HTML validation * refactor(prettier): fix closing tags * feat(prettier): define angular parser for html templates * style(prettier): run prettier on codebase Co-authored-by: Anthony Lapenna <lapenna.anthony@gmail.com>
67 lines
2.0 KiB
JavaScript
67 lines
2.0 KiB
JavaScript
angular.module('portainer.app').controller('StackDuplicationFormController', [
|
|
'Notifications',
|
|
function StackDuplicationFormController(Notifications) {
|
|
var ctrl = this;
|
|
|
|
ctrl.state = {
|
|
duplicationInProgress: false,
|
|
migrationInProgress: false,
|
|
};
|
|
|
|
ctrl.formValues = {
|
|
endpoint: null,
|
|
newName: '',
|
|
};
|
|
|
|
ctrl.isFormValidForDuplication = isFormValidForDuplication;
|
|
ctrl.isFormValidForMigration = isFormValidForMigration;
|
|
ctrl.duplicateStack = duplicateStack;
|
|
ctrl.migrateStack = migrateStack;
|
|
ctrl.isMigrationButtonDisabled = isMigrationButtonDisabled;
|
|
|
|
function isFormValidForMigration() {
|
|
return ctrl.formValues.endpoint && ctrl.formValues.endpoint.Id;
|
|
}
|
|
|
|
function isFormValidForDuplication() {
|
|
return isFormValidForMigration() && ctrl.formValues.newName;
|
|
}
|
|
|
|
function duplicateStack() {
|
|
if (!ctrl.formValues.newName) {
|
|
Notifications.error('Failure', null, 'Stack name is required for duplication');
|
|
return;
|
|
}
|
|
ctrl.state.duplicationInProgress = true;
|
|
ctrl
|
|
.onDuplicate({
|
|
endpointId: ctrl.formValues.endpoint.Id,
|
|
name: ctrl.formValues.newName ? ctrl.formValues.newName : undefined,
|
|
})
|
|
.finally(function () {
|
|
ctrl.state.duplicationInProgress = false;
|
|
});
|
|
}
|
|
|
|
function migrateStack() {
|
|
ctrl.state.migrationInProgress = true;
|
|
ctrl
|
|
.onMigrate({
|
|
endpointId: ctrl.formValues.endpoint.Id,
|
|
name: ctrl.formValues.newName ? ctrl.formValues.newName : undefined,
|
|
})
|
|
.finally(function () {
|
|
ctrl.state.migrationInProgress = false;
|
|
});
|
|
}
|
|
|
|
function isMigrationButtonDisabled() {
|
|
return !ctrl.isFormValidForMigration() || ctrl.state.duplicationInProgress || ctrl.state.migrationInProgress || isTargetEndpointAndCurrentEquals();
|
|
}
|
|
|
|
function isTargetEndpointAndCurrentEquals() {
|
|
return ctrl.formValues.endpoint && ctrl.formValues.endpoint.Id === ctrl.currentEndpointId;
|
|
}
|
|
},
|
|
]);
|