mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-08-01 04:01:01 +00:00
make transitions configurable in settings
This commit is contained in:
parent
832770521b
commit
f4b22cdfbc
5 changed files with 68 additions and 15 deletions
|
|
@ -3,7 +3,8 @@
|
|||
<md-dialog-content layout-padding>
|
||||
<p><strong ng-if="vm.type==='OPEN'">Open</strong>
|
||||
<strong ng-if="vm.type==='IN_PROGRESS'">In progress</strong>
|
||||
<strong ng-if="vm.type==='DONE'">Done</strong>: Do you want to update the task '<strong>{{ vm.task.title }}</strong>' on jira?</p>
|
||||
<strong ng-if="vm.type==='DONE'">Done</strong>: Do you want to update the task '<strong>{{ vm.task.title }}</strong>' on jira?
|
||||
</p>
|
||||
|
||||
<p>Move to:</p>
|
||||
<md-radio-group ng-model="vm.chosenTransitionIndex">
|
||||
|
|
@ -23,7 +24,7 @@
|
|||
This will be set then always, when a task is changed to
|
||||
<strong ng-if="vm.type==='OPEN'">open</strong>
|
||||
<strong ng-if="vm.type==='IN_PROGRESS'">in progress</strong>
|
||||
<strong ng-if="vm.type==='DONE'">done</strong>.
|
||||
<strong ng-if="vm.type==='DONE'">done</strong>. You can change that later in the project settings.
|
||||
</md-checkbox>
|
||||
</md-dialog-content>
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
if (!$localStorage.jiraSettings.transitions) {
|
||||
$localStorage.jiraSettings.transitions = {};
|
||||
}
|
||||
$localStorage.jiraSettings.transitions[type] = transition;
|
||||
$localStorage.jiraSettings.transitions[type] = transition.id;
|
||||
$localStorage.jiraSettings.allTransitions = transitions;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,14 +50,26 @@
|
|||
this.updateStatus = (task, type) => {
|
||||
if (task.originalKey && task.originalType === ISSUE_TYPE) {
|
||||
if ($localStorage.jiraSettings.transitions && $localStorage.jiraSettings.transitions[type]) {
|
||||
return this.transitionIssue(task.originalId, $localStorage.jiraSettings.transitions[type]);
|
||||
if ($localStorage.jiraSettings.transitions[type] === 'DO_NOT') {
|
||||
return $q.reject('DO_NOT chosen');
|
||||
} else {
|
||||
console.log($localStorage.jiraSettings.transitions[type]);
|
||||
|
||||
return this.transitionIssue(task.originalId, {
|
||||
id: $localStorage.jiraSettings.transitions[type]
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// TODO the promise handling and setting up should be better
|
||||
let defer = $q.defer();
|
||||
this.getTransitionsForIssue(task).then((response) => {
|
||||
let transitions = response.response.transitions;
|
||||
return Dialogs('JIRA_SET_IN_PROGRESS', { transitions, task, type }).then((transition) => {
|
||||
defer.resolve(transition);
|
||||
this.transitionIssue(task.originalId, transition);
|
||||
});
|
||||
});
|
||||
return defer.promise;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -74,37 +74,77 @@
|
|||
|
||||
<section ng-if="vm.IS_ELECTRON">
|
||||
<h2 class="md-title">Jira-Setup for Task Suggestion</h2>
|
||||
<form ng-submit="vm.saveJiraSettings(vm.jiraSettings)">
|
||||
<form>
|
||||
<md-input-container class="md-block"
|
||||
flex-gt-sm>
|
||||
<label>Host</label>
|
||||
<input type="text"
|
||||
ng-model="vm.jiraSettings.host">
|
||||
ng-model="vm.r.jiraSettings.host">
|
||||
</md-input-container>
|
||||
<md-input-container class="md-block"
|
||||
flex-gt-sm>
|
||||
<label>Username</label>
|
||||
<input type="text"
|
||||
ng-model="vm.jiraSettings.userName">
|
||||
ng-model="vm.r.jiraSettings.userName">
|
||||
</md-input-container>
|
||||
<md-input-container class="md-block"
|
||||
flex-gt-sm>
|
||||
<label>Password</label>
|
||||
<input type="password"
|
||||
ng-model="vm.jiraSettings.password">
|
||||
ng-model="vm.r.jiraSettings.password">
|
||||
</md-input-container>
|
||||
<md-input-container class="md-block"
|
||||
flex-gt-sm>
|
||||
<label>JQL Query for Tasks</label>
|
||||
<input type="text"
|
||||
ng-model="vm.jiraSettings.jqlQuery">
|
||||
<div class="hint">e.g.: assignee = "{{ vm.jiraSettings.userName }}" AND resolution = Unresolved ORDER BY updatedDate DESC</div>
|
||||
ng-model="vm.r.jiraSettings.jqlQuery">
|
||||
<div class="hint">e.g.: assignee = "{{ vm.r.jiraSettings.userName }}" AND resolution = Unresolved ORDER BY updatedDate DESC</div>
|
||||
</md-input-container>
|
||||
|
||||
|
||||
<md-button type="submit"
|
||||
class="md-raised md-primary">Save Config
|
||||
</md-button>
|
||||
<section ng-if="vm.r.jiraSettings.allTransitions">
|
||||
<h3 class="md-subtitle">Default Transitions</h3>
|
||||
<p>Jira enables a wide configuration of transitions usually coming into action as different columns on your jira agile board. That's why we can't make assumptions about where and when to transition your tasks and you need to set it manually.</p>
|
||||
<md-input-container class="md-block"
|
||||
flex-gt-sm>
|
||||
<label>Default transition for OPEN</label>
|
||||
<md-select ng-model="vm.r.jiraSettings.transitions.OPEN"
|
||||
arial-label="Select default transition for OPEN">
|
||||
<md-option><em>Always ask</em></md-option>
|
||||
<md-option ng-value="'DO_NOT'"><em>Don't transition</em></md-option>
|
||||
<md-option ng-repeat="jiraTransition in vm.r.jiraSettings.allTransitions"
|
||||
ng-value="jiraTransition.id">
|
||||
{{jiraTransition.id}} - {{jiraTransition.name}}
|
||||
</md-option>
|
||||
</md-select>
|
||||
</md-input-container>
|
||||
<md-input-container class="md-block"
|
||||
flex-gt-sm>
|
||||
<label>Default transition for IN_PROGRESS</label>
|
||||
<md-select ng-model="vm.r.jiraSettings.transitions.IN_PROGRESS"
|
||||
arial-label="Select default transition for IN_PROGRESS">
|
||||
<md-option><em>Always ask</em></md-option>
|
||||
<md-option ng-value="'DO_NOT'"><em>Don't transition</em></md-option>
|
||||
<md-option ng-repeat="jiraTransition in vm.r.jiraSettings.allTransitions"
|
||||
ng-value="jiraTransition.id">
|
||||
{{jiraTransition.id}} - {{jiraTransition.name}}
|
||||
</md-option>
|
||||
</md-select>
|
||||
</md-input-container>
|
||||
<md-input-container class="md-block"
|
||||
flex-gt-sm>
|
||||
<label>Default transition for DONE</label>
|
||||
<md-select ng-model="vm.r.jiraSettings.transitions.DONE"
|
||||
arial-label="Select default transition for DONE">
|
||||
<md-option><em>Always ask</em></md-option>
|
||||
<md-option ng-value="'DO_NOT'"><em>Don't transition</em></md-option>
|
||||
<md-option ng-repeat="jiraTransition in vm.r.jiraSettings.allTransitions"
|
||||
ng-value="jiraTransition.id">
|
||||
{{jiraTransition.id}} - {{jiraTransition.name}}
|
||||
</md-option>
|
||||
</md-select>
|
||||
</md-input-container>
|
||||
</section>
|
||||
</form>
|
||||
|
||||
<md-divider></md-divider>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
.controller('SettingsCtrl', SettingsCtrl);
|
||||
|
||||
/* @ngInject */
|
||||
function SettingsCtrl($localStorage, $rootScope, $scope, Projects, Dialogs, DEFAULT_THEME, THEMES, IS_ELECTRON, SimpleToast, $mdDialog) {
|
||||
function SettingsCtrl($localStorage, $rootScope, $scope, Projects, Dialogs, DEFAULT_THEME, THEMES, IS_ELECTRON, SimpleToast, $mdDialog, $window) {
|
||||
let vm = this;
|
||||
|
||||
vm.IS_ELECTRON = IS_ELECTRON;
|
||||
|
|
@ -22,7 +22,6 @@
|
|||
function init() {
|
||||
vm.r = $rootScope.r;
|
||||
vm.allProjects = Projects.getList();
|
||||
vm.jiraSettings = angular.copy($rootScope.r.jiraSettings);
|
||||
|
||||
$rootScope.r.theme = $localStorage.theme || DEFAULT_THEME;
|
||||
vm.isDarkTheme = $rootScope.r.theme && $rootScope.r.theme.indexOf('dark') > -1;
|
||||
|
|
@ -93,6 +92,7 @@
|
|||
// theme stuff
|
||||
vm.themes = THEMES;
|
||||
|
||||
// TODO that's kind of bad
|
||||
// update on global model changes
|
||||
$rootScope.$watch('r', () => {
|
||||
init();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue