Select requested form in IDE designer
This commit is contained in:
@@ -3041,12 +3041,23 @@ function FormDesignerPanel({
|
|||||||
const [elementDrafts, setElementDrafts] = useState<Record<string, IdeFormElementDraft[]>>({});
|
const [elementDrafts, setElementDrafts] = useState<Record<string, IdeFormElementDraft[]>>({});
|
||||||
const [newElementName, setNewElementName] = useState("");
|
const [newElementName, setNewElementName] = useState("");
|
||||||
const [newElementKind, setNewElementKind] = useState<IdeFormElementDraft["controlKind"]>("input");
|
const [newElementKind, setNewElementKind] = useState<IdeFormElementDraft["controlKind"]>("input");
|
||||||
|
const selectedFormQualifiedName = data.editorSelectedForm;
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (selectedFormQualifiedName) {
|
||||||
|
const requestedForm = objectForms.find((item) => item.form.qualified_name === selectedFormQualifiedName);
|
||||||
|
if (requestedForm && requestedForm.form.lineage_id !== selectedFormId) {
|
||||||
|
setSelectedFormId(requestedForm.form.lineage_id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (objectForms.length > 0 && !objectForms.some((item) => item.form.lineage_id === selectedFormId)) {
|
if (objectForms.length > 0 && !objectForms.some((item) => item.form.lineage_id === selectedFormId)) {
|
||||||
setSelectedFormId(objectForms[0].form.lineage_id);
|
setSelectedFormId(objectForms[0].form.lineage_id);
|
||||||
}
|
}
|
||||||
}, [objectForms, selectedFormId]);
|
}, [objectForms, selectedFormId, selectedFormQualifiedName]);
|
||||||
const form = objectForms.find((item) => item.form.lineage_id === selectedFormId) ?? objectForms[0];
|
const form =
|
||||||
|
objectForms.find((item) => item.form.lineage_id === selectedFormId) ??
|
||||||
|
objectForms.find((item) => item.form.qualified_name === selectedFormQualifiedName) ??
|
||||||
|
objectForms[0];
|
||||||
const commands = form?.commands.slice(0, 6) ?? [];
|
const commands = form?.commands.slice(0, 6) ?? [];
|
||||||
const formKey = form?.form.lineage_id ?? "draft";
|
const formKey = form?.form.lineage_id ?? "draft";
|
||||||
const baseElements = useMemo(() => buildIdeFormElements(form), [form]);
|
const baseElements = useMemo(() => buildIdeFormElements(form), [form]);
|
||||||
|
|||||||
@@ -817,6 +817,11 @@ export async function getBslCompletions(
|
|||||||
return getJson<BslCompletionItem[]>(apiUrl, `/projects/${projectId}/bsl/completions?${params.toString()}`);
|
return getJson<BslCompletionItem[]>(apiUrl, `/projects/${projectId}/bsl/completions?${params.toString()}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ownerQualifiedNameForForm(formQualifiedName: string) {
|
||||||
|
const parts = formQualifiedName.split(".");
|
||||||
|
return parts.length > 1 ? parts.slice(0, -1).join(".") : formQualifiedName;
|
||||||
|
}
|
||||||
|
|
||||||
export async function getProjectWorkspaceData(projectId: string, apiUrl = resolveApiUrl(), selectedRoutine?: string | null, activeMode?: string | null) {
|
export async function getProjectWorkspaceData(projectId: string, apiUrl = resolveApiUrl(), selectedRoutine?: string | null, activeMode?: string | null) {
|
||||||
const selectedRoutineName = selectedRoutine?.trim() ?? null;
|
const selectedRoutineName = selectedRoutine?.trim() ?? null;
|
||||||
const workspaceMode = activeMode?.trim() || "overview";
|
const workspaceMode = activeMode?.trim() || "overview";
|
||||||
@@ -851,7 +856,15 @@ export async function getProjectWorkspaceData(projectId: string, apiUrl = resolv
|
|||||||
);
|
);
|
||||||
selectedTreeNode = firstCommonModulePage?.children[0] ?? null;
|
selectedTreeNode = firstCommonModulePage?.children[0] ?? null;
|
||||||
}
|
}
|
||||||
const selectedObjectName = selectedRoutineName ?? selectedTreeNode?.qualified_name ?? null;
|
const selectedFormQualifiedName =
|
||||||
|
selectedTreeNode?.kind === "FORM"
|
||||||
|
? selectedTreeNode.qualified_name
|
||||||
|
: selectedRoutineName && selectedRoutineName.split(".").at(-1)?.toLocaleLowerCase("ru-RU").includes("форма")
|
||||||
|
? selectedRoutineName
|
||||||
|
: null;
|
||||||
|
const selectedObjectName = selectedFormQualifiedName
|
||||||
|
? ownerQualifiedNameForForm(selectedFormQualifiedName)
|
||||||
|
: selectedRoutineName ?? selectedTreeNode?.qualified_name ?? null;
|
||||||
const selectedObjectModules = selectedObjectName
|
const selectedObjectModules = selectedObjectName
|
||||||
? getOptionalJson<WorkspaceModuleSource[]>(
|
? getOptionalJson<WorkspaceModuleSource[]>(
|
||||||
apiUrl,
|
apiUrl,
|
||||||
@@ -957,7 +970,7 @@ export async function getProjectWorkspaceData(projectId: string, apiUrl = resolv
|
|||||||
apiUrl,
|
apiUrl,
|
||||||
metadataCatalog,
|
metadataCatalog,
|
||||||
metadataTree,
|
metadataTree,
|
||||||
selectedMetadataNode: selectedMetadataSearch?.results[0] ?? null,
|
selectedMetadataNode: selectedTreeNode,
|
||||||
selectedObjectSchema,
|
selectedObjectSchema,
|
||||||
selectedObjectUi,
|
selectedObjectUi,
|
||||||
selectedObjectImpact,
|
selectedObjectImpact,
|
||||||
@@ -978,6 +991,7 @@ export async function getProjectWorkspaceData(projectId: string, apiUrl = resolv
|
|||||||
editorProposedText: authoringProposedText,
|
editorProposedText: authoringProposedText,
|
||||||
editorSelectedObject,
|
editorSelectedObject,
|
||||||
editorSelectedRoutine,
|
editorSelectedRoutine,
|
||||||
|
editorSelectedForm: selectedFormQualifiedName,
|
||||||
editorModules: objectModules,
|
editorModules: objectModules,
|
||||||
editorModuleName: selectedObjectModule?.name ?? snapshotModule?.name ?? null,
|
editorModuleName: selectedObjectModule?.name ?? snapshotModule?.name ?? null,
|
||||||
editorSourcePath: selectedObjectModule?.source_path ?? snapshotModule?.source_path ?? null
|
editorSourcePath: selectedObjectModule?.source_path ?? snapshotModule?.source_path ?? null
|
||||||
|
|||||||
Reference in New Issue
Block a user