Skip to content

Commit 7a12f54

Browse files
add contactbook form in contactbook report
1 parent 056f4b3 commit 7a12f54

File tree

8 files changed

+140
-94
lines changed

8 files changed

+140
-94
lines changed

apps/OpenSign/src/components/AppendFormInForm.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,18 @@ const AppendFormInForm = (props) => {
106106
const res = await contactQuery.save();
107107

108108
const parseData = JSON.parse(JSON.stringify(res));
109-
props.details({
110-
value: parseData[props.valueKey],
111-
label: parseData[props.displayKey]
112-
});
109+
if (props.details) {
110+
props.details({
111+
value: parseData[props.valueKey],
112+
label: parseData[props.displayKey]
113+
});
114+
}
113115
if (props.closePopup) {
114116
props.closePopup();
115117
}
118+
if (props.handleUserData) {
119+
props.handleUserData(parseData);
120+
}
116121

117122
setIsLoader(false);
118123
// Reset the form fields
@@ -159,13 +164,18 @@ const AppendFormInForm = (props) => {
159164
const res = await contactQuery.save();
160165

161166
const parseData = JSON.parse(JSON.stringify(res));
162-
props.details({
163-
value: parseData[props.valueKey],
164-
label: parseData[props.displayKey]
165-
});
167+
if (props.details) {
168+
props.details({
169+
value: parseData[props.valueKey],
170+
label: parseData[props.displayKey]
171+
});
172+
}
166173
if (props.closePopup) {
167174
props.closePopup();
168175
}
176+
if (props.handleUserData) {
177+
props.handleUserData(parseData);
178+
}
169179
setIsLoader(false);
170180
// Reset the form fields
171181
setAddYourself(false);

apps/OpenSign/src/components/fields/CreateFolder.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ const CreateFolder = ({ parentFolderId, onSuccess, folderCls }) => {
133133
<div>
134134
<button
135135
onClick={handleCreateFolder}
136-
className="flex items-center rounded p-2 bg-[#33bbff] text-white mt-3"
136+
className="flex items-center rounded p-2 bg-[#32a3ac] text-white mt-3"
137137
>
138138
<i className="fa-solid fa-plus mr-1"></i>
139139
<span>Create</span>

apps/OpenSign/src/components/fields/SelectFolder.js

Lines changed: 77 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -170,84 +170,88 @@ const SelectFolder = ({ required, onSuccess, folderCls }) => {
170170
</p>
171171
</div>
172172
</div>
173-
<ModalUi title={"Select Folder"} isOpen={isOpen} handleClose={handleCancel}>
174-
<div className="w-full min-w-[300px] md:min-w-[500px] px-3">
175-
<div className="py-2 text-[#ac4848] text-[14px] font-[500]">
176-
<span
177-
className="cursor-pointer"
178-
title="Root"
179-
onClick={(e) => removeTabListItem(e)}
180-
>
181-
Root /{" "}
182-
</span>
183-
{tabList &&
184-
tabList.map((tab, i) => (
185-
<React.Fragment key={`${tab.objectId}-${i}`}>
186-
<span
187-
className="cursor-pointer"
188-
title={tab.Name}
189-
onClick={(e) => removeTabListItem(e, i)}
190-
>
191-
{tab.Name}
192-
</span>
193-
{" / "}
194-
</React.Fragment>
195-
))}
196-
<hr />
197-
</div>
198-
<div className="mt-2 mb-3">
199-
{!isAdd &&
200-
folderList.length > 0 &&
201-
folderList.map((folder) => (
202-
<div
203-
key={folder.Name}
204-
className="border-[1px] border-[#8a8a8a] px-2 py-2 mb-2 cursor-pointer"
205-
onClick={() => handleSelect(folder)}
173+
<ModalUi
174+
title={"Select Folder"}
175+
isOpen={isOpen}
176+
handleClose={handleCancel}
177+
>
178+
<div className="w-full min-w-[300px] md:min-w-[500px] px-3">
179+
<div className="py-2 text-[#ac4848] text-[14px] font-[500]">
180+
<span
181+
className="cursor-pointer"
182+
title="Root"
183+
onClick={(e) => removeTabListItem(e)}
184+
>
185+
Root /{" "}
186+
</span>
187+
{tabList &&
188+
tabList.map((tab, i) => (
189+
<React.Fragment key={`${tab.objectId}-${i}`}>
190+
<span
191+
className="cursor-pointer"
192+
title={tab.Name}
193+
onClick={(e) => removeTabListItem(e, i)}
206194
>
207-
<div className="flex items-center gap-2">
208-
<i
209-
className="fa fa-folder text-[#33bbff] text-[1.4rem]"
210-
aria-hidden="true"
211-
></i>
212-
<span className="font-semibold">{folder.Name}</span>
213-
</div>
195+
{tab.Name}
196+
</span>
197+
{" / "}
198+
</React.Fragment>
199+
))}
200+
<hr />
201+
</div>
202+
<div className="mt-2 mb-3">
203+
{!isAdd &&
204+
folderList.length > 0 &&
205+
folderList.map((folder) => (
206+
<div
207+
key={folder.Name}
208+
className="border-[1px] border-[#8a8a8a] px-2 py-2 mb-2 cursor-pointer"
209+
onClick={() => handleSelect(folder)}
210+
>
211+
<div className="flex items-center gap-2">
212+
<i
213+
className="fa fa-folder text-[#33bbff] text-[1.4rem]"
214+
aria-hidden="true"
215+
></i>
216+
<span className="font-semibold">{folder.Name}</span>
214217
</div>
215-
))}
216-
{isAdd && (
217-
<CreateFolder
218-
parentFolderId={clickFolder && clickFolder.ObjectId}
219-
folderCls={folderCls}
220-
onSuccess={handleAddFolder}
221-
/>
222-
)}
223-
{isLoader && (
224-
<div className="flex justify-center">
225-
<i className="fa-solid fa-spinner fa-spin-pulse text-[30px]"></i>
226218
</div>
227-
)}
228-
</div>
219+
))}
220+
{isAdd && (
221+
<CreateFolder
222+
parentFolderId={clickFolder && clickFolder.ObjectId}
223+
folderCls={folderCls}
224+
onSuccess={handleAddFolder}
225+
/>
226+
)}
227+
{isLoader && (
228+
<div className="flex justify-center">
229+
<i className="fa-solid fa-spinner fa-spin-pulse text-[30px]"></i>
230+
</div>
231+
)}
229232
</div>
230-
<hr />
231-
<div className="flex justify-between items-center py-[.75rem] px-[1.25rem]">
232-
<div
233-
className="text-[30px] cursor-pointer text-[#33bbff]"
234-
title="Save Here"
235-
onClick={handleCreate}
236-
>
237-
{isAdd ? (
238-
<i className="fa-solid fa-arrow-left" aria-hidden="true"></i>
239-
) : (
240-
<i className="fa-solid fa-square-plus" aria-hidden="true"></i>
241-
)}
242-
</div>
243-
<div
244-
className="text-[30px] cursor-pointer"
245-
title="Save Here"
246-
onClick={handleSubmit}
247-
>
248-
<i className="fas fa-save" aria-hidden="true"></i>
249-
</div>
233+
</div>
234+
<hr />
235+
<div className="flex justify-between items-center py-[.75rem] px-[1.25rem]">
236+
<div
237+
className="text-[30px] cursor-pointer text-[#32a3ac]"
238+
title="Save Here"
239+
onClick={handleCreate}
240+
>
241+
{isAdd ? (
242+
<i className="fa-solid fa-arrow-left" aria-hidden="true"></i>
243+
) : (
244+
<i className="fa-solid fa-square-plus" aria-hidden="true"></i>
245+
)}
250246
</div>
247+
<div
248+
className="text-[30px] cursor-pointer"
249+
title="Save Here"
250+
onClick={handleSubmit}
251+
>
252+
<i className="fas fa-save" aria-hidden="true"></i>
253+
</div>
254+
</div>
251255
</ModalUi>
252256
{/* {isOpen && (
253257
<div

apps/OpenSign/src/json/FormJson.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ export const formJson = (id) => {
113113
});
114114
formData = {
115115
jsonSchema: {
116-
title: "New Document",
116+
title: "Request signatures",
117117
description: "",
118118
type: "object",
119119
required: ["URL", "Name", "Note", "TimeToCompleteDays", "Signers"],

apps/OpenSign/src/json/ReportJson.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,8 @@ export default function reportJson(id) {
161161
textColor: "white",
162162
btnIcon: "fa-solid fa-trash"
163163
}
164-
]
164+
],
165+
form:"ContactBook"
165166
};
166167
// template report
167168
case "6TeaPr321t":

apps/OpenSign/src/primitives/GetReportDisplay.js

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import pad from "../assets/images/pad.svg";
33
import { useNavigate } from "react-router-dom";
44
import axios from "axios";
55
import "../styles/report.css";
6+
import ModalUi from "./ModalUi";
7+
import AppendFormInForm from "../components/AppendFormInForm";
68
const ReportTable = ({
79
ReportName,
810
List,
@@ -11,13 +13,15 @@ const ReportTable = ({
1113
heading,
1214
setIsNextRecord,
1315
isMoreDocs,
14-
docPerPage
16+
docPerPage,
17+
form
1518
}) => {
1619
const navigate = useNavigate();
1720
const [currentPage, setCurrentPage] = useState(1);
1821
const [actLoader, setActLoader] = useState({});
1922
const [isAlert, setIsAlert] = useState(false);
2023
const [isErr, setIsErr] = useState(false);
24+
const [isPopup, setIsPopup] = useState(false);
2125
// For loop is used to calculate page numbers visible below table
2226
// Initialize pageNumbers using useMemo to avoid unnecessary re-creation
2327
const pageNumbers = useMemo(() => {
@@ -57,9 +61,9 @@ const ReportTable = ({
5761
// `handlemicroapp` is used to open microapp
5862
const handlemicroapp = async (item, url, btnLabel) => {
5963
if (ReportName === "Templates") {
60-
if(btnLabel === "Edit"){
64+
if (btnLabel === "Edit") {
6165
navigate(`/asmf/${url}/${item.objectId}`);
62-
}else{
66+
} else {
6367
setActLoader({ [item.objectId]: true });
6468
try {
6569
const params = {
@@ -76,13 +80,13 @@ const ReportTable = ({
7680
}
7781
}
7882
);
79-
83+
8084
// console.log("templateDeatils.data ", templateDeatils.data);
8185
const templateData =
8286
templateDeatils.data && templateDeatils.data.result;
8387
if (!templateData.error) {
8488
const Doc = templateData;
85-
89+
8690
let placeholdersArr = [];
8791
if (Doc.Placeholders?.length > 0) {
8892
placeholdersArr = Doc.Placeholders;
@@ -119,7 +123,7 @@ const ReportTable = ({
119123
},
120124
Signers: signers
121125
};
122-
126+
123127
const res = await axios.post(
124128
`${localStorage.getItem("baseUrl")}classes/${localStorage.getItem(
125129
"_appName"
@@ -133,7 +137,7 @@ const ReportTable = ({
133137
}
134138
}
135139
);
136-
140+
137141
// console.log("Res ", res.data);
138142
if (res.data && res.data.objectId) {
139143
setActLoader({});
@@ -200,6 +204,13 @@ const ReportTable = ({
200204
const paginateFront = () => setCurrentPage(currentPage + 1);
201205
const paginateBack = () => setCurrentPage(currentPage - 1);
202206

207+
const handlePopup = () => {
208+
setIsPopup(!isPopup);
209+
};
210+
211+
const handleUserData = (data) => {
212+
setList((prevData) => [data, ...prevData]);
213+
};
203214
return (
204215
<div className="p-2 overflow-x-scroll w-full bg-white rounded-md">
205216
{isAlert && (
@@ -214,7 +225,14 @@ const ReportTable = ({
214225
</div>
215226
)}
216227

217-
<h2 className="text-[23px] font-light my-2">{ReportName}</h2>
228+
<div className="flex flex-row items-center justify-between my-2 mx-3 text-[20px] md:text-[23px]">
229+
<div className="font-light">{ReportName}</div>
230+
{form && (
231+
<div className="cursor-pointer" onClick={() => handlePopup()}>
232+
<i className="fa-solid fa-square-plus text-sky-400 text-[25px]"></i>
233+
</div>
234+
)}
235+
</div>
218236
<table className="table-auto w-full border-collapse">
219237
<thead className="text-[14px]">
220238
<tr className="border-y-[1px]">
@@ -316,7 +334,11 @@ const ReportTable = ({
316334
key={index}
317335
onClick={() =>
318336
act?.redirectUrl
319-
? handlemicroapp(item, act.redirectUrl, act.btnLabel)
337+
? handlemicroapp(
338+
item,
339+
act.redirectUrl,
340+
act.btnLabel
341+
)
320342
: handlebtn(item)
321343
}
322344
className={`flex justify-center items-center w-full gap-1 px-2 py-1 rounded shadow`}
@@ -399,6 +421,12 @@ const ReportTable = ({
399421
<div className="text-sm font-semibold">No Data Available</div>
400422
</div>
401423
)}
424+
<ModalUi title={"Add Contact"} isOpen={isPopup} handleClose={handlePopup}>
425+
<AppendFormInForm
426+
handleUserData={handleUserData}
427+
closePopup={handlePopup}
428+
/>
429+
</ModalUi>
402430
</div>
403431
);
404432
};

apps/OpenSign/src/primitives/ModalUi.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const ModalUi = ({ children, title, isOpen, handleClose }) => {
55
<>
66
{isOpen && (
77
<div className="fixed z-[999] top-0 left-0 w-[100%] h-[100%] bg-black bg-opacity-[75%]">
8-
<div className="fixed z-[1000] top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-sm bg-white rounded shadow-md max-h-90 md:min-w-500px overflow-y-auto hide-scrollbar">
8+
<div className="fixed z-[1000] top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-sm bg-white rounded shadow-md max-h-90 md:min-w-[500px] overflow-y-auto hide-scrollbar">
99
<div className="flex justify-between bg-[#32a3ac] rounded-t items-center py-[10px] px-[20px] text-white">
1010
<div className="text-[1.2rem] font-normal">{title}</div>
1111
<div

apps/OpenSign/src/routes/Report.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const Report = () => {
1515
const [heading, setHeading] = useState([]);
1616
const [isNextRecord, setIsNextRecord] = useState(false);
1717
const [isMoreDocs, setIsMoreDocs] = useState(true);
18+
const [form, setForm]= useState("")
1819
const abortController = new AbortController();
1920
const docPerPage = 10;
2021

@@ -50,6 +51,7 @@ const Report = () => {
5051
setActions(json.actions);
5152
setHeading(json.heading);
5253
setReportName(json.reportName);
54+
setForm(json.form)
5355
Parse.serverURL = localStorage.getItem("BaseUrl12");
5456
Parse.initialize(localStorage.getItem("AppID12"));
5557
const currentUser = Parse.User.current().id;
@@ -154,6 +156,7 @@ const Report = () => {
154156
setIsNextRecord={setIsNextRecord}
155157
isMoreDocs={isMoreDocs}
156158
docPerPage={docPerPage}
159+
form={form}
157160
/>
158161
) : (
159162
<div className="flex items-center justify-center h-screen w-full bg-white rounded">

0 commit comments

Comments
 (0)