Skip to content

Commit

Permalink
Merged PR 2876: 12273 copying default check patterns
Browse files Browse the repository at this point in the history
- copying default check patterns
- disabled button if length of tableName is 0
  • Loading branch information
Aleksy Lisowski authored and piotrczarnas committed Jul 26, 2024
2 parents 5f4e6fc + 4d424d0 commit 17a57bf
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import { Dialog, DialogBody, DialogFooter } from '@material-tailwind/react';
import React, { useState } from 'react';
import Button from '../../components/Button';
import Input from '../../components/Input';
import {
DefaultColumnCheckPatternsApiClient,
DefaultTableCheckPatternsApiClient
} from '../../services/apiClient';
interface CopyCheckPatternDialogProps {
type: 'column' | 'table';
sourceTableName: string;
open: boolean;
setOpen: (v: boolean) => void;
}

export default function CopyCheckPatternDialog({
type,
sourceTableName,
open,
setOpen
}: CopyCheckPatternDialogProps) {
const [tableName, setTableName] = useState('');
const handleSubmit = () => {
if (type === 'column') {
DefaultColumnCheckPatternsApiClient.copyFromDefaultColumnChecksPattern(
tableName,
sourceTableName
);
}
if (type === 'table') {
DefaultTableCheckPatternsApiClient.copyFromDefaultTableChecksPattern(
tableName,
sourceTableName
);
}
setOpen(false);
};
const onClose = () => {
setOpen(false);
};

return (
<Dialog open={open} handler={onClose}>
<DialogBody className="pt-4 pb-2 px-8">
<div className="text-2xl text-gray-700 text-center whitespace-normal flex pb-4 items-center justify-center">
Copy {sourceTableName} to new {type} pattern
</div>
<Input
label={`${type === 'column' ? 'Column' : 'Table'} pattern name`}
placeholder={`Copy of ${sourceTableName}`}
className="w-full"
value={tableName}
onChange={(e) => setTableName(e.target.value)}
/>
</DialogBody>
<DialogFooter className="justify-center space-x-6 pb-8">
<Button
color="primary"
variant="outlined"
className="px-8"
onClick={onClose}
label="Cancel"
/>
<Button
color="primary"
className="px-8"
onClick={handleSubmit}
label="Save"
disabled={tableName.length === 0}
/>
</DialogFooter>
</Dialog>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
DefaultTableCheckPatternsApiClient
} from '../../services/apiClient';
import { CheckRunMonitoringScheduleGroup } from '../../shared/enums/scheduling.enum';
import CopyCheckPatternDialog from './CopyCheckPatternDialog';
import DefaultCheckTargetConfiguration from './DefaultCheckTargetConfiguration';

const tabsTableChecks = [
Expand Down Expand Up @@ -164,6 +165,7 @@ export default function EditCheckPattern({
useState<TCheckContainerDiverse>(initialState);
const [target, setTarget] = useState<TTarget>({});
const [isUpdated, setIsUpdated] = useState(false);
const [copyPatternOpen, setCopyPatternOpen] = useState(false);
const onChangeTab = (tab: any) => {
setActiveTab(tab);
};
Expand Down Expand Up @@ -372,12 +374,20 @@ export default function EditCheckPattern({
{pattern_name}
</div>
</div>
<Button
label="Save"
color={isUpdated ? 'primary' : 'secondary'}
className="pl-14 pr-14"
onClick={updateChecks}
/>
<div className="flex items-center gap-x-4">
<Button
label="Copy"
color="primary"
className="pl-14 pr-14"
onClick={() => setCopyPatternOpen(true)}
/>
<Button
label="Save"
color={isUpdated ? 'primary' : 'secondary'}
className="pl-14 pr-14"
onClick={updateChecks}
/>
</div>
</div>
<div className="border-b border-gray-300">
<Tabs tabs={tabs} activeTab={activeTab} onChange={onChangeTab} />
Expand Down Expand Up @@ -409,6 +419,12 @@ export default function EditCheckPattern({
})
)}
</div>
<CopyCheckPatternDialog
type={type}
sourceTableName={pattern_name}
open={copyPatternOpen}
setOpen={setCopyPatternOpen}
/>
</div>
</>
);
Expand Down

0 comments on commit 17a57bf

Please sign in to comment.