Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| be6dab1ec9 | |||
| aae69ffd3b | |||
| 6294d7cafd | |||
| be483c9451 | |||
| 6559d00052 | |||
| 6f3ed362b7 | |||
| fe88a6d7f2 | |||
| 6adb6aed1f | |||
| 373c5427c2 | |||
| a9473debdb | |||
| e4eb445059 | |||
| 44b2e08006 |
@@ -1,4 +1,5 @@
|
||||
SKIP_PREFLIGHT_CHECK=true
|
||||
REACT_APP_PANEL_NAME="MERMS Panel DEV"
|
||||
SKIP_PREFLIGHT_CHECK=true
|
||||
REACT_APP_NODE_ENV="development"
|
||||
NODE_ENV="development"
|
||||
REACT_APP_SOCKET_URL="https://devsocket.mermsemr.com"
|
||||
|
||||
+4
-1
@@ -1,7 +1,10 @@
|
||||
SKIP_PREFLIGHT_CHECK=true
|
||||
REACT_APP_PANEL_NAME="MERMS Panel DEV"
|
||||
SKIP_PREFLIGHT_CHECK=true
|
||||
REACT_APP_NODE_ENV="development"
|
||||
NODE_ENV="development"
|
||||
REACT_APP_SOCKET_URL="https://devsocket.mermsemr.com"
|
||||
REACT_APP_MAIN_API="https://devapi.mermsemr.com"
|
||||
REACT_APP_MAIN_API_LL="http://localhost:14700"
|
||||
REACT_APP_MEDIA_SERVER="https://qa-media.mermsemr.com"
|
||||
REACT_APP_MAIN_SOCKET="https://devsocket.mermsemr.com"
|
||||
|
||||
|
||||
+2
-1
@@ -1,4 +1,5 @@
|
||||
SKIP_PREFLIGHT_CHECK=true
|
||||
REACT_APP_PANEL_NAME="MERMS Panel"
|
||||
SKIP_PREFLIGHT_CHECK=true
|
||||
REACT_APP_NODE_ENV="production"
|
||||
NODE_ENV="production"
|
||||
REACT_APP_SOCKET_URL="https://socket.mermsemr.com"
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
REACT_APP_PANEL_NAME="MERMS Panel QA"
|
||||
SKIP_PREFLIGHT_CHECK=true
|
||||
REACT_APP_NODE_ENV="development"
|
||||
NODE_ENV="development"
|
||||
|
||||
+3
-3
@@ -126,10 +126,10 @@ RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
|
||||
# add app
|
||||
COPY . ./
|
||||
|
||||
# start app
|
||||
# CMD ["npm","run", "start"]
|
||||
# start appdpvle
|
||||
#CMD ["npm","run", "start"]
|
||||
|
||||
# CMD ["yarn", "start"]
|
||||
|
||||
# start app
|
||||
CMD /bin/sh ./run.sh
|
||||
CMD /bin/sh ./run.sh
|
||||
|
||||
+25
-21
@@ -1,31 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<link rel="icon" href="%PUBLIC_URL%/favicon.ico"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<meta name="theme-color" content="#000000"/>
|
||||
<meta
|
||||
name="description"
|
||||
content="Web site created using create-react-app"
|
||||
name="description"
|
||||
content="Empowering Healthcare Decision-Making with Artificial Intelligence"
|
||||
/>
|
||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png"/>
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json"/>
|
||||
<title>MERMS-Panel</title>
|
||||
</head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Y9QSQFV003"></script>
|
||||
<script>
|
||||
</head>
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Y9QSQFV003"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-Y9QSQFV003');
|
||||
</script>
|
||||
<body class="light-sidebar">
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
<!-- <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js" integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy" crossorigin="anonymous"></script> -->
|
||||
</script>
|
||||
<body class="light-sidebar">
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
<!-- <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js" integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy" crossorigin="anonymous"></script> -->
|
||||
</html>
|
||||
|
||||
@@ -100,7 +100,7 @@ export default function CSignup() {
|
||||
<div className="col-11 col-sm-6 col-lg-5 col-xxl-4 align-self-center order-2 order-sm-1" style={{maxWidth: '520px'}}>
|
||||
<div className="mt-5 d-flex">
|
||||
<div className="bg-white register p-5">
|
||||
<h1 className="mb-2">MERMS Panel</h1>
|
||||
<h1 className="mb-2">{process.env.REACT_APP_PANEL_NAME}</h1>
|
||||
{/* <p>Welcome, Enter your password.</p> */}
|
||||
<div
|
||||
>
|
||||
|
||||
@@ -50,7 +50,7 @@ export default function Forgetpwd2() {
|
||||
<div className="col-11 col-sm-6 col-lg-5 col-xxl-4 align-self-center order-2 order-sm-1h" style={{maxWidth: '520px'}}>
|
||||
<div className="mt-5 d-flex">
|
||||
<div className="bg-white register p-5">
|
||||
<h1 className="mb-2">MERMS Panel</h1>
|
||||
<h1 className="mb-2">{process.env.REACT_APP_PANEL_NAME}</h1>
|
||||
{!mutation.isSuccess && <p>Please enter your username.</p>}
|
||||
<Formik
|
||||
initialValues={initialValues}
|
||||
|
||||
@@ -27,7 +27,7 @@ export default function Login() {
|
||||
<div className="col-span-1 lg:col-span-2 xl:col-span-2 place-content-center order-2 sm:order-1">
|
||||
<div className="w-full p-4 px-8 md:p-10 flex flex-col gap-6 items-start justify-start">
|
||||
<div className='w-full text-left'>
|
||||
<h1 className="mb-2 text-black text-4xl font-semibold">MERMS Panel</h1>
|
||||
<h1 className="mb-2 text-black text-4xl font-semibold">{process.env.REACT_APP_PANEL_NAME}</h1>
|
||||
<p className='text-black-gray text-base'>Welcome back, please login to your account.</p>
|
||||
</div>
|
||||
<form className="w-full text-14 text-left text-black-gray">
|
||||
|
||||
@@ -86,7 +86,7 @@ export default function Login() {
|
||||
<div className="col-11 col-sm-6 col-lg-5 col-xxl-4 align-self-center order-2 order-sm-1" style={{maxWidth: '520px'}}>
|
||||
<div className="mt-5 d-flex">
|
||||
<div className="bg-white register px-5 pt-5 pb-3">
|
||||
<h1 className="mb-2">MERMS Panel</h1>
|
||||
<h1 className="mb-2">{process.env.REACT_APP_PANEL_NAME}</h1>
|
||||
<p>Welcome back, please login to your account.</p>
|
||||
<form className="mt-3 mt-sm-5">
|
||||
<div className="row">
|
||||
@@ -124,10 +124,18 @@ export default function Login() {
|
||||
<button type='button' onClick={()=>{login.mutate(fields)}} className="btn btn-primary text-uppercase">{login.isPending ? 'loading...' : 'Sign In'}</button>
|
||||
</div>
|
||||
<div className="col-12 mt-3">
|
||||
<p>Don't have an account ?<Link to={siteLinks.signup}><span style={{fontWeight: 'bolder'}}>Sign Up</span></Link></p>
|
||||
<p> <Link to={siteLinks.signup}>
|
||||
{/*<span style={{fontWeight: 'bolder'}}>Sign Up</span>*/}
|
||||
<button className="btn btn-warning text-uppercase">
|
||||
Sign Up
|
||||
</button>
|
||||
</Link><span style={{paddingLeft: '5px' , fontWeight: 'bolder'}}> if you don't have an account yet.</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div className="row" style={{margin: '5px'}}>
|
||||
<hr />
|
||||
</div>
|
||||
<div className="row" style={{marginTop: '20px'}}>
|
||||
<div className="col-6">
|
||||
<div className="app-store-icons-wrap text-center">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import React, {useEffect, useState} from 'react'
|
||||
import LoginImg from '../../assets/bg/login.svg'
|
||||
import MainLoader from '../loaders/MainLoader'
|
||||
import { Link, useNavigate } from 'react-router-dom'
|
||||
import {Link, useNavigate} from 'react-router-dom'
|
||||
import siteLinks from '../../links/siteLinks'
|
||||
import Label from '../Label'
|
||||
import TextInput from '../inputs/TextInput'
|
||||
@@ -9,89 +9,98 @@ import TextInput from '../inputs/TextInput'
|
||||
|
||||
export default function Signup() {
|
||||
|
||||
const [loading, setLoading] = useState(true)
|
||||
const [loading, setLoading] = useState(true)
|
||||
|
||||
const navigate = useNavigate()
|
||||
const navigate = useNavigate()
|
||||
|
||||
useEffect(()=>{
|
||||
const timer = setTimeout(()=>{
|
||||
setLoading(false)
|
||||
},1000)
|
||||
useEffect(() => {
|
||||
const timer = setTimeout(() => {
|
||||
setLoading(false)
|
||||
}, 1000)
|
||||
|
||||
return () => clearTimeout(timer)
|
||||
},[])
|
||||
return () => clearTimeout(timer)
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div className="h-screen bg-white w-full flex justify-center items-center">
|
||||
<div className="h-full w-full bg-white grid sm:grid-cols-2 lg:grid-cols-5 xl:grid-cols-8">
|
||||
<div className="col-span-1 lg:col-span-2 xl:col-span-2 place-content-center order-2 sm:order-1">
|
||||
<div className="w-full p-4 px-8 md:p-10 flex flex-col gap-6 items-start justify-start">
|
||||
<div className='w-full text-left'>
|
||||
<h1 className="mb-2 text-black text-4xl font-semibold">MERMS Panel</h1>
|
||||
<p className='text-black-gray text-base'>Welcome, Please create your account.</p>
|
||||
</div>
|
||||
<form className="w-full text-14 text-left text-black-gray">
|
||||
<div className="w-full flex flex-col gap-4 justify-start items-start">
|
||||
<div className='w-full grid grid-cols-2 gap-8'>
|
||||
<div className="w-full">
|
||||
<div className="w-full flex flex-col gap-2">
|
||||
<Label desc='First Name*' />
|
||||
<TextInput type='text' placeholder='Firstname' />
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full">
|
||||
<div className="w-full flex flex-col gap-2">
|
||||
<Label desc='Last Name*' />
|
||||
<TextInput type='text' placeholder='Lastname' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full">
|
||||
<div className="w-full flex flex-col gap-2">
|
||||
<Label desc='Email*' />
|
||||
<TextInput type='text' placeholder='Email' />
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full">
|
||||
<div className="w-full flex flex-col gap-2">
|
||||
<Label desc='User Name*' />
|
||||
<TextInput type='text' placeholder='Username' />
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full">
|
||||
<div className="w-full flex flex-col gap-2">
|
||||
<Label desc='Password*' />
|
||||
<TextInput type='password' placeholder='Password' />
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full text-left">
|
||||
<div className="flex justify-between items-center">
|
||||
<div className="flex gap-2">
|
||||
<input className="form-check-input" type="checkbox" id="gridCheck" />
|
||||
<label className="font-semibold form-check-label" htmlFor="gridCheck">
|
||||
I accept terms & policy
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full mt-3">
|
||||
<button onClick={()=>{navigate(siteLinks.home)}} className="bg-primary rounded-sm px-4 py-2 text-white font-medium uppercase">Sign Up</button>
|
||||
</div>
|
||||
<div className="mt-3">
|
||||
<p className='font-medium'>Already have an account ?<Link to={siteLinks.login} className=' hover:text-primary'> Sign In</Link></p>
|
||||
</div>
|
||||
return (
|
||||
<div className="h-screen bg-white w-full flex justify-center items-center">
|
||||
<div className="h-full w-full bg-white grid sm:grid-cols-2 lg:grid-cols-5 xl:grid-cols-8">
|
||||
<div className="col-span-1 lg:col-span-2 xl:col-span-2 place-content-center order-2 sm:order-1">
|
||||
<div className="w-full p-4 px-8 md:p-10 flex flex-col gap-6 items-start justify-start">
|
||||
<div className='w-full text-left'>
|
||||
<h1 className="mb-2 text-black text-4xl font-semibold">{process.env.REACT_APP_PANEL_NAME}</h1>
|
||||
<p className='text-black-gray text-base'>Welcome, Please create your account.</p>
|
||||
</div>
|
||||
</form>
|
||||
<form className="w-full text-14 text-left text-black-gray">
|
||||
<div className="w-full flex flex-col gap-4 justify-start items-start">
|
||||
<div className='w-full grid grid-cols-2 gap-8'>
|
||||
<div className="w-full">
|
||||
<div className="w-full flex flex-col gap-2">
|
||||
<Label desc='First Name*'/>
|
||||
<TextInput type='text' placeholder='Firstname'/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full">
|
||||
<div className="w-full flex flex-col gap-2">
|
||||
<Label desc='Last Name*'/>
|
||||
<TextInput type='text' placeholder='Lastname'/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full">
|
||||
<div className="w-full flex flex-col gap-2">
|
||||
<Label desc='Email*'/>
|
||||
<TextInput type='text' placeholder='Email'/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full">
|
||||
<div className="w-full flex flex-col gap-2">
|
||||
<Label desc='User Name*'/>
|
||||
<TextInput type='text' placeholder='Username'/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full">
|
||||
<div className="w-full flex flex-col gap-2">
|
||||
<Label desc='Password*'/>
|
||||
<TextInput type='password' placeholder='Password'/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full text-left">
|
||||
<div className="flex justify-between items-center">
|
||||
<div className="flex gap-2">
|
||||
<input className="form-check-input" type="checkbox" id="gridCheck"/>
|
||||
<label className="font-semibold form-check-label" htmlFor="gridCheck">
|
||||
I accept terms & policy of use.
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full mt-3">
|
||||
<button onClick={() => {
|
||||
navigate(siteLinks.home)
|
||||
}} className="bg-primary rounded-sm px-4 py-2 text-white font-medium uppercase">Sign
|
||||
Up
|
||||
</button>
|
||||
</div>
|
||||
<div className="mt-3">
|
||||
<p className='font-medium'>Already have an account ?
|
||||
<Link to={siteLinks.login}
|
||||
className='hover:text-primary font-bold'> Sign In
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="bg-login_gradient h-full col-span-1 lg:col-span-3 xl:col-span-6 place-content-center order-1 sm:order-2">
|
||||
<div className="w-full">
|
||||
<div className="w-2/3 mx-auto">
|
||||
<img className="w-[80%]" src={LoginImg} alt="" />
|
||||
<div
|
||||
className="bg-login_gradient h-full col-span-1 lg:col-span-3 xl:col-span-6 place-content-center order-1 sm:order-2">
|
||||
<div className="w-full">
|
||||
<div className="w-2/3 mx-auto">
|
||||
<img className="w-[80%]" src={LoginImg} alt=""/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ export default function Signup2() {
|
||||
<div className="col-11 col-sm-6 col-lg-5 col-xxl-4 align-self-center order-2 order-sm-1" style={{maxWidth: '520px'}}>
|
||||
<div className="mt-5 d-flex">
|
||||
<div className="bg-white register p-5">
|
||||
<h1 className="mb-2">MERMS Panel</h1>
|
||||
<h1 className="mb-2">{process.env.REACT_APP_PANEL_NAME}</h1>
|
||||
<p>Welcome, Please create your account.</p>
|
||||
<Formik
|
||||
initialValues={initialValues}
|
||||
|
||||
@@ -47,7 +47,7 @@ export default function Contacts() {
|
||||
if (id == "0") {
|
||||
filteredConData = contactsData;
|
||||
} else {
|
||||
filteredConData = contactsData.filter((item) => item.category == `A00000${id}`);
|
||||
filteredConData = contactsData.filter((item) => item.category == id);
|
||||
}
|
||||
setFiltererdContactData(filteredConData);
|
||||
changeActiveUID(filteredConData[0]?.uid);
|
||||
@@ -87,7 +87,7 @@ export default function Contacts() {
|
||||
<div className="col-12">
|
||||
<div
|
||||
className="card card-statistics mail-contant"
|
||||
style={{ minHeight: "550px", borderRadius: "10px" }}
|
||||
style={{ minHeight: "200px", borderRadius: "10px" }}
|
||||
>
|
||||
<div className="card-body p-0">
|
||||
<div className="row no-gutters">
|
||||
@@ -197,20 +197,20 @@ export default function Contacts() {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-md-8 col-xxl-4 border-md-t">
|
||||
<div className="mail-content border-right border-n h-100">
|
||||
<div className="mail-search border-bottom">
|
||||
<div className={`${filteredContactData.length > 0 ? 'col-md-8 col-xxl-4' : 'col-md-8 col-xxl-10'} border-md-t`}>
|
||||
<div className="mail-content border-right border-n h-100" style={{placeContent: 'center'}}>
|
||||
{/* <div className="mail-search border-bottom">
|
||||
<div className="row align-items-center mx-0">
|
||||
<div className="col-12">
|
||||
{/*<div className="form-group pt-3">*/}
|
||||
{/* <input type="text" className="form-control" id="search" placeholder="Search.." />*/}
|
||||
{/* <i className="fa fa-search"></i>*/}
|
||||
{/*</div>*/}
|
||||
<div className="form-group pt-3">
|
||||
<input type="text" className="form-control" id="search" placeholder="Search.." />
|
||||
<i className="fa fa-search"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> */}
|
||||
<div className="mail-msg scrollbar scroll_dark">
|
||||
{contactsData &&
|
||||
{ filteredContactData.length ?
|
||||
filteredContactData?.map((contact, index) => {
|
||||
const isActive =
|
||||
contact?.uid == activeContactUID ||
|
||||
@@ -282,16 +282,20 @@ export default function Contacts() {
|
||||
</a>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
})
|
||||
:
|
||||
<p className="text-center">Messages will appear here as soon as they are available for selection</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{filteredContactData.length > 0 &&
|
||||
<div className="col-xxl-6 border-t border-xxl-t">
|
||||
<div className="mail-chat py-5 px-5">
|
||||
<div className="media align-items-center">
|
||||
<div className="bg-img mr-3">
|
||||
<img
|
||||
src={activeContactUID ? getImage("avtar/" + activeDetail[0].category + ".png") : contactsData ? getImage("avtar/" + contactsData[0]?.category + ".png") : getImage("avtar/01.jpg")}
|
||||
src={activeContactUID ? getImage("avtar/" + activeDetail[0].category + ".png") : getImage(filteredContactData[0] == undefined ? "avtar/01.jpg": "avtar/" + filteredContactData[0].category + ".png")}
|
||||
className="img-fluid"
|
||||
alt="user"
|
||||
/>
|
||||
@@ -333,6 +337,7 @@ export default function Contacts() {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
import React from 'react'
|
||||
import { getDashPayments } from '../../services/services'
|
||||
import { useQuery } from '@tanstack/react-query'
|
||||
import queryKeys from '../../services/queryKeys'
|
||||
import getImage from '../../utils/getImage'
|
||||
|
||||
export default function DashPayments() {
|
||||
|
||||
|
||||
const {data, isFetching, isError, error} = useQuery({
|
||||
queryKey: queryKeys.dash_payments,
|
||||
queryFn: () => {
|
||||
let reqData = {
|
||||
token: localStorage.getItem('token'), // USER TOKEN
|
||||
uid: localStorage.getItem('uid') // USER UID
|
||||
}
|
||||
return getDashPayments(reqData)
|
||||
}
|
||||
})
|
||||
|
||||
const payments = data?.data
|
||||
// console.log('data', payments)
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="col-xxl-4 m-b-30" style={{minHeight: '300px'}}>
|
||||
<div className="card card-statistics h-100 mb-0 panel_round_c3">
|
||||
<div className="card-header d-flex justify-content-between">
|
||||
<div className="card-heading">
|
||||
<h4 className="card-title">Payments</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div className="card-body scrollbar scroll_dark pt-0" style={{maxHeight: '350px'}}>
|
||||
<div className="datatable-wrapper table-responsive">
|
||||
{isFetching ?
|
||||
<>
|
||||
<div className="col-12">
|
||||
<div className="p-4">
|
||||
<p className='text-mute'>Loading...</p>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
: isError ?
|
||||
<div className="col-12">
|
||||
<div className="p-4">
|
||||
<p className='text-danger'>{error.message}</p>
|
||||
</div>
|
||||
</div>
|
||||
:
|
||||
<table id="datatable" className="table table-borderless table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
{/* <th style={{width: '30px'}}>#</th> */}
|
||||
<th>Date</th>
|
||||
|
||||
<th style={{width: '130px'}}>Subscription</th>
|
||||
<th style={{width: '80px'}}>Amount</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{payments.length > 0 ?
|
||||
payments.map((item, index) => {
|
||||
return (
|
||||
<tr key={index}>
|
||||
<td>{Number(item?.id).toString().padStart(6,'0')}</td>
|
||||
<td>
|
||||
<a className="mr-3" href={externalUrl} target='_blank'><b>{externalUrl}</b></a> - {item?.description}
|
||||
</td>
|
||||
|
||||
<td><span className={`badge ${statusColor}`}>{statusText}</span></td>
|
||||
<td>
|
||||
<a className="mr-3" href={productUrl}>
|
||||
<img src={getImage('arrow-next.png')} alt='next' />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
)
|
||||
})
|
||||
:
|
||||
<td colSpan={3} className='text-center'>No record found</td>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import Products from "./Products";
|
||||
import TopBar from "./TopBar";
|
||||
import ProductsURL from "./ProductsURL";
|
||||
import { SocketContextValues } from "../context/SocketIOContext";
|
||||
import DashPayments from "./DashPayments";
|
||||
|
||||
export default function HomeSections(){
|
||||
|
||||
@@ -52,41 +53,7 @@ export default function HomeSections(){
|
||||
<div className="row">
|
||||
<ProductsURL />
|
||||
|
||||
<div className="col-xxl-4 m-b-30" style={{minHeight: '300px'}}>
|
||||
<div className="card card-statistics h-100 mb-0 panel_round_c3">
|
||||
<div className="card-header d-flex justify-content-between">
|
||||
<div className="card-heading">
|
||||
<h4 className="card-title">Payments</h4>
|
||||
</div>
|
||||
{/*<div className="dropdown">*/}
|
||||
{/* <a className="p-2" href="#!" data-toggle="dropdown" aria-haspopup="true"*/}
|
||||
{/* aria-expanded="false">*/}
|
||||
{/* <i className="fe fe-circle"></i>*/}
|
||||
{/* </a>*/}
|
||||
{/* <div className="dropdown-menu custom-dropdown dropdown-menu-right p-4">*/}
|
||||
{/* <h6 className="mb-1">Action</h6>*/}
|
||||
{/* <a className="dropdown-item" href="#!"><i className="fa-fw fa fa-file-o pr-2"></i>View*/}
|
||||
{/* reports</a>*/}
|
||||
{/* <a className="dropdown-item" href="#!"><i className="fa-fw fa fa-edit pr-2"></i>Edit reports</a>*/}
|
||||
{/* <a className="dropdown-item" href="#!"><i className="fa-fw fa fa-bar-chart-o pr-2"></i>Statistics</a>*/}
|
||||
{/* <h6 className="mb-1 mt-3">Export</h6>*/}
|
||||
{/* <a className="dropdown-item" href="#!"><i className="fa-fw fa fa-file-pdf-o pr-2"></i>Export*/}
|
||||
{/* to PDF</a>*/}
|
||||
{/* <a className="dropdown-item" href="#!"><i className="fa-fw fa fa-file-excel-o pr-2"></i>Export*/}
|
||||
{/* to CSV</a>*/}
|
||||
{/* </div>*/}
|
||||
{/*</div>*/}
|
||||
</div>
|
||||
<div className="card-body">
|
||||
{/*<h5>We only started collecting data from February 2019 </h5>*/}
|
||||
{/*<p>Questions about the Net Earnings number? <a*/}
|
||||
{/* className="btn btn-square btn-inverse-success btn-xs ml-1" href="#">Click here</a></p>*/}
|
||||
<div className="row mt-4">
|
||||
.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<DashPayments />
|
||||
</div>
|
||||
</>;
|
||||
|
||||
|
||||
@@ -64,28 +64,30 @@ export default function TopBar() {
|
||||
}
|
||||
|
||||
return (
|
||||
<div key={item.id + index} className="col-sm-6 col-xxl-3">
|
||||
<div className={`card card-statistics ecommerce-contant overflow-h ${item?.extra_style} `} style={{borderRadius: '10px'}}>
|
||||
<div className="card-body p-0">
|
||||
<div className="d-flex m-b-0 ecommerce-contant-text h-100">
|
||||
<div className="w-100">
|
||||
<div className="row p-3">
|
||||
<div className="col">
|
||||
<h3 className="mb-0">{item?.value || 0}</h3>
|
||||
<small className="d-block">{item?.extra_style ? dataSpan : item?.data_span}</small>
|
||||
<div key={item.id + index} className="col-sm-6 col-xxl-3">
|
||||
<Link to={item?.link}>
|
||||
<div className={`card card-statistics ecommerce-contant overflow-h ${item?.extra_style} `} style={{borderRadius: '10px'}}>
|
||||
<div className="card-body p-0">
|
||||
<div className="d-flex m-b-0 ecommerce-contant-text h-100">
|
||||
<div className="w-100">
|
||||
<div className="row p-3">
|
||||
<div className="col">
|
||||
<h3 className="mb-0">{item?.value || 0}</h3>
|
||||
<small className="d-block">{item?.extra_style ? dataSpan : item?.data_span}</small>
|
||||
</div>
|
||||
<div className="col text-right">
|
||||
<h5 className="text-muted mb-0">{item?.description}</h5>
|
||||
</div>
|
||||
</div>
|
||||
<div className="apexchart-wrapper">
|
||||
<div id="ecommercedemo3" className="chart-fit"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col text-right">
|
||||
<h5 className="text-muted mb-0"><Link to={item?.link}>{item?.description}</Link></h5>
|
||||
</div>
|
||||
</div>
|
||||
<div className="apexchart-wrapper">
|
||||
<div id="ecommercedemo3" className="chart-fit"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
</>
|
||||
|
||||
@@ -31,7 +31,7 @@ export default function UserMenu() {
|
||||
<li className={`${pathname == siteLinks.dash ? 'active' : ''}`}><Link to={siteLinks.dash}>Home</Link></li>
|
||||
<li className={`${pathname == siteLinks.calendar ? 'active' : ''}`}><Link to={siteLinks.calendar}>Calendar</Link></li>
|
||||
<li className={`${pathname == siteLinks.contacts ? 'active' : ''}`}><Link to={siteLinks.contacts}>Sites Contacts</Link></li>
|
||||
<li className={`${pathname == siteLinks.comments ? 'active' : ''}`}><Link to={siteLinks.comments}>Sites Comments</Link></li>
|
||||
<li className={`${pathname == siteLinks.comments ? 'active' : ''}`}><Link to={siteLinks.comments}>Comments</Link></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li className={`${pathname == siteLinks.reports ? 'active' : ''}`}>
|
||||
|
||||
@@ -46,7 +46,9 @@ export default function ProductActive({productData}){
|
||||
<div className="card card-statistics">
|
||||
<div className="card-header">
|
||||
<div className="card-heading d-flex justify-content-between">
|
||||
<h4 className="card-title">{externalUrl}</h4>
|
||||
{/*<h4 className="card-title">{externalUrl}</h4>*/}
|
||||
<h4 style={{color: '#148399', fontWeight: 'bolder'}}>
|
||||
<a href={externalUrl} target='_blank'>{externalUrl}</a></h4>
|
||||
<button type="button" onClick={()=>iframe.current.src += ''} className="btn">
|
||||
<img src={getImage('refresh.png')} style={{width: '30px', height: 'auto'}} alt='refresh page' />
|
||||
</button>
|
||||
|
||||
@@ -31,6 +31,8 @@ const Settings = memo(({productData}) => {
|
||||
const footerFields ={
|
||||
footer_description: { name: 'Footer Description', controls: 'TEXTAREA', active: true },
|
||||
boolean_footer_show_email: { name: 'Show email in footer', controls: 'SELECT_NO_YES', active: true },
|
||||
boolean_footer_show_made_by: { name: 'Show made by in footer', controls: 'SELECT_NO_YES', active: true },
|
||||
boolean_footer_show_socials: { name: 'Show social in footer', controls: 'SELECT_NO_YES', active: true },
|
||||
}
|
||||
|
||||
const aboutFields ={
|
||||
|
||||
@@ -3,11 +3,11 @@ import BreadcrumbComBS from "../breadcrumb/BreadcrumbComBS";
|
||||
import getImage from "../../utils/getImage";
|
||||
|
||||
|
||||
export default function Settings(){
|
||||
export default function Settings() {
|
||||
const avtarImage = "avtar/merms-user.png";
|
||||
return(
|
||||
return (
|
||||
<>
|
||||
<BreadcrumbComBS title='Settings' paths={['Dashboard', 'Settings']} />
|
||||
<BreadcrumbComBS title='Settings' paths={['Dashboard', 'Settings']}/>
|
||||
{/*<div className="row">*/}
|
||||
{/* <div className="vh-100 col-12 flex align-items-center">Coming Soon</div>*/}
|
||||
{/*</div>*/}
|
||||
@@ -16,7 +16,7 @@ export default function Settings(){
|
||||
<div className="row account-contant">
|
||||
<div className="col-12">
|
||||
<div className="card card-statistics">
|
||||
<div className="card-body p-0" style={{backgroundColor:"#f9f9fb"}}>
|
||||
<div className="card-body p-0" style={{backgroundColor: "#f9f9fb"}}>
|
||||
<div className="row no-gutters">
|
||||
<div className="col-xl-3 pb-xl-0 pb-5 border-right">
|
||||
<div className="page-account-profil pt-5">
|
||||
@@ -30,11 +30,13 @@ export default function Settings(){
|
||||
</div>
|
||||
<div className="profile pt-4">
|
||||
<h4 className="mb-1">Alice Williams</h4>
|
||||
<div style={{padding: '10px'}}><hr /></div>
|
||||
<div style={{padding: '10px'}}>
|
||||
<hr/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="profile-btn text-center">
|
||||
<div>
|
||||
<button className="btn btn-light text-primary mb-2">Upload New Avatar
|
||||
@@ -57,17 +59,17 @@ export default function Settings(){
|
||||
<div className="form-group col-md-12">
|
||||
<label htmlFor="name1">First Name</label>
|
||||
<input type="text" className="form-control" id="name1"
|
||||
value="Alice" />
|
||||
value="Alice"/>
|
||||
</div>
|
||||
<div className="form-group col-md-12">
|
||||
<label htmlFor="name1">Last Name</label>
|
||||
<input type="text" className="form-control" id="name1"
|
||||
value="Williams" />
|
||||
value="Williams"/>
|
||||
</div>
|
||||
<div className="form-group col-md-12">
|
||||
<label htmlFor="name1">Account Name</label>
|
||||
<input type="text" className="form-control" id="name1"
|
||||
value="This is the best hospital name" />
|
||||
value="This is the best hospital name"/>
|
||||
</div>
|
||||
{/*<div className="form-group col-md-12">*/}
|
||||
{/* <label htmlFor="title1">Email</label>*/}
|
||||
@@ -77,23 +79,23 @@ export default function Settings(){
|
||||
<div className="form-group col-md-12">
|
||||
<label htmlFor="phone1">Phone Number</label>
|
||||
<input type="text" className="form-control" id="phone1"
|
||||
value="(01) 97 563 15613" />
|
||||
value="(01) 97 563 15613"/>
|
||||
</div>
|
||||
<div className="form-group col-md-12">
|
||||
<label htmlFor="email1">Email</label>
|
||||
<input type="email" className="form-control" id="email1"
|
||||
value="alicewilliams@gmail.com" />
|
||||
value="alicewilliams@gmail.com"/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
<label htmlFor="add1">Address</label>
|
||||
<input type="text" className="form-control" id="add1"
|
||||
value="17504 Carlton Cuevas Rd, Gulfport, MS, 39503" />
|
||||
value="17504 Carlton Cuevas Rd, Gulfport, MS, 39503"/>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
<label htmlFor="add2">Address 2</label>
|
||||
<input type="text" className="form-control" id="add2"
|
||||
value="1234 North Avenue Luke Lane, South Bend, IN 360001" />
|
||||
value="1234 North Avenue Luke Lane, South Bend, IN 360001"/>
|
||||
</div>
|
||||
|
||||
{/*<div className="form-row">*/}
|
||||
@@ -132,7 +134,7 @@ export default function Settings(){
|
||||
{/* </label>*/}
|
||||
{/* </div>*/}
|
||||
{/*</div>*/}
|
||||
<div style={{textAlign:"right"}}>
|
||||
<div style={{textAlign: "right"}}>
|
||||
<button type="submit" className="btn btn-primary">Update Profile
|
||||
</button>
|
||||
</div>
|
||||
@@ -151,39 +153,40 @@ export default function Settings(){
|
||||
<div className="form-group">
|
||||
<label htmlFor="fb">Facebook URL:</label>
|
||||
<input type="text" className="form-control" id="fb"
|
||||
value="https://www.facebook.com/" />
|
||||
value="https://www.facebook.com/"/>
|
||||
</div>
|
||||
<div className="form-group">
|
||||
<label htmlFor="tr">Twitter URL:</label>
|
||||
<input type="text" className="form-control" id="tr"
|
||||
value="https://twitter.com/" />
|
||||
value="https://twitter.com/"/>
|
||||
</div>
|
||||
|
||||
<div className="form-group">
|
||||
<label htmlFor="br">Blogger URL:</label>
|
||||
<input type="text" className="form-control" id="br"
|
||||
value="https://www.blogger.com" />
|
||||
value="https://www.blogger.com"/>
|
||||
</div>
|
||||
|
||||
<div className="form-group">
|
||||
<label htmlFor="go">Google+ URL:</label>
|
||||
<input type="text" className="form-control" id="go"
|
||||
value="https://plus.google.com/discover" />
|
||||
value="https://plus.google.com/discover"/>
|
||||
</div>
|
||||
|
||||
<div className="form-group">
|
||||
<label htmlFor="li">LinkedIn URL:</label>
|
||||
<input type="text" className="form-control" id="li"
|
||||
value="https://in.linkedin.com/" />
|
||||
value="https://in.linkedin.com/"/>
|
||||
</div>
|
||||
|
||||
<div className="form-group">
|
||||
<label htmlFor="we">Website URL:</label>
|
||||
<input type="text" className="form-control" id="we"
|
||||
value="https://yourwebsite.com" />
|
||||
value="https://yourwebsite.com"/>
|
||||
</div>
|
||||
<div style={{textAlign:"right"}}>
|
||||
<button type="submit" className="btn btn-primary">Update Links</button>
|
||||
<div style={{textAlign: "right"}}>
|
||||
<button type="submit" className="btn btn-primary">Update Links
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
const queryKeys = {
|
||||
user_details: ['user_details'],
|
||||
product_url: ['product_url'],
|
||||
dash_payments: ['dash_payments'],
|
||||
products: ['product-data'],
|
||||
myproduct_provision: ['myproduct_provision'],
|
||||
product_page: ['product_page'],
|
||||
|
||||
@@ -114,6 +114,14 @@ export const productsURL = (reqData) => {
|
||||
return postAuxEnd(`/panel/account/products/url`, postData, false)
|
||||
}
|
||||
|
||||
// FUNCTION TO GET DASHBOARD PRODUCT URL DATA SECTION
|
||||
export const getDashPayments = (reqData) => {
|
||||
let postData = {
|
||||
...reqData,
|
||||
}
|
||||
return postAuxEnd(`/panel/account/payments`, postData, false)
|
||||
}
|
||||
|
||||
// FUNCTION TO GET DASHBOARD PRODUCT DATA SECTION
|
||||
export const productsData = (reqData) => {
|
||||
let postData = {
|
||||
|
||||
Reference in New Issue
Block a user