]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10450 Add submitter column in background tasks
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>
Wed, 6 Jun 2018 14:52:41 +0000 (16:52 +0200)
committerSonarTech <sonartech@sonarsource.com>
Fri, 8 Jun 2018 18:20:51 +0000 (20:20 +0200)
server/sonar-web/src/main/js/apps/background-tasks/components/Task.tsx
server/sonar-web/src/main/js/apps/background-tasks/components/TaskSubmitter.tsx [new file with mode: 0644]
server/sonar-web/src/main/js/apps/background-tasks/components/Tasks.js
server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/ScannerContext-test.tsx
server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/Stacktrace-test.tsx
server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/Task-test.tsx
server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/TaskComponent-test.tsx
server/sonar-web/src/main/js/apps/background-tasks/components/__tests__/__snapshots__/Task-test.tsx.snap
server/sonar-web/src/main/js/apps/background-tasks/types.ts
sonar-core/src/main/resources/org/sonar/l10n/core.properties

index 79875d311a81af447305c3cc57afd095dcd2d4ca..aec464679312fa5dfbf8b2a3fb5f3666505ba186 100644 (file)
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import * as React from 'react';
-import TaskStatus from './TaskStatus';
+import TaskActions from './TaskActions';
 import TaskComponent from './TaskComponent';
-import TaskId from './TaskId';
+import TaskExecutionTime from './TaskExecutionTime';
 import TaskDay from './TaskDay';
 import TaskDate from './TaskDate';
-import TaskExecutionTime from './TaskExecutionTime';
-import TaskActions from './TaskActions';
+import TaskId from './TaskId';
+import TaskStatus from './TaskStatus';
+import TaskSubmitter from './TaskSubmitter';
 import { Task as ITask } from '../types';
 
 interface Props {
@@ -43,19 +44,20 @@ export default function Task(props: Props) {
       <TaskStatus status={task.status} />
       <TaskComponent task={task} />
       <TaskId id={task.id} />
+      <TaskSubmitter submitter={task.submitterLogin} />
       <TaskDay
-        submittedAt={task.submittedAt}
         prevSubmittedAt={previousTask && previousTask.submittedAt}
+        submittedAt={task.submittedAt}
       />
       <TaskDate date={task.submittedAt} />
-      <TaskDate date={task.startedAt} baseDate={task.submittedAt} />
-      <TaskDate date={task.executedAt} baseDate={task.submittedAt} />
+      <TaskDate baseDate={task.submittedAt} date={task.startedAt} />
+      <TaskDate baseDate={task.submittedAt} date={task.executedAt} />
       <TaskExecutionTime ms={task.executionTimeMs} />
       <TaskActions
         component={component}
-        task={task}
-        onFilterTask={onFilterTask}
         onCancelTask={onCancelTask}
+        onFilterTask={onFilterTask}
+        task={task}
       />
     </tr>
   );
diff --git a/server/sonar-web/src/main/js/apps/background-tasks/components/TaskSubmitter.tsx b/server/sonar-web/src/main/js/apps/background-tasks/components/TaskSubmitter.tsx
new file mode 100644 (file)
index 0000000..378cc1e
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2018 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+import * as React from 'react';
+import { translate } from '../../../helpers/l10n';
+
+interface Props {
+  submitter?: string;
+}
+
+export default function TaskSubmitter({ submitter }: Props) {
+  return <td className="thin nowrap note">{submitter || translate('anonymous')}</td>;
+}
index af0696c6afadbc8858a30ac66db44e74093d4e03..37510fb0c9bf51fc585bc5ce5ab0aeb8cd0d23c8 100644 (file)
@@ -56,6 +56,7 @@ export default class Tasks extends React.PureComponent {
               <th>{translate('background_tasks.table.status')}</th>
               <th>{translate('background_tasks.table.task')}</th>
               <th>{translate('background_tasks.table.id')}</th>
+              <th className="text-right">{translate('background_tasks.table.submitter')}</th>
               <th>&nbsp;</th>
               <th className="text-right">{translate('background_tasks.table.submitted')}</th>
               <th className="text-right">{translate('background_tasks.table.started')}</th>
@@ -67,13 +68,13 @@ export default class Tasks extends React.PureComponent {
           <tbody>
             {tasks.map((task, index, tasks) => (
               <Task
-                key={task.id}
-                task={task}
-                tasks={tasks}
                 component={component}
+                key={task.id}
                 onCancelTask={onCancelTask}
                 onFilterTask={onFilterTask}
                 previousTask={index > 0 ? tasks[index - 1] : undefined}
+                task={task}
+                tasks={tasks}
               />
             ))}
           </tbody>
index 12bd9297176754ef1f0a74f96fce4d919f977760..cb3de25e5ef7d8e71cb29e3b234ce9406de89fe4 100644 (file)
@@ -36,6 +36,7 @@ const task = {
   status: 'PENDING',
   id: '123',
   submittedAt: '2017-01-01',
+  submitterLogin: 'yoda',
   type: 'REPORT'
 };
 
index 8b8a8af5e1db2ccbfa251275877b6da6c9afeaee..0a5826e47506590cc30c0edff4bde3bac562d9b6 100644 (file)
@@ -36,6 +36,7 @@ const task = {
   status: 'PENDING',
   id: '123',
   submittedAt: '2017-01-01',
+  submitterLogin: 'yoda',
   type: 'REPORT'
 };
 
index 68217c536ad5a1cbd8fdf64368dc0b36af2c7ade..9ff179bbe1796a86413364cf3271d7d64c938fad 100644 (file)
@@ -32,6 +32,7 @@ it('renders', () => {
           status: 'PENDING',
           id: '123',
           submittedAt: '2017-01-01',
+          submitterLogin: 'yoda',
           type: 'REPORT'
         }}
       />
index ad89c600812324231b79def48ef860f3d7853069..ba65497fc9233df84c50ea5bd3f9b652dc29451a 100644 (file)
@@ -29,6 +29,7 @@ const TASK = {
   organization: 'org',
   status: 'PENDING',
   submittedAt: '2017-01-01',
+  submitterLogin: 'yoda',
   type: 'REPORT'
 };
 
index 36c6d8c522f9362bfb4c4949464316eddcfd670e..0fffe27edc9d18e59fcdcb5141fa11299b9eaef4 100644 (file)
@@ -12,6 +12,7 @@ exports[`renders 1`] = `
         "id": "123",
         "status": "PENDING",
         "submittedAt": "2017-01-01",
+        "submitterLogin": "yoda",
         "type": "REPORT",
       }
     }
@@ -19,6 +20,9 @@ exports[`renders 1`] = `
   <TaskId
     id="123"
   />
+  <TaskSubmitter
+    submitter="yoda"
+  />
   <TaskDay
     submittedAt="2017-01-01"
   />
@@ -41,6 +45,7 @@ exports[`renders 1`] = `
         "id": "123",
         "status": "PENDING",
         "submittedAt": "2017-01-01",
+        "submitterLogin": "yoda",
         "type": "REPORT",
       }
     }
index 239c4581d61a188327bebc86f16c22deb42c6c20..220240365e5fd2f23eaae682d6257c316da9702a 100644 (file)
@@ -34,5 +34,6 @@ export interface Task {
   startedAt?: string;
   status: string;
   submittedAt: string;
+  submitterLogin?: string;
   type: string;
 }
index 5f7d150df9947bfdca179d983a53eace9246d122..a8fb7a714777c9c320404c515768fd17a329fc5d 100644 (file)
@@ -12,6 +12,7 @@ admin=Admin
 apply=Apply
 all=All
 and=And
+anonymous=Anonymous
 any=Any
 ascending=Ascending
 assignee=Assignee
@@ -2237,6 +2238,7 @@ background_tasks.table.status=Status
 background_tasks.table.task=Task
 background_tasks.table.id=ID
 background_tasks.table.submitted=Submitted
+background_tasks.table.submitter=Submitter
 background_tasks.table.started=Started
 background_tasks.table.finished=Finished
 background_tasks.table.duration=Duration