From 565fa78e59ca34658dd74afd4a245a8173dbfbfa Mon Sep 17 00:00:00 2001 From: Johannes Millan Date: Sat, 14 Jan 2017 20:13:24 +0100 Subject: [PATCH] add option to update task in jira if it is updated locally --- app/scripts/_app.js | 1 + .../inline-markdown/inline-markdown-d.js | 6 ++++- app/scripts/main/global-services/jira-s.js | 24 +++++++++++++++++++ app/scripts/routes/settings/settings-c.html | 5 +++- app/scripts/task-list/task-list-d.html | 2 +- app/scripts/task-list/task-list-d.js | 4 ++++ 6 files changed, 39 insertions(+), 3 deletions(-) diff --git a/app/scripts/_app.js b/app/scripts/_app.js index 9e548172b8..636d4fecbc 100644 --- a/app/scripts/_app.js +++ b/app/scripts/_app.js @@ -57,6 +57,7 @@ isFirstLogin: true, isWorklogEnabled: true, isAutoWorklog: false, + isUpdateIssueFromLocal: false, isAddWorklogOnSubTaskDone: true, defaultTransitionInProgress: undefined, defaultTransitionDone: undefined, diff --git a/app/scripts/inline-markdown/inline-markdown-d.js b/app/scripts/inline-markdown/inline-markdown-d.js index 6c4b41e532..8624729096 100644 --- a/app/scripts/inline-markdown/inline-markdown-d.js +++ b/app/scripts/inline-markdown/inline-markdown-d.js @@ -21,7 +21,8 @@ controllerAs: 'vm', restrict: 'E', scope: { - ngModel: '=' + ngModel: '=', + onChanged: '&' } }; } @@ -50,6 +51,9 @@ //previewEl.css('height', textareaEl[0].offsetHeight); //previewEl[0].height = textareaEl[0].offsetHeight; vm.showEdit = false; + if (angular.isFunction(vm.onChanged)) { + vm.onChanged(); + } }; } diff --git a/app/scripts/main/global-services/jira-s.js b/app/scripts/main/global-services/jira-s.js index 196e34cd94..14a3243259 100644 --- a/app/scripts/main/global-services/jira-s.js +++ b/app/scripts/main/global-services/jira-s.js @@ -168,6 +168,30 @@ } }; + this.updateIssueDescription = (task) => { + if (!$localStorage.jiraSettings.isUpdateIssueFromLocal) { + return $q.reject('Jira: jiraSettings.isUpdateIssueFromLocal is deactivated'); + } + + if (task.originalKey && task.notes) { + let request = { + config: $localStorage.jiraSettings, + apiMethod: 'updateIssue', + arguments: [task.originalKey, { + fields: { + description: task.notes + } + }] + }; + return this.sendRequest(request).then(() => { + SimpleToast('Jira: Description updated for ' + task.originalKey); + }); + } else { + SimpleToast('Jira: Not enough parameters for updateIssueDescription.'); + return $q.reject('Jira: Not enough parameters for updateIssueDescription.'); + } + }; + this.checkUpdatesForTicket = (task) => { let defer = $q.defer(); if (task && task.originalKey) { diff --git a/app/scripts/routes/settings/settings-c.html b/app/scripts/routes/settings/settings-c.html index dbe8a2a3fb..c815a8551c 100644 --- a/app/scripts/routes/settings/settings-c.html +++ b/app/scripts/routes/settings/settings-c.html @@ -94,7 +94,10 @@ ng-model="vm.r.jiraSettings.jqlQuery">
e.g.: assignee = "{{ vm.r.jiraSettings.userName }}" AND resolution = Unresolved ORDER BY updatedDate DESC
- + + Update issue description on jira if task notes are updated +

Worklog

diff --git a/app/scripts/task-list/task-list-d.html b/app/scripts/task-list/task-list-d.html index 1b5274d097..9bfb6dc06e 100644 --- a/app/scripts/task-list/task-list-d.html +++ b/app/scripts/task-list/task-list-d.html @@ -171,7 +171,7 @@
Notes
- +
diff --git a/app/scripts/task-list/task-list-d.js b/app/scripts/task-list/task-list-d.js index e73c521fd3..94044604de 100644 --- a/app/scripts/task-list/task-list-d.js +++ b/app/scripts/task-list/task-list-d.js @@ -159,6 +159,10 @@ ShortSyntax(task); }; + vm.onTaskNotesChanged = (task) => { + Jira.updateIssueDescription(task); + }; + vm.onTaskDone = (task) => { if (task.isDone) { Jira.addWorklog(task);