mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 16:36:00 +00:00
custom markdown pages - basic concept
This commit is contained in:
@@ -5,7 +5,12 @@ import { AppObjectList } from '../appobj/AppObjectList';
|
||||
import { useOpenedTabs } from '../utility/globalState';
|
||||
import ClosedTabAppObject from '../appobj/ClosedTabAppObject';
|
||||
import { WidgetsInnerContainer } from './WidgetStyles';
|
||||
import { SavedSqlFileAppObject, SavedShellFileAppObject, SavedChartFileAppObject } from '../appobj/SavedFileAppObject';
|
||||
import {
|
||||
SavedSqlFileAppObject,
|
||||
SavedShellFileAppObject,
|
||||
SavedChartFileAppObject,
|
||||
SavedMarkdownFileAppObject,
|
||||
} from '../appobj/SavedFileAppObject';
|
||||
import WidgetColumnBar, { WidgetColumnBarItem } from './WidgetColumnBar';
|
||||
import { useFiles } from '../utility/metadataLoaders';
|
||||
import useHasPermission from '../utility/useHasPermission';
|
||||
@@ -64,6 +69,18 @@ function SavedChartFilesList() {
|
||||
);
|
||||
}
|
||||
|
||||
function SavedMarkdownFilesList() {
|
||||
const files = useFiles({ folder: 'markdown' });
|
||||
|
||||
return (
|
||||
<>
|
||||
<WidgetsInnerContainer>
|
||||
<AppObjectList list={files} AppObjectComponent={SavedMarkdownFileAppObject} />
|
||||
</WidgetsInnerContainer>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export default function FilesWidget() {
|
||||
const hasPermission = useHasPermission();
|
||||
return (
|
||||
@@ -72,20 +89,25 @@ export default function FilesWidget() {
|
||||
<ClosedTabsList />
|
||||
</WidgetColumnBarItem>
|
||||
{hasPermission('files/sql/read') && (
|
||||
<WidgetColumnBarItem title="Saved SQL files" name="sqlFiles" height="20%">
|
||||
<WidgetColumnBarItem title="Saved SQL files" name="sqlFiles" height="15%">
|
||||
<SavedSqlFilesList />
|
||||
</WidgetColumnBarItem>
|
||||
)}
|
||||
{hasPermission('files/shell/read') && (
|
||||
<WidgetColumnBarItem title="Saved shell files" name="shellFiles" height="20%">
|
||||
<WidgetColumnBarItem title="Saved shell files" name="shellFiles" height="15%">
|
||||
<SavedShellFilesList />
|
||||
</WidgetColumnBarItem>
|
||||
)}
|
||||
{hasPermission('files/charts/read') && (
|
||||
<WidgetColumnBarItem title="Saved charts" name="charts" height="20%">
|
||||
<WidgetColumnBarItem title="Saved charts" name="charts" height="15%">
|
||||
<SavedChartFilesList />
|
||||
</WidgetColumnBarItem>
|
||||
)}
|
||||
{hasPermission('files/markdown/read') && (
|
||||
<WidgetColumnBarItem title="Saved markdown pages" name="markdown" height="15%">
|
||||
<SavedMarkdownFilesList />
|
||||
</WidgetColumnBarItem>
|
||||
)}
|
||||
</WidgetColumnBar>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -66,6 +66,14 @@ export default function ToolBar({ toolbarPortalRef }) {
|
||||
else setCurrentTheme('light');
|
||||
};
|
||||
|
||||
const newMarkdown = () => {
|
||||
openNewTab(setOpenedTabs, {
|
||||
title: 'Page',
|
||||
tabComponent: 'MarkdownEditorTab',
|
||||
icon: 'img markdown',
|
||||
});
|
||||
};
|
||||
|
||||
function openTabFromButton(button) {
|
||||
if (openedTabs.find((x) => x.tabComponent == 'InfoPageTab' && x.props && x.props.page == button.page)) {
|
||||
setOpenedTabs((tabs) =>
|
||||
@@ -118,6 +126,9 @@ export default function ToolBar({ toolbarPortalRef }) {
|
||||
<ToolbarButton onClick={newFreeTable} icon="icon table">
|
||||
Free table editor
|
||||
</ToolbarButton>
|
||||
<ToolbarButton onClick={newMarkdown} icon="icon markdown">
|
||||
New markdown
|
||||
</ToolbarButton>
|
||||
<ToolbarButton onClick={showImport} icon="icon import">
|
||||
Import data
|
||||
</ToolbarButton>
|
||||
|
||||
Reference in New Issue
Block a user