@@ -232,12 +255,18 @@ const OcdConsoleToolbar = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument,
- {!hideZoomClassName &&
setOcdConsoleConfig(ocdConsoleConfig)}
+ ocdDocument={ocdDocument}
+ setOcdDocument={(ocdDocument:OcdDocument) => setOcdDocument(ocdDocument)}
+ />} */}
+ setOcdConsoleConfig(ocdConsoleConfig)}
ocdDocument={ocdDocument}
setOcdDocument={(ocdDocument:OcdDocument) => setOcdDocument(ocdDocument)}
- />}
+ />
{/* */}
@@ -246,23 +275,13 @@ const OcdConsoleToolbar = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument,
)
}
+const OcdEmptyLeftRightToolbar = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcdDocument}: ConsolePageProps): JSX.Element => {return (<>>)}
+
const OcdConsoleBody = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcdDocument }: ConsolePageProps): JSX.Element => {
const showQueryDialog = ocdDocument.query
const showReferenceDataQueryDialog = ocdConsoleConfig.queryReferenceData
const showExportToResourceManagerDialog = ocdDocument.dialog.resourceManager
console.debug('OcdConsoleBody: Dialogs: Query', showQueryDialog, 'ReferenceData', showReferenceDataQueryDialog, 'Resource Manager', showExportToResourceManagerDialog)
- // const DisplayPage = ocdConsoleConfig.config.displayPage === 'bom' ? OcdBom :
- // ocdConsoleConfig.config.displayPage === 'designer' ? OcdDesigner :
- // ocdConsoleConfig.config.displayPage === 'documentation' ? OcdDocumentation :
- // ocdConsoleConfig.config.displayPage === 'markdown' ? OcdMarkdown :
- // ocdConsoleConfig.config.displayPage === 'tabular' ? OcdTabular :
- // ocdConsoleConfig.config.displayPage === 'tags' ? OcdCommonTags :
- // ocdConsoleConfig.config.displayPage === 'terraform' ? OcdTerraform :
- // ocdConsoleConfig.config.displayPage === 'variables' ? OcdVariables :
- // ocdConsoleConfig.config.displayPage === 'validation' ? OcdValidation :
- // ocdConsoleConfig.config.displayPage === 'help' ? OcdHelp :
- // ocdConsoleConfig.config.displayPage === 'library' ? OcdLibrary :
- // OcdDesigner
let DisplayPage = OcdDesigner
switch (ocdConsoleConfig.config.displayPage) {
case 'bom':
diff --git a/ocd/packages/react/src/pages/OcdMarkdown.tsx b/ocd/packages/react/src/pages/OcdMarkdown.tsx
index 13b4e464..16e0ed19 100644
--- a/ocd/packages/react/src/pages/OcdMarkdown.tsx
+++ b/ocd/packages/react/src/pages/OcdMarkdown.tsx
@@ -8,6 +8,11 @@ import { ConsolePageProps } from "../types/Console"
import Markdown from 'react-markdown'
import rehypeRaw from 'rehype-raw'
import remarkGfm from 'remark-gfm'
+import { OcdDesignFacade } from "../facade/OcdDesignFacade"
+import { svgCssData } from '../data/OcdSvgCssData'
+
+const svgThemeCss = svgCssData['oci-theme.css']
+const svgSvgCss = svgCssData['ocd-svg.css']
const OcdMarkdown = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcdDocument}: ConsolePageProps): JSX.Element => {
const markdownExporter = new OcdMarkdownExporter([])
@@ -19,4 +24,29 @@ const OcdMarkdown = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOc
)
}
+export const OcdMarkdownLeftToolbar = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcdDocument}: ConsolePageProps): JSX.Element => {
+ // const {ocdConsoleConfig, setOcdConsoleConfig} = useContext(ConsoleConfigContext)
+ const onClickMarkdown = () => {
+ console.debug('OcdMarkdown: Export to Markdown')
+ const design = ocdDocument.design
+ OcdDesignFacade.exportToMarkdown(design, [svgThemeCss, svgSvgCss], `design.md`).then((results) => {
+ console.debug('Exported to Markdown')
+ }).catch((error) => {
+ console.warn('Export To Markdown Failed with', error)
+ alert(error)
+ })
+ }
+ return (
+
+ )
+}
+
+export const OcdTerraformRightToolbar = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcdDocument}: ConsolePageProps): JSX.Element => {
+ return (
+
+ )
+}
+
export default OcdMarkdown
\ No newline at end of file
diff --git a/ocd/packages/react/src/pages/OcdTabular.tsx b/ocd/packages/react/src/pages/OcdTabular.tsx
index 805b37b6..6aceffad 100644
--- a/ocd/packages/react/src/pages/OcdTabular.tsx
+++ b/ocd/packages/react/src/pages/OcdTabular.tsx
@@ -6,9 +6,9 @@
import { useState } from "react"
import { ConsolePageProps } from "../types/Console"
import { OcdUtils } from "@ocd/core"
-import { OciResource } from "@ocd/model"
import { OciDefault } from "../components/tabular/provider/oci/OciTabularContents"
import * as ociTabularResources from '../components/tabular/provider/oci/resources'
+import { OcdDesignFacade } from "../facade/OcdDesignFacade"
const OcdTabular = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcdDocument}: ConsolePageProps): JSX.Element => {
const [selected, setSelected] = useState('compartment')
@@ -46,4 +46,38 @@ const OcdTabular = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcd
)
}
+export interface ExcelResource {
+ sheetName: string
+ resourceName: string
+ displayColumns: string[]
+}
+
+export const OcdTabularLeftToolbar = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcdDocument}: ConsolePageProps): JSX.Element => {
+ // const {ocdConsoleConfig, setOcdConsoleConfig} = useContext(ConsoleConfigContext)
+ const onClickExcel = () => {
+ console.debug('OcdTabular: Export to Excel')
+ const design = ocdDocument.design
+ const displayColumns = ocdConsoleConfig.config.displayColumns || {}
+ console.debug('OcdTabular: Export to Excel - design', design)
+ console.debug('OcdTabular: Export to Excel - displayColumns', displayColumns)
+ OcdDesignFacade.exportToExcel(design, `design.xlsx`).then((results) => {
+ console.debug('Exported to Excel')
+ }).catch((error) => {
+ console.warn('Export To Excel Failed with', error)
+ alert(error)
+ })
+ }
+ return (
+
+ )
+}
+
+export const OcdTabularRightToolbar = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcdDocument}: ConsolePageProps): JSX.Element => {
+ return (
+
+ )
+}
+
export default OcdTabular
\ No newline at end of file
diff --git a/ocd/packages/react/src/pages/OcdTerraform.tsx b/ocd/packages/react/src/pages/OcdTerraform.tsx
index a52c429c..dfae1f76 100644
--- a/ocd/packages/react/src/pages/OcdTerraform.tsx
+++ b/ocd/packages/react/src/pages/OcdTerraform.tsx
@@ -6,6 +6,7 @@
import { useState } from "react"
import { ConsolePageProps } from "../types/Console"
import { OcdTerraformExporter } from "@ocd/export"
+import { OcdDesignFacade } from "../facade/OcdDesignFacade"
const OcdTerraform = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcdDocument}: ConsolePageProps): JSX.Element => {
const [selected, setSelected] = useState('oci_provider.tf')
@@ -32,4 +33,29 @@ const OcdTerraform = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setO
)
}
+export const OcdTerraformLeftToolbar = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcdDocument}: ConsolePageProps): JSX.Element => {
+ // const {ocdConsoleConfig, setOcdConsoleConfig} = useContext(ConsoleConfigContext)
+ const onClickTerraform = () => {
+ console.debug('OcdTerraform: Export to OpenTofu (Terraform)')
+ const design = ocdDocument.design
+ OcdDesignFacade.exportToTerraform(design, `design.xlsx`).then((results) => {
+ console.debug('Exported to Terraform')
+ }).catch((error) => {
+ console.warn('Export To Terraform Failed with', error)
+ alert(error)
+ })
+ }
+ return (
+
+ )
+}
+
+export const OcdTerraformRightToolbar = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument, setOcdDocument}: ConsolePageProps): JSX.Element => {
+ return (
+
+ )
+}
+
export default OcdTerraform
\ No newline at end of file
From 011976147ae96b205d0c7421b7c45c0d5bd20339 Mon Sep 17 00:00:00 2001
From: Andrew Hopkinson <64254061+toxophilist@users.noreply.github.com>
Date: Thu, 30 Jan 2025 17:39:03 +0000
Subject: [PATCH 22/27] chore(SonarCloud): Implement recommendations
---
ocd/packages/desktop/src/main.ts | 8 ++++----
ocd/packages/react/src/components/Menu.ts | 4 ++--
ocd/packages/react/src/pages/OcdConsole.tsx | 12 ------------
3 files changed, 6 insertions(+), 18 deletions(-)
diff --git a/ocd/packages/desktop/src/main.ts b/ocd/packages/desktop/src/main.ts
index 0c699b3d..3e494095 100644
--- a/ocd/packages/desktop/src/main.ts
+++ b/ocd/packages/desktop/src/main.ts
@@ -429,7 +429,7 @@ async function handleLoadDesign(event: any, filename: string) {
}
async function handleSaveDesign(event: any, design: OcdDesign, filename: string, suggestedFilename='') {
- design = typeof design === 'string' ? JSON.parse(design) : design
+ // design = typeof design === 'string' ? JSON.parse(design) : design
console.debug('Electron Main: handleSaveDesign', filename, JSON.stringify(design, null, 2))
return new Promise((resolve, reject) => {
try {
@@ -542,7 +542,7 @@ async function handleExportToExcel(event: any, design: OcdDesign, suggestedFilen
}
}).catch(err => {
console.error(err)
- reject(err)
+ reject(new Error(err))
})
// } catch (err) {
// reject(err)
@@ -552,7 +552,7 @@ async function handleExportToExcel(event: any, design: OcdDesign, suggestedFilen
}
async function handleExportToMarkdown(event: any, design: OcdDesign, css: string[]=[], suggestedFilename='') {
- design = typeof design === 'string' ? JSON.parse(design) : design
+ // design = typeof design === 'string' ? JSON.parse(design) : design
console.debug('Electron Main: handleExportToMarkdown')
return new Promise((resolve, reject) => {
dialog.showSaveDialog(mainWindow, {
@@ -575,7 +575,7 @@ async function handleExportToMarkdown(event: any, design: OcdDesign, css: string
}
async function handleExportToTerraform(event: any, design: OcdDesign, directory: string) {
- design = typeof design === 'string' ? JSON.parse(design) : design
+ // design = typeof design === 'string' ? JSON.parse(design) : design
console.debug('Electron Main: handleExportTerraform')
return new Promise((resolve, reject) => {
dialog.showOpenDialog(mainWindow, {
diff --git a/ocd/packages/react/src/components/Menu.ts b/ocd/packages/react/src/components/Menu.ts
index cedbfd0f..9f1c1b57 100644
--- a/ocd/packages/react/src/components/Menu.ts
+++ b/ocd/packages/react/src/components/Menu.ts
@@ -192,7 +192,7 @@ export const menuItems: MenuItem[] = [
submenu: [
{
label: 'Markdown',
- click: (ocdDocument: OcdDocument, setOcdDocument: Function) => { // TODO: Convert to call to Electron API
+ click: (ocdDocument: OcdDocument, setOcdDocument: Function) => { // Convert to call to Electron API
const saveFile = async (ocdDocument: OcdDocument) => {
try {
const options = {
@@ -222,7 +222,7 @@ export const menuItems: MenuItem[] = [
},
{
label: 'OpenTofu (Terraform)',
- click: (ocdDocument: OcdDocument, setOcdDocument: Function) => { // TODO: Convert to call to Electron API
+ click: (ocdDocument: OcdDocument, setOcdDocument: Function) => { // Convert to call to Electron API
const writeTerraformFile = async (dirHandle: FileSystemDirectoryHandle, filename: string, contents: string[]) => {
const fileHandle: FileSystemFileHandle = await dirHandle.getFileHandle(filename, {create: true})
// @ts-ignore
diff --git a/ocd/packages/react/src/pages/OcdConsole.tsx b/ocd/packages/react/src/pages/OcdConsole.tsx
index 5df49261..8ae21472 100644
--- a/ocd/packages/react/src/pages/OcdConsole.tsx
+++ b/ocd/packages/react/src/pages/OcdConsole.tsx
@@ -241,12 +241,6 @@ const OcdConsoleToolbar = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument,
ocdDocument={ocdDocument}
setOcdDocument={(ocdDocument:OcdDocument) => setOcdDocument(ocdDocument)}
/>
- {/* {!hideZoomClassName &&
setOcdConsoleConfig(ocdConsoleConfig)}
- ocdDocument={ocdDocument}
- setOcdDocument={(ocdDocument:OcdDocument) => setOcdDocument(ocdDocument)}
- />} */}
@@ -255,12 +249,6 @@ const OcdConsoleToolbar = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument,