Changes in Image Gallery creating changing the filter icon adding box at the time of Work Category.
This commit is contained in:
parent
a6169c106f
commit
87a7b49948
@ -184,7 +184,7 @@ const NoteCardDirectoryEditable = ({
|
|||||||
<i className="bx bx-loader-alt bx-spin text-primary"></i>
|
<i className="bx bx-loader-alt bx-spin text-primary"></i>
|
||||||
) : (
|
) : (
|
||||||
<i
|
<i
|
||||||
className="bx bx-recycle me-2 text-success cursor-pointer"
|
className="bx bx-recycle me-2 text-primary cursor-pointer"
|
||||||
onClick={handleRestore}
|
onClick={handleRestore}
|
||||||
title="Restore"
|
title="Restore"
|
||||||
></i>
|
></i>
|
||||||
|
@ -46,11 +46,7 @@
|
|||||||
"available": true,
|
"available": true,
|
||||||
"link": "/activities/reports"
|
"link": "/activities/reports"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"text": "Image Gallary",
|
|
||||||
"available": true,
|
|
||||||
"link": "/activities/gallary"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"text": "Daily Expenses",
|
"text": "Daily Expenses",
|
||||||
"available": true,
|
"available": true,
|
||||||
@ -63,6 +59,12 @@
|
|||||||
"icon": "bx bx-group",
|
"icon": "bx bx-group",
|
||||||
"available": true,
|
"available": true,
|
||||||
"link": "/directory"
|
"link": "/directory"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Image Gallary",
|
||||||
|
"icon": "bx bx-images",
|
||||||
|
"available": true,
|
||||||
|
"link": "/gallary"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "Administration",
|
"text": "Administration",
|
||||||
|
@ -278,7 +278,7 @@ const DirectoryPageHeader = ({
|
|||||||
</div>
|
</div>
|
||||||
<hr className="my-0 mb-2" style={{ borderTop: "1px solid #dee2e6" }} />
|
<hr className="my-0 mb-2" style={{ borderTop: "1px solid #dee2e6" }} />
|
||||||
|
|
||||||
<div className="row mx-0 px-0 align-items-center mt-0">
|
<div className="row mx-0 px-0 align-items-center mt-2">
|
||||||
<div className="col-12 col-md-6 mb-2 px-5 d-flex align-items-center gap-4">
|
<div className="col-12 col-md-6 mb-2 px-5 d-flex align-items-center gap-4">
|
||||||
|
|
||||||
<input
|
<input
|
||||||
|
@ -219,8 +219,6 @@ const ImageGallery = () => {
|
|||||||
endDate: null,
|
endDate: null,
|
||||||
};
|
};
|
||||||
setAppliedFilters(initialStateApplied);
|
setAppliedFilters(initialStateApplied);
|
||||||
|
|
||||||
setIsFilterPanelOpen(false);
|
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const filteredImages = images.filter((img) => {
|
const filteredImages = images.filter((img) => {
|
||||||
@ -278,16 +276,16 @@ const ImageGallery = () => {
|
|||||||
<strong>{label}</strong>
|
<strong>{label}</strong>
|
||||||
<div className="header-controls">
|
<div className="header-controls">
|
||||||
{type === "dateRange" && (selectedFilters.startDate || selectedFilters.endDate) && (
|
{type === "dateRange" && (selectedFilters.startDate || selectedFilters.endDate) && (
|
||||||
<button
|
<button
|
||||||
className="clear-button"
|
className="clear-button"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
setSelectedFilters((prev) => ({ ...prev, startDate: "", endDate: "" }));
|
setSelectedFilters((prev) => ({ ...prev, startDate: "", endDate: "" }));
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Clear
|
Clear
|
||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
{type !== "dateRange" &&
|
{type !== "dateRange" &&
|
||||||
selectedFilters[type] &&
|
selectedFilters[type] &&
|
||||||
selectedFilters[type].length > 0 && (
|
selectedFilters[type].length > 0 && (
|
||||||
@ -301,17 +299,15 @@ const ImageGallery = () => {
|
|||||||
Clear
|
Clear
|
||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
{/* Add the collapse/expand icon */}
|
<span className="collapse-icon">
|
||||||
<span className="collapse-icon">
|
{collapsedFilters[type] ? '+' : '-'}
|
||||||
{collapsedFilters[type] ? '+' : '-'}
|
</span>
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{!collapsedFilters[type] && (
|
{!collapsedFilters[type] && (
|
||||||
<div className="dropdown-content">
|
<div className="dropdown-content">
|
||||||
{type === "dateRange" ? (
|
{type === "dateRange" ? (
|
||||||
// The DateRangePicker will be rendered outside this function, at the end of the filter panel
|
null
|
||||||
null
|
|
||||||
) : (
|
) : (
|
||||||
items.map((item) => {
|
items.map((item) => {
|
||||||
const itemId = item[0];
|
const itemId = item[0];
|
||||||
@ -377,12 +373,14 @@ const ImageGallery = () => {
|
|||||||
|
|
||||||
<div className="location-line">
|
<div className="location-line">
|
||||||
<div>
|
<div>
|
||||||
{buildingName} > {floorName} > {workArea} >{" "}
|
{buildingName} > {floorName} > <strong> {workArea} >{" "}
|
||||||
{activity}
|
{activity}</strong>
|
||||||
</div>
|
</div>
|
||||||
{workCategoryName && (
|
{workCategoryName && (
|
||||||
<div className="work-category-display ms-2">
|
<div className="work-category-display ms-2">
|
||||||
{workCategoryName}
|
<span className="badge bg-label-primary rounded-pill d-flex align-items-center gap-1">
|
||||||
|
{workCategoryName}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
@ -453,35 +451,37 @@ const ImageGallery = () => {
|
|||||||
|
|
||||||
<div className="filter-drawer-wrapper">
|
<div className="filter-drawer-wrapper">
|
||||||
<button
|
<button
|
||||||
className={`filter-button ${isFilterPanelOpen ? "" : "closed-icon"}`}
|
className={`filter-button btn-primary ${isFilterPanelOpen ? "" : "closed-icon"}`}
|
||||||
onClick={() => setIsFilterPanelOpen(!isFilterPanelOpen)}
|
onClick={() => setIsFilterPanelOpen(!isFilterPanelOpen)}
|
||||||
ref={filterButtonRef}
|
ref={filterButtonRef}
|
||||||
>
|
>
|
||||||
{isFilterPanelOpen ? (
|
{isFilterPanelOpen ? (
|
||||||
<>
|
<>
|
||||||
Filter <span>✖</span>
|
Filter <span className="ms-1">✖</span> {/* Added ms-1 for spacing */}
|
||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
<span>▼</span>
|
<>
|
||||||
|
<i className="fa-solid fa-filter ms-1 fs-5"></i>
|
||||||
|
</>
|
||||||
)}
|
)}
|
||||||
</button>
|
</button>
|
||||||
<div className={`filter-panel ${isFilterPanelOpen ? "open" : ""}`} ref={filterPanelRef}>
|
<div className={`filter-panel ${isFilterPanelOpen ? "open" : ""}`} ref={filterPanelRef}>
|
||||||
<div className={`dropdown ${collapsedFilters.dateRange ? 'collapsed' : ''}`}>
|
<div className={`dropdown ${collapsedFilters.dateRange ? 'collapsed' : ''}`}>
|
||||||
<div className="dropdown-header" onClick={() => toggleCollapse('dateRange')}>
|
<div className="dropdown-header" onClick={() => toggleCollapse('dateRange')}>
|
||||||
<strong>Date Range</strong>
|
<strong>Date Range</strong>
|
||||||
|
|
||||||
<span className="collapse-icon">
|
<span className="collapse-icon">
|
||||||
{collapsedFilters.dateRange ? '+' : '-'}
|
{collapsedFilters.dateRange ? '+' : '-'}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{!collapsedFilters.dateRange && (
|
{!collapsedFilters.dateRange && (
|
||||||
<div className="datepicker" >
|
<div className="datepicker" >
|
||||||
<DateRangePicker
|
<DateRangePicker
|
||||||
onRangeChange={setDateRange}
|
onRangeChange={setDateRange}
|
||||||
defaultStartDate={selectedFilters.startDate || yesterday} // Use selected date or yesterday as default
|
defaultStartDate={selectedFilters.startDate || yesterday}
|
||||||
defaultEndDate={selectedFilters.endDate || moment().format('YYYY-MM-DD')} // Use selected date or today as default
|
defaultEndDate={selectedFilters.endDate || moment().format('YYYY-MM-DD')}
|
||||||
startDate={selectedFilters.startDate} // Pass current selected start date
|
startDate={selectedFilters.startDate}
|
||||||
endDate={selectedFilters.endDate} // Pass current selected end date
|
endDate={selectedFilters.endDate}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
@ -492,15 +492,12 @@ const ImageGallery = () => {
|
|||||||
{renderFilterCategory("Activity", activities, "activity")}
|
{renderFilterCategory("Activity", activities, "activity")}
|
||||||
{renderFilterCategory("Uploaded By (User)", uploadedByUsers, "uploadedBy")}
|
{renderFilterCategory("Uploaded By (User)", uploadedByUsers, "uploadedBy")}
|
||||||
{renderFilterCategory("Work Category", workCategories, "workCategory")}
|
{renderFilterCategory("Work Category", workCategories, "workCategory")}
|
||||||
|
|
||||||
{/* DateRangePicker at the end */}
|
|
||||||
|
|
||||||
|
|
||||||
<div className="filter-actions">
|
<div className="filter-actions">
|
||||||
<button className="btn btn-secondary btn-xs " onClick={handleClearAllFilters}>
|
<button className="btn btn-secondary btn-xs" onClick={handleClearAllFilters}>
|
||||||
Clear All
|
Clear All
|
||||||
</button>
|
</button>
|
||||||
<button className="btn btn-primary btn-xs " onClick={handleApplyFilters}>
|
<button className="btn btn-primary btn-xs" onClick={handleApplyFilters}>
|
||||||
Apply Filters
|
Apply Filters
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -55,7 +55,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.filter-button {
|
.filter-button {
|
||||||
background-color: #6366f1;
|
|
||||||
color: white;
|
color: white;
|
||||||
padding: 8px 12px;
|
padding: 8px 12px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@ -368,7 +367,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.location-line {
|
.location-line {
|
||||||
font-weight: 600;
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #555;
|
color: #555;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
@ -455,14 +453,14 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.image-card:hover {
|
.image-card:hover {
|
||||||
transform: translateY(-2px) scale(1.03);
|
transform: translateY(-2px) scale(1.03);
|
||||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
|
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
|
||||||
}
|
}
|
||||||
|
hr {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.image-wrapper img {
|
.image-wrapper img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -532,43 +530,14 @@ hr {
|
|||||||
|
|
||||||
.filter-actions {
|
.filter-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: end;
|
||||||
margin-top: auto;
|
margin-top: auto;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
}
|
gap: 8px;
|
||||||
|
|
||||||
.btn {
|
|
||||||
padding: 8px 15px;
|
|
||||||
border-radius: 5px;
|
|
||||||
font-size: 13px;
|
|
||||||
cursor: pointer;
|
|
||||||
transition: background-color 0.2s ease, box-shadow 0.2s ease;
|
|
||||||
flex: 1;
|
|
||||||
margin: 0 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-primary {
|
|
||||||
background-color: #6366f1;
|
|
||||||
color: white;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-primary:hover {
|
|
||||||
background-color: #4f46e5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-secondary {
|
|
||||||
border: 1px solid #cbd5e1;
|
|
||||||
background-color: #fff;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-secondary:hover {
|
|
||||||
background-color: #e2e8f0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.datepicker {
|
.datepicker {
|
||||||
|
@ -75,7 +75,7 @@ const router = createBrowserRouter(
|
|||||||
{ path: "/activities/records/:projectId?", element: <DailyTask /> },
|
{ path: "/activities/records/:projectId?", element: <DailyTask /> },
|
||||||
{ path: "/activities/task", element: <TaskPlannng /> },
|
{ path: "/activities/task", element: <TaskPlannng /> },
|
||||||
{ path: "/activities/reports", element: <Reports /> },
|
{ path: "/activities/reports", element: <Reports /> },
|
||||||
{ path: "/activities/gallary", element: <ImageGallary /> },
|
{ path: "/gallary", element: <ImageGallary /> },
|
||||||
{ path: "/masters", element: <MasterPage /> },
|
{ path: "/masters", element: <MasterPage /> },
|
||||||
{ path: "/help/support", element: <Support /> },
|
{ path: "/help/support", element: <Support /> },
|
||||||
{ path: "/help/docs", element: <Documentation /> },
|
{ path: "/help/docs", element: <Documentation /> },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user