Compare commits

...

20 Commits

Author SHA1 Message Date
victorAnumudu 171f99d997 new upload server link added 2024-05-24 19:50:35 +01:00
ameye 25c7cd75c7 Merge branch 'family-job-list' of WrenchBoard/Users-Wrench into master 2024-05-23 16:43:20 +00:00
victorAnumudu fd68800b00 filtered family job list 2024-05-21 21:12:06 +01:00
ameye 33f1515d2c Merge branch 'joblist-listing' of WrenchBoard/Users-Wrench into master 2024-05-21 19:56:19 +00:00
victorAnumudu 2cc30d6c47 job list page filtered to display only jobs with job mode of general 2024-05-21 16:32:59 +01:00
ameye cfadb42811 Merge branch 'waiting-list-adjust' of WrenchBoard/Users-Wrench into master 2024-05-21 13:26:25 +00:00
victorAnumudu 1bb2eb3203 waiting list adjusted 2024-05-21 14:14:35 +01:00
ameye cd68861dfa Merge branch 'assign-btn-disable' of WrenchBoard/Users-Wrench into master 2024-05-21 09:24:18 +00:00
victorAnumudu 9fb0a65e46 disabled assign btn after task is assigned 2024-05-21 09:35:04 +01:00
ameye 15fce205a6 Merge branch 'font-match' of WrenchBoard/Users-Wrench into master 2024-05-21 01:25:26 +00:00
victorAnumudu dddf6af401 select option tag font changed 2024-05-20 20:59:32 +01:00
ameye 1a86361fbb Merge branch 'blog-page-display' of WrenchBoard/Users-Wrench into master 2024-05-20 16:57:50 +00:00
victorAnumudu 4f69786f19 blog page bug fixed 2024-05-20 17:51:13 +01:00
CHIEFSOFT\ameye 5634c1542b Merge branch 'master' of https://gitlab.chiefsoft.net/WrenchBoard/Users-Wrench 2024-05-19 14:06:31 -04:00
CHIEFSOFT\ameye f9e3d2aad2 due job banner 2024-05-19 14:06:20 -04:00
tokslaw 921d1af7f0 Merge branch 'add-job-mobile-view' of WrenchBoard/Users-Wrench into master 2024-05-14 17:06:58 +00:00
tokslaw c98d2e41ef Merge branch 'text-overlap' of WrenchBoard/Users-Wrench into master 2024-05-14 17:06:36 +00:00
victorAnumudu ea260fa15a height adjust 2024-05-14 13:15:00 +01:00
victorAnumudu b604e0b527 fixed text overlapping issue 2024-05-14 13:11:29 +01:00
victorAnumudu 991571b2d2 fixed text overlapping issue 2024-05-14 13:09:58 +01:00
12 changed files with 99 additions and 39 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 52 KiB

