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 <[email protected]> Authored: Mon Feb 5 10:13:01 2018 -0800 Committer: David McLaughlin <[email protected]> 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; } }
