From 2409bc5ee36edb8550bff08f3808e4c36fa5d23a Mon Sep 17 00:00:00 2001 From: mabashian Date: Tue, 28 Jul 2020 17:13:56 -0400 Subject: [PATCH 1/2] Converts WorkflowJobTemplatesList to use useRequest in preparation for advanced search --- .../NodeTypeStep/WorkflowJobTemplatesList.jsx | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/awx/ui_next/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx b/awx/ui_next/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx index f614bb4efc..c1ef9666b5 100644 --- a/awx/ui_next/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx +++ b/awx/ui_next/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx @@ -1,10 +1,11 @@ -import React, { useState, useEffect } from 'react'; +import React, { useEffect, useCallback } from 'react'; import { useLocation } from 'react-router-dom'; import { withI18n } from '@lingui/react'; import { t } from '@lingui/macro'; import { func, shape } from 'prop-types'; import { WorkflowJobTemplatesAPI } from '../../../../../../api'; import { getQSConfig, parseQueryString } from '../../../../../../util/qs'; +import useRequest from '../../../../../../util/useRequest'; import PaginatedDataList from '../../../../../../components/PaginatedDataList'; import DataListToolbar from '../../../../../../components/DataListToolbar'; import CheckboxListItem from '../../../../../../components/CheckboxListItem'; @@ -20,32 +21,33 @@ function WorkflowJobTemplatesList({ nodeResource, onUpdateNodeResource, }) { - const [count, setCount] = useState(0); - const [error, setError] = useState(null); - const [isLoading, setIsLoading] = useState(true); - const [workflowJobTemplates, setWorkflowJobTemplates] = useState([]); - const location = useLocation(); - useEffect(() => { - (async () => { - setIsLoading(true); - setWorkflowJobTemplates([]); - setCount(0); + const { + result: { workflowJobTemplates, count }, + error, + isLoading, + request: fetchWorkflowJobTemplates, + } = useRequest( + useCallback(async () => { const params = parseQueryString(QS_CONFIG, location.search); - try { - const { data } = await WorkflowJobTemplatesAPI.read(params, { - role_level: 'execute_role', - }); - setWorkflowJobTemplates(data.results); - setCount(data.count); - } catch (err) { - setError(err); - } finally { - setIsLoading(false); - } - })(); - }, [location]); + const results = await WorkflowJobTemplatesAPI.read(params, { + role_level: 'execute_role', + }); + return { + workflowJobTemplates: results.data.results, + count: results.data.count, + }; + }, [location]), + { + workflowJobTemplates: [], + count: 0, + } + ); + + useEffect(() => { + fetchWorkflowJobTemplates(); + }, [fetchWorkflowJobTemplates]); return ( Date: Wed, 29 Jul 2020 11:45:58 -0400 Subject: [PATCH 2/2] Update capitalization to match PF guidelines --- .../NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/awx/ui_next/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx b/awx/ui_next/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx index c1ef9666b5..9e1bc5023a 100644 --- a/awx/ui_next/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx +++ b/awx/ui_next/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.jsx @@ -78,19 +78,19 @@ function WorkflowJobTemplatesList({ isDefault: true, }, { - name: i18n._(t`Organization (Name)`), + name: i18n._(t`Organization (name)`), key: 'organization__name', }, { - name: i18n._(t`Inventory (Name)`), + name: i18n._(t`Inventory (name)`), key: 'inventory__name', }, { - name: i18n._(t`Created By (Username)`), + name: i18n._(t`Created by (username)`), key: 'created_by__username', }, { - name: i18n._(t`Modified By (Username)`), + name: i18n._(t`Modified by (username)`), key: 'modified_by__username', }, ]}