Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7f6ac081a9 | ||
|
|
adcbb26cbf | ||
|
|
bfdf88c0b0 |
BIN
assets/pasted-20260312-073441-30f2a796.png
Normal file
BIN
assets/pasted-20260312-073441-30f2a796.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 192 KiB |
BIN
assets/pasted-20260312-073732-d128edec.png
Normal file
BIN
assets/pasted-20260312-073732-d128edec.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 871 KiB |
BIN
assets/pasted-20260312-104316-86469047.png
Normal file
BIN
assets/pasted-20260312-104316-86469047.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 198 KiB |
BIN
assets/pasted-20260312-104711-befd245e.png
Normal file
BIN
assets/pasted-20260312-104711-befd245e.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 199 KiB |
1
braces.txt
Normal file
1
braces.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
{{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}}
|
||||||
BIN
frontend/public/assets/vm-shot-2026-03-12T07-37-15-920Z.jpg
Normal file
BIN
frontend/public/assets/vm-shot-2026-03-12T07-37-15-920Z.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 198 KiB |
BIN
frontend/public/assets/vm-shot-2026-03-12T07-41-41-901Z.jpg
Normal file
BIN
frontend/public/assets/vm-shot-2026-03-12T07-41-41-901Z.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
@ -3,10 +3,9 @@ import { mdiLogout, mdiClose } from '@mdi/js'
|
|||||||
import BaseIcon from './BaseIcon'
|
import BaseIcon from './BaseIcon'
|
||||||
import AsideMenuList from './AsideMenuList'
|
import AsideMenuList from './AsideMenuList'
|
||||||
import { MenuAsideItem } from '../interfaces'
|
import { MenuAsideItem } from '../interfaces'
|
||||||
import { useAppSelector } from '../stores/hooks'
|
import { useAppSelector , useAppDispatch } from '../stores/hooks'
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
|
|
||||||
import { useAppDispatch } from '../stores/hooks';
|
|
||||||
import { createAsyncThunk } from '@reduxjs/toolkit';
|
import { createAsyncThunk } from '@reduxjs/toolkit';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
|
||||||
@ -58,7 +57,7 @@ export default function AsideMenuLayer({ menu, className = '', ...props }: Props
|
|||||||
return (
|
return (
|
||||||
<aside
|
<aside
|
||||||
id='asideMenu'
|
id='asideMenu'
|
||||||
className={`${className} zzz lg:py-2 lg:pl-2 w-60 fixed flex z-40 top-0 h-screen transition-position overflow-hidden`}
|
className={`${className} zzz lg:py-2 lg:pl-2 w-60 fixed flex z-40 top-0 h-screen transition-position overflow-hidden lg:relative lg:translate-x-0 translate-x-0`}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className={`flex-1 flex flex-col overflow-hidden dark:bg-dark-900 ${asideStyle} ${corners}`}
|
className={`flex-1 flex flex-col overflow-hidden dark:bg-dark-900 ${asideStyle} ${corners}`}
|
||||||
|
|||||||
@ -11,7 +11,7 @@ type Props = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const BaseButtons = ({
|
const BaseButtons = ({
|
||||||
type = 'justify-end',
|
type = 'justify-start md:justify-end',
|
||||||
mb = '-mb-3',
|
mb = '-mb-3',
|
||||||
classAddon = 'mr-3 last:mr-0 mb-3',
|
classAddon = 'mr-3 last:mr-0 mb-3',
|
||||||
noWrap = false,
|
noWrap = false,
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import React, {useEffect, useRef} from 'react'
|
import React, {useEffect, useRef, useState } from 'react'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import { useState } from 'react'
|
|
||||||
import { mdiChevronUp, mdiChevronDown } from '@mdi/js'
|
import { mdiChevronUp, mdiChevronDown } from '@mdi/js'
|
||||||
import BaseDivider from './BaseDivider'
|
import BaseDivider from './BaseDivider'
|
||||||
import BaseIcon from './BaseIcon'
|
import BaseIcon from './BaseIcon'
|
||||||
|
|||||||
@ -4,12 +4,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
thead {
|
thead {
|
||||||
@apply hidden lg:table-header-group;
|
@apply hidden md:table-header-group;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr {
|
tr {
|
||||||
@apply max-w-full block relative border-b-4 border-gray-100
|
@apply max-w-full block relative border-b-4 border-gray-100 md:table-row md:border-b-0 dark:border-slate-800;
|
||||||
lg:table-row lg:border-b-0 dark:border-slate-800;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tr:last-child {
|
tr:last-child {
|
||||||
@ -17,11 +16,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
td:not(:first-child) {
|
td:not(:first-child) {
|
||||||
@apply lg:border-l lg:border-t-0 lg:border-r-0 lg:border-b-0 lg:border-gray-100 lg:dark:border-slate-700;
|
@apply md:border-l md:border-t-0 md:border-r-0 md:border-b-0 md:border-gray-100 md:dark:border-slate-700;
|
||||||
}
|
}
|
||||||
|
|
||||||
th {
|
th {
|
||||||
@apply lg:text-left lg:p-3 border-b;
|
@apply md:text-left md:p-3 border-b;
|
||||||
}
|
}
|
||||||
|
|
||||||
th.sortable {
|
th.sortable {
|
||||||
@ -31,39 +30,37 @@
|
|||||||
th.sortable:hover:after {
|
th.sortable:hover:after {
|
||||||
transition: all 1s;
|
transition: all 1s;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
content: "↕";
|
content: "↕";
|
||||||
|
|
||||||
margin-left: 1rem;
|
margin-left: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
th.sortable.asc:hover:after {
|
th.sortable.asc:hover:after {
|
||||||
content: "↑";
|
content: "↑";
|
||||||
}
|
}
|
||||||
|
|
||||||
th.sortable.desc:hover:after {
|
th.sortable.desc:hover:after {
|
||||||
content: "↓";
|
content: "↓";
|
||||||
}
|
}
|
||||||
|
|
||||||
td {
|
td {
|
||||||
@apply flex justify-between text-right py-3 px-4 align-top border-b border-gray-100
|
@apply flex justify-between text-right py-3 px-4 align-top border-b border-gray-100 md:table-cell md:text-left md:p-3 md:align-middle md:border-b-0 dark:border-slate-800 dark:text-white;
|
||||||
lg:table-cell lg:text-left lg:p-3 lg:align-middle lg:border-b-0 dark:border-slate-800 dark:text-white;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
td:last-child {
|
td:last-child {
|
||||||
@apply border-b-0;
|
@apply border-b-0;
|
||||||
}
|
}
|
||||||
|
|
||||||
tbody tr, tbody tr:nth-child(odd) {
|
tbody tr.odd {
|
||||||
@apply lg:hover:bg-pavitra-300/70;
|
@apply md:hover:bg-pavitra-300/70;
|
||||||
}
|
}
|
||||||
|
|
||||||
tbody tr:nth-child(even) {
|
tbody tr.even {
|
||||||
@apply lg:bg-pavitra-300 dark:bg-pavitra-300/70;
|
@apply md:bg-pavitra-300 dark:bg-pavitra-300/70;
|
||||||
}
|
}
|
||||||
|
|
||||||
td:before {
|
td:before {
|
||||||
content: attr(data-label);
|
content: attr(data-label);
|
||||||
@apply font-semibold pr-3 text-left lg:hidden;
|
@apply font-semibold pr-3 text-left md:hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
tbody tr td {
|
tbody tr td {
|
||||||
@ -72,7 +69,6 @@
|
|||||||
|
|
||||||
.datagrid--table, .MuiDataGrid-root {
|
.datagrid--table, .MuiDataGrid-root {
|
||||||
@apply rounded border-none !important;
|
@apply rounded border-none !important;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.datagrid--header {
|
.datagrid--header {
|
||||||
@ -98,7 +94,6 @@
|
|||||||
@apply even:bg-gray-100 dark:even:bg-[#1B1D22] dark:odd:bg-dark-900 !important;
|
@apply even:bg-gray-100 dark:even:bg-[#1B1D22] dark:odd:bg-dark-900 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.datagrid--table .MuiTablePagination-root {
|
.datagrid--table .MuiTablePagination-root {
|
||||||
@apply dark:text-white;
|
@apply dark:text-white;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
import React, { ReactNode, useEffect } from 'react'
|
import React, { ReactNode, useEffect , useState } from 'react'
|
||||||
import { useState } from 'react'
|
|
||||||
import jwt from 'jsonwebtoken';
|
import jwt from 'jsonwebtoken';
|
||||||
import { mdiForwardburger, mdiBackburger, mdiMenu } from '@mdi/js'
|
import { mdiForwardburger, mdiBackburger, mdiMenu } from '@mdi/js'
|
||||||
import menuAside from '../menuAside'
|
import menuAside from '../menuAside'
|
||||||
|
|||||||
@ -7,158 +7,35 @@ const menuAside: MenuAsideItem[] = [
|
|||||||
icon: icon.mdiViewDashboardOutline,
|
icon: icon.mdiViewDashboardOutline,
|
||||||
label: 'Dashboard',
|
label: 'Dashboard',
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
href: '/users/users-list',
|
href: '/mind_maps/mind_maps-list',
|
||||||
label: 'Users',
|
label: 'Mind maps',
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
icon: icon.mdiSitemap,
|
||||||
// @ts-ignore
|
permissions: 'READ_MIND_MAPS'
|
||||||
icon: icon.mdiAccountGroup ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_USERS'
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: '/roles/roles-list',
|
href: '/source_items/source_items-list',
|
||||||
label: 'Roles',
|
label: 'Sources',
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
icon: icon.mdiLinkVariant,
|
||||||
// @ts-ignore
|
permissions: 'READ_SOURCE_ITEMS'
|
||||||
icon: icon.mdiShieldAccountVariantOutline ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_ROLES'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/permissions/permissions-list',
|
|
||||||
label: 'Permissions',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: icon.mdiShieldAccountOutline ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_PERMISSIONS'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/organizations/organizations-list',
|
|
||||||
label: 'Organizations',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_ORGANIZATIONS'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/workspaces/workspaces-list',
|
|
||||||
label: 'Workspaces',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiDomain' in icon ? icon['mdiDomain' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_WORKSPACES'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/workspace_memberships/workspace_memberships-list',
|
|
||||||
label: 'Workspace memberships',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiAccountMultiple' in icon ? icon['mdiAccountMultiple' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_WORKSPACE_MEMBERSHIPS'
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: '/projects/projects-list',
|
href: '/projects/projects-list',
|
||||||
label: 'Projects',
|
label: 'Projects',
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
icon: icon.mdiBriefcaseOutline,
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiBriefcaseOutline' in icon ? icon['mdiBriefcaseOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_PROJECTS'
|
permissions: 'READ_PROJECTS'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: '/mind_maps/mind_maps-list',
|
href: '/users/users-list',
|
||||||
label: 'Mind maps',
|
label: 'Users',
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
icon: icon.mdiAccountGroup,
|
||||||
// @ts-ignore
|
permissions: 'READ_USERS'
|
||||||
icon: 'mdiSitemap' in icon ? icon['mdiSitemap' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_MIND_MAPS'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/map_nodes/map_nodes-list',
|
|
||||||
label: 'Map nodes',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiVectorCircle' in icon ? icon['mdiVectorCircle' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_MAP_NODES'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/map_edges/map_edges-list',
|
|
||||||
label: 'Map edges',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiVectorLine' in icon ? icon['mdiVectorLine' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_MAP_EDGES'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/source_items/source_items-list',
|
|
||||||
label: 'Source items',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiLinkVariant' in icon ? icon['mdiLinkVariant' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_SOURCE_ITEMS'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/node_evidence_items/node_evidence_items-list',
|
|
||||||
label: 'Node evidence items',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiBookOpenVariant' in icon ? icon['mdiBookOpenVariant' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_NODE_EVIDENCE_ITEMS'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/ai_runs/ai_runs-list',
|
|
||||||
label: 'Ai runs',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiRobot' in icon ? icon['mdiRobot' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_AI_RUNS'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/business_plan_versions/business_plan_versions-list',
|
|
||||||
label: 'Business plan versions',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiFileDocumentEditOutline' in icon ? icon['mdiFileDocumentEditOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_BUSINESS_PLAN_VERSIONS'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/pitch_decks/pitch_decks-list',
|
|
||||||
label: 'Pitch decks',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiPresentation' in icon ? icon['mdiPresentation' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_PITCH_DECKS'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/deal_packages/deal_packages-list',
|
|
||||||
label: 'Deal packages',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiHandshakeOutline' in icon ? icon['mdiHandshakeOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_DEAL_PACKAGES'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/partner_targets/partner_targets-list',
|
|
||||||
label: 'Partner targets',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiAccountSearchOutline' in icon ? icon['mdiAccountSearchOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_PARTNER_TARGETS'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
href: '/tasks/tasks-list',
|
|
||||||
label: 'Tasks',
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore
|
|
||||||
icon: 'mdiCheckboxMarkedCircleOutline' in icon ? icon['mdiCheckboxMarkedCircleOutline' as keyof typeof icon] : icon.mdiTable ?? icon.mdiTable,
|
|
||||||
permissions: 'READ_TASKS'
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: '/profile',
|
href: '/profile',
|
||||||
label: 'Profile',
|
label: 'Profile',
|
||||||
icon: icon.mdiAccountCircle,
|
icon: icon.mdiAccountCircle,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
href: '/api-docs',
|
href: '/api-docs',
|
||||||
target: '_blank',
|
target: '_blank',
|
||||||
|
|||||||
@ -1,9 +1,8 @@
|
|||||||
import React, { ReactElement, useEffect, useState } from 'react';
|
import React, { ReactElement, useEffect, useState } from 'react';
|
||||||
import Head from 'next/head';
|
import Head from 'next/head';
|
||||||
import 'react-datepicker/dist/react-datepicker.css';
|
import 'react-datepicker/dist/react-datepicker.css';
|
||||||
import { useAppDispatch } from '../stores/hooks';
|
import { useAppDispatch , useAppSelector } from '../stores/hooks';
|
||||||
|
|
||||||
import { useAppSelector } from '../stores/hooks';
|
|
||||||
|
|
||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
import LayoutAuthenticated from '../layouts/Authenticated';
|
import LayoutAuthenticated from '../layouts/Authenticated';
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user