Skip to content

Commit d197242

Browse files
authored
Merge pull request #76 from code-kern-ai/release-v-1-20-0
v1.20.0
2 parents 7440f47 + 59bd75e commit d197242

File tree

13 files changed

+74
-102
lines changed

13 files changed

+74
-102
lines changed

src/components/projects/ProjectCard.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export default function ProjectCard(props: ProjectCardProps) {
6565
<span className="text-sm text-gray-900 ">{props.project.time}</span>
6666
</>}
6767
</div>}
68-
{props.project.is_integration_project && <div className="absolute bottom-0 left-2/4 flex flex-row flex-nowrap gap-x-1 bg-gray-100 px-1 rounded-br rounded-bl" style={{ 'transform': 'translate(-50%' }}>
68+
{props.project.isIntegrationProject && <div className="absolute bottom-0 left-2/4 flex flex-row flex-nowrap gap-x-1 bg-gray-100 px-1 rounded-tr rounded-tl" style={{ 'transform': 'translate(-50%' }}>
6969
<span className="text-sm text-red-500">This is an integration project, please do not delete it unless the integration is deleted</span>
7070
</div>}
7171
{(isAdmin && props.project.status !== ProjectStatus.INIT_SAMPLE_PROJECT) &&

src/components/projects/ProjectsList.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ export default function ProjectsList() {
4444
if (!organizationInactive) {
4545
refetchProjectsAndPostProcess();
4646
refetchStatsAndPostProcess();
47+
} else {
48+
setDataLoaded(true);
4749
}
4850
}, [organizationInactive, user]);
4951

@@ -70,7 +72,6 @@ export default function ProjectsList() {
7072

7173
const orgId = useSelector(selectOrganizationId);
7274
useWebsocket(orgId, Application.REFINERY, CurrentPage.PROJECTS, handleWebsocketNotification);
73-
7475
return (
7576
<div>
7677
{dataLoaded ? (<>

src/components/projects/projectId/attributes/attributeId/AttributeCalculations.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ export default function AttributeCalculation() {
332332

333333
return (projectId && <div className={`bg-white p-4 overflow-y-auto min-h-full h-[calc(100vh-4rem)]`} onScroll={(e: any) => onScrollEvent(e)}>
334334
{currentAttribute && <div>
335-
<div className={`sticky z-50 h-12 ${isHeaderNormal ? 'top-1' : '-top-5'}`}>
335+
<div className={`sticky z-40 h-12 ${isHeaderNormal ? 'top-1' : '-top-5'}`}>
336336
<div className={`bg-white flex-grow ${isHeaderNormal ? '' : 'shadow'}`}>
337337
<div className={`flex-row justify-start items-center inline-block ${isHeaderNormal ? 'p-0' : 'flex py-2'}`} style={{ transition: 'all .25s ease-in-out' }}>
338338
<a href={`/refinery/projects/${projectId}/settings`} onClick={goBack} className="text-green-800 text-sm font-medium">

src/components/projects/projectId/edit-records/EditField.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ import { DataTypeEnum } from "@/src/types/shared/general";
44
import { ModalEnum } from "@/src/types/shared/modal";
55
import { buildAccessKey } from "@/src/util/components/projects/projectId/edit-records-helper";
66
import { jsonCopy } from "@/submodules/javascript-functions/general";
7-
import { useRef, useState } from "react";
7+
import { useEffect, useRef, useState } from "react";
88
import { useDispatch } from "react-redux";
99

1010
export default function EditField(props: EditFieldProps) {
1111
const dispatch = useDispatch();
1212

13-
const [inputValue, setInputValue] = useState(props.record.data[props.attribute.name]);
13+
14+
const [inputValue, setInputValue] = useState(null);
1415

1516
const inputRef = useRef(null);
1617

@@ -67,6 +68,14 @@ export default function EditField(props: EditFieldProps) {
6768
}
6869
}
6970

71+
useEffect(() => {
72+
if (props.subKey == undefined) setInputValue(props.record.data[props.attribute.name]);
73+
else setInputValue(props.record.data[props.attribute.name][props.subKey]);
74+
}, [props.record.data[props.attribute.name], props.subKey]);
75+
76+
if (!inputValue) return null;
77+
78+
7079
return (<>
7180
{(props.attribute.dataType == DataTypeEnum.TEXT || props.attribute.dataType == DataTypeEnum.LLM_RESPONSE) &&
7281
<textarea value={inputValue} ref={inputRef}

src/components/projects/projectId/edit-records/EditRecords.tsx

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ export default function EditRecords() {
8989
}} id={record.id == erdData.data.selectedRecordId ? 'flash-it' : null}>
9090
<div className="px-4 py-5 sm:p-6">
9191
{erdData.data.attributes.map((attribute) => (<Fragment key={attribute.id}>
92+
9293
<div>
9394
<div className="font-semibold text-sm text-gray-800">
9495
<div className="flex flex-row items-center">
@@ -98,26 +99,32 @@ export default function EditRecords() {
9899
<div className="text-gray-800 text-sm mb-4 overflow-anywhere flex">
99100
{attribute.dataType == DataTypeEnum.EMBEDDING_LIST ? (<div className="flex flex-col gap-y-1 divide-y w-full">
100101
{record.data[attribute.name].map((item, subKey) => (<div key={subKey} className="pt-1">
101-
{(record.id == erdData.editRecordId && !attribute.isPrimaryKey) ? <EditField attribute={attribute} record={record} subKey={subKey} erdData={erdData} setErdData={(erdData) => setErdData(erdData)} /> : <>
102-
{item != null && item !== '' ? (<span className="whitespace-pre-wrap">
103-
<span>{item}</span>
104-
</span>) : (<NotPresentInRecord />)}
105-
</>}
102+
{(record.id == erdData.editRecordId && !attribute.isPrimaryKey) ?
103+
<EditField attribute={attribute} record={record} subKey={subKey} erdData={erdData} setErdData={(erdData) => setErdData(erdData)} /> : <>
104+
{item != null && item !== '' ? (<span className="whitespace-pre-wrap" style={{ wordBreak: 'break-word' }}>
105+
<span>{item}</span>
106+
</span>) : (<NotPresentInRecord />)}
107+
</>}
106108
</div>))}
107-
</div>) : (<>
108-
{(record.id == erdData.editRecordId && !attribute.isPrimaryKey) ? <EditField attribute={attribute} record={record} erdData={erdData} setErdData={(erdData) => setErdData(erdData)} /> : <>
109-
{record.data[attribute.name] != null && record.data[attribute.name] !== '' ? (<span className="whitespace-pre-wrap relative">
110-
<span>{`${record.data[attribute.name]}`}</span>
111-
{erdData.cachedRecordChanges[buildAccessKey(record.id, attribute.name)] && <div className="absolute -left-5 top-0 text-yellow-500">
112-
<Tooltip content={TOOLTIPS_DICT.EDIT_RECORDS.CACHED_VALUES} color="invert" placement="right" className="cursor-auto">
113-
<MemoIconAlertTriangleFilled size={16} stroke={2} />
114-
</Tooltip>
115-
</div>}
116-
</span>) : <NotPresentInRecord />}
117-
</>}
118-
</>)}
109+
</div>) :
110+
attribute.dataType == DataTypeEnum.PERMISSION ? <span className="font-dmMono">Permissions are not editable</span> :
111+
(
112+
<>
113+
{(record.id == erdData.editRecordId && !attribute.isPrimaryKey) ? <EditField attribute={attribute} record={record} erdData={erdData} setErdData={(erdData) => setErdData(erdData)} /> : <>
114+
{record.data[attribute.name] != null && record.data[attribute.name] !== '' ? (<span className="whitespace-pre-wrap relative" style={{ wordBreak: 'break-word' }}>
115+
<span>{`${record.data[attribute.name]}`}</span>
116+
{erdData.cachedRecordChanges[buildAccessKey(record.id, attribute.name)] && <div className="absolute -left-5 top-0 text-yellow-500">
117+
<Tooltip content={TOOLTIPS_DICT.EDIT_RECORDS.CACHED_VALUES} color="invert" placement="right" className="cursor-auto">
118+
<MemoIconAlertTriangleFilled size={16} stroke={2} />
119+
</Tooltip>
120+
</div>}
121+
</span>) : <NotPresentInRecord />}
122+
</>}
123+
</>)}
124+
119125
</div>
120126
</div>
127+
121128
</Fragment>))}
122129
<div className="absolute top-2 right-2 flex flex-row flex-nowrap items-center gap-x-2">
123130
{record.rla_data && <Tooltip content={TOOLTIPS_DICT.EDIT_RECORDS.LABEL_ASSOCIATIONS} color="invert" placement="left" className="cursor-auto">

src/components/projects/projectId/settings/ProjectMetaData.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { selectProject, setActiveProject } from "@/src/reduxStore/states/project";
2-
import { updateProjectNameAndDescriptionPost } from "@/src/services/base/project";
1+
import { selectAllProjects, selectProject, setActiveProject, setAllProjects } from "@/src/reduxStore/states/project";
2+
import { getAllProjects, updateProjectNameAndDescriptionPost } from "@/src/services/base/project";
33
import { TOOLTIPS_DICT } from "@/src/util/tooltip-constants";
44
import { Tooltip } from "@nextui-org/react";
55
import { useRouter } from "next/router";
6-
import { useState } from "react";
6+
import { use, useEffect, useMemo, useState } from "react";
77
import { useDispatch, useSelector } from "react-redux";
88
import { deleteProjectPost } from "@/src/services/base/project";
99
import KernButton from "@/submodules/react-components/components/kern-button/KernButton";
@@ -14,6 +14,7 @@ export default function ProjectMetaData() {
1414
const dispatch = useDispatch();
1515

1616
const project = useSelector(selectProject);
17+
const allProjects = useSelector(selectAllProjects);
1718

1819
const [projectName, setProjectName] = useState('');
1920
const [projectDescription, setProjectDescription] = useState('');
@@ -39,6 +40,14 @@ export default function ProjectMetaData() {
3940
});
4041
}
4142

43+
useEffect(() => {
44+
getAllProjects((projects) => dispatch(setAllProjects(projects)));
45+
}, []);
46+
47+
const isIntegrationProject = useMemo(() => {
48+
return allProjects && allProjects.find(p => p.id === project.id)?.isIntegrationProject;
49+
}, [allProjects, project.id]);
50+
4251
return (<div>
4352
<div className="mt-8">
4453
<div className="text-gray-900 text-lg leading-6 font-medium">
@@ -85,7 +94,7 @@ export default function ProjectMetaData() {
8594
<div className="text-gray-900 text-lg leading-6 font-medium">Danger zone</div>
8695
<div className="text-sm leading-5 font-normal mt-2 text-gray-500 inline-block">This action can not be reversed.
8796
Are you sure you want to delete this project?</div>
88-
{project.is_integration_project && <div className="text-sm text-red-500 italic">
97+
{isIntegrationProject && <div className="text-sm text-red-500 italic">
8998
This is an integration project, please do not delete it unless the integration is deleted
9099
</div>}
91100
<div className="form-control">

src/components/projects/projectId/settings/labeling-tasks/RenameLabelModal.tsx

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ export default function RenameLabelModal() {
6363
const renameLabelDataCopy = { ...renameLabelData };
6464
result.warnings.forEach(e => {
6565
e.open = false;
66-
e.oldParsed = LabelHelper.prepareSourceCode(e.old, e.information_source_name);
67-
e.newParsed = LabelHelper.prepareSourceCode(e.new, e.information_source_name);
66+
e.oldParsed = LabelHelper.prepareSourceCode(e.old, e.informationSourceName);
67+
e.newParsed = LabelHelper.prepareSourceCode(e.new, e.informationSourceName);
6868
});
6969
renameLabelDataCopy.checkResults = result;
7070
setRenameLabelData(renameLabelDataCopy);
@@ -172,16 +172,10 @@ export default function RenameLabelModal() {
172172
<span className="text-sm">{warning.new}</span>
173173
</div></div>}
174174
{warning.key == 'HEURISTIC' && <div className="flex flex-col gap-y-2">
175-
<span className="text-sm">
176-
<Tooltip content={TOOLTIPS_DICT.PROJECT_SETTINGS.LABELING_TASK.OPEN_HEURISTICS} placement="right" color="invert">
177-
<a href={'../heuristics/' + warning.id} target="_blank"
178-
className="cursor-pointer underline font-medium">
179-
Current source code:</a>
180-
</Tooltip>
181-
</span>
182-
<Highlight text={warning.oldParsed} searchFor={warning.old_highlighting} />
183-
<span className="text-sm font-medium text-left">Suggested changes:</span>
184-
<Highlight text={warning.newParsed} searchFor={warning.new_highlighting} />
175+
<span className="text-sm font-medium underline text-left">Current source code:</span>
176+
<Highlight text={warning.oldParsed} searchFor={warning.oldHighlighting} />
177+
<span className="text-sm font-medium underline text-left">Suggested changes:</span>
178+
<Highlight text={warning.newParsed} searchFor={warning.newHighlighting} />
185179
</div>}
186180
<KernButton
187181
text="Change"

src/components/shared/header/Header.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ export default function Header() {
6464
});
6565
});
6666
}
67-
6867
return (
6968
<header className="sticky top-0 z-50 w-full">
7069
<div className="relative z-10 flex-shrink-0 h-16 bg-white border-b border-gray-200 shadow-sm flex justify-between items-center">
@@ -92,7 +91,7 @@ export default function Header() {
9291
</Tooltip>
9392
</a>
9493
</div>
95-
{(user?.role == UserRole.ENGINEER) ? (
94+
{(organizationInactive !== true && user?.role == UserRole.ENGINEER) ? (
9695
<div className="flex items-center justify-center">
9796
<a href="/refinery/users" onClick={(e: any) => { e.preventDefault(); dispatch(setProjectIdSampleProject(null)); router.push(`/users`) }}
9897
className="flex mr-6">
@@ -105,7 +104,7 @@ export default function Header() {
105104
<div className="flex items-center justify-center">
106105
{displayComments && <Comments />}
107106
</div>
108-
{user?.role == UserRole.ENGINEER && <div className="flex items-center justify-center">
107+
{organizationInactive !== true && user?.role == UserRole.ENGINEER && <div className="flex items-center justify-center">
109108
<button className="flex mr-6 cursor-pointer" onClick={openModalAndRefetchNotifications}>
110109
<Tooltip content={TOOLTIPS_DICT.GENERAL.NOTIFICATION_CENTER} placement="bottom" color="invert">
111110
<MemoIconBell className="w-6 h-6" />

src/components/shared/highlight/Highlight.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ export default function Highlight(props: any) {
4545
setParts(extendArrayElementsByUniqueId(rebuildText(props.text, finalRegEx)));
4646
}, [finalRegEx, props.text]);
4747

48-
return (<span>
48+
return (<pre className="text-left text-sm">
4949
{parts && parts.map((part, index) => (<span key={part.id} className={`${part.isMatch ? highlightClass : null} ${addClassString}`}>
5050
{part.text}
5151
</span>))}
52-
</span>)
52+
</pre>)
5353
}

src/components/shared/sidebar/Sidebar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ export default function Sidebar() {
181181
<Tooltip placement="right" trigger="hover" color="invert" content={TOOLTIPS_DICT.SIDEBAR.VERSION_OVERVIEW}>
182182
<div onClick={requestVersionOverview} id="refineryVersion"
183183
className="z-50 tooltip tooltip-right cursor-pointer select-none text-white flex items-center mr-1">
184-
v1.19.0
184+
v1.20.0
185185
{hasUpdates && <Tooltip placement="right" trigger="hover" color="invert" content={TOOLTIPS_DICT.SIDEBAR.NEWER_VERSION_AVAILABLE} >
186186
<MemoIconAlertCircle className="h-5 w-5 text-yellow-700" />
187187
</Tooltip>}

0 commit comments

Comments
 (0)