diff --git a/plugins/tasks/jira-connector/src/main/java/com/intellij/tasks/jira/JiraRepository.java b/plugins/tasks/jira-connector/src/main/java/com/intellij/tasks/jira/JiraRepository.java index b4fd16a09a37..1498bbf03714 100644 --- a/plugins/tasks/jira-connector/src/main/java/com/intellij/tasks/jira/JiraRepository.java +++ b/plugins/tasks/jira-connector/src/main/java/com/intellij/tasks/jira/JiraRepository.java @@ -216,12 +216,12 @@ public class JiraRepository extends BaseRepositoryImpl { } @Override - public void updateTimeSpent(final LocalTask task, final int timeSpentInMinutes, final String comment) throws Exception { + public void updateTimeSpent(final LocalTask task, final String timeSpent, final String comment) throws Exception { final HttpClient client = login(); checkVersion(client); PostMethod method = new PostMethod(getUrl() + "/rest/api/2/issue/" + task.getId() + "/worklog"); method.setRequestEntity( - new StringRequestEntity("{\"timeSpentSeconds\" : " + String.valueOf(calculateTimeSpent(timeSpentInMinutes)) + + new StringRequestEntity("{\"timeSpent\" : \"" + timeSpent + "\"" + (StringUtil.isNotEmpty(comment) ? ", \"comment\" : " + comment : "") + " }", "application/json", "UTF-8")); client.executeMethod(method); @@ -230,11 +230,6 @@ public class JiraRepository extends BaseRepositoryImpl { } } - private static long calculateTimeSpent(final int timeSpentInMinutes) { - int days = timeSpentInMinutes / 60 / 24; - return (days * 8 * 60 + timeSpentInMinutes % (60 * 24)) * 60; - } - private void checkVersion(final HttpClient client) throws Exception { GetMethod method = new GetMethod(getUrl() + "/rest/api/2/project"); client.executeMethod(method); diff --git a/plugins/tasks/tasks-api/src/com/intellij/tasks/TaskRepository.java b/plugins/tasks/tasks-api/src/com/intellij/tasks/TaskRepository.java index d7eb426149d9..8e81577fb3b4 100644 --- a/plugins/tasks/tasks-api/src/com/intellij/tasks/TaskRepository.java +++ b/plugins/tasks/tasks-api/src/com/intellij/tasks/TaskRepository.java @@ -194,7 +194,7 @@ public abstract class TaskRepository { return "{id} (e.g. FOO-001), {summary}, {number} (e.g. 001), {project} (e.g. FOO)"; } - public void updateTimeSpent(final LocalTask task, final int timeSpentInMinutes, final String comment) throws Exception { + public void updateTimeSpent(final LocalTask task, final String timeSpent, final String comment) throws Exception { throw new UnsupportedOperationException(); } diff --git a/plugins/tasks/tasks-core/src/com/intellij/tasks/youtrack/YouTrackRepository.java b/plugins/tasks/tasks-core/src/com/intellij/tasks/youtrack/YouTrackRepository.java index fa6f39c27b83..0382c4a82147 100644 --- a/plugins/tasks/tasks-core/src/com/intellij/tasks/youtrack/YouTrackRepository.java +++ b/plugins/tasks/tasks-core/src/com/intellij/tasks/youtrack/YouTrackRepository.java @@ -282,9 +282,9 @@ public class YouTrackRepository extends BaseRepositoryImpl { private static final Logger LOG = Logger.getInstance("#com.intellij.tasks.youtrack.YouTrackRepository"); @Override - public void updateTimeSpent(final LocalTask task, final int timeSpentInMinutes, final String comment) throws Exception { + public void updateTimeSpent(final LocalTask task, final String timeSpent, final String comment) throws Exception { checkVersion(); - final HttpMethod method = doREST("/rest/issue/execute/" + task.getId() + "?command=work+Today+" + timeSpentInMinutes + "m+" + comment, true); + final HttpMethod method = doREST("/rest/issue/execute/" + task.getId() + "?command=work+Today+" + timeSpent.replaceAll(" ", "+") + "+" + comment, true); if (method.getStatusCode() != 200) { InputStream stream = method.getResponseBodyAsStream(); String message = new SAXBuilder(false).build(stream).getRootElement().getText(); diff --git a/plugins/tasks/tasks-time-tracking/src/com/intellij/tasks/timeTracking/SendTimeTrackingInformationDialog.java b/plugins/tasks/tasks-time-tracking/src/com/intellij/tasks/timeTracking/SendTimeTrackingInformationDialog.java index e3296bb6a8ba..c0f2cc0a8965 100644 --- a/plugins/tasks/tasks-time-tracking/src/com/intellij/tasks/timeTracking/SendTimeTrackingInformationDialog.java +++ b/plugins/tasks/tasks-time-tracking/src/com/intellij/tasks/timeTracking/SendTimeTrackingInformationDialog.java @@ -104,7 +104,7 @@ public class SendTimeTrackingInformationDialog extends DialogWrapper { if (repository != null && repository.isSupported(TaskRepository.TIME_MANAGEMENT)) { try { - repository.updateTimeSpent(myTask, timeSpent, myCommentTextArea.getText()); + repository.updateTimeSpent(myTask, timeSpentText, myCommentTextArea.getText()); myTask.setLastPost(new Date()); } catch (Exception e1) {