From 52a8935b20b7226555552bea3a83256303d133a0 Mon Sep 17 00:00:00 2001 From: Alex Corey Date: Tue, 4 Feb 2020 16:30:06 -0500 Subject: [PATCH 01/13] Adds WorkflowJobTemplate Add and Edit form and functionality. --- .../src/api/models/WorkflowJobTemplates.js | 31 ++- .../Template/TemplateList/TemplateList.jsx | 6 +- .../src/screens/Template/Templates.jsx | 89 ++++----- .../screens/Template/WorkflowJobTemplate.jsx | 153 ++++++++------- .../WorkflowJobTemplateAdd.jsx | 49 +++++ .../WorkflowJobTemplateAdd.test.jsx | 64 +++++++ .../Template/WorkflowJobTemplateAdd/index.js | 1 + .../WorkflowJobTemplateEdit.jsx | 76 ++++++++ .../WorkflowJobTemplateEdit.test.jsx | 97 ++++++++++ .../Template/WorkflowJobTemplateEdit/index.js | 1 + .../shared/WorkflowJobTemplateForm.jsx | 176 ++++++++++++++++++ .../shared/WorkflowJobTemplateForm.test.jsx | 137 ++++++++++++++ .../src/screens/Template/shared/index.js | 3 +- 13 files changed, 767 insertions(+), 116 deletions(-) create mode 100644 awx/ui_next/src/screens/Template/WorkflowJobTemplateAdd/WorkflowJobTemplateAdd.jsx create mode 100644 awx/ui_next/src/screens/Template/WorkflowJobTemplateAdd/WorkflowJobTemplateAdd.test.jsx create mode 100644 awx/ui_next/src/screens/Template/WorkflowJobTemplateAdd/index.js create mode 100644 awx/ui_next/src/screens/Template/WorkflowJobTemplateEdit/WorkflowJobTemplateEdit.jsx create mode 100644 awx/ui_next/src/screens/Template/WorkflowJobTemplateEdit/WorkflowJobTemplateEdit.test.jsx create mode 100644 awx/ui_next/src/screens/Template/WorkflowJobTemplateEdit/index.js create mode 100644 awx/ui_next/src/screens/Template/shared/WorkflowJobTemplateForm.jsx create mode 100644 awx/ui_next/src/screens/Template/shared/WorkflowJobTemplateForm.test.jsx diff --git a/awx/ui_next/src/api/models/WorkflowJobTemplates.js b/awx/ui_next/src/api/models/WorkflowJobTemplates.js index 691c444379..922d5cde00 100644 --- a/awx/ui_next/src/api/models/WorkflowJobTemplates.js +++ b/awx/ui_next/src/api/models/WorkflowJobTemplates.js @@ -6,6 +6,24 @@ class WorkflowJobTemplates extends Base { this.baseUrl = '/api/v2/workflow_job_templates/'; } + associateLabel(id, label, orgId) { + return this.http.post(`${this.baseUrl}${id}/labels/`, { + name: label.name, + organization: orgId, + }); + } + + createNode(id, data) { + return this.http.post(`${this.baseUrl}${id}/workflow_nodes/`, data); + } + + disassociateLabel(id, label) { + return this.http.post(`${this.baseUrl}${id}/labels/`, { + id: label.id, + disassociate: true, + }); + } + launch(id, data) { return this.http.post(`${this.baseUrl}${id}/launch/`, data); } @@ -20,17 +38,16 @@ class WorkflowJobTemplates extends Base { }); } + readScheduleList(id, params) { + return this.http.get(`${this.baseUrl}${id}/schedules/`, { + params + }); + } + readWebhookKey(id) { return this.http.get(`${this.baseUrl}${id}/webhook_key/`); } - createNode(id, data) { - return this.http.post(`${this.baseUrl}${id}/workflow_nodes/`, data); - } - - readScheduleList(id, params) { - return this.http.get(`${this.baseUrl}${id}/schedules/`, { params }); - } } export default WorkflowJobTemplates; diff --git a/awx/ui_next/src/screens/Template/TemplateList/TemplateList.jsx b/awx/ui_next/src/screens/Template/TemplateList/TemplateList.jsx index 717b1b5f89..913fcfb648 100644 --- a/awx/ui_next/src/screens/Template/TemplateList/TemplateList.jsx +++ b/awx/ui_next/src/screens/Template/TemplateList/TemplateList.jsx @@ -2,7 +2,7 @@ import React, { useEffect, useState, useCallback } from 'react'; import { useParams, useLocation } from 'react-router-dom'; import { withI18n } from '@lingui/react'; import { t } from '@lingui/macro'; -import { Card } from '@patternfly/react-core'; +import { Card, PageSection } from '@patternfly/react-core'; import { JobTemplatesAPI, @@ -141,7 +141,7 @@ function TemplateList({ i18n }) { ); return ( - <> + - + ); } diff --git a/awx/ui_next/src/screens/Template/Templates.jsx b/awx/ui_next/src/screens/Template/Templates.jsx index c8eb2f243e..456f8b3ca4 100644 --- a/awx/ui_next/src/screens/Template/Templates.jsx +++ b/awx/ui_next/src/screens/Template/Templates.jsx @@ -2,7 +2,6 @@ import React, { Component } from 'react'; import { withI18n } from '@lingui/react'; import { t } from '@lingui/macro'; import { Route, withRouter, Switch } from 'react-router-dom'; -import { PageSection } from '@patternfly/react-core'; import { Config } from '@contexts/Config'; import Breadcrumbs from '@components/Breadcrumbs/Breadcrumbs'; @@ -10,6 +9,7 @@ import { TemplateList } from './TemplateList'; import Template from './Template'; import WorkflowJobTemplate from './WorkflowJobTemplate'; import JobTemplateAdd from './JobTemplateAdd'; +import WorkflowJobTemplateAdd from './WorkflowJobTemplateAdd'; class Templates extends Component { constructor(props) { @@ -20,6 +20,9 @@ class Templates extends Component { breadcrumbConfig: { '/templates': i18n._(t`Templates`), '/templates/job_template/add': i18n._(t`Create New Job Template`), + '/templates/workflow_job_template/add': i18n._( + t`Create New Workflow Job Template` + ), }, }; } @@ -56,47 +59,49 @@ class Templates extends Component { return ( <> - - - } - /> - ( - - {({ me }) => ( -