UI changed
This commit is contained in:
parent
7a0e8977b3
commit
43b913d450
@ -13,7 +13,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"author": "The CoreUI Team (https://github.com/orgs/coreui/people)",
|
"author": "The CoreUI Team (https://github.com/orgs/coreui/people)",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "react-scripts --openssl-legacy-provider start",
|
"dev": "react-scripts start",
|
||||||
"build": "react-scripts --openssl-legacy-provider build",
|
"build": "react-scripts --openssl-legacy-provider build",
|
||||||
"changelog": "auto-changelog --starting-version 4.1.0 --commit-limit false --hide-credit",
|
"changelog": "auto-changelog --starting-version 4.1.0 --commit-limit false --hide-credit",
|
||||||
"eject": "react-scripts eject",
|
"eject": "react-scripts eject",
|
||||||
|
@ -23,7 +23,7 @@ const AppFooter = () => {
|
|||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<CFooter>
|
<CFooter style={{background:"#179FAF",border:"none"}} >
|
||||||
<div>
|
<div>
|
||||||
<span className="ms-1">
|
<span className="ms-1">
|
||||||
{/* {new Date().getFullYear()} © {copyright ? copyright : ""} . */}
|
{/* {new Date().getFullYear()} © {copyright ? copyright : ""} . */}
|
||||||
|
@ -40,7 +40,7 @@ const AppHeader = () => {
|
|||||||
getConfiguration();
|
getConfiguration();
|
||||||
}, []);
|
}, []);
|
||||||
return (
|
return (
|
||||||
<CHeader position="sticky" className="mb-4">
|
<CHeader position="sticky" style={{background:"#B4D1E5",border:"none",marginLeft:"2rem", marginRight:"2rem",borderRadius:"20px",marginTop:"1rem",marginBottom:"2rem"}}>
|
||||||
<CContainer fluid>
|
<CContainer fluid>
|
||||||
<CHeaderToggler
|
<CHeaderToggler
|
||||||
className="ps-1"
|
className="ps-1"
|
||||||
@ -89,8 +89,8 @@ const AppHeader = () => {
|
|||||||
<AppHeaderDropdown />
|
<AppHeaderDropdown />
|
||||||
</CHeaderNav>
|
</CHeaderNav>
|
||||||
</CContainer>
|
</CContainer>
|
||||||
<CHeaderDivider />
|
{/* <CHeaderDivider /> */}
|
||||||
<CContainer fluid>{/* <AppBreadcrumb /> */}</CContainer>
|
{/* <CContainer fluid><AppBreadcrumb /></CContainer> */}
|
||||||
</CHeader>
|
</CHeader>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import { useSelector, useDispatch } from "react-redux";
|
import { useSelector, useDispatch } from "react-redux";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
CCloseButton,
|
||||||
CSidebar,
|
CSidebar,
|
||||||
CSidebarBrand,
|
CSidebarBrand,
|
||||||
CSidebarNav,
|
CSidebarFooter,
|
||||||
|
CSidebarHeader,
|
||||||
CSidebarToggler,
|
CSidebarToggler,
|
||||||
|
CSidebarNav,
|
||||||
} from "@coreui/react";
|
} from "@coreui/react";
|
||||||
import CIcon from "@coreui/icons-react";
|
import CIcon from "@coreui/icons-react";
|
||||||
|
|
||||||
@ -15,7 +17,8 @@ import { logoNegative } from "src/assets/brand/logo-negative";
|
|||||||
import { sygnet } from "src/assets/brand/sygnet";
|
import { sygnet } from "src/assets/brand/sygnet";
|
||||||
|
|
||||||
import SimpleBar from "simplebar-react";
|
import SimpleBar from "simplebar-react";
|
||||||
import "simplebar/dist/simplebar.min.css";
|
import "simplebar-react/dist/simplebar.min.css";
|
||||||
|
// import "simplebar/dist/simplebar.min.css";
|
||||||
|
|
||||||
// sidebar nav config
|
// sidebar nav config
|
||||||
import navigation from "../_nav";
|
import navigation from "../_nav";
|
||||||
@ -108,43 +111,112 @@ const AppSidebar = () => {
|
|||||||
//---------------------------//
|
//---------------------------//
|
||||||
return (
|
return (
|
||||||
<CSidebar
|
<CSidebar
|
||||||
|
className="border-end"
|
||||||
|
colorScheme="dark"
|
||||||
position="fixed"
|
position="fixed"
|
||||||
unfoldable={unfoldable}
|
unfoldable={unfoldable}
|
||||||
visible={sidebarShow}
|
visible={sidebarShow}
|
||||||
|
style={{ background: "#179FAF" }}
|
||||||
onVisibleChange={(visible) => {
|
onVisibleChange={(visible) => {
|
||||||
dispatch({ type: "set", sidebarShow: visible });
|
dispatch({ type: "set", sidebarShow: visible });
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<CSidebarBrand
|
{/* <CSidebarHeader> */}
|
||||||
className="d-none d-md-flex"
|
{/* <CSidebarBrand
|
||||||
style={{ background: "rgb(140, 213, 213)" }}
|
// className="d-none d-md-flex"
|
||||||
|
// style={{ background: "rgb(140, 213, 213)" }}
|
||||||
to="/"
|
to="/"
|
||||||
>
|
> */}
|
||||||
{/* <CIcon className="sidebar-brand-full" icon={logoNegative} height={35} /> */}
|
{/* <CIcon className="sidebar-brand-full" icon={logoNegative} height={35} /> */}
|
||||||
|
|
||||||
{AdminlogoUrl ? (
|
{/* {AdminlogoUrl ? (
|
||||||
<Link to="/dashboard">
|
<Link to="/dashboard">
|
||||||
<img src={AdminlogoUrl} alt="" width="100%" />
|
<img src={AdminlogoUrl} alt="" height={32} style={{borderRadius:"5px"}} />
|
||||||
</Link>
|
</Link>
|
||||||
) : { AppName } ? (
|
) : { AppName } ? (
|
||||||
<h3>Cheminova </h3>
|
<h3>Cheminova </h3>
|
||||||
) : (
|
) : (
|
||||||
""
|
""
|
||||||
)}
|
)} */}
|
||||||
{/* <CIcon className="sidebar-brand-narrow" height={35} /> */}
|
{/* <CIcon className="sidebar-brand-narrow" height={35} /> */}
|
||||||
<CIcon className="sidebar-brand-narrow" icon={sygnet} height={35} />
|
{/* <CIcon className="sidebar-brand-narrow" icon={sygnet} height={32} /> */}
|
||||||
</CSidebarBrand>
|
{/* </CSidebarBrand> */}
|
||||||
|
{/* <CCloseButton
|
||||||
|
className="d-lg-none"
|
||||||
|
dark
|
||||||
|
onClick={() => dispatch({ type: 'set', sidebarShow: false })}
|
||||||
|
/> */}
|
||||||
|
{/* </CSidebarHeader> */}
|
||||||
|
<CSidebarHeader
|
||||||
|
style={{
|
||||||
|
display: "flex",
|
||||||
|
alignItems: "center",
|
||||||
|
justifyContent: "center",
|
||||||
|
padding: "0.5rem",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{AdminlogoUrl ? (
|
||||||
|
<Link to="/dashboard">
|
||||||
|
<img
|
||||||
|
src={AdminlogoUrl}
|
||||||
|
alt="Admin Logo"
|
||||||
|
style={{
|
||||||
|
width: "100%",
|
||||||
|
height: "100%",
|
||||||
|
objectFit: "contain",
|
||||||
|
borderRadius: "5px",
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Link>
|
||||||
|
) : AppName ? (
|
||||||
|
<h3>Cheminova</h3>
|
||||||
|
) : (
|
||||||
|
""
|
||||||
|
)}
|
||||||
|
</CSidebarHeader>
|
||||||
|
|
||||||
|
{/* <CSidebarNav>
|
||||||
|
<SimpleBar>
|
||||||
|
<AppSidebarNav items={navigationItem}/>
|
||||||
|
</SimpleBar>
|
||||||
|
</CSidebarNav> */}
|
||||||
<CSidebarNav>
|
<CSidebarNav>
|
||||||
<SimpleBar>
|
<SimpleBar>
|
||||||
<AppSidebarNav items={navigationItem} />
|
<div
|
||||||
|
style={{
|
||||||
|
background: "#B4D1E5",
|
||||||
|
margin: "0.5rem",
|
||||||
|
border: "none",
|
||||||
|
borderRadius: "20px",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<AppSidebarNav items={navigation} />
|
||||||
|
</div>
|
||||||
</SimpleBar>
|
</SimpleBar>
|
||||||
</CSidebarNav>
|
</CSidebarNav>
|
||||||
<CSidebarToggler
|
<CSidebarFooter className="border-top">
|
||||||
|
<div className="d-flex flex-column justify-content-center align-items-center h-100">
|
||||||
|
<span className="text-muted">Powered by</span>
|
||||||
|
<a
|
||||||
|
href="https://codeology.solutions/"
|
||||||
|
target="_blank"
|
||||||
|
// rel="noopener noreferrer"
|
||||||
|
className="fw-semibold text-muted"
|
||||||
|
>
|
||||||
|
Codeology.solutions
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* <CSidebarToggler
|
||||||
|
onClick={() => dispatch({ type: 'set', sidebarUnfoldable: !unfoldable })}
|
||||||
|
/> */}
|
||||||
|
</CSidebarFooter>
|
||||||
|
{/* <CSidebarToggler
|
||||||
className="d-none d-lg-flex"
|
className="d-none d-lg-flex"
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
dispatch({ type: "set", sidebarUnfoldable: !unfoldable })
|
dispatch({ type: "set", sidebarUnfoldable: !unfoldable })
|
||||||
}
|
}
|
||||||
/>
|
/> */}
|
||||||
</CSidebar>
|
</CSidebar>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
104
src/components/AppSidebarNav.css
Normal file
104
src/components/AppSidebarNav.css
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
/* Base styles for nav-link, nav-group, and nav-item */
|
||||||
|
.sidebar-nav .nav-link,
|
||||||
|
.sidebar-nav .nav-group,
|
||||||
|
.sidebar-nav .nav-item {
|
||||||
|
background-color: white;
|
||||||
|
color: black;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
margin-top: 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hover styles for nav-link, nav-group, and nav-item */
|
||||||
|
.sidebar-nav .nav-link:hover,
|
||||||
|
.sidebar-nav .nav-group:hover,
|
||||||
|
.sidebar-nav .nav-item:hover {
|
||||||
|
background-color: #0b0689;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Active state styles for nav-link */
|
||||||
|
.sidebar-nav .nav-link.active {
|
||||||
|
background-color: #0b0689;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Active state styles for nav-group and nav-item */
|
||||||
|
.sidebar-nav .nav-group.active,
|
||||||
|
.sidebar-nav .nav-item.active {
|
||||||
|
/* background-color: #0B0689; */
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Styles for expanded nav-group to ensure name remains black */
|
||||||
|
.sidebar-nav .nav-group.show > .nav-link {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Badge styling inside nav items */
|
||||||
|
.sidebar-nav .nav-link .ms-auto,
|
||||||
|
.sidebar-nav .nav-group .ms-auto,
|
||||||
|
.sidebar-nav .nav-item .ms-auto {
|
||||||
|
background-color: transparent;
|
||||||
|
color: black;
|
||||||
|
transition: color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hover and active styles for badges */
|
||||||
|
.sidebar-nav .nav-link:hover .ms-auto,
|
||||||
|
.sidebar-nav .nav-group:hover .ms-auto,
|
||||||
|
.sidebar-nav .nav-item:hover .ms-auto,
|
||||||
|
.sidebar-nav .nav-link.active .ms-auto,
|
||||||
|
.sidebar-nav .nav-group.active .ms-auto,
|
||||||
|
.sidebar-nav .nav-item.active .ms-auto {
|
||||||
|
color: white; /* White badge text */
|
||||||
|
}
|
||||||
|
.sidebar-nav .nav-group.show {
|
||||||
|
background-color: #b4d1e5;
|
||||||
|
}
|
||||||
|
/* Icon styling */
|
||||||
|
.sidebar-nav .nav-link .nav-icon,
|
||||||
|
.sidebar-nav .nav-group .nav-icon,
|
||||||
|
.sidebar-nav .nav-item .nav-icon {
|
||||||
|
color: black; /* Black icon */
|
||||||
|
transition: color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hover and active styles for icons */
|
||||||
|
.sidebar-nav .nav-link:hover .nav-icon,
|
||||||
|
.sidebar-nav .nav-group:hover .nav-icon,
|
||||||
|
.sidebar-nav .nav-item:hover .nav-icon,
|
||||||
|
.sidebar-nav .nav-link.active .nav-icon,
|
||||||
|
.sidebar-nav .nav-group.active .nav-icon,
|
||||||
|
.sidebar-nav .nav-item.active .nav-icon {
|
||||||
|
color: white; /* White icon */
|
||||||
|
}
|
||||||
|
/* .sidebar-nav .nav-group.show .nav-item:hover .nav-icon,
|
||||||
|
.sidebar-nav .nav-group.show .nav-link:hover .nav-icon {
|
||||||
|
color: white;
|
||||||
|
} */
|
||||||
|
/* Toggle styling for nav-group */
|
||||||
|
.sidebar-nav .nav-group-toggle::after {
|
||||||
|
display: block;
|
||||||
|
flex: 0 1 12px;
|
||||||
|
height: 12px;
|
||||||
|
margin-left: auto;
|
||||||
|
content: "";
|
||||||
|
background-image: var(--cui-sidebar-nav-group-indicator);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
transition: transform 0.15s, color 0.3s ease;
|
||||||
|
color: white; /* Default toggle color */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hover and active styles for toggle */
|
||||||
|
.sidebar-nav .nav-group:hover > .nav-group-toggle::after,
|
||||||
|
.sidebar-nav .nav-group.active > .nav-group-toggle::after {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Rotate toggle when nav-group is expanded */
|
||||||
|
.sidebar-nav .nav-group.show > .nav-group-toggle::after {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
color: black;
|
||||||
|
}
|
@ -1,15 +1,23 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { NavLink, useLocation } from "react-router-dom";
|
import { NavLink, useLocation } from "react-router-dom";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
|
import "simplebar-react/dist/simplebar.min.css";
|
||||||
import { CBadge } from "@coreui/react";
|
import { CBadge, CNavLink } from "@coreui/react";
|
||||||
|
import "./AppSidebarNav.css";
|
||||||
|
|
||||||
export const AppSidebarNav = ({ items }) => {
|
export const AppSidebarNav = ({ items }) => {
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
const navLink = (name, icon, badge) => {
|
|
||||||
|
const navLink = (name, icon, badge, indent = false) => {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{icon && icon}
|
{icon
|
||||||
|
? icon
|
||||||
|
: indent && (
|
||||||
|
<span className="nav-icon">
|
||||||
|
<span className="nav-icon-bullet"></span>
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
{name && name}
|
{name && name}
|
||||||
{badge && (
|
{badge && (
|
||||||
<CBadge color={badge.color} className="ms-auto">
|
<CBadge color={badge.color} className="ms-auto">
|
||||||
@ -20,12 +28,12 @@ export const AppSidebarNav = ({ items }) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const navItem = (item, index) => {
|
const navItem = (item, index, indent = false) => {
|
||||||
const { component, name, badge, icon, ...rest } = item;
|
const { component, name, badge, icon, ...rest } = item;
|
||||||
const Component = component;
|
const Component = component;
|
||||||
return (
|
return (
|
||||||
<>
|
|
||||||
<Component
|
<Component
|
||||||
|
as="div"
|
||||||
{...(rest.to &&
|
{...(rest.to &&
|
||||||
!rest.items && {
|
!rest.items && {
|
||||||
component: NavLink,
|
component: NavLink,
|
||||||
@ -36,9 +44,9 @@ export const AppSidebarNav = ({ items }) => {
|
|||||||
>
|
>
|
||||||
{navLink(name, icon, badge)}
|
{navLink(name, icon, badge)}
|
||||||
</Component>
|
</Component>
|
||||||
</>
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const navGroup = (item, index) => {
|
const navGroup = (item, index) => {
|
||||||
const { component, name, icon, to, ...rest } = item;
|
const { component, name, icon, to, ...rest } = item;
|
||||||
const Component = component;
|
const Component = component;
|
||||||
@ -58,12 +66,12 @@ export const AppSidebarNav = ({ items }) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<React.Fragment>
|
<>
|
||||||
{items &&
|
{items &&
|
||||||
items.map((item, index) =>
|
items.map((item, index) =>
|
||||||
item.items ? navGroup(item, index) : navItem(item, index)
|
item.items ? navGroup(item, index) : navItem(item, index)
|
||||||
)}
|
)}
|
||||||
</React.Fragment>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import React from 'react'
|
import React from "react";
|
||||||
import {
|
import {
|
||||||
CAvatar,
|
CAvatar,
|
||||||
CBadge,
|
CBadge,
|
||||||
@ -8,7 +8,7 @@ import {
|
|||||||
CDropdownItem,
|
CDropdownItem,
|
||||||
CDropdownMenu,
|
CDropdownMenu,
|
||||||
CDropdownToggle,
|
CDropdownToggle,
|
||||||
} from '@coreui/react'
|
} from "@coreui/react";
|
||||||
import {
|
import {
|
||||||
cilBell,
|
cilBell,
|
||||||
cilCreditCard,
|
cilCreditCard,
|
||||||
@ -20,27 +20,27 @@ import {
|
|||||||
cilTask,
|
cilTask,
|
||||||
cilUser,
|
cilUser,
|
||||||
cilPencil,
|
cilPencil,
|
||||||
} from '@coreui/icons'
|
} from "@coreui/icons";
|
||||||
import CIcon from '@coreui/icons-react'
|
import CIcon from "@coreui/icons-react";
|
||||||
import swal from 'sweetalert';
|
import swal from "sweetalert";
|
||||||
|
|
||||||
import userImage from './../../assets/images/avatars/1.jpeg'
|
import userImage from "./../../assets/images/avatars/1.jpeg";
|
||||||
import { Link } from 'react-router-dom'
|
import { Link } from "react-router-dom";
|
||||||
// import { signout } from 'src/auth'
|
// import { signout } from 'src/auth'
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from "react";
|
||||||
import axios from 'axios';
|
import axios from "axios";
|
||||||
import { useState } from 'react';
|
import { useState } from "react";
|
||||||
|
import { use } from "react";
|
||||||
|
|
||||||
const AppHeaderDropdown = () => {
|
const AppHeaderDropdown = () => {
|
||||||
const [userData, setUserData] = useState()
|
const [userData, setUserData] = useState();
|
||||||
let history = useNavigate();
|
let history = useNavigate();
|
||||||
const signout = async () => {
|
const signout = async () => {
|
||||||
localStorage.removeItem('authToken')
|
localStorage.removeItem("authToken");
|
||||||
swal("success!", "Logged Out", "success");
|
swal("success!", "Logged Out", "success");
|
||||||
history("/");
|
history("/");
|
||||||
}
|
};
|
||||||
|
|
||||||
//for user image
|
//for user image
|
||||||
|
|
||||||
@ -51,32 +51,35 @@ const AppHeaderDropdown = () => {
|
|||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${token}`,
|
Authorization: `Bearer ${token}`,
|
||||||
},
|
},
|
||||||
})
|
});
|
||||||
|
|
||||||
if (response.data.success === true) {
|
if (response.data.success === true) {
|
||||||
setUserData(response.data.user)
|
setUserData(response.data.user);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
} catch (err) {
|
||||||
catch (err) {
|
|
||||||
|
|
||||||
console.log(err);
|
console.log(err);
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getUser()
|
getUser();
|
||||||
}, [])
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<CDropdown variant="nav-item">
|
<CDropdown variant="nav-item">
|
||||||
<CDropdownToggle placement="bottom-end" className="py-0" caret={false}>
|
<CDropdownToggle placement="bottom-end" className="py-0" caret={false}>
|
||||||
{/* {userData && userData ? <CAvatar src={userData.avatar.url} size="md" /> : */}
|
{/* {userData && userData ? <CAvatar src={userData.avatar.url} size="md" /> : */}
|
||||||
<CAvatar src={userImage} size="md" />
|
<CAvatar
|
||||||
|
src={userImage}
|
||||||
|
size="md"
|
||||||
|
style={{
|
||||||
|
filter: "brightness(0.7)",
|
||||||
|
}}
|
||||||
|
/>
|
||||||
</CDropdownToggle>
|
</CDropdownToggle>
|
||||||
<CDropdownMenu className="pt-0" placement="bottom-end">
|
<CDropdownMenu className="pt-0" placement="bottom-end">
|
||||||
<CDropdownHeader className="bg-light fw-semibold py-2">Account</CDropdownHeader>
|
<CDropdownHeader className="bg-light fw-semibold py-2">
|
||||||
|
Account
|
||||||
|
</CDropdownHeader>
|
||||||
<CDropdownItem href="#">
|
<CDropdownItem href="#">
|
||||||
{/* <CIcon icon={cilBell} className="me-2" />
|
{/* <CIcon icon={cilBell} className="me-2" />
|
||||||
Updates
|
Updates
|
||||||
@ -129,13 +132,13 @@ const AppHeaderDropdown = () => {
|
|||||||
</CBadge> */}
|
</CBadge> */}
|
||||||
</CDropdownItem>
|
</CDropdownItem>
|
||||||
{/* <CDropdownDivider /> */}
|
{/* <CDropdownDivider /> */}
|
||||||
<Link to='/profile/edit'>
|
<Link to="/profile/edit">
|
||||||
<CDropdownItem>
|
<CDropdownItem>
|
||||||
<CIcon icon={cilUser} className="me-2" />
|
<CIcon icon={cilUser} className="me-2" />
|
||||||
Edit Profile
|
Edit Profile
|
||||||
</CDropdownItem>
|
</CDropdownItem>
|
||||||
</Link>
|
</Link>
|
||||||
<Link to='/change_password'>
|
<Link to="/change_password">
|
||||||
<CDropdownItem>
|
<CDropdownItem>
|
||||||
<CIcon icon={cilPencil} className="me-2" />
|
<CIcon icon={cilPencil} className="me-2" />
|
||||||
Change Password
|
Change Password
|
||||||
@ -143,11 +146,11 @@ const AppHeaderDropdown = () => {
|
|||||||
</Link>
|
</Link>
|
||||||
<CDropdownItem href="#">
|
<CDropdownItem href="#">
|
||||||
<CIcon icon={cilLockLocked} className="me-2" />
|
<CIcon icon={cilLockLocked} className="me-2" />
|
||||||
<span onClick={signout} >Log Out</span>
|
<span onClick={signout}>Log Out</span>
|
||||||
</CDropdownItem>
|
</CDropdownItem>
|
||||||
</CDropdownMenu>
|
</CDropdownMenu>
|
||||||
</CDropdown>
|
</CDropdown>
|
||||||
)
|
);
|
||||||
}
|
};
|
||||||
|
|
||||||
export default AppHeaderDropdown
|
export default AppHeaderDropdown;
|
||||||
|
@ -10,7 +10,7 @@ const DefaultLayout = () => {
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<AppSidebar />
|
<AppSidebar />
|
||||||
<div className="wrapper d-flex flex-column min-vh-100 bg-light">
|
<div className="wrapper d-flex flex-column min-vh-100" style={{background:"#179FAF"}}>
|
||||||
<AppHeader />
|
<AppHeader />
|
||||||
<div className="body flex-grow-1 px-3">
|
<div className="body flex-grow-1 px-3">
|
||||||
<AppContent />
|
<AppContent />
|
||||||
|
@ -37,7 +37,7 @@ const Announcements = () => {
|
|||||||
Authorization: `Bearer ${token}`, // if token is necessary for authorization
|
Authorization: `Bearer ${token}`, // if token is necessary for authorization
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
console.log(response);
|
// console.log(response);
|
||||||
const { announcements, totalAnnouncements } = response.data;
|
const { announcements, totalAnnouncements } = response.data;
|
||||||
setAnnouncements(announcements);
|
setAnnouncements(announcements);
|
||||||
setTotalAnnouncements(totalAnnouncements);
|
setTotalAnnouncements(totalAnnouncements);
|
||||||
@ -87,9 +87,20 @@ const Announcements = () => {
|
|||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
onClick={() => navigate("/announcement/create")}
|
onClick={() => navigate("/announcement/create")}
|
||||||
sx={{ textTransform: "none" }}
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
Add New{" "}
|
Add New
|
||||||
</Button>
|
</Button>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@ const CreateAnnouncement = () => {
|
|||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="secondary"
|
color="secondary"
|
||||||
onClick={() => navigateBack()}
|
onClick={() => navigate("/announcement")}
|
||||||
>
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef,useCallback } from "react";
|
import React, { useState, useEffect, useRef,useCallback } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef,useCallback } from "react";
|
import React, { useState, useEffect, useRef,useCallback } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect } from "react";
|
||||||
import { useParams, useNavigate } from "react-router-dom";
|
import { useParams, useNavigate } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ const SingleUserAttendance = () => {
|
|||||||
show: itemPerPage,
|
show: itemPerPage,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
console.log(res.data);
|
// console.log(res.data);
|
||||||
setuser(res.data?.user);
|
setuser(res.data?.user);
|
||||||
setAttendanceData(res.data?.attendance);
|
setAttendanceData(res.data?.attendance);
|
||||||
setUserType(res.data?.userType);
|
setUserType(res.data?.userType);
|
||||||
@ -71,7 +71,7 @@ const SingleUserAttendance = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
color="secondary"
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
@ -76,12 +76,19 @@ const TodayAttendance = () => {
|
|||||||
<div className="page-title-right d-flex">
|
<div className="page-title-right d-flex">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginRight: "1rem",
|
marginRight: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
navigate("/salescoordinator/attendance", {
|
navigate("/salescoordinator/attendance", {
|
||||||
replace: true,
|
replace: true,
|
||||||
@ -92,11 +99,18 @@ const TodayAttendance = () => {
|
|||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
navigate("/territorymanager/attendance", {
|
navigate("/territorymanager/attendance", {
|
||||||
replace: true,
|
replace: true,
|
||||||
|
@ -210,12 +210,20 @@ const Brands = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
// color="success"
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "0.5rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={handleOpen}
|
onClick={handleOpen}
|
||||||
>
|
>
|
||||||
Add New brand
|
Add New brand
|
||||||
|
@ -255,12 +255,20 @@ const Categories = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "0.5rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
// color="success"
|
||||||
onClick={handleOpen}
|
onClick={handleOpen}
|
||||||
>
|
>
|
||||||
Add New Category
|
Add New Category
|
||||||
@ -480,7 +488,10 @@ const Categories = () => {
|
|||||||
mt-1
|
mt-1
|
||||||
"
|
"
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
handleEditClick(item._id, item.categoryName)
|
handleEditClick(
|
||||||
|
item._id,
|
||||||
|
item.categoryName
|
||||||
|
)
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
Edit
|
Edit
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef,useCallback } from "react";
|
import React, { useState, useEffect, useRef,useCallback } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef,useCallback } from "react";
|
import React, { useState, useEffect, useRef,useCallback } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect } from "react";
|
||||||
import { useParams, useNavigate } from "react-router-dom";
|
import { useParams, useNavigate } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ const [userType, setUserType] = useState("");
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
color="secondary"
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
@ -77,12 +77,19 @@ const TodayLeave = () => {
|
|||||||
<div className="d-flex">
|
<div className="d-flex">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginRight: "1rem",
|
marginRight: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
navigate("/salescoordinator/leave", {
|
navigate("/salescoordinator/leave", {
|
||||||
replace: true,
|
replace: true,
|
||||||
@ -93,11 +100,18 @@ const TodayLeave = () => {
|
|||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
navigate("/territorymanager/leave", {
|
navigate("/territorymanager/leave", {
|
||||||
replace: true,
|
replace: true,
|
||||||
|
@ -4,6 +4,7 @@ import swal from "sweetalert";
|
|||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { toast } from "react-hot-toast";
|
import { toast } from "react-hot-toast";
|
||||||
|
import { Button } from "@mui/material";
|
||||||
const AddMultiplePd = () => {
|
const AddMultiplePd = () => {
|
||||||
const [file, setFile] = useState(null);
|
const [file, setFile] = useState(null);
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
@ -106,12 +107,17 @@ const AddMultiplePd = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="container mt-4">
|
<div className="container mt-4">
|
||||||
<div className="mb-6">
|
<div className="mb-6">
|
||||||
<button
|
<Button
|
||||||
|
variant="contained"
|
||||||
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
|
color="secondary"
|
||||||
onClick={() => navigate("/principal-distributor")}
|
onClick={() => navigate("/principal-distributor")}
|
||||||
className="btn btn-secondary"
|
|
||||||
>
|
>
|
||||||
Back
|
Back
|
||||||
</button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<h5 className="mb-6 mt-4">Add Multiple Principal Distributor</h5>
|
<h5 className="mb-6 mt-4">Add Multiple Principal Distributor</h5>
|
||||||
<div className="my-3">
|
<div className="my-3">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef, useCallback } from "react";
|
import React, { useState, useEffect, useRef, useCallback } from "react";
|
||||||
import { Link, useParams } from "react-router-dom";
|
import { Link, useParams } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
@ -266,12 +266,20 @@ const ViewRetailDistributorPD = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
// color="primary"
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={handleOpenModal}
|
onClick={handleOpenModal}
|
||||||
>
|
>
|
||||||
Add Retailer
|
Add Retailer
|
||||||
@ -283,12 +291,7 @@ const ViewRetailDistributorPD = () => {
|
|||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
marginLeft: "1rem",
|
marginLeft: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize"
|
||||||
backgroundColor: "#d32f2f", // Red color for danger
|
|
||||||
color: "#fff",
|
|
||||||
"&:hover": {
|
|
||||||
backgroundColor: "#b71c1c", // Darker red on hover
|
|
||||||
},
|
|
||||||
}}
|
}}
|
||||||
onClick={() => navigate("/principal-distributor")}
|
onClick={() => navigate("/principal-distributor")}
|
||||||
>
|
>
|
||||||
|
@ -53,10 +53,10 @@ const AddPrincipalDistributor = () => {
|
|||||||
value: state.isoCode,
|
value: state.isoCode,
|
||||||
}));
|
}));
|
||||||
setStateOptions(states);
|
setStateOptions(states);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
// Fetch city options whenever selected state changes
|
// Fetch city options whenever selected state changes
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (selectedState) {
|
if (selectedState) {
|
||||||
const cities = City.getCitiesOfState("IN", selectedState.value).map(
|
const cities = City.getCitiesOfState("IN", selectedState.value).map(
|
||||||
(city) => ({
|
(city) => ({
|
||||||
@ -68,7 +68,7 @@ useEffect(() => {
|
|||||||
} else {
|
} else {
|
||||||
setCityOptions([]); // Reset cities if no state selected
|
setCityOptions([]); // Reset cities if no state selected
|
||||||
}
|
}
|
||||||
}, [selectedState]);
|
}, [selectedState]);
|
||||||
|
|
||||||
const handleInputChange = (e) => {
|
const handleInputChange = (e) => {
|
||||||
setUser({ ...user, [e.target.name]: e.target.value });
|
setUser({ ...user, [e.target.name]: e.target.value });
|
||||||
@ -177,8 +177,14 @@ useEffect(() => {
|
|||||||
<Button
|
<Button
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
color="secondary"
|
color="secondary"
|
||||||
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
position: "absolute",
|
||||||
|
top: "10px",
|
||||||
|
right: "10px",
|
||||||
|
}}
|
||||||
onClick={handleCancel}
|
onClick={handleCancel}
|
||||||
sx={{ position: "absolute", top: "10px", right: "10px" }}
|
|
||||||
>
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React, { useState, useEffect, useRef, useCallback } from "react";
|
import React, { useState, useEffect, useRef, useCallback } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
@ -203,8 +203,16 @@ const principalDistributor = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
// color="primary"
|
||||||
className="font-bold mb-2 capitalize mr-2"
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
style={{ marginRight: "0.5rem", fontWeight: "bold", textTransform: "capitalize", marginBottom: "0.5rem" }}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
navigate("/add-principal-distributor");
|
navigate("/add-principal-distributor");
|
||||||
}}
|
}}
|
||||||
@ -213,8 +221,16 @@ const principalDistributor = () => {
|
|||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
// color="primary"
|
||||||
className="font-bold mb-2 capitalize"
|
style={{ fontWeight: "bold", textTransform: "capitalize", marginBottom: "0.5rem" }}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
navigate("/add-principal-distributor/multiple", {
|
navigate("/add-principal-distributor/multiple", {
|
||||||
replace: true,
|
replace: true,
|
||||||
|
@ -316,7 +316,16 @@ const SinglePrincipalDistributorAllDetails = () => {
|
|||||||
</div>
|
</div>
|
||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Link to="/principal-distributor">
|
<Link to="/principal-distributor">
|
||||||
<Button className="btn btn-danger btn-sm">Back</Button>
|
<Button
|
||||||
|
className="btn btn-danger"
|
||||||
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Back
|
||||||
|
</Button>
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -222,8 +222,20 @@ const ProductManual = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
// color="primary"
|
||||||
className="font-bold mb-2 capitalize mr-2"
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize"
|
||||||
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() => handleOpen()}
|
onClick={() => handleOpen()}
|
||||||
>
|
>
|
||||||
Add New Product Manual
|
Add New Product Manual
|
||||||
|
@ -4,6 +4,7 @@ import swal from "sweetalert";
|
|||||||
import { isAutheticated } from "src/auth.js";
|
import { isAutheticated } from "src/auth.js";
|
||||||
import { useNavigate } from "react-router-dom"; // Import useNavigate
|
import { useNavigate } from "react-router-dom"; // Import useNavigate
|
||||||
import toast from "react-hot-toast";
|
import toast from "react-hot-toast";
|
||||||
|
import { Button } from "@mui/material";
|
||||||
|
|
||||||
const AddMultipleProducts = () => {
|
const AddMultipleProducts = () => {
|
||||||
const [file, setFile] = useState(null);
|
const [file, setFile] = useState(null);
|
||||||
@ -37,14 +38,14 @@ const AddMultipleProducts = () => {
|
|||||||
setErrors([]);
|
setErrors([]);
|
||||||
setupdatedProducts([]);
|
setupdatedProducts([]);
|
||||||
setnewlyCreated([]);
|
setnewlyCreated([]);
|
||||||
try{
|
try {
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append('file', file);
|
formData.append("file", file);
|
||||||
|
|
||||||
const token = isAutheticated();
|
const token = isAutheticated();
|
||||||
const response = await axios.post('/api/products/upload', formData, {
|
const response = await axios.post("/api/products/upload", formData, {
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'multipart/form-data',
|
"Content-Type": "multipart/form-data",
|
||||||
Authorization: `Bearer ${token}`,
|
Authorization: `Bearer ${token}`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@ -68,24 +69,32 @@ try{
|
|||||||
icon: "warning",
|
icon: "warning",
|
||||||
button: "OK",
|
button: "OK",
|
||||||
});
|
});
|
||||||
} else if(data.updatedProducts && data.updatedProducts.length > 0 || data.newlyCreated && data.newlyCreated.length > 0) {
|
} else if (
|
||||||
|
(data.updatedProducts && data.updatedProducts.length > 0) ||
|
||||||
|
(data.newlyCreated && data.newlyCreated.length > 0)
|
||||||
|
) {
|
||||||
swal({
|
swal({
|
||||||
title: "SpreadSheet Upload Successful",
|
title: "SpreadSheet Upload Successful",
|
||||||
text: "Products added successfully",
|
text: "Products added successfully",
|
||||||
icon: "success",
|
icon: "success",
|
||||||
button: "OK",
|
button: "OK",
|
||||||
});
|
});
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
toast.success("Products added successfully");
|
toast.success("Products added successfully");
|
||||||
navigate('/products');
|
navigate("/products");
|
||||||
}
|
}
|
||||||
|
|
||||||
setFile(null); // Clear the file input
|
setFile(null); // Clear the file input
|
||||||
document.querySelector('input[type="file"]').value = ""; // Reset file input value
|
document.querySelector('input[type="file"]').value = ""; // Reset file input value
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Upload error:", error);
|
console.error("Upload error:", error);
|
||||||
swal("Error", `Failed to upload products: ${error.response?.data?.message || 'An unexpected error occurred'}`, "error");
|
swal(
|
||||||
|
"Error",
|
||||||
|
`Failed to upload products: ${
|
||||||
|
error.response?.data?.message || "An unexpected error occurred"
|
||||||
|
}`,
|
||||||
|
"error"
|
||||||
|
);
|
||||||
} finally {
|
} finally {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
}
|
}
|
||||||
@ -94,12 +103,17 @@ try{
|
|||||||
return (
|
return (
|
||||||
<div className="container mt-4">
|
<div className="container mt-4">
|
||||||
<div className="mb-6">
|
<div className="mb-6">
|
||||||
<button
|
<Button
|
||||||
onClick={() => navigate('/products')}
|
variant="contained"
|
||||||
className="btn btn-secondary"
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
|
color="secondary"
|
||||||
|
onClick={() => navigate("/products")}
|
||||||
>
|
>
|
||||||
Back
|
Back
|
||||||
</button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<h5 className="mb-6 mt-4">Add Multiple Products</h5>
|
<h5 className="mb-6 mt-4">Add Multiple Products</h5>
|
||||||
<div className="my-3">
|
<div className="my-3">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef, useCallback } from "react";
|
import React, { useState, useEffect, useRef, useCallback } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
@ -211,16 +211,41 @@ const Products = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
// color="success"
|
||||||
className="font-bold mb-2 capitalize mr-2"
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
marginRight: "0.5rem",
|
||||||
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() => navigate("/product/add", { replace: true })}
|
onClick={() => navigate("/product/add", { replace: true })}
|
||||||
>
|
>
|
||||||
Add Product
|
Add Product
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
// color="success"
|
||||||
className="font-bold mb-2 capitalize"
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
navigate("/product/add/multiple", { replace: true })
|
navigate("/product/add/multiple", { replace: true })
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import swal from "sweetalert";
|
|||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { toast } from "react-hot-toast";
|
import { toast } from "react-hot-toast";
|
||||||
|
import { Button } from "@mui/material";
|
||||||
const AddMultiplerd = () => {
|
const AddMultiplerd = () => {
|
||||||
const [file, setFile] = useState(null);
|
const [file, setFile] = useState(null);
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
@ -107,12 +108,17 @@ const AddMultiplerd = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="container mt-4">
|
<div className="container mt-4">
|
||||||
<div className="mb-6">
|
<div className="mb-6">
|
||||||
<button
|
<Button
|
||||||
onClick={() => navigate("/retail-distributor")}
|
onClick={() => navigate("/retail-distributor")}
|
||||||
className="btn btn-secondary"
|
variant="contained"
|
||||||
|
color="secondary"
|
||||||
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
Back
|
Back
|
||||||
</button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<h5 className="mb-6 mt-4">Add Multiple Retailers</h5>
|
<h5 className="mb-6 mt-4">Add Multiple Retailers</h5>
|
||||||
<div className="my-3">
|
<div className="my-3">
|
||||||
|
@ -133,7 +133,9 @@ const SingleDistributorOrder = () => {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
distributortype === "principaldistributor"? setdistributorDetails(response.data.user): setdistributorDetails(response.data);
|
distributortype === "principaldistributor"
|
||||||
|
? setdistributorDetails(response.data.user)
|
||||||
|
: setdistributorDetails(response.data);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error fetching data: ", error);
|
console.error("Error fetching data: ", error);
|
||||||
}
|
}
|
||||||
@ -241,10 +243,22 @@ const SingleDistributorOrder = () => {
|
|||||||
mb: 3,
|
mb: 3,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Typography variant="h4">{distributortype === "principaldistributor" ? "Principal Distributor Details":"Retailers Details"}</Typography>
|
<Typography variant="h4">
|
||||||
<IconButton sx={{ color: "red" }} onClick={handleCancel}>
|
{distributortype === "principaldistributor"
|
||||||
Cancel <CancelIcon />
|
? "Principal Distributor Details"
|
||||||
</IconButton>
|
: "Retailers Details"}
|
||||||
|
</Typography>
|
||||||
|
<Button
|
||||||
|
variant="contained"
|
||||||
|
color="secondary"
|
||||||
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
|
onClick={handleCancel}
|
||||||
|
>
|
||||||
|
Back
|
||||||
|
</Button>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Paper sx={{ p: 2, mb: 3 }}>
|
<Paper sx={{ p: 2, mb: 3 }}>
|
||||||
|
@ -341,7 +341,13 @@ const EditRetailDistributor = () => {
|
|||||||
variant="outlined"
|
variant="outlined"
|
||||||
color="secondary"
|
color="secondary"
|
||||||
onClick={handleCancel}
|
onClick={handleCancel}
|
||||||
sx={{ position: "absolute", top: "10px", right: "10px" }}
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
position: "absolute",
|
||||||
|
top: "10px",
|
||||||
|
right: "10px",
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -2,7 +2,7 @@ import React, { useState, useEffect, useCallback, useRef } from "react";
|
|||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
import debounce from "lodash.debounce";
|
import debounce from "lodash.debounce";
|
||||||
@ -156,8 +156,20 @@ const RetailDistributor = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
style={{
|
||||||
className="font-bold mb-2 capitalize mr-2"
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
marginRight: "0.5rem",
|
||||||
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
Navigate("/retaildistributor/add");
|
Navigate("/retaildistributor/add");
|
||||||
}}
|
}}
|
||||||
@ -166,8 +178,19 @@ const RetailDistributor = () => {
|
|||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
style={{
|
||||||
className="font-bold mb-2 capitalize"
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
Navigate("/add-retail-distributor/multiple", {
|
Navigate("/add-retail-distributor/multiple", {
|
||||||
replace: true,
|
replace: true,
|
||||||
|
@ -304,9 +304,21 @@ const SingleRetailDistributor = () => {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Typography variant="h4">Retailer Details</Typography>
|
<Typography variant="h4">Retailer Details</Typography>
|
||||||
<IconButton sx={{ color: "red" }} onClick={handleCancel}>
|
<Button
|
||||||
|
className="btn btn-danger"
|
||||||
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
|
onClick={handleCancel}
|
||||||
|
>
|
||||||
|
Back
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
{/* <IconButton sx={{ color: "red" }} >
|
||||||
Cancel <CancelIcon />
|
Cancel <CancelIcon />
|
||||||
</IconButton>
|
</IconButton> */}
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Paper sx={{ p: 2, mb: 3 }}>
|
<Paper sx={{ p: 2, mb: 3 }}>
|
||||||
|
@ -213,7 +213,13 @@ useEffect(() => {
|
|||||||
variant="outlined"
|
variant="outlined"
|
||||||
color="secondary"
|
color="secondary"
|
||||||
onClick={handleCancel}
|
onClick={handleCancel}
|
||||||
sx={{ position: "absolute", top: "10px", right: "10px" }}
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
position: "absolute",
|
||||||
|
top: "10px",
|
||||||
|
right: "10px",
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
Cancel
|
Cancel
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -4,6 +4,7 @@ import swal from "sweetalert";
|
|||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { toast } from "react-hot-toast";
|
import { toast } from "react-hot-toast";
|
||||||
|
import { Button } from "@mui/material";
|
||||||
const AddMultiplesc = () => {
|
const AddMultiplesc = () => {
|
||||||
const [file, setFile] = useState(null);
|
const [file, setFile] = useState(null);
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
@ -110,12 +111,17 @@ const AddMultiplesc = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="container mt-4">
|
<div className="container mt-4">
|
||||||
<div className="mb-6">
|
<div className="mb-6">
|
||||||
<button
|
<Button
|
||||||
onClick={() => navigate("/salescoordinators")}
|
onClick={() => navigate("/salescoordinators")}
|
||||||
className="btn btn-secondary"
|
variant="contained"
|
||||||
|
color="secondary"
|
||||||
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
Back
|
Back
|
||||||
</button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<h5 className="mb-6 mt-4">Add Multiple Sales Coordinators</h5>
|
<h5 className="mb-6 mt-4">Add Multiple Sales Coordinators</h5>
|
||||||
<div className="my-3">
|
<div className="my-3">
|
||||||
|
@ -3,7 +3,7 @@ import axios from "axios";
|
|||||||
import { useNavigate, useParams } from "react-router-dom";
|
import { useNavigate, useParams } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import Modal from "react-bootstrap/Modal";
|
import Modal from "react-bootstrap/Modal";
|
||||||
import Button from "react-bootstrap/Button";
|
import { Button } from "@mui/material";
|
||||||
import Form from "react-bootstrap/Form";
|
import Form from "react-bootstrap/Form";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ const EditSalesCoOrdinator = () => {
|
|||||||
.patch(
|
.patch(
|
||||||
`/api/salescoordinator/profile/update/${id}`,
|
`/api/salescoordinator/profile/update/${id}`,
|
||||||
{
|
{
|
||||||
uniqueId:formData.uniqueId,
|
uniqueId: formData.uniqueId,
|
||||||
name: formData.name,
|
name: formData.name,
|
||||||
email: formData.email,
|
email: formData.email,
|
||||||
},
|
},
|
||||||
@ -209,13 +209,18 @@ const EditSalesCoOrdinator = () => {
|
|||||||
<div className="col-12">
|
<div className="col-12">
|
||||||
<div className="page-title-box d-flex align-items-center justify-content-between">
|
<div className="page-title-box d-flex align-items-center justify-content-between">
|
||||||
<h4 className="mb-3">Edit Sales Coordinator</h4>
|
<h4 className="mb-3">Edit Sales Coordinator</h4>
|
||||||
<button
|
<Button
|
||||||
onClick={onCancel}
|
onClick={onCancel}
|
||||||
type="button"
|
variant="contained"
|
||||||
className="btn btn-warning btn-cancel waves-effect waves-light mr-3"
|
color="secondary"
|
||||||
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
Back
|
Back
|
||||||
</button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef, useCallback } from "react";
|
import React, { useState, useEffect, useRef, useCallback } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
@ -148,8 +148,21 @@ const SalesCoOrdinator = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
// color="primary"
|
||||||
className="font-bold mb-2 capitalize mr-2"
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
marginRight: "0.5rem",
|
||||||
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
navigate("/salescoordinator/add", { replace: true });
|
navigate("/salescoordinator/add", { replace: true });
|
||||||
}}
|
}}
|
||||||
@ -158,8 +171,20 @@ const SalesCoOrdinator = () => {
|
|||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
// color="primary"
|
||||||
className="font-bold mb-2 capitalize"
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
navigate("/add-sales-coordinator/multiple", {
|
navigate("/add-sales-coordinator/multiple", {
|
||||||
replace: true,
|
replace: true,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef, useCallback } from "react";
|
import React, { useState, useEffect, useRef, useCallback } from "react";
|
||||||
import { Link, useParams } from "react-router-dom";
|
import { Link, useParams } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
@ -263,12 +263,19 @@ const ViewPrincipalDistributorSC = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={handleOpenModal}
|
onClick={handleOpenModal}
|
||||||
>
|
>
|
||||||
Add Principal Distributor
|
Add Principal Distributor
|
||||||
@ -281,11 +288,6 @@ const ViewPrincipalDistributorSC = () => {
|
|||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
marginLeft: "1rem",
|
marginLeft: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
backgroundColor: "#d32f2f", // Red color for danger
|
|
||||||
color: "#fff",
|
|
||||||
"&:hover": {
|
|
||||||
backgroundColor: "#b71c1c", // Darker red on hover
|
|
||||||
},
|
|
||||||
}}
|
}}
|
||||||
onClick={() => navigate("/salescoordinators")}
|
onClick={() => navigate("/salescoordinators")}
|
||||||
>
|
>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef, useCallback } from "react";
|
import React, { useState, useEffect, useRef, useCallback } from "react";
|
||||||
import { Link, useParams } from "react-router-dom";
|
import { Link, useParams } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
@ -266,12 +266,19 @@ const ViewRetailDistributorSC = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={handleOpenModal}
|
onClick={handleOpenModal}
|
||||||
>
|
>
|
||||||
Add Retailer
|
Add Retailer
|
||||||
@ -284,11 +291,6 @@ const ViewRetailDistributorSC = () => {
|
|||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
marginLeft: "1rem",
|
marginLeft: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
backgroundColor: "#d32f2f", // Red color for danger
|
|
||||||
color: "#fff",
|
|
||||||
"&:hover": {
|
|
||||||
backgroundColor: "#b71c1c", // Darker red on hover
|
|
||||||
},
|
|
||||||
}}
|
}}
|
||||||
onClick={() => navigate("/salescoordinators")}
|
onClick={() => navigate("/salescoordinators")}
|
||||||
>
|
>
|
||||||
|
@ -4,6 +4,7 @@ import swal from "sweetalert";
|
|||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { toast } from "react-hot-toast";
|
import { toast } from "react-hot-toast";
|
||||||
|
import { Button } from "@mui/material";
|
||||||
const AddMultipletm = () => {
|
const AddMultipletm = () => {
|
||||||
const [file, setFile] = useState(null);
|
const [file, setFile] = useState(null);
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
@ -110,12 +111,17 @@ const AddMultipletm = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="container mt-4">
|
<div className="container mt-4">
|
||||||
<div className="mb-6">
|
<div className="mb-6">
|
||||||
<button
|
<Button
|
||||||
onClick={() => navigate("/territorymanagers")}
|
onClick={() => navigate("/territorymanagers")}
|
||||||
className="btn btn-secondary"
|
variant="contained"
|
||||||
|
color="secondary"
|
||||||
|
style={{
|
||||||
|
fontWeight: "bold",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
Back
|
Back
|
||||||
</button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<h5 className="mb-6 mt-4">Add Multiple Territory Managers</h5>
|
<h5 className="mb-6 mt-4">Add Multiple Territory Managers</h5>
|
||||||
<div className="my-3">
|
<div className="my-3">
|
||||||
|
@ -212,7 +212,7 @@ const EditTerritoryManager = () => {
|
|||||||
<button
|
<button
|
||||||
onClick={onCancel}
|
onClick={onCancel}
|
||||||
type="button"
|
type="button"
|
||||||
className="btn btn-warning btn-cancel waves-effect waves-light mr-3"
|
className="btn btn-danger btn-cancel waves-effect waves-light mr-3"
|
||||||
>
|
>
|
||||||
Back
|
Back
|
||||||
</button>
|
</button>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef, useCallback } from "react";
|
import React, { useState, useEffect, useRef, useCallback } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
@ -148,8 +148,20 @@ const TerritoryManager = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
style={{
|
||||||
className="font-bold mb-2 capitalize mr-2"
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
marginRight: "0.5rem",
|
||||||
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
navigate("/territorymanager/add", { replace: true });
|
navigate("/territorymanager/add", { replace: true });
|
||||||
}}
|
}}
|
||||||
@ -158,8 +170,19 @@ const TerritoryManager = () => {
|
|||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
style={{
|
||||||
className="font-bold mb-2 capitalize"
|
fontWeight: "bold",
|
||||||
|
marginBottom: "0.5rem",
|
||||||
|
textTransform: "capitalize",
|
||||||
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
navigate("/add-territory-manager/multiple", {
|
navigate("/add-territory-manager/multiple", {
|
||||||
replace: true,
|
replace: true,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef, useCallback } from "react";
|
import React, { useState, useEffect, useRef, useCallback } from "react";
|
||||||
import { Link, useParams } from "react-router-dom";
|
import { Link, useParams } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
@ -262,12 +262,19 @@ const ViewPrincipalDistributorTM = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={handleOpenModal}
|
onClick={handleOpenModal}
|
||||||
>
|
>
|
||||||
Add Principal Distributor
|
Add Principal Distributor
|
||||||
@ -280,11 +287,6 @@ const ViewPrincipalDistributorTM = () => {
|
|||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
marginLeft: "1rem",
|
marginLeft: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
backgroundColor: "#d32f2f", // Red color for danger
|
|
||||||
color: "#fff",
|
|
||||||
"&:hover": {
|
|
||||||
backgroundColor: "#b71c1c", // Darker red on hover
|
|
||||||
},
|
|
||||||
}}
|
}}
|
||||||
onClick={() => navigate("/territorymanagers")}
|
onClick={() => navigate("/territorymanagers")}
|
||||||
>
|
>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef, useCallback } from "react";
|
import React, { useState, useEffect, useRef, useCallback } from "react";
|
||||||
import { Link, useParams } from "react-router-dom";
|
import { Link, useParams } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
@ -266,12 +266,19 @@ const ViewRetailDistributorTM = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={handleOpenModal}
|
onClick={handleOpenModal}
|
||||||
>
|
>
|
||||||
Add Retailer
|
Add Retailer
|
||||||
@ -284,11 +291,6 @@ const ViewRetailDistributorTM = () => {
|
|||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
marginLeft: "1rem",
|
marginLeft: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
backgroundColor: "#d32f2f", // Red color for danger
|
|
||||||
color: "#fff",
|
|
||||||
"&:hover": {
|
|
||||||
backgroundColor: "#b71c1c", // Darker red on hover
|
|
||||||
},
|
|
||||||
}}
|
}}
|
||||||
onClick={() => navigate("/territorymanagers")}
|
onClick={() => navigate("/territorymanagers")}
|
||||||
>
|
>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useRef, useCallback } from "react";
|
import React, { useState, useEffect, useRef, useCallback } from "react";
|
||||||
import { Link, useParams } from "react-router-dom";
|
import { Link, useParams } from "react-router-dom";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import Button from "@material-ui/core/Button";
|
import { Button } from "@mui/material";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { isAutheticated } from "src/auth";
|
import { isAutheticated } from "src/auth";
|
||||||
import swal from "sweetalert";
|
import swal from "sweetalert";
|
||||||
@ -260,12 +260,19 @@ const ViewSalesCoOrdinatorTM = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={handleOpenModal}
|
onClick={handleOpenModal}
|
||||||
>
|
>
|
||||||
Add Sales Coordinator
|
Add Sales Coordinator
|
||||||
@ -278,11 +285,6 @@ const ViewSalesCoOrdinatorTM = () => {
|
|||||||
marginBottom: "1rem",
|
marginBottom: "1rem",
|
||||||
marginLeft: "1rem",
|
marginLeft: "1rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
backgroundColor: "#d32f2f", // Red color for danger
|
|
||||||
color: "#fff",
|
|
||||||
"&:hover": {
|
|
||||||
backgroundColor: "#b71c1c", // Darker red on hover
|
|
||||||
},
|
|
||||||
}}
|
}}
|
||||||
onClick={() => navigate("/territorymanagers")}
|
onClick={() => navigate("/territorymanagers")}
|
||||||
>
|
>
|
||||||
|
@ -255,12 +255,19 @@ const Transporter = () => {
|
|||||||
<div className="page-title-right">
|
<div className="page-title-right">
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
|
||||||
style={{
|
style={{
|
||||||
fontWeight: "bold",
|
fontWeight: "bold",
|
||||||
marginBottom: "1rem",
|
marginBottom: "0.5rem",
|
||||||
textTransform: "capitalize",
|
textTransform: "capitalize",
|
||||||
}}
|
}}
|
||||||
|
sx={{
|
||||||
|
backgroundColor: "white",
|
||||||
|
color: "black",
|
||||||
|
"&:hover": {
|
||||||
|
backgroundColor: "#0B0689",
|
||||||
|
color: "white",
|
||||||
|
},
|
||||||
|
}}
|
||||||
onClick={handleOpen}
|
onClick={handleOpen}
|
||||||
>
|
>
|
||||||
Add New Transporter
|
Add New Transporter
|
||||||
|
@ -133,16 +133,19 @@ const Login = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="bg-light min-vh-100 d-flex flex-row align-items-center">
|
<div
|
||||||
|
className=" min-vh-100 d-flex flex-row align-items-center"
|
||||||
|
style={{ backgroundColor: "#179FAF" }}
|
||||||
|
>
|
||||||
<CContainer>
|
<CContainer>
|
||||||
<CRow className="justify-content-center">
|
<CRow className="justify-content-center">
|
||||||
<CCol md={8}>
|
<CCol md={8}>
|
||||||
<CCardGroup>
|
<CCardGroup>
|
||||||
<CCard className="p-4">
|
<CCard className="p-4" style={{ backgroundColor: "#B4D1E5" }}>
|
||||||
<CCardBody>
|
<CCardBody>
|
||||||
<CForm>
|
<CForm>
|
||||||
<h1>Cheminova</h1>
|
<h1 className="fw-semibold ">Cheminova</h1>
|
||||||
<p className="text-medium-emphasis">
|
<p className="fw-semibold text-gray-700 text-base">
|
||||||
Sign In to Your Cheminova Admin Dashboard.
|
Sign In to Your Cheminova Admin Dashboard.
|
||||||
</p>
|
</p>
|
||||||
<CInputGroup className="mb-3">
|
<CInputGroup className="mb-3">
|
||||||
|
@ -141,7 +141,7 @@ const WidgetsDropdown = ({
|
|||||||
<CCol sm={6} lg={3}>
|
<CCol sm={6} lg={3}>
|
||||||
<CWidgetStatsA
|
<CWidgetStatsA
|
||||||
className="mb-4"
|
className="mb-4"
|
||||||
color="primary"
|
color="warning"
|
||||||
value={<>{users}</>}
|
value={<>{users}</>}
|
||||||
title="Total Principal Distributor"
|
title="Total Principal Distributor"
|
||||||
/>
|
/>
|
||||||
@ -152,7 +152,7 @@ const WidgetsDropdown = ({
|
|||||||
<CCol sm={6} lg={3}>
|
<CCol sm={6} lg={3}>
|
||||||
<CWidgetStatsA
|
<CWidgetStatsA
|
||||||
className="mb-4"
|
className="mb-4"
|
||||||
color="primary"
|
color="success"
|
||||||
value={<>{retaildistributor}</>}
|
value={<>{retaildistributor}</>}
|
||||||
title="Total Retailers"
|
title="Total Retailers"
|
||||||
/>
|
/>
|
||||||
@ -163,7 +163,7 @@ const WidgetsDropdown = ({
|
|||||||
<CCol sm={6} lg={3}>
|
<CCol sm={6} lg={3}>
|
||||||
<CWidgetStatsA
|
<CWidgetStatsA
|
||||||
className="mb-4"
|
className="mb-4"
|
||||||
color="primary"
|
color="danger"
|
||||||
value={<>{salescoordinator}</>}
|
value={<>{salescoordinator}</>}
|
||||||
title="Total Sales Coordinator"
|
title="Total Sales Coordinator"
|
||||||
/>
|
/>
|
||||||
@ -250,7 +250,7 @@ const WidgetsDropdown = ({
|
|||||||
<CCol sm={6} lg={3}>
|
<CCol sm={6} lg={3}>
|
||||||
<CWidgetStatsA
|
<CWidgetStatsA
|
||||||
className="mb-4"
|
className="mb-4"
|
||||||
color="primary"
|
color="warning"
|
||||||
value={<>{product}</>}
|
value={<>{product}</>}
|
||||||
title="Total SKUs"
|
title="Total SKUs"
|
||||||
/>
|
/>
|
||||||
@ -258,7 +258,7 @@ const WidgetsDropdown = ({
|
|||||||
<CCol sm={6} lg={3}>
|
<CCol sm={6} lg={3}>
|
||||||
<CWidgetStatsA
|
<CWidgetStatsA
|
||||||
className="mb-4"
|
className="mb-4"
|
||||||
color="primary"
|
color="success"
|
||||||
value={<>{category}</>}
|
value={<>{category}</>}
|
||||||
title="Total Categories"
|
title="Total Categories"
|
||||||
/>
|
/>
|
||||||
@ -266,7 +266,7 @@ const WidgetsDropdown = ({
|
|||||||
<CCol sm={6} lg={3}>
|
<CCol sm={6} lg={3}>
|
||||||
<CWidgetStatsA
|
<CWidgetStatsA
|
||||||
className="mb-4"
|
className="mb-4"
|
||||||
color="primary"
|
color="danger"
|
||||||
value={<>{Brand}</>}
|
value={<>{Brand}</>}
|
||||||
title="Total Brands"
|
title="Total Brands"
|
||||||
/>
|
/>
|
||||||
|
Loading…
Reference in New Issue
Block a user