From b41eb168156111b9eecdc7a34e6e5007ca22cfaf Mon Sep 17 00:00:00 2001 From: Lina Date: Wed, 21 May 2025 12:10:24 +0200 Subject: [PATCH 01/13] Redirect from refinery if user is not engineer --- src/reduxStore/StoreManagerComponent.tsx | 10 ++++++++-- submodules/react-components | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/reduxStore/StoreManagerComponent.tsx b/src/reduxStore/StoreManagerComponent.tsx index 427da7b1..55a42bcc 100644 --- a/src/reduxStore/StoreManagerComponent.tsx +++ b/src/reduxStore/StoreManagerComponent.tsx @@ -1,7 +1,7 @@ import { useEffect, useState } from "react"; import { useRouter } from "next/router"; import { useDispatch, useSelector } from "react-redux"; -import { selectIsAdmin, selectOrganization, setAllUsers, setIsAdmin, setOrganization, setRouteColor, setUser } from "./states/general"; +import { selectIsAdmin, selectOrganization, selectUser, setAllUsers, setIsAdmin, setOrganization, setRouteColor, setUser } from "./states/general"; import { getUserAvatarUri } from "@/submodules/javascript-functions/general"; import { setActiveProject } from "./states/project"; import { WebSocketsService } from "../../submodules/react-components/hooks/web-socket/WebSocketsService"; @@ -18,12 +18,14 @@ import { getProjectByProjectId } from "../services/base/project"; import { getIsAdmin, getVersionOverview } from "../services/base/misc"; import { getUserInfo, getOrganization, getOrganizationUsers } from "../services/base/organization"; import { getAllTokenizerOptions, getEmbeddingPlatforms, getRecommendedEncoders } from "../services/base/embedding"; +import { UserRole } from "../types/shared/sidebar"; export function GlobalStoreDataComponent(props: React.PropsWithChildren) { const router = useRouter(); const dispatch = useDispatch(); const isAdmin = useSelector(selectIsAdmin); const organization = useSelector(selectOrganization); + const userRole = useSelector(selectUser)?.role; const [dataLoaded, setDataLoaded] = useState(false); @@ -33,6 +35,10 @@ export function GlobalStoreDataComponent(props: React.PropsWithChildren) { }); getUserInfo((res) => { + if (res.role == UserRole.ANNOTATOR || res.role == UserRole.EXPERT) { + window.location.href = '/cognition'; + return; + } const userInfo = { ...res }; userInfo.avatarUri = getUserAvatarUri(res); dispatch(setUser(userInfo)); @@ -106,6 +112,6 @@ export function GlobalStoreDataComponent(props: React.PropsWithChildren) { }) }, [ConfigManager.isInit()]); - if (!dataLoaded) return <>; + if (!dataLoaded || userRole !== UserRole.ENGINEER) return <>; return
{props.children}
; } diff --git a/submodules/react-components b/submodules/react-components index b7583037..66af8ce3 160000 --- a/submodules/react-components +++ b/submodules/react-components @@ -1 +1 @@ -Subproject commit b7583037d9b1a6dfaacf28afe9ab6cd89ecc3c2d +Subproject commit 66af8ce324318e31af8d6e2d812396d32dad57ef From a8ab432d7ffcc3291d38d0886f3e3b70fe01895d Mon Sep 17 00:00:00 2001 From: Lina Date: Wed, 4 Jun 2025 17:08:32 +0200 Subject: [PATCH 02/13] Submodules --- submodules/react-components | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/react-components b/submodules/react-components index 66af8ce3..1af9f210 160000 --- a/submodules/react-components +++ b/submodules/react-components @@ -1 +1 @@ -Subproject commit 66af8ce324318e31af8d6e2d812396d32dad57ef +Subproject commit 1af9f210f292f5e6ea23a2cbb3f9f8619650eec8 From 647eaa9de8dbc68aab52702e5f15787e91d8758a Mon Sep 17 00:00:00 2001 From: Lina Date: Wed, 4 Jun 2025 17:10:21 +0200 Subject: [PATCH 03/13] Datatype permission in refinery --- .../attributes/attributeId/AttributeCalculations.tsx | 4 ++-- .../projects/projectId/data-browser/SearchGroups.tsx | 1 + .../heuristicId/labeling-function/LabelingFunction.tsx | 4 ++-- .../heuristics/heuristicId/shared/HeuristicsLayout.tsx | 4 ++-- src/reduxStore/states/pages/settings.ts | 1 + src/types/shared/general.ts | 3 ++- .../projects/projectId/settings/data-schema-helper.ts | 1 + 7 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/components/projects/projectId/attributes/attributeId/AttributeCalculations.tsx b/src/components/projects/projectId/attributes/attributeId/AttributeCalculations.tsx index 583f33cb..768f8743 100644 --- a/src/components/projects/projectId/attributes/attributeId/AttributeCalculations.tsx +++ b/src/components/projects/projectId/attributes/attributeId/AttributeCalculations.tsx @@ -1,6 +1,6 @@ import Statuses from "@/src/components/shared/statuses/Statuses"; import { selectAllLookupLists, setAllLookupLists } from "@/src/reduxStore/states/pages/lookup-lists"; -import { selectAttributes, selectVisibleAttributeAC, setAllAttributes, setLabelingTasksAll, updateAttributeById } from "@/src/reduxStore/states/pages/settings"; +import { selectAttributes, selectVisibleAttributeAC, selectVisibleAttributesWithoutPermissions, setAllAttributes, setLabelingTasksAll, updateAttributeById } from "@/src/reduxStore/states/pages/settings"; import { selectProjectId } from "@/src/reduxStore/states/project" import { Attribute, AttributeState, LLMConfig } from "@/src/types/components/projects/projectId/settings/data-schema"; import { DataTypeEnum } from "@/src/types/shared/general"; @@ -51,7 +51,7 @@ export default function AttributeCalculation() { const projectId = useSelector(selectProjectId); const attributes = useSelector(selectAttributes); - const usableAttributes = useSelector(selectVisibleAttributeAC) + const usableAttributes = useSelector(selectVisibleAttributesWithoutPermissions); const lookupLists = useSelector(selectAllLookupLists); const allUsers = useSelector(selectAllUsers); diff --git a/src/components/projects/projectId/data-browser/SearchGroups.tsx b/src/components/projects/projectId/data-browser/SearchGroups.tsx index 23757d84..144dc3dc 100644 --- a/src/components/projects/projectId/data-browser/SearchGroups.tsx +++ b/src/components/projects/projectId/data-browser/SearchGroups.tsx @@ -85,6 +85,7 @@ export default function SearchGroups() { }); colors.push('gray'); visibleAttributes.forEach((att) => { + if (att.dataType == DataTypeEnum.PERMISSION) return; attributesSort.push({ name: att.name, key: att.id, diff --git a/src/components/projects/projectId/heuristics/heuristicId/labeling-function/LabelingFunction.tsx b/src/components/projects/projectId/heuristics/heuristicId/labeling-function/LabelingFunction.tsx index f4daf388..1979a907 100644 --- a/src/components/projects/projectId/heuristics/heuristicId/labeling-function/LabelingFunction.tsx +++ b/src/components/projects/projectId/heuristics/heuristicId/labeling-function/LabelingFunction.tsx @@ -8,7 +8,7 @@ import { postProcessCurrentHeuristic, postProcessLastTaskLogs } from "@/src/util import { Tooltip } from "@nextui-org/react"; import { TOOLTIPS_DICT } from "@/src/util/tooltip-constants"; import { postProcessLabelingTasksSchema } from "@/src/util/components/projects/projectId/settings/labeling-tasks-helper"; -import { selectVisibleAttributesHeuristics, selectLabelingTasksAll, setLabelingTasksAll } from "@/src/reduxStore/states/pages/settings"; +import { selectVisibleAttributesHeuristics, selectLabelingTasksAll, setLabelingTasksAll, selectVisibleAttributesWithoutPermissions } from "@/src/reduxStore/states/pages/settings"; import HeuristicsEditor from "../shared/HeuristicsEditor"; import DangerZone from "@/src/components/shared/danger-zone/DangerZone"; import HeuristicRunButtons from "../shared/HeuristicRunButtons"; @@ -46,7 +46,7 @@ export default function LabelingFunction() { const projectId = useSelector(selectProjectId); const currentHeuristic = useSelector(selectHeuristic); const labelingTasks = useSelector(selectLabelingTasksAll); - const attributes = useSelector(selectVisibleAttributesHeuristics); + const attributes = useSelector(selectVisibleAttributesWithoutPermissions); const allUsers = useSelector(selectAllUsers); const [lastTaskLogs, setLastTaskLogs] = useState([]); diff --git a/src/components/projects/projectId/heuristics/heuristicId/shared/HeuristicsLayout.tsx b/src/components/projects/projectId/heuristics/heuristicId/shared/HeuristicsLayout.tsx index e43c4dc5..6aed1512 100644 --- a/src/components/projects/projectId/heuristics/heuristicId/shared/HeuristicsLayout.tsx +++ b/src/components/projects/projectId/heuristics/heuristicId/shared/HeuristicsLayout.tsx @@ -1,7 +1,7 @@ import Statuses from "@/src/components/shared/statuses/Statuses"; import { selectHeuristic, setActiveHeuristics, updateHeuristicsState } from "@/src/reduxStore/states/pages/heuristics"; import { selectAllLookupLists, setAllLookupLists } from "@/src/reduxStore/states/pages/lookup-lists"; -import { selectVisibleAttributesHeuristics, setAllAttributes } from "@/src/reduxStore/states/pages/settings"; +import { selectVisibleAttributesHeuristics, selectVisibleAttributesWithoutPermissions, setAllAttributes } from "@/src/reduxStore/states/pages/settings"; import { selectProjectId } from "@/src/reduxStore/states/project" import { HeuristicsProperty } from "@/src/types/components/projects/projectId/heuristics/heuristicId/heuristics-details"; import { Attribute } from "@/src/types/components/projects/projectId/settings/data-schema"; @@ -26,7 +26,7 @@ export default function HeuristicsLayout(props: any) { const projectId = useSelector(selectProjectId); const currentHeuristic = useSelector(selectHeuristic); - const usableAttributes = useSelector(selectVisibleAttributesHeuristics); + const usableAttributes = useSelector(selectVisibleAttributesWithoutPermissions); const lookupLists = useSelector(selectAllLookupLists); const [isHeaderNormal, setIsHeaderNormal] = useState(true); diff --git a/src/reduxStore/states/pages/settings.ts b/src/reduxStore/states/pages/settings.ts index bf601170..fb802ad1 100644 --- a/src/reduxStore/states/pages/settings.ts +++ b/src/reduxStore/states/pages/settings.ts @@ -148,6 +148,7 @@ export const selectVisibleAttributesDataBrowser = createSelector([selectUsableAt export const selectVisibleAttributeAC = createSelector([selectUsableAttributesFiltered], (a): any => a ? a.filter((a) => a.visibility != AttributeVisibility.HIDE) : null); export const selectVisibleAttributesHeuristics = createSelector([selectUsableAttributesFiltered], (a): any => a ? a.filter((a) => a.visibility != AttributeVisibility.HIDE) : null); export const selectOnAttributeEmbeddings = createSelector([selectEmbeddings], (a): any => a ? a.filter((embedding) => embedding.type == EmbeddingType.ON_ATTRIBUTE && embedding.state == Status.FINISHED) : null); +export const selectVisibleAttributesWithoutPermissions = createSelector([selectUsableAttributesFiltered], (a): any => a ? a.filter((a) => a.dataType != DataTypeEnum.PERMISSION) : null); export const { setAllAttributes, extendAllAttributes, removeFromAllAttributesById, updateAttributeById, setAllEmbeddings, setFilteredEmbeddings, removeFromAllEmbeddingsById, setAllRecommendedEncodersDict, setRecommendedEncodersAll, setLabelingTasksAll, removeFromAllLabelingTasksById, removeLabelFromLabelingTask } = settingsSlice.actions; export const settingsReducer = settingsSlice.reducer; \ No newline at end of file diff --git a/src/types/shared/general.ts b/src/types/shared/general.ts index 4cee791c..75ae07ee 100644 --- a/src/types/shared/general.ts +++ b/src/types/shared/general.ts @@ -20,5 +20,6 @@ export enum DataTypeEnum { FLOAT = "FLOAT", BOOLEAN = "BOOLEAN", EMBEDDING_LIST = "EMBEDDING_LIST", - LLM_RESPONSE = "LLM_RESPONSE" + LLM_RESPONSE = "LLM_RESPONSE", + PERMISSION = "PERMISSION", } \ No newline at end of file diff --git a/src/util/components/projects/projectId/settings/data-schema-helper.ts b/src/util/components/projects/projectId/settings/data-schema-helper.ts index 421c46e8..def7053a 100644 --- a/src/util/components/projects/projectId/settings/data-schema-helper.ts +++ b/src/util/components/projects/projectId/settings/data-schema-helper.ts @@ -10,6 +10,7 @@ export const DATA_TYPES = [ { name: 'Boolean', value: 'BOOLEAN' }, { name: 'Embedding List', value: 'EMBEDDING_LIST' }, { name: 'LLM Response', value: 'LLM_RESPONSE' }, + { name: 'Permission', value: 'PERMISSION' }, ]; export const ATTRIBUTES_VISIBILITY_STATES = [ From ed29ed134aaeedef0bf992212a663051ac2aa338 Mon Sep 17 00:00:00 2001 From: Lina Date: Fri, 6 Jun 2025 13:00:36 +0200 Subject: [PATCH 04/13] Added warning message for integration projects --- src/components/projects/ProjectCard.tsx | 3 +++ src/components/projects/projectId/settings/ProjectMetaData.tsx | 3 +++ src/types/components/projects/projects-list.ts | 1 + submodules/javascript-functions | 2 +- submodules/react-components | 2 +- 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/components/projects/ProjectCard.tsx b/src/components/projects/ProjectCard.tsx index 41870b71..c0f4097c 100644 --- a/src/components/projects/ProjectCard.tsx +++ b/src/components/projects/ProjectCard.tsx @@ -65,6 +65,9 @@ export default function ProjectCard(props: ProjectCardProps) { {props.project.time} } } + {props.project.is_integration_project &&
+ This is an integration project, please do not delete it unless the integration is deleted +
} {(isAdmin && props.project.status !== ProjectStatus.INIT_SAMPLE_PROJECT) &&
diff --git a/src/components/projects/projectId/settings/ProjectMetaData.tsx b/src/components/projects/projectId/settings/ProjectMetaData.tsx index 455a35ed..ebe36aa9 100644 --- a/src/components/projects/projectId/settings/ProjectMetaData.tsx +++ b/src/components/projects/projectId/settings/ProjectMetaData.tsx @@ -85,6 +85,9 @@ export default function ProjectMetaData() {
Danger zone
This action can not be reversed. Are you sure you want to delete this project?
+ {!project.is_integration_project &&
+ This is an integration project, please do not delete it unless the integration is deleted +
}
Date: Fri, 6 Jun 2025 13:01:49 +0200 Subject: [PATCH 05/13] Fixed condition --- src/components/projects/projectId/settings/ProjectMetaData.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/projects/projectId/settings/ProjectMetaData.tsx b/src/components/projects/projectId/settings/ProjectMetaData.tsx index ebe36aa9..68eaf679 100644 --- a/src/components/projects/projectId/settings/ProjectMetaData.tsx +++ b/src/components/projects/projectId/settings/ProjectMetaData.tsx @@ -85,7 +85,7 @@ export default function ProjectMetaData() {
Danger zone
This action can not be reversed. Are you sure you want to delete this project?
- {!project.is_integration_project &&
+ {project.is_integration_project &&
This is an integration project, please do not delete it unless the integration is deleted
}
From d470cd9a92e10e61421dd9651adbefcf3476b460 Mon Sep 17 00:00:00 2001 From: Lina Date: Wed, 11 Jun 2025 10:50:45 +0200 Subject: [PATCH 06/13] Replaced functions with ones from submodules --- .../playground/CreateEvaluationSetModal.tsx | 12 +----- .../shared/record-display/RecordDisplay.tsx | 2 +- src/util/shared/record-display-helper.ts | 38 ------------------- submodules/javascript-functions | 2 +- submodules/react-components | 2 +- 5 files changed, 5 insertions(+), 51 deletions(-) delete mode 100644 src/util/shared/record-display-helper.ts diff --git a/src/components/projects/projectId/playground/CreateEvaluationSetModal.tsx b/src/components/projects/projectId/playground/CreateEvaluationSetModal.tsx index 47a111ad..45d2489e 100644 --- a/src/components/projects/projectId/playground/CreateEvaluationSetModal.tsx +++ b/src/components/projects/projectId/playground/CreateEvaluationSetModal.tsx @@ -15,6 +15,7 @@ import { useCallback, useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; import QuestionHistory from "./QuestionHistory"; import { MemoIconPlus, MemoIconWand } from "@/submodules/react-components/components/kern-icons/icons"; +import { postProcessUpdateAndSortRecords } from "@/submodules/javascript-functions/post-process-functions"; const ACCEPT_BUTTON = { buttonCaption: 'Create', useButton: true }; const SEARCH_REQUEST = { offset: 0, limit: 20 }; @@ -129,16 +130,7 @@ export default function CreateEvaluationSetModal(props: CreateEvaluationSetsModa } function updateAndSortRecordList(newRecords = []) { - setRecordList((prev) => { - const merged = [...prev, ...newRecords]; - const uniqueRecords = Array.from( - new Map(merged.map((item) => [item.data?.running_id, item])).values() - ); - uniqueRecords.sort( - (a, b) => (a.data?.running_id || 0) - (b.data?.running_id || 0) - ); - return uniqueRecords; - }); + setRecordList((prev) => postProcessUpdateAndSortRecords(prev, newRecords)); } function resetState() { diff --git a/src/components/shared/record-display/RecordDisplay.tsx b/src/components/shared/record-display/RecordDisplay.tsx index 80bd4da0..378f3df5 100644 --- a/src/components/shared/record-display/RecordDisplay.tsx +++ b/src/components/shared/record-display/RecordDisplay.tsx @@ -3,11 +3,11 @@ import { selectAttributesDict } from "@/src/reduxStore/states/pages/settings"; import { LineBreaksType } from "@/src/types/components/projects/projectId/data-browser/data-browser"; import { Attribute } from "@/src/types/components/projects/projectId/settings/data-schema"; import { DataTypeEnum } from "@/src/types/shared/general"; -import { postProcessAttributes, postProcessRecord } from "@/src/util/shared/record-display-helper"; import { useEffect, useState } from "react"; import { useSelector } from "react-redux"; import Highlight from "../highlight/Highlight"; import { MemoIconAlertCircle } from "@/submodules/react-components/components/kern-icons/icons"; +import { postProcessAttributes, postProcessRecord } from "@/submodules/javascript-functions/post-process-functions"; export function RecordDisplay(props: any) { const attributesDict = useSelector(selectAttributesDict); diff --git a/src/util/shared/record-display-helper.ts b/src/util/shared/record-display-helper.ts deleted file mode 100644 index 45c925ca..00000000 --- a/src/util/shared/record-display-helper.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Attribute } from "@/src/types/components/projects/projectId/settings/data-schema"; -import { jsonCopy } from "@/submodules/javascript-functions/general"; - -export function postProcessRecord(record: any, attributes: Attribute[]) { - const prepareRecord = jsonCopy(record); - if (!prepareRecord.hasOwnProperty('data')) { - if (prepareRecord.hasOwnProperty('fullRecordData')) { - prepareRecord.data = prepareRecord.fullRecordData; - } - else if (prepareRecord.hasOwnProperty('recordData')) { - prepareRecord.data = prepareRecord.recordData; - } else { - throw new Error("Cant find record data in record object"); - } - } - attributes.forEach((attribute, index) => { - if (typeof prepareRecord.data[attribute.name] === 'boolean') { - prepareRecord.data[attribute.name] = prepareRecord.data[attribute.name].toString(); - } - }); - return prepareRecord; -} - -export function postProcessAttributes(attributes: Attribute[]) { - const prepareAttributes = jsonCopy(attributes); - if (attributes && attributes.length > 0) { - if (!attributes[0].hasOwnProperty('key')) { - prepareAttributes.forEach((attribute, index) => { - if (attribute.id !== null) { - attribute.key = attribute.id; - } else { - throw new Error("Cant find attribute id in attribute object"); - } - }); - } - } - return prepareAttributes; -} \ No newline at end of file diff --git a/submodules/javascript-functions b/submodules/javascript-functions index 5a070394..be97756c 160000 --- a/submodules/javascript-functions +++ b/submodules/javascript-functions @@ -1 +1 @@ -Subproject commit 5a070394a45b5ed5a86efd0fc42370331e0ab101 +Subproject commit be97756ca607b1f479b246913a6df9cab71510fb diff --git a/submodules/react-components b/submodules/react-components index 1af9f210..0464f210 160000 --- a/submodules/react-components +++ b/submodules/react-components @@ -1 +1 @@ -Subproject commit 1af9f210f292f5e6ea23a2cbb3f9f8619650eec8 +Subproject commit 0464f210a6d3a85624a6c78445568c45e0a9fca4 From 17c8e95b934c8527a1403f7d15c4ec88315e0c2c Mon Sep 17 00:00:00 2001 From: Lina Date: Wed, 11 Jun 2025 17:06:44 +0200 Subject: [PATCH 07/13] Better display for multiple users& groups and fix for run on 10 ac --- .../attributes/attributeId/ExecutionContainer.tsx | 10 ++++++---- .../attributes/attributeId/ViewRecordDetailsModal.tsx | 6 +++--- src/components/shared/record-display/RecordDisplay.tsx | 6 +++--- .../projectId/settings/attribute-calculation.ts | 3 ++- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/components/projects/projectId/attributes/attributeId/ExecutionContainer.tsx b/src/components/projects/projectId/attributes/attributeId/ExecutionContainer.tsx index f1795545..70c461c6 100644 --- a/src/components/projects/projectId/attributes/attributeId/ExecutionContainer.tsx +++ b/src/components/projects/projectId/attributes/attributeId/ExecutionContainer.tsx @@ -74,10 +74,12 @@ export default function ExecutionContainer(props: ExecutionContainerProps) { const sampleRecordsFinal = useMemo(() => { if (sampleRecords && sampleRecords.calculatedAttributesDisplay) { - return sampleRecords.calculatedAttributesDisplay.map((record: any) => { + return sampleRecords.calculatedAttributesDisplay.map((record: any, index) => { + const calculatedValue = currentAttributesRef.current.dataType != DataTypeEnum.EMBEDDING_LIST ? record : { id: record.id, value: JSON.parse(record.value) } return { ...record, - onClick: viewRecordDetails(record.id) + onClick: viewRecordDetails(index), + calculatedValue: calculatedValue } } ); @@ -130,7 +132,7 @@ export default function ExecutionContainer(props: ExecutionContainerProps) {
- {sampleRecordsFinal.map((record: any, index: number) => ( + {sampleRecordsFinal.map((record: any) => (
@@ -151,7 +153,7 @@ export default function ExecutionContainer(props: ExecutionContainerProps) {
} - +
) } \ No newline at end of file diff --git a/src/components/projects/projectId/attributes/attributeId/ViewRecordDetailsModal.tsx b/src/components/projects/projectId/attributes/attributeId/ViewRecordDetailsModal.tsx index b47ce748..007be4cd 100644 --- a/src/components/projects/projectId/attributes/attributeId/ViewRecordDetailsModal.tsx +++ b/src/components/projects/projectId/attributes/attributeId/ViewRecordDetailsModal.tsx @@ -24,10 +24,10 @@ export default function ViewRecordDetailsModal(props: ViewRecordDetailsModalProp
Calculated value
{props.currentAttribute.dataType != DataTypeEnum.EMBEDDING_LIST ? - {props.sampleRecords.calculatedAttributes[modalViewRecordDetails.recordIdx]} + {props.sampleRecords[modalViewRecordDetails.recordIdx].calculatedValue.value} :
- {props.sampleRecords.calculatedAttributesListDisplay[modalViewRecordDetails.recordIdx].map((item: any) => - {props.sampleRecords.calculatedAttributesList[modalViewRecordDetails.recordIdx]} + {props.sampleRecords[modalViewRecordDetails.recordIdx].calculatedValue.value.map((item: any) => + {item} )}
}
diff --git a/src/components/shared/record-display/RecordDisplay.tsx b/src/components/shared/record-display/RecordDisplay.tsx index 378f3df5..6af65606 100644 --- a/src/components/shared/record-display/RecordDisplay.tsx +++ b/src/components/shared/record-display/RecordDisplay.tsx @@ -33,8 +33,8 @@ export function RecordDisplay(props: any) {
{attributesDict[attribute.id] &&
- {attribute.dataType == DataTypeEnum.EMBEDDING_LIST ? (
- {preparedRecord.data[attributesDict[attribute.key].name] && preparedRecord.data[attributesDict[attribute.key].name].map((item, indexJ) => (
+ {attribute.dataType === DataTypeEnum.EMBEDDING_LIST || attribute.dataType === DataTypeEnum.PERMISSION ? (
+ {preparedRecord.data[attributesDict[attribute.key].name] ? preparedRecord.data[attributesDict[attribute.key].name].map((item, indexJ) => (
{(configuration.highlightText && isTextHighlightNeeded[attribute.key]) ? () : ( @@ -42,7 +42,7 @@ export function RecordDisplay(props: any) { {item != null && item !== '' ? item : } )} -
))} +
)) : }
) : (<> {(configuration.highlightText && isTextHighlightNeeded[attribute.key]) ? ( Date: Tue, 24 Jun 2025 20:41:07 +0200 Subject: [PATCH 08/13] merge --- submodules/react-components | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/react-components b/submodules/react-components index 0464f210..08dcea9d 160000 --- a/submodules/react-components +++ b/submodules/react-components @@ -1 +1 @@ -Subproject commit 0464f210a6d3a85624a6c78445568c45e0a9fca4 +Subproject commit 08dcea9da378ac1d55167bd28f2b789d4be82bb9 From e79a4167271f3cd9e0d71224ba3ff732d215a15d Mon Sep 17 00:00:00 2001 From: LennartSchmidtKern Date: Thu, 26 Jun 2025 09:22:31 +0200 Subject: [PATCH 09/13] react --- submodules/react-components | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/react-components b/submodules/react-components index 08dcea9d..f9be9301 160000 --- a/submodules/react-components +++ b/submodules/react-components @@ -1 +1 @@ -Subproject commit 08dcea9da378ac1d55167bd28f2b789d4be82bb9 +Subproject commit f9be93015e1b3ad3ec9df81f188a601f053edba2 From 43bebe3f961754948d7423b7757a01e4b8db80ff Mon Sep 17 00:00:00 2001 From: LennartSchmidtKern Date: Thu, 26 Jun 2025 14:34:14 +0200 Subject: [PATCH 10/13] merge --- submodules/javascript-functions | 2 +- submodules/react-components | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/javascript-functions b/submodules/javascript-functions index 1d8bba96..05f2851a 160000 --- a/submodules/javascript-functions +++ b/submodules/javascript-functions @@ -1 +1 @@ -Subproject commit 1d8bba96d0e4a86f568c1d0da68f5dd7e9804a0c +Subproject commit 05f2851ac39f1be632fd15bfd016be9b0a24babe diff --git a/submodules/react-components b/submodules/react-components index 0464f210..f9be9301 160000 --- a/submodules/react-components +++ b/submodules/react-components @@ -1 +1 @@ -Subproject commit 0464f210a6d3a85624a6c78445568c45e0a9fca4 +Subproject commit f9be93015e1b3ad3ec9df81f188a601f053edba2 From 011e4a3a344682172dad228a4a16fd90e7d90561 Mon Sep 17 00:00:00 2001 From: Lina Date: Thu, 3 Jul 2025 17:11:13 +0200 Subject: [PATCH 11/13] submodules update --- submodules/javascript-functions | 2 +- submodules/react-components | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/javascript-functions b/submodules/javascript-functions index 05f2851a..34c80304 160000 --- a/submodules/javascript-functions +++ b/submodules/javascript-functions @@ -1 +1 @@ -Subproject commit 05f2851ac39f1be632fd15bfd016be9b0a24babe +Subproject commit 34c803044cf2c1fe683d068ff9e033aba693b5a3 diff --git a/submodules/react-components b/submodules/react-components index f9be9301..2771cfb3 160000 --- a/submodules/react-components +++ b/submodules/react-components @@ -1 +1 @@ -Subproject commit f9be93015e1b3ad3ec9df81f188a601f053edba2 +Subproject commit 2771cfb3a1a342b6ab9476f187a424198e4f9d57 From 481ae18fd494a89df533817cbaa659e74cc07d1f Mon Sep 17 00:00:00 2001 From: Lina Date: Thu, 3 Jul 2025 17:17:11 +0200 Subject: [PATCH 12/13] PR comments --- .../projectId/settings/CreateNewAttributeModal.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/projects/projectId/settings/CreateNewAttributeModal.tsx b/src/components/projects/projectId/settings/CreateNewAttributeModal.tsx index 4e34be4c..8edec2ac 100644 --- a/src/components/projects/projectId/settings/CreateNewAttributeModal.tsx +++ b/src/components/projects/projectId/settings/CreateNewAttributeModal.tsx @@ -12,7 +12,7 @@ import { toPythonFunctionName } from "@/submodules/javascript-functions/python-f import KernDropdown from "@/submodules/react-components/components/KernDropdown"; import { Tooltip } from "@nextui-org/react"; import { useRouter } from "next/router"; -import { useCallback, useEffect, useState } from "react"; +import { useCallback, useEffect, useMemo, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; const ACCEPT_BUTTON = { buttonCaption: "Accept", useButton: true, disabled: true } @@ -58,6 +58,10 @@ export default function CreateNewAttributeModal() { setDuplicateNameExists(checkName); } + const filteredDataTypes = useMemo(() => { + return DATA_TYPES.filter(type => type.value !== 'PERMISSION'); + }, []); + return (
Add new attribute
@@ -73,7 +77,7 @@ export default function CreateNewAttributeModal() { Attribute type - setAttributeType(option)} /> + setAttributeType(option)} />
{duplicateNameExists &&
Attribute name exists
} {attributeType.name == 'Embedding List' &&
From f5f0d75173564054a346897b855cea86623bd291 Mon Sep 17 00:00:00 2001 From: JWittmeyer Date: Fri, 4 Jul 2025 12:02:22 +0200 Subject: [PATCH 13/13] Submodule update --- submodules/javascript-functions | 2 +- submodules/react-components | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/javascript-functions b/submodules/javascript-functions index 34c80304..dcbd2e81 160000 --- a/submodules/javascript-functions +++ b/submodules/javascript-functions @@ -1 +1 @@ -Subproject commit 34c803044cf2c1fe683d068ff9e033aba693b5a3 +Subproject commit dcbd2e811fdf0f3f950ec0a612371fd38f6152b7 diff --git a/submodules/react-components b/submodules/react-components index 2771cfb3..94c030a7 160000 --- a/submodules/react-components +++ b/submodules/react-components @@ -1 +1 @@ -Subproject commit 2771cfb3a1a342b6ab9476f187a424198e4f9d57 +Subproject commit 94c030a73b3d191adac3a679edf6c084301a69a1