- {disableInput ? (
+ {isViewOnly ? (
@@ -228,7 +229,7 @@ const EditTemplateModal = ({
variant="brand"
type="submit"
isLoading={isSaving}
- disabled={disableSave}
+ disabled={disableSave || isSaving}
>
Save
diff --git a/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/EditTemplateModal/_styles.scss b/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/EditTemplateModal/_styles.scss
index efacee0275f7..d8019005fc7d 100644
--- a/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/EditTemplateModal/_styles.scss
+++ b/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/EditTemplateModal/_styles.scss
@@ -1,4 +1,9 @@
.pki-edit-template-modal {
+ .input-field {
+ &::placeholder {
+ font-style: normal; // FIXME: Should this be a global style change instead? See https://github.com/fleetdm/fleet/blob/99d962036774357e6767b9b84470c1d40b007c3b/frontend/components/Modal/_styles.scss#L36
+ }
+ }
.form-field__label {
color: $core-fleet-black;
}
diff --git a/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/PkiTable/PkiTable.tsx b/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/PkiTable/PkiTable.tsx
index 5ab07ce03c94..5a7708fec990 100644
--- a/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/PkiTable/PkiTable.tsx
+++ b/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/PkiTable/PkiTable.tsx
@@ -36,7 +36,7 @@ const PkiTable = ({ data, onEdit, onDelete }: IPkiTableProps) => {
return (
columnConfigs={tableConfig}
- defaultSortHeader="org_name"
+ defaultSortHeader="pki_name"
disableTableHeader
disablePagination
showMarkAllPages={false}
diff --git a/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/PkiTable/PkiTableConfig.tsx b/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/PkiTable/PkiTableConfig.tsx
index 056396bb6daf..e6c2d2575b8c 100644
--- a/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/PkiTable/PkiTableConfig.tsx
+++ b/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/PkiTable/PkiTableConfig.tsx
@@ -9,7 +9,7 @@ import { IDropdownOption } from "interfaces/dropdownOption";
import HeaderCell from "components/TableContainer/DataTable/HeaderCell";
import ActionsDropdown from "components/ActionsDropdown";
import TextCell from "components/TableContainer/DataTable/TextCell";
-import StatusIndicatorWithIcon from "components/StatusIndicatorWithIcon";
+import Icon from "components/Icon";
type IPkiTableConfig = Column;
type ITableStringCellProps = IStringCellProps;
@@ -53,7 +53,11 @@ export const generateTableConfig = (
disableSortBy: true,
Cell: ({ value: templates }: IPkiTemplatesCellProps) => {
return templates.length ? (
-
+ // FIXME: See related note in frontend/components/StatusIndicatorWithIcon/StatusIndicatorWithIcon.tsx
+
+
+ Added
+
) : (
);
diff --git a/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/PkiTable/_styles.scss b/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/PkiTable/_styles.scss
deleted file mode 100644
index 844f82633e0e..000000000000
--- a/frontend/pages/admin/IntegrationsPage/cards/MdmSettings/PkiPage/components/PkiTable/_styles.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-.pki-table {
-}
diff --git a/frontend/pages/admin/components/DownloadFileButtons/DownloadCSR.tsx b/frontend/pages/admin/components/DownloadFileButtons/DownloadCSR.tsx
index 25f60e13ae6e..5edce5d0f60e 100644
--- a/frontend/pages/admin/components/DownloadFileButtons/DownloadCSR.tsx
+++ b/frontend/pages/admin/components/DownloadFileButtons/DownloadCSR.tsx
@@ -3,15 +3,21 @@ import React, { FormEvent, useCallback, useMemo, useState } from "react";
import mdmAppleApi from "services/entities/mdm_apple";
import pkiApi from "services/entities/pki";
-import Icon from "components/Icon";
import Button from "components/buttons/Button";
+import TooltipWrapper from "components/TooltipWrapper";
+import Icon from "components/Icon";
+
import { RequestState, downloadBase64ToFile } from "./helpers";
+// TODO: Refactor this interface to be more generalizable; probably some kind of fetchData
+// callback that resolves to a base64 string and props for filename, button label, disable button,
+// tooltip content, etc., and leave parms for the fetch (like pkiName) to the caller.
interface IDownloadCSRProps {
baseClass: string;
onSuccess?: () => void;
onError?: (e: unknown) => void;
pkiName?: string;
+ disabled?: boolean;
}
const downloadCSRFile = (data: { csr: string }, filename?: string) => {
@@ -53,6 +59,7 @@ const useDownloadCSR = ({
() => ({
downloadState,
handleDownload,
+ isLoading: downloadState === "loading",
}),
[downloadState, handleDownload]
);
@@ -65,20 +72,35 @@ export const DownloadCSR = ({
onSuccess,
onError,
pkiName,
+ disabled = false,
}: IDownloadCSRProps) => {
- const { handleDownload } = useDownloadCSR({ onSuccess, onError, pkiName });
+ const { isLoading, handleDownload } = useDownloadCSR({
+ onSuccess,
+ onError,
+ pkiName,
+ });
return (
-
+
+
);
};