1
0
mirror of https://github.com/sasjs/server.git synced 2025-12-11 19:44:35 +00:00

feat: add option for program launch in context menu

This commit is contained in:
2022-09-02 23:40:02 +05:00
parent e355276e44
commit ee2db276bb

View File

@@ -63,6 +63,7 @@ const TreeViewNode = ({
rename, rename,
defaultExpanded defaultExpanded
}: Props) => { }: Props) => {
// const appContext = useContext(AppContext)
const [deleteConfirmationModalOpen, setDeleteConfirmationModalOpen] = const [deleteConfirmationModalOpen, setDeleteConfirmationModalOpen] =
useState(false) useState(false)
const [deleteConfirmationModalMessage, setDeleteConfirmationModalMessage] = const [deleteConfirmationModalMessage, setDeleteConfirmationModalMessage] =
@@ -78,6 +79,23 @@ const TreeViewNode = ({
mouseY: number mouseY: number
} | null>(null) } | null>(null)
// const isFileLaunchable = (filename: string) => {
// const availableRuntimes = Object.values(appContext.runTimes)
// }
const launchProgram = () => {
const baseUrl = window.location.origin
window.open(`${baseUrl}/SASjsApi/stp/execute?_program=${node.relativePath}`)
}
const launchProgramWithDebug = () => {
const baseUrl = window.location.origin
window.open(
`${baseUrl}/SASjsApi/stp/execute?_program=${node.relativePath}&_debug=131`
)
}
const handleContextMenu = (event: React.MouseEvent) => { const handleContextMenu = (event: React.MouseEvent) => {
event.preventDefault() event.preventDefault()
event.stopPropagation() event.stopPropagation()
@@ -224,8 +242,8 @@ const TreeViewNode = ({
: undefined : undefined
} }
> >
{node.isFolder && ( {node.isFolder ? (
<div> <>
<MenuItem onClick={handleNewFolderItemClick}>Add Folder</MenuItem> <MenuItem onClick={handleNewFolderItemClick}>Add Folder</MenuItem>
<MenuItem <MenuItem
disabled={!node.relativePath} disabled={!node.relativePath}
@@ -233,14 +251,21 @@ const TreeViewNode = ({
> >
Add File Add File
</MenuItem> </MenuItem>
</div> </>
) : (
<>
<MenuItem onClick={launchProgram}>Launch</MenuItem>
<MenuItem onClick={launchProgramWithDebug}>
Launch and Debug
</MenuItem>
</>
)}
{!!node.relativePath && (
<>
<MenuItem onClick={handleRenameItemClick}>Rename</MenuItem>
<MenuItem onClick={handleDeleteItemClick}>Delete</MenuItem>
</>
)} )}
<MenuItem disabled={!node.relativePath} onClick={handleRenameItemClick}>
Rename
</MenuItem>
<MenuItem disabled={!node.relativePath} onClick={handleDeleteItemClick}>
Delete
</MenuItem>
</Menu> </Menu>
</div> </div>
) )