You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by dm...@apache.org on 2018/02/05 18:15:58 UTC

aurora git commit: Show cron job preview when no active tasks.

Repository: aurora
Updated Branches:
  refs/heads/master 7f89f55f3 -> 39337c3ee


Show cron job preview when no active tasks.

Reviewed at https://reviews.apache.org/r/65501/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/39337c3e
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/39337c3e
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/39337c3e

Branch: refs/heads/master
Commit: 39337c3ee8eadff5e27212bca55b1195600a3411
Parents: 7f89f55
Author: David McLaughlin <da...@dmclaughlin.com>
Authored: Mon Feb 5 10:13:01 2018 -0800
Committer: David McLaughlin <da...@dmclaughlin.com>
Committed: Mon Feb 5 10:13:01 2018 -0800

----------------------------------------------------------------------
 ui/src/main/js/components/CronJobPreview.js           | 13 +++++++++++++
 ui/src/main/js/components/JobStatus.js                |  8 +++++++-
 ui/src/main/js/components/__tests__/JobStatus-test.js |  5 ++++-
 ui/src/main/sass/components/_job-page.scss            |  6 +++++-
 4 files changed, 29 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/39337c3e/ui/src/main/js/components/CronJobPreview.js
----------------------------------------------------------------------
diff --git a/ui/src/main/js/components/CronJobPreview.js b/ui/src/main/js/components/CronJobPreview.js
new file mode 100644
index 0000000..2bc36cf
--- /dev/null
+++ b/ui/src/main/js/components/CronJobPreview.js
@@ -0,0 +1,13 @@
+import React from 'react';
+import moment from 'moment';
+
+import { RelativeTime } from 'components/Time';
+
+export default function CronJobPreview({ cronJob }) {
+  return (<div className='cron-job-preview'>
+    <strong>Cron job</strong>, next run will be at <span>
+      {moment(cronJob.nextCronRunMs).utc().format('MMMM Do YYYY, h:mm:ss a')} UTC (
+      <RelativeTime ts={cronJob.nextCronRunMs} />)
+    </span>
+  </div>);
+}

http://git-wip-us.apache.org/repos/asf/aurora/blob/39337c3e/ui/src/main/js/components/JobStatus.js
----------------------------------------------------------------------
diff --git a/ui/src/main/js/components/JobStatus.js b/ui/src/main/js/components/JobStatus.js
index 14f3538..8a81e69 100644
--- a/ui/src/main/js/components/JobStatus.js
+++ b/ui/src/main/js/components/JobStatus.js
@@ -1,5 +1,6 @@
 import React from 'react';
 
+import CronJobPreview from 'components/CronJobPreview';
 import JobConfig from 'components/JobConfig';
 import PanelGroup from 'components/Layout';
 import Tabs, { Tab } from 'components/Tabs';
@@ -17,6 +18,11 @@ export default function ({
   tasks }) {
   const activeTasks = sort(tasks.filter(isActive), (t) => t.assignedTask.instanceId);
   const numberConfigs = isNully(cronJob) ? (isNully(configGroups) ? '' : configGroups.length) : 1;
+
+  const taskView = (activeTasks.length === 0 && !isNully(cronJob))
+    ? <CronJobPreview cronJob={cronJob} />
+    : <TaskList pendingReasons={pendingReasons} tasks={activeTasks} />;
+
   return (<Tab id='status' name={`Active Tasks (${activeTasks.length})`}>
     <PanelGroup>
       <Tabs
@@ -24,7 +30,7 @@ export default function ({
         className='task-status-tabs'
         onChange={onTaskViewChange}>
         <Tab icon='th-list' id='tasks' name='Tasks'>
-          <TaskList pendingReasons={pendingReasons} tasks={activeTasks} />
+          {taskView}
         </Tab>
         <Tab icon='info-sign' id='config' name={`Configuration (${numberConfigs})`}>
           <JobConfig cronJob={cronJob} groups={configGroups} />

http://git-wip-us.apache.org/repos/asf/aurora/blob/39337c3e/ui/src/main/js/components/__tests__/JobStatus-test.js
----------------------------------------------------------------------
diff --git a/ui/src/main/js/components/__tests__/JobStatus-test.js b/ui/src/main/js/components/__tests__/JobStatus-test.js
index 78eaab4..b97e6b0 100644
--- a/ui/src/main/js/components/__tests__/JobStatus-test.js
+++ b/ui/src/main/js/components/__tests__/JobStatus-test.js
@@ -1,6 +1,7 @@
 import React from 'react';
 import { shallow } from 'enzyme';
 
+import CronJobPreview from '../CronJobPreview';
 import JobStatus from '../JobStatus';
 import TaskList from '../TaskList';
 import { Tab } from '../Tabs';
@@ -31,7 +32,9 @@ describe('JobStatus', () => {
   });
 
   it('Should show one configuration when there is a cron job', () => {
-    const el = shallow(JobStatus({cronJob: {}, queryParams: {}, tasks: []}));
+    const cronJob = {};
+    const el = shallow(JobStatus({cronJob: cronJob, queryParams: {}, tasks: []}));
+    expect(el.contains(<CronJobPreview cronJob={cronJob} />)).toBe(true);
     expect(el.find(Tab).someWhere((t) => t.props().name === 'Configuration (1)')).toBe(true);
   });
 });

http://git-wip-us.apache.org/repos/asf/aurora/blob/39337c3e/ui/src/main/sass/components/_job-page.scss
----------------------------------------------------------------------
diff --git a/ui/src/main/sass/components/_job-page.scss b/ui/src/main/sass/components/_job-page.scss
index 41e9518..23fe3c4 100644
--- a/ui/src/main/sass/components/_job-page.scss
+++ b/ui/src/main/sass/components/_job-page.scss
@@ -1,4 +1,8 @@
 .job-page {
+  .cron-job-preview {
+    padding: 15px;
+  }
+
   .job-overview {
     .tab-navigation {
       background-color: rgba(0, 0, 0, 0.01);
@@ -84,7 +88,7 @@
       text-transform: uppercase;
     }
 
-    th, td {
+    td {
       word-break: break-word;
     }
   }