commit
This commit is contained in:
5
drizzle/0001_lazy_otto_octavius.sql
Normal file
5
drizzle/0001_lazy_otto_octavius.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
ALTER TABLE "crm_opportunities" ADD COLUMN "outcome_status" text DEFAULT 'open' NOT NULL;--> statement-breakpoint
|
||||||
|
ALTER TABLE "crm_opportunities" ADD COLUMN "closed_at" timestamp with time zone;--> statement-breakpoint
|
||||||
|
ALTER TABLE "crm_opportunities" ADD COLUMN "lost_detail" text;--> statement-breakpoint
|
||||||
|
ALTER TABLE "crm_opportunities" ADD COLUMN "cancel_reason" text;--> statement-breakpoint
|
||||||
|
ALTER TABLE "crm_opportunities" ADD COLUMN "no_quotation_reason" text;
|
||||||
4294
drizzle/meta/0001_snapshot.json
Normal file
4294
drizzle/meta/0001_snapshot.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -8,6 +8,13 @@
|
|||||||
"when": 1782359607850,
|
"when": 1782359607850,
|
||||||
"tag": "0000_hard_butterfly",
|
"tag": "0000_hard_butterfly",
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 1,
|
||||||
|
"version": "7",
|
||||||
|
"when": 1782381033930,
|
||||||
|
"tag": "0001_lazy_otto_octavius",
|
||||||
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,52 +1,52 @@
|
|||||||
import { NavGroup } from "@/types";
|
import { NavGroup } from "@/types";
|
||||||
/** * Navigation configuration with RBAC support * * This configuration is used for both the sidebar navigation and Cmd+K bar. * Items are organized into groups, each rendered with a SidebarGroupLabel. * * RBAC Access Control: * Each navigation item can have an `access` property that controls visibility * based on permissions, plans, features, roles, and organization context. * * Examples: * * 1. Require organization: * access: { requireOrg: true } * * 2. Require specific permission: * access: { requireOrg: true, permission: 'org:teams:manage' } * * 3. Require specific plan: * access: { plan: 'pro' } * * 4. Require specific feature: * access: { feature: 'premium_access' } * * 5. Require specific role: * access: { role: 'admin' } * * 6. Multiple conditions (all must be true): * access: { requireOrg: true, permission: 'org:teams:manage', plan: 'pro' } * * Note: The `visible` function is deprecated but still supported for backward compatibility. * Use the `access` property for new items. */ export const navGroups: NavGroup[] =
|
/** * Navigation configuration with RBAC support * * This configuration is used for both the sidebar navigation and Cmd+K bar. * Items are organized into groups, each rendered with a SidebarGroupLabel. * * RBAC Access Control: * Each navigation item can have an `access` property that controls visibility * based on permissions, plans, features, roles, and organization context. * * Examples: * * 1. Require organization: * access: { requireOrg: true } * * 2. Require specific permission: * access: { requireOrg: true, permission: 'org:teams:manage' } * * 3. Require specific plan: * access: { plan: 'pro' } * * 4. Require specific feature: * access: { feature: 'premium_access' } * * 5. Require specific role: * access: { role: 'admin' } * * 6. Multiple conditions (all must be true): * access: { requireOrg: true, permission: 'org:teams:manage', plan: 'pro' } * * Note: The `visible` function is deprecated but still supported for backward compatibility. * Use the `access` property for new items. */ export const navGroups: NavGroup[] =
|
||||||
[
|
[
|
||||||
{
|
// {
|
||||||
label: "Overview",
|
// label: "Overview",
|
||||||
items: [
|
// items: [
|
||||||
{
|
// {
|
||||||
title: "Dashboard Overview",
|
// title: "Dashboard Overview",
|
||||||
url: "/dashboard",
|
// url: "/dashboard",
|
||||||
icon: "dashboard",
|
// icon: "dashboard",
|
||||||
isActive: false,
|
// isActive: false,
|
||||||
shortcut: ["d", "d"],
|
// shortcut: ["d", "d"],
|
||||||
items: [],
|
// items: [],
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
title: "Workspaces",
|
// title: "Workspaces",
|
||||||
url: "/dashboard/workspaces",
|
// url: "/dashboard/workspaces",
|
||||||
icon: "workspace",
|
// icon: "workspace",
|
||||||
isActive: false,
|
// isActive: false,
|
||||||
items: [],
|
// items: [],
|
||||||
access: { systemRole: "super_admin" },
|
// access: { systemRole: "super_admin" },
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
title: "Teams",
|
// title: "Teams",
|
||||||
url: "/dashboard/workspaces/team",
|
// url: "/dashboard/workspaces/team",
|
||||||
icon: "teams",
|
// icon: "teams",
|
||||||
isActive: false,
|
// isActive: false,
|
||||||
items: [],
|
// items: [],
|
||||||
access: { requireOrg: true, permission: "crm.quotation.read" },
|
// access: { requireOrg: true, permission: "crm.quotation.read" },
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
title: "Users",
|
// title: "Users",
|
||||||
url: "/dashboard/users",
|
// url: "/dashboard/users",
|
||||||
icon: "teams",
|
// icon: "teams",
|
||||||
shortcut: ["u", "u"],
|
// shortcut: ["u", "u"],
|
||||||
isActive: false,
|
// isActive: false,
|
||||||
items: [],
|
// items: [],
|
||||||
access: { requireOrg: true, permission: "users:manage" },
|
// access: { requireOrg: true, permission: "users:manage" },
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
title: "Kanban",
|
// title: "Kanban",
|
||||||
url: "/dashboard/kanban",
|
// url: "/dashboard/kanban",
|
||||||
icon: "kanban",
|
// icon: "kanban",
|
||||||
shortcut: ["k", "k"],
|
// shortcut: ["k", "k"],
|
||||||
isActive: false,
|
// isActive: false,
|
||||||
items: [],
|
// items: [],
|
||||||
},
|
// },
|
||||||
],
|
// ],
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
label: "CRM",
|
label: "CRM",
|
||||||
items: [
|
items: [
|
||||||
|
|||||||
Reference in New Issue
Block a user