Skip to content

Commit 14d891b

Browse files
committed
added sidebaritems as model
1 parent 72adbab commit 14d891b

36 files changed

+1199
-393
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
scripts/seedFiles/*
12
api/db/postgres-test-data
23
.idea
34
.DS_Store
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
-- CreateTable
2+
CREATE TABLE "Property" (
3+
"cuid" TEXT NOT NULL,
4+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
5+
"updatedAt" TIMESTAMP(3) NOT NULL,
6+
"createdBy" TEXT,
7+
"updatedBy" TEXT,
8+
"name" TEXT NOT NULL,
9+
"type" TEXT NOT NULL DEFAULT 'string',
10+
"value" TEXT,
11+
12+
CONSTRAINT "Property_pkey" PRIMARY KEY ("cuid")
13+
);
14+
15+
-- CreateTable
16+
CREATE TABLE "SideBarItem" (
17+
"cuid" TEXT NOT NULL,
18+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
19+
"updatedAt" TIMESTAMP(3) NOT NULL,
20+
"createdBy" TEXT,
21+
"updatedBy" TEXT,
22+
"name" TEXT NOT NULL,
23+
"icon" TEXT,
24+
"iconFamily" TEXT,
25+
"link" TEXT,
26+
"order" INTEGER NOT NULL,
27+
"active" BOOLEAN NOT NULL DEFAULT true,
28+
"type" TEXT NOT NULL DEFAULT 'link',
29+
30+
CONSTRAINT "SideBarItem_pkey" PRIMARY KEY ("cuid")
31+
);
32+
33+
-- CreateTable
34+
CREATE TABLE "Message" (
35+
"cuid" TEXT NOT NULL,
36+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
37+
"updatedAt" TIMESTAMP(3) NOT NULL,
38+
"createdBy" TEXT,
39+
"updatedBy" TEXT,
40+
"language" TEXT NOT NULL,
41+
"entity" TEXT NOT NULL,
42+
"value" TEXT NOT NULL,
43+
44+
CONSTRAINT "Message_pkey" PRIMARY KEY ("cuid")
45+
);
46+
47+
-- CreateTable
48+
CREATE TABLE "User" (
49+
"cuid" TEXT NOT NULL,
50+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
51+
"updatedAt" TIMESTAMP(3) NOT NULL,
52+
"createdBy" TEXT,
53+
"updatedBy" TEXT,
54+
"name" TEXT NOT NULL DEFAULT '',
55+
"username" TEXT NOT NULL DEFAULT '',
56+
"verifiedAt" TIMESTAMP(3),
57+
"email" TEXT DEFAULT '',
58+
"hashedPassword" TEXT DEFAULT '',
59+
"salt" TEXT DEFAULT '',
60+
"resetToken" TEXT,
61+
"resetTokenExpiresAt" TIMESTAMP(3),
62+
63+
CONSTRAINT "User_pkey" PRIMARY KEY ("cuid")
64+
);
65+
66+
-- CreateTable
67+
CREATE TABLE "Preference" (
68+
"cuid" TEXT NOT NULL,
69+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
70+
"updatedAt" TIMESTAMP(3) NOT NULL,
71+
"createdBy" TEXT,
72+
"updatedBy" TEXT,
73+
"entity" TEXT NOT NULL,
74+
"value" TEXT,
75+
"userCuid" TEXT NOT NULL,
76+
77+
CONSTRAINT "Preference_pkey" PRIMARY KEY ("cuid")
78+
);
79+
80+
-- CreateTable
81+
CREATE TABLE "Group" (
82+
"cuid" TEXT NOT NULL,
83+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
84+
"updatedAt" TIMESTAMP(3) NOT NULL,
85+
"createdBy" TEXT,
86+
"updatedBy" TEXT,
87+
"name" TEXT NOT NULL,
88+
"description" TEXT NOT NULL,
89+
90+
CONSTRAINT "Group_pkey" PRIMARY KEY ("cuid")
91+
);
92+
93+
-- CreateTable
94+
CREATE TABLE "GroupMember" (
95+
"cuid" TEXT NOT NULL,
96+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
97+
"updatedAt" TIMESTAMP(3) NOT NULL,
98+
"createdBy" TEXT,
99+
"updatedBy" TEXT,
100+
"userCuid" TEXT NOT NULL,
101+
"groupCuid" TEXT NOT NULL,
102+
103+
CONSTRAINT "GroupMember_pkey" PRIMARY KEY ("cuid")
104+
);
105+
106+
-- CreateTable
107+
CREATE TABLE "GroupRole" (
108+
"cuid" TEXT NOT NULL,
109+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
110+
"updatedAt" TIMESTAMP(3) NOT NULL,
111+
"createdBy" TEXT,
112+
"updatedBy" TEXT,
113+
"role" TEXT NOT NULL,
114+
"groupCuid" TEXT NOT NULL,
115+
116+
CONSTRAINT "GroupRole_pkey" PRIMARY KEY ("cuid")
117+
);
118+
119+
-- CreateTable
120+
CREATE TABLE "Log" (
121+
"cuid" TEXT NOT NULL,
122+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
123+
"updatedAt" TIMESTAMP(3) NOT NULL,
124+
"createdBy" TEXT,
125+
"updatedBy" TEXT,
126+
"context" TEXT NOT NULL,
127+
"message" TEXT NOT NULL,
128+
"source" TEXT NOT NULL,
129+
130+
CONSTRAINT "Log_pkey" PRIMARY KEY ("cuid")
131+
);
132+
133+
-- CreateTable
134+
CREATE TABLE "Page" (
135+
"cuid" TEXT NOT NULL,
136+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
137+
"updatedAt" TIMESTAMP(3) NOT NULL,
138+
"createdBy" TEXT,
139+
"updatedBy" TEXT,
140+
"slug" TEXT NOT NULL,
141+
"title" TEXT NOT NULL,
142+
"content" TEXT NOT NULL,
143+
144+
CONSTRAINT "Page_pkey" PRIMARY KEY ("cuid")
145+
);
146+
147+
-- CreateIndex
148+
CREATE UNIQUE INDEX "Property_name_key" ON "Property"("name");
149+
150+
-- CreateIndex
151+
CREATE UNIQUE INDEX "Message_entity_language_key" ON "Message"("entity", "language");
152+
153+
-- CreateIndex
154+
CREATE UNIQUE INDEX "User_username_key" ON "User"("username");
155+
156+
-- CreateIndex
157+
CREATE INDEX "Preference_userCuid_idx" ON "Preference"("userCuid");
158+
159+
-- CreateIndex
160+
CREATE UNIQUE INDEX "Preference_entity_userCuid_key" ON "Preference"("entity", "userCuid");
161+
162+
-- CreateIndex
163+
CREATE UNIQUE INDEX "Group_name_key" ON "Group"("name");
164+
165+
-- CreateIndex
166+
CREATE INDEX "GroupMember_groupCuid_idx" ON "GroupMember"("groupCuid");
167+
168+
-- CreateIndex
169+
CREATE INDEX "GroupMember_userCuid_idx" ON "GroupMember"("userCuid");
170+
171+
-- CreateIndex
172+
CREATE UNIQUE INDEX "GroupMember_userCuid_groupCuid_key" ON "GroupMember"("userCuid", "groupCuid");
173+
174+
-- CreateIndex
175+
CREATE INDEX "GroupRole_groupCuid_idx" ON "GroupRole"("groupCuid");
176+
177+
-- CreateIndex
178+
CREATE UNIQUE INDEX "GroupRole_groupCuid_role_key" ON "GroupRole"("groupCuid", "role");
179+
180+
-- CreateIndex
181+
CREATE INDEX "Page_slug_idx" ON "Page"("slug");
182+
183+
-- CreateIndex
184+
CREATE INDEX "Page_title_idx" ON "Page"("title");
185+
186+
-- CreateIndex
187+
CREATE UNIQUE INDEX "Page_slug_key" ON "Page"("slug");
188+
189+
-- AddForeignKey
190+
ALTER TABLE "Preference" ADD CONSTRAINT "Preference_userCuid_fkey" FOREIGN KEY ("userCuid") REFERENCES "User"("cuid") ON DELETE CASCADE ON UPDATE CASCADE;
191+
192+
-- AddForeignKey
193+
ALTER TABLE "GroupMember" ADD CONSTRAINT "GroupMember_groupCuid_fkey" FOREIGN KEY ("groupCuid") REFERENCES "Group"("cuid") ON DELETE CASCADE ON UPDATE CASCADE;
194+
195+
-- AddForeignKey
196+
ALTER TABLE "GroupMember" ADD CONSTRAINT "GroupMember_userCuid_fkey" FOREIGN KEY ("userCuid") REFERENCES "User"("cuid") ON DELETE CASCADE ON UPDATE CASCADE;
197+
198+
-- AddForeignKey
199+
ALTER TABLE "GroupRole" ADD CONSTRAINT "GroupRole_groupCuid_fkey" FOREIGN KEY ("groupCuid") REFERENCES "Group"("cuid") ON DELETE CASCADE ON UPDATE CASCADE;

api/db/migrations/migration_lock.toml

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Please do not edit this file manually
2+
# It should be added in your version-control system (i.e. Git)
3+
provider = "postgresql"

api/db/schema.prisma

+15
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,21 @@ model Property {
2020
value String?
2121
}
2222

23+
model SideBarItem {
24+
cuid String @id @default(cuid())
25+
createdAt DateTime @default(now())
26+
updatedAt DateTime @updatedAt
27+
createdBy String? // // used to track who created the account
28+
updatedBy String? // // used to track who updated the account
29+
name String
30+
icon String?
31+
iconFamily String?
32+
link String?
33+
order Int
34+
active Boolean @default(true)
35+
type String @default("link")
36+
}
37+
2338
model Message {
2439
cuid String @id @default(cuid())
2540
createdAt DateTime @default(now())

api/src/functions/auth.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export const handler = async (event, context) => {
1616
resetToken: user.resetToken,
1717
},
1818
})
19-
log(
19+
console.log(
2020
`${user.username} forgot password /reset-password?resetToken=${user.resetToken}`,
2121
`api/src/functions/auth.js`
2222
)
@@ -106,7 +106,7 @@ export const handler = async (event, context) => {
106106
salt: salt,
107107
name: userAttributes.name,
108108
email: userAttributes.email,
109-
// skipPassword: true,
109+
skipPassword: true,
110110
},
111111
})
112112
//return modifiedUser.record

api/src/lib/formFieldDefinitions.js

+79
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,36 @@
1+
import * as FaIcons from 'react-icons/fa';
2+
const FaIconsKeys = Object.keys(FaIcons);
3+
let FaIconsMap = FaIconsKeys.map((icon)=>{
4+
return {
5+
label: icon,
6+
value: icon
7+
}
8+
})
9+
import * as SiIcons from 'react-icons/si';
10+
const SiIconsKeys = Object.keys(SiIcons)
11+
let SiIconsMap = SiIconsKeys.map((icon)=>{
12+
return {
13+
label: icon,
14+
value: icon
15+
}
16+
})
17+
import * as MdIcons from 'react-icons/md';
18+
const MdIconsKeys = Object.keys(MdIcons)
19+
let MdIconsMap = MdIconsKeys.map((icon)=>{
20+
return {
21+
label: icon,
22+
value: icon
23+
}
24+
})
25+
26+
27+
let getFaIconOptions = () => {
28+
// return an array of objects with label and value
29+
return Object.keys(FaIcons).map((icon) => ({
30+
label: icon,
31+
value: icon,
32+
}))
33+
}
134
export const definitions = {
235
/**
336
* Options
@@ -10,6 +43,52 @@ export const definitions = {
1043
* defaultOptions (for simple lists) array of strings or objects with label and value
1144
*
1245
*/
46+
SideBarItem: {
47+
name: {
48+
label: 'Name',
49+
},
50+
type: {
51+
label: 'Type',
52+
type: 'select',
53+
options: [
54+
{ label: 'Pick something', value: '' },
55+
{ label: 'Internal Link', value: 'link' },
56+
{ label: 'External Link', value: 'externalLink' },
57+
]
58+
},
59+
link: {
60+
label: 'Link',
61+
},
62+
icon: {
63+
label: 'Icon',
64+
type: 'select',
65+
options: [
66+
{ label: 'Pick something', value: '' },
67+
...FaIconsMap,
68+
...SiIconsMap,
69+
...MdIconsMap,
70+
],
71+
},
72+
order: {
73+
label: 'Order',
74+
type: 'number',
75+
},
76+
iconFamily: {
77+
label: 'Icon Family',
78+
type: 'select',
79+
//options: [//this also works
80+
// 'admin','user','guest'
81+
//]
82+
options: [
83+
{ label: 'Pick The Icon family (first two letters) from icon', value: '' },
84+
{ label: 'Material Design', value: 'MdIcons' },
85+
{ label: 'Simple Icons', value: 'SiIcons' },
86+
{ label: 'Font Awesome', value: 'FaIcons' },
87+
],
88+
value: 'cuid',
89+
},
90+
},
91+
1392
Page: {
1493
title: {
1594
label: 'Title',

api/src/lib/listFieldDefinitions.js

+22
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,26 @@
11
export const definitions = {
2+
SideBarItem: {
3+
name: {
4+
label: 'Name',
5+
},
6+
type: {
7+
label: 'Type',
8+
},
9+
link: {
10+
label: 'Link',
11+
},
12+
icon: {
13+
label: 'Icon',
14+
},
15+
order: {
16+
label: 'Order',
17+
canSort: true,
18+
},
19+
iconFamily: {
20+
label: 'Icon Family',
21+
},
22+
},
23+
224
Page: {
325
title: {
426
label: 'Title',

api/src/lib/util.js

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export const log = async (message, source) => {
1616
delete safeContext.document // removed to remove password data
1717
delete safeContext.event // removed to remove password data
1818
delete safeContext.operation // removed as its not needed
19+
safeContext = JSON.stringify(safeContext)
1920
await db.log.create({
2021
data: {
2122
message,

0 commit comments

Comments
 (0)