+12 -8
View File
@@ -45,7 +45,7 @@ const AccountDashboard = ({ className, bannerList }) => {
{getLowerBanner?.map((props, idx) => {
let image = getImage(props);
let { short_title, short_description, short_button_text, link_path } =
let { short_title, short_description, short_button_text, link_path, card_type, blog_id } =
props;
return (
@@ -56,6 +56,8 @@ const AccountDashboard = ({ className, bannerList }) => {
title={short_title}
desc={short_description}
link_path={link_path}
card_type={card_type}
blog_id={blog_id}
/>
</div>
);
@@ -102,24 +104,26 @@ const TopBanner = ({ image, title = "", desc = "", btn, link_path, key }) => {
);
};
const LowerBanner = ({ image, title = "", desc = "", btn, link_path, key }) => {
const LowerBanner = ({ image, title = "", desc = "", btn, link_path, card_type, blog_id, key }) => {
const newLinkPath = card_type == 'BLOG' ? `${link_path}?blog_id=${blog_id}` : link_path
return (
<div
key={key}
className="flex flex-col bg-white shadow-md h-full rounded-xl dark:border-[#5356fb29] dark:bg-dark-white"
>
<div className="w-full flex justify-between border-b border-slate-300 p-2">
<div className="h-[130px] flex justify-between items-center">
<div className="w-full xxs:flex justify-between items-center border-b border-slate-300 p-2">
<div className="min-h-[150px] sm:min-h-[130px] flex justify-between items-center">
<div className="px-2 flex flex-col gap-2 dark:text-white">
<Link to={link_path} className="text-lg font-bold">
<Link to={newLinkPath} className="text-lg font-bold">
{title}
</Link>
<p to={link_path} className="text-sm">
<p to={newLinkPath} className="text-sm">
{desc}
</p>
</div>
</div>
<Link to={link_path} className="w-[150px] h-[100px]">
<Link to={newLinkPath} className="w-[150px] h-[100px]">
<img
src={image}
alt="banner-img"
@@ -129,7 +133,7 @@ const LowerBanner = ({ image, title = "", desc = "", btn, link_path, key }) => {
</Link>
</div>
<div className="flex justify-between w-full px-2 items-center">
<Link to={link_path} className="text-slate-300 font-semibold text-sm">
<Link to={newLinkPath} className="text-slate-300 font-semibold text-sm">
{btn}
</Link>
<button className="flex items-center justify-center gap-2">
@@ -176,6 +176,9 @@ export default function FamilyManageTabs({
familyData={familyWaitList}
accountDetails={accountDetails}
setUpdatePage={setUpdatePage}
jobList={jobList}
setActiveTask={setActiveTask}
activeTask={activeTask}
/>
),
Pending: (
@@ -22,7 +22,7 @@ export default function AssignPrevNewTask({
let imageSrc = (localStorage.getItem("session_token")
? `${userDetails?.session_image_server}${localStorage.getItem("session_token")}/job/${activeTask.data.job_uid}` : ""); // FOR GETTING JOB IMAGE
? `${userDetails?.session_image_server}${localStorage.getItem("session_token")}/job/${activeTask?.data?.job_uid}` : ""); // FOR GETTING JOB IMAGE
return (
<>
@@ -230,9 +230,9 @@ export default function AssignPrevNewTask({
) : (
<button
type="button"
disabled={requestStatus.loading}
disabled={requestStatus.loading || requestStatus.status}
onClick={assignFamilyTask}
className="custom-btn btn-gradient text-white"
className={`custom-btn btn-gradient text-white ${requestStatus.status && 'opacity-50'}`}
>
Assign
</button>
@@ -24,6 +24,8 @@ const AssignTaskPopout = ({
setActiveTask,
setUpdatePage,
}) => {
const newJobList = {...jobList, data:jobList?.data?.filter(item => item?.job_mode == 'FAMILY')}
const {parentAssignJobToKid} = SocketValues()
const { walletDetails } = useSelector((state) => state?.walletDetails); // WALLET STORE
@@ -386,7 +388,7 @@ const AssignTaskPopout = ({
<div className="contents">
{assignType == 'task' ?
<AssignPrevNewTask
jobList={jobList}
jobList={newJobList}
requestStatus={requestStatus}
assignFamilyTask={assignFamilyTask}
taskType={taskType}
@@ -5,7 +5,7 @@ import LoadingSpinner from "../../Spinners/LoadingSpinner";
import AssignTaskPopout from "../FamilyPopout/AssignTaskPopout";
const FamilyWaitlist = memo(
({ familyData, className, accountDetails, setUpdatePage }) => {
({ familyData, className, accountDetails, setUpdatePage, jobList, setActiveTask, activeTask }) => {
const [popUp, setPopUp] = useState({ show: false, data: {} });
const [continueTaskPopup, setContinueTaskPopup] = useState({
show: false,
@@ -73,7 +73,7 @@ const FamilyWaitlist = memo(
className="bg-white dark:bg-dark-white border-b dark:border-[#5356fb29] hover:bg-gray-50"
key={value.uid}
>
<td className="py-4">
<td className="px-2 py-4">
<div className="w-full flex justify-between items-center">
<div className="account-name flex space-x-4 items-center">
<div className="icon w-14 h-14 flex justify-center items-center">
@@ -92,23 +92,40 @@ const FamilyWaitlist = memo(
</p>
</div>
</div>
<div className="px-2 flex flex-col items-center justify-center">
{/* <p className="text-sm font-bold text-dark-gray dark:text-white">
{/* <div className="px-2 flex flex-col items-center justify-center">
<p className="text-sm font-bold text-dark-gray dark:text-white">
{addedDate}
</p> */}
</p>
<p className="text-xs py-1.5 w-[70px] cursor-default tracking-wide rounded-full bg-gold text-white flex justify-center items-center">
{value.status_text}
</p>
</div>
</div> */}
</div>
</td>
<td className="text-right py-4 px-2">
<button
onClick={() => openPopUp(value)}
className="w-20 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"
>
View
</button>
<td className="text-right px-2 py-4">
<div className='w-full flex justify-end items-center gap-4'>
<p className="text-xs py-1.5 w-[70px] cursor-default tracking-wide rounded-full bg-gold text-white flex justify-center items-center">
{value.status_text}
</p>
<button
onClick={() => openPopUp(value)}
className="w-12 h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"
>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 11 20"
id="Arrow"
className="w-[0.7rem]"
>
<path
fillRule="evenodd"
d="M.366 19.708c.405.39 1.06.39 1.464 0l8.563-8.264a1.95 1.95 0 0 0 0-2.827L1.768.292A1.063 1.063 0 0 0 .314.282a.976.976 0 0 0-.011 1.425l7.894 7.617a.975.975 0 0 1 0 1.414L.366 18.295a.974.974 0 0 0 0 1.413"
// fill=""
className="color000000 svgShape fill-[#fff]"
></path>
</svg>
</button>
</div>
</td>
</tr>
);
@@ -144,6 +161,9 @@ const FamilyWaitlist = memo(
action={closeContinueTaskPopup}
situation={continueTaskPopup.show}
setUpdatePage={setUpdatePage}
jobList={jobList}
setActiveTask={setActiveTask}
activeTask={activeTask}
/>
)}
</div>
+1 -1
View File
@@ -276,7 +276,7 @@ function ActiveJobs(props) {
<div className="py-[20px] bg-white dark:bg-black dark:text-white px-4 rounded-2xl shadow-md md:flex justify-between items-start gap-8">
{/* job title */}
<div className="w-full">
<div className="w-full flex justify-start space-x-3 items-start">
<div className="w-full flex justify-start space-x-3 items-center">
<button
type="button"
className="min-w-[45px] h-auto text-[#374557] border border-sky-blue p-1 rounded-full"
+9 -8
View File
@@ -104,7 +104,7 @@ export default function MyJobTable({ MyJobList, reloadJobList, className }) {
);
};
const currentJobList = filterJobList();
const currentJobList = filterJobList()?.filter(item => item?.job_mode == 'GENERAL'); // Show only jobs with job mode of GENERAL
// Handling Filter Pagination
const filteredCurrentJobList = currentJobList?.slice(
@@ -358,13 +358,14 @@ function myJobTableFeatures(
{MyJobList?.data?.result_list?.length > 0 ? (
filteredCurrentJobList.length > 0 ? (
filteredCurrentJobList.map((value, index) => (
<JobListItem
key={index}
index={index}
value={value}
image_server={MyJobList.data.session_image_server}
/>
))
<JobListItem
key={index}
index={index}
value={value}
image_server={MyJobList.data.session_image_server}
/>
)
)
) : (
<NoJobsRow text="No Jobs Available In This Category!" />
)
+11 -2
View File
@@ -146,10 +146,12 @@ export default function UploadProduct({uploadTypes}) {
let reqData = { // PAYLOAD FOR API CALL
// file_name: selectedFile.substring(0,21).replace(/ /gi, ""),
// file_data: img.file?.split(",")[1],
file_name: `myfile.${imgDetails?.type?.split('/')[1]}`,
file_size: imgDetails.size,
file_type: imgDetails.type,
file_data: img.file?.split(",")[1],
files: imgDetails,
title: itemName,
description: description,
msg_type: 'FILE',
@@ -173,7 +175,7 @@ export default function UploadProduct({uploadTypes}) {
// API CALL TO UPLOAD COMES HERE
setRequestStatus({loading: true, status: null, message: ''}) // SETS REQUEST LOADING TRUE
apiCall.sendFiles(reqData).then(res=>{
apiCall.uploadFile(reqData).then(res=>{
if(res.status != 200 || res.data.internal_return < 0){
return setRequestStatus({loading: false, status: false, message: 'Something went wrong, try again'})
}
@@ -311,6 +313,13 @@ export default function UploadProduct({uploadTypes}) {
className="w-full h-full object-cover"
controls
></video>
) : img.type === "audio" ? (
<audio
type=""
src={img.file}
className="w-full h-full object-cover"
controls
></audio>
) : img.type != null ? (
<p>{selectedFile}</p>
) : null}
+1 -1
View File
@@ -560,7 +560,7 @@ const JobFieldInput = ({
<Field
component="select"
name={inputName}
className={`input-field placeholder:text-base text-dark-gray w-full h-full bg-white outline-none px-2`}
className={`options-default`}
value={value}
>
{/* <option value="">{optionText}</option> */}
+3
View File
@@ -194,6 +194,9 @@
.logout-btn {
@apply px-4 min-w-[80px] h-[52px] flex justify-center items-center text-xl font-bold rounded-full cursor-pointer
}
.options-default {
@apply px-2 placeholder:text-sm w-full h-full bg-white outline-none text-sm text-slate-900 dark:text-white
}
}
/* ===================== EXTRA ===================== */
+20 -2
View File
@@ -908,6 +908,24 @@ class usersService {
return this.postAuxEnd("/uploads", postData);
}
// FUNCTION TO SEND FILE UPLOAD
uploadFile(reqData) {
var postData = {
uid: localStorage.getItem("uid"),
member_id: localStorage.getItem("member_id"),
sessionid: localStorage.getItem("session_token"),
action: apiConst.WRENCHBOARD_CONTRACT_MESSAGE,
...reqData,
};
const formData = new FormData();
for (let data in postData) {
formData.append(data, postData[data]);
}
return this.postAuxEnd("/upload/resources", formData, true);
}
// END POINT TO DELETE A JOB
deleteJob(reqData) {
var postData = {
@@ -1456,8 +1474,8 @@ class usersService {
});
}
postAuxEnd(uri, reqData) {
const endPoint = process.env.REACT_APP_USERS_ENDPOINT + uri;
postAuxEnd(uri, reqData, uploadPost=false) {
const endPoint = uploadPost ? process.env.REACT_APP_MEDIA_LINK + uri : process.env.REACT_APP_USERS_ENDPOINT + uri;
const session_token = localStorage.getItem("session_token");
// session_token = session_token !=null ?session_token : '';
// 'Authorization': `Basic ${(session_token !=null) ?session_token : ''}`,