diff --git a/packages/unigraph-dev-backend/src/executableManager.ts b/packages/unigraph-dev-backend/src/executableManager.ts index 7aca7825..95eebbc3 100644 --- a/packages/unigraph-dev-backend/src/executableManager.ts +++ b/packages/unigraph-dev-backend/src/executableManager.ts @@ -38,8 +38,6 @@ export function createExecutableCache( unigraph: Unigraph, states: any, ): Cache { - const schedule: Record = {}; - const cache: Cache = { data: {}, updateNow: async () => null, @@ -67,7 +65,6 @@ export function createExecutableCache( if (k.startsWith('$/executable') && !cache.data[k]) cache.data[k] = unpad(v); }); - initExecutables(Object.entries(cache.data), context, unigraph, schedule, states); done(false, null); }); }; diff --git a/packages/unigraph-dev-backend/src/server.ts b/packages/unigraph-dev-backend/src/server.ts index 556f1dac..d1ee4e53 100644 --- a/packages/unigraph-dev-backend/src/server.ts +++ b/packages/unigraph-dev-backend/src/server.ts @@ -15,6 +15,7 @@ import fetch from 'node-fetch'; import _, { uniqueId } from 'lodash'; import { Unigraph } from 'unigraph-dev-common/lib/types/unigraph'; import stringify from 'json-stable-stringify'; +import cron from 'node-cron'; import DgraphClient from './dgraphClient'; import { EventAddBacklinks, @@ -77,7 +78,7 @@ import { initEntityHeads, } from './hooks'; import { getAsyncLock } from './asyncManager'; -import { createExecutableCache } from './executableManager'; +import { createExecutableCache, initExecutables } from './executableManager'; import { getLocalUnigraphAPI } from './localUnigraphApi'; import { addNotification } from './notifications'; import { perfLogAfterDbTransaction, perfLogStartDbTransaction, perfLogStartPreprocessing } from './logging'; @@ -99,6 +100,7 @@ export default async function startServer(client: DgraphClient) { const lock = getAsyncLock(); const connections: Record = {}; + const executableSchedule: Record = {}; // Basic checks await checkOrCreateDefaultDataModel(client); @@ -185,6 +187,13 @@ export default async function startServer(client: DgraphClient) { await context.caches.schemas.updateNow(); await context.caches.packages.updateNow(); await context.caches.executables.updateNow(); + initExecutables( + Object.entries(context.caches.executables.data), + {}, + localApi, + serverStates.executableSchedule, + serverStates, + ); Object.values(connections).forEach((el) => el.send( stringify({ @@ -208,6 +217,13 @@ export default async function startServer(client: DgraphClient) { context.ofUpdate, ); await context.caches.executables.updateNow(); + initExecutables( + Object.entries(context.caches.executables.data), + {}, + localApi, + serverStates.executableSchedule, + serverStates, + ); // Call after_object_created hooks with uids cached const objectCreatedHooks: any = {}; @@ -243,6 +259,7 @@ export default async function startServer(client: DgraphClient) { clientLeasedUids: {}, httpCallbacks: {}, runningExecutables: [], + executableSchedule, addRunningExecutable: (defn: any) => { serverStates.runningExecutables.push(defn); clearTimeout(debounceId); @@ -890,6 +907,8 @@ export default async function startServer(client: DgraphClient) { console.log('\nUnigraph server listening on port', PORT); }); + initExecutables(Object.entries(serverStates.caches['executables'].data), {}, localApi, serverStates.executableSchedule, serverStates); + /** Maps from clientIds to connIds, from this server start */ const historialClients: Record = {}; serverStates.getClientId = (connId: string) => diff --git a/packages/unigraph-dev-electron/src/main.js b/packages/unigraph-dev-electron/src/main.js index 3f4eb2c9..ed1fd019 100644 --- a/packages/unigraph-dev-electron/src/main.js +++ b/packages/unigraph-dev-electron/src/main.js @@ -86,7 +86,7 @@ async function startServer(logHandler) { path.join(userData, 'zw'), ]); - const completedLog = 'ResetCors closed'; // When this is logged we know it's completed + const completedLog = 'Server is ready: OK'; // When this is logged we know it's completed const completedULog = 'Unigraph server listening on port'; function checkIfComplete(str) { diff --git a/packages/unigraph-dev-explorer/src/components/AppDrawer.tsx b/packages/unigraph-dev-explorer/src/components/AppDrawer.tsx index 694f1939..a6f1eb5b 100644 --- a/packages/unigraph-dev-explorer/src/components/AppDrawer.tsx +++ b/packages/unigraph-dev-explorer/src/components/AppDrawer.tsx @@ -29,7 +29,7 @@ const classes = { drawerPaper: `${PREFIX}-drawerPaper`, }; -const appDrawerHoverSx = { cursor: 'pointer', ...hoverSx }; +const appDrawerHoverSx = { paddingBottom: '4px', paddingTop: '4px', cursor: 'pointer', ...hoverSx }; export default function DrawerRouter() { const devState = window.unigraph.getState('settings/developerMode'); const [devMode, setDevMode] = React.useState(devState.value); diff --git a/packages/unigraph-dev-explorer/src/components/ObjectView/DefaultObjectContextMenu.tsx b/packages/unigraph-dev-explorer/src/components/ObjectView/DefaultObjectContextMenu.tsx index b8bc5b20..b775d0ca 100644 --- a/packages/unigraph-dev-explorer/src/components/ObjectView/DefaultObjectContextMenu.tsx +++ b/packages/unigraph-dev-explorer/src/components/ObjectView/DefaultObjectContextMenu.tsx @@ -147,7 +147,7 @@ export const defaultContextMenu: Array = [ ), (uid, object, handleClose, callbacks) => ( { handleClose(); window.wsnavigator(`/graph?uid=${uid}`); diff --git a/packages/unigraph-dev-explorer/src/components/ObjectView/DynamicObjectListView.tsx b/packages/unigraph-dev-explorer/src/components/ObjectView/DynamicObjectListView.tsx index ff1a1135..5ad1b5c5 100644 --- a/packages/unigraph-dev-explorer/src/components/ObjectView/DynamicObjectListView.tsx +++ b/packages/unigraph-dev-explorer/src/components/ObjectView/DynamicObjectListView.tsx @@ -45,6 +45,7 @@ const Root = styled('div')(({ theme }) => ({ [`& .${classes.content}`]: { width: '100%', overflow: 'auto', + marginRight: '8px', }, })); @@ -114,12 +115,14 @@ function DynamicListItem({ components, removeOnEnter, compact, + itemStyle, }: any) { return ( itemGetter(ell).uid)} itemRemover={itemRemover} @@ -247,6 +253,7 @@ function DynamicList({ subscribeOptions, removeOnEnter, components, + itemStyle, }: any) { const tabContext = React.useContext(TabContext); const [loadedItems, setLoadedItems] = React.useState([]); @@ -322,6 +329,7 @@ function DynamicList({ listUid={listUid} reverse={reverse} compact={compact} + itemStyle={itemStyle} callbacks={callbacks} itemUids={items.map((ell: any) => itemGetter(ell).uid)} itemRemover={itemRemover} @@ -359,7 +367,7 @@ function MultiTypeDescriptor({ marginBottom: '0px', }} /> - +
{itemGroups.map((el, index) => ( setSelectedTab(el.name)}>
{el.items.length} ))} - +
) : ( @@ -438,6 +446,7 @@ export const DynamicObjectListView: React.FC = ({ noRemover, noDrop, compact, + itemStyle, subscribeOptions, loadAll, removeOnEnter, @@ -536,7 +545,7 @@ export const DynamicObjectListView: React.FC = ({ })); return ( -
= ({ parId, noRemover, compact, + itemStyle, subscribeOptions, removeOnEnter, components, @@ -722,6 +732,7 @@ export const DynamicObjectListView: React.FC = ({ parId, noRemover, compact, + itemStyle, subscribeOptions, removeOnEnter, components, @@ -730,6 +741,6 @@ export const DynamicObjectListView: React.FC = ({ ))}
-
+
); }; diff --git a/packages/unigraph-dev-explorer/src/components/UnigraphCore/ContextMenu.tsx b/packages/unigraph-dev-explorer/src/components/UnigraphCore/ContextMenu.tsx index 42bcfee9..9ed9a982 100644 --- a/packages/unigraph-dev-explorer/src/components/UnigraphCore/ContextMenu.tsx +++ b/packages/unigraph-dev-explorer/src/components/UnigraphCore/ContextMenu.tsx @@ -46,8 +46,8 @@ export function ContextMenu() { PaperProps={{ elevation: 4, style: { - padding: '6px 4px', - borderRadius: '16px', + padding: '4px 4px', + borderRadius: '6px', }, }} > @@ -60,8 +60,8 @@ export function ContextMenu() { {objDef?._icon ? ( {objDef?._name || state.contextObject?.type?.['unigraph.id']}
- + {state.menuContent?.map((el: any) => el( state.contextUid!, @@ -87,7 +87,7 @@ export function ContextMenu() { )} {schemaMenuConstructors.length > 0 ? ( <> - + {schemaMenuConstructors.map((el: any) => el( state.contextUid!, @@ -106,7 +106,7 @@ export function ContextMenu() { )} {state.contextContextUid ? ( <> - + @@ -115,8 +115,8 @@ export function ContextMenu() { {objCtxDef?._icon ? ( - + {state.menuContextContent?.map((el: any) => el( state.contextUid!, diff --git a/packages/unigraph-dev-explorer/src/components/UnigraphCore/FavoriteBar.tsx b/packages/unigraph-dev-explorer/src/components/UnigraphCore/FavoriteBar.tsx index 1b6847db..b7fd7e11 100644 --- a/packages/unigraph-dev-explorer/src/components/UnigraphCore/FavoriteBar.tsx +++ b/packages/unigraph-dev-explorer/src/components/UnigraphCore/FavoriteBar.tsx @@ -51,6 +51,7 @@ export function FavoriteBar() { itemGetter={(el: any) => el._value._value} noBar noRemover + itemStyle={{ paddingTop: '4px', paddingBottom: '4px' }} defaultFilter={['no-deleted', 'no-noview']} itemRemover={(uids) => { window.unigraph.deleteItemFromArray(favEntity?._value?.children?.uid, uids, favEntity.uid); diff --git a/packages/unigraph-dev-explorer/src/examples/notes/init.tsx b/packages/unigraph-dev-explorer/src/examples/notes/init.tsx index f609048f..07192e20 100644 --- a/packages/unigraph-dev-explorer/src/examples/notes/init.tsx +++ b/packages/unigraph-dev-explorer/src/examples/notes/init.tsx @@ -8,6 +8,7 @@ import { registerContextMenuItems, registerQuickAdder, } from '../../unigraph-react'; +import { contextMenuItemStyle } from '../../utils'; import { setChildrenDisplayAs } from './commands'; import { DetailedNoteBlock } from './NoteBlock'; import { NoteBlock } from './NoteBlockViews'; @@ -93,6 +94,7 @@ export const init = () => { registerContextMenuItems('$/schema/note_block', [ (uid: any, object: any, handleClose: any, callbacks: any) => ( { handleClose(); callbacks['convert-child-to-todo'](); @@ -106,6 +108,7 @@ export const init = () => { const displayAs = object?._value?.children?._displayAs || 'outliner'; return ( { handleClose(); setChildrenDisplayAs(object, callbacks, displayAs === 'outliner' ? 'paragraph' : 'outliner'); diff --git a/packages/unigraph-dev-explorer/src/utils.tsx b/packages/unigraph-dev-explorer/src/utils.tsx index 52fce034..9921b2d3 100644 --- a/packages/unigraph-dev-explorer/src/utils.tsx +++ b/packages/unigraph-dev-explorer/src/utils.tsx @@ -572,7 +572,7 @@ export const hoverSx = { '&:active': { backgroundColor: 'action.selected' }, }; -export const contextMenuItemStyle = { paddingTop: '8px', paddingBottom: '8px' }; +export const contextMenuItemStyle = { paddingTop: '4px', paddingBottom: '4px' }; export const globalTheme = { palette: { primary: { main: '#212121' },