Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 20c224b625 | |||
| 54a0361620 | |||
| a9721991de | |||
| e15e9f271c | |||
| c9ad818370 | |||
| 466d10c0fc | |||
| 7a7149de0c |
@@ -9,6 +9,7 @@ const RouteLinks = {
|
|||||||
recentSignup: '/recent-signup',
|
recentSignup: '/recent-signup',
|
||||||
loansPage: '/loans',
|
loansPage: '/loans',
|
||||||
transactionsPage: '/transactions',
|
transactionsPage: '/transactions',
|
||||||
|
countrySettings: '/country',
|
||||||
products: '/products',
|
products: '/products',
|
||||||
usersAdmin: '/users-admin',
|
usersAdmin: '/users-admin',
|
||||||
productTemplates: '/products-template',
|
productTemplates: '/products-template',
|
||||||
|
|||||||
+3
-1
@@ -20,7 +20,8 @@ import TransactionDetailsPage from './pages/TransactionDetailsPage'
|
|||||||
import AccountDetailsPage from "./pages/AccountDetailsPage";
|
import AccountDetailsPage from "./pages/AccountDetailsPage";
|
||||||
import ProductTemplatePage from "./pages/ProductTemplatePage";
|
import ProductTemplatePage from "./pages/ProductTemplatePage";
|
||||||
import CustomTemplatePage from "./pages/CustomTemplatePage";
|
import CustomTemplatePage from "./pages/CustomTemplatePage";
|
||||||
import SubscriptionDetailsPage from "./pages/SubscriptionDetailsPage"; // TRANSACTION DETAILS PAGE
|
import SubscriptionDetailsPage from "./pages/SubscriptionDetailsPage";
|
||||||
|
import CountrySettingsPage from "./pages/CountrySettingsPage"; // TRANSACTION DETAILS PAGE
|
||||||
|
|
||||||
|
|
||||||
// const Home = lazy(() => import('./pages/Home'));
|
// const Home = lazy(() => import('./pages/Home'));
|
||||||
@@ -40,6 +41,7 @@ export default function SiteRoutes() {
|
|||||||
<Route path={RouteLinks.products} element={<ProductsPage/>}/> {`*/PRODUCTS PAGE*/`}
|
<Route path={RouteLinks.products} element={<ProductsPage/>}/> {`*/PRODUCTS PAGE*/`}
|
||||||
<Route path={RouteLinks.usersAdmin} element={<UsersAdminPage/>}/> {`*/ADMIN USERS PAGE*/`}
|
<Route path={RouteLinks.usersAdmin} element={<UsersAdminPage/>}/> {`*/ADMIN USERS PAGE*/`}
|
||||||
|
|
||||||
|
<Route path={RouteLinks.countrySettings} element={<CountrySettingsPage/>}/> {`*/PRODUCTS TEMPLATE PAGE*/`}
|
||||||
<Route path={RouteLinks.productTemplates} element={<ProductTemplatePage/>}/> {`*/PRODUCTS TEMPLATE PAGE*/`}
|
<Route path={RouteLinks.productTemplates} element={<ProductTemplatePage/>}/> {`*/PRODUCTS TEMPLATE PAGE*/`}
|
||||||
<Route path={RouteLinks.customTemplates} element={<CustomTemplatePage/>}/> {`*/CUSTOM TEMPLATES PAGE*/`}
|
<Route path={RouteLinks.customTemplates} element={<CustomTemplatePage/>}/> {`*/CUSTOM TEMPLATES PAGE*/`}
|
||||||
|
|
||||||
|
|||||||
@@ -19,13 +19,13 @@ export default function CustomerSubscriptionsView({subscriptions}) {
|
|||||||
#
|
#
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" className="px-2">
|
<th scope="col" className="px-2">
|
||||||
Added
|
Added/Updated
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" className="px-2">
|
<th scope="col" className="px-2">
|
||||||
Product
|
Product/Server
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" className="px-2">
|
<th scope="col" className="px-2">
|
||||||
URL / Templates
|
URL / EXT/ Templates
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" className="px-2">
|
<th scope="col" className="px-2">
|
||||||
Status
|
Status
|
||||||
@@ -40,24 +40,45 @@ export default function CustomerSubscriptionsView({subscriptions}) {
|
|||||||
<tr key={index} className="py-2 border-t border-dashed border-slate-300">
|
<tr key={index} className="py-2 border-t border-dashed border-slate-300">
|
||||||
<td className="px-2 py-2">
|
<td className="px-2 py-2">
|
||||||
<div className="text-left">
|
<div className="text-left">
|
||||||
<div className="text-base font-semibold">{index+1}</div>
|
<div className="text-base font-semibold">{index + 1}</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td className="px-2">
|
<td className="px-2">
|
||||||
<div className="text-left">
|
<div className="text-left">
|
||||||
<div className="text-base font-semibold">{getDateTimeFromDateString(item?.added)}</div>
|
<div
|
||||||
|
className="text-base font-semibold">{getDateTimeFromDateString(item?.added)}</div>
|
||||||
|
<div
|
||||||
|
className="text-base font-semibold">{getDateTimeFromDateString(item?.updated)}</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td className="px-2">
|
<td className="px-2">
|
||||||
<div className="text-left">
|
<div className="text-left">
|
||||||
<div className="text-base font-semibold">{item?.product_id}</div>
|
<div className="text-base font-semibold">{item?.product_id}</div>
|
||||||
|
<div><a href={`http://${item?.primary_server}:${item?.provision_port}`}
|
||||||
|
target='_blank'
|
||||||
|
rel="noreferrer">{item?.primary_server}:{item?.provision_port}</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td className="px-2">
|
<td className="px-2">
|
||||||
<div className="text-left">
|
<div className="text-left">
|
||||||
<div className="text-base font-semibold">{item?.internal_url}
|
<div className="text-base">
|
||||||
<br /><span>Template :</span> {item?.product_template}
|
<span className="badge badge-pill badge-primary-inverse">
|
||||||
<br /><span>Custom :</span> {item?.custom_template}
|
<a href={`https://${item?.internal_url}`}
|
||||||
|
target='_blank'
|
||||||
|
rel="noreferrer">{item?.internal_url}</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<span className="badge badge-warning">
|
||||||
|
<a href={`https://${item?.external_url}`}
|
||||||
|
target='_blank'
|
||||||
|
rel="noreferrer">{item?.external_url}</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
<span>Template :</span> {item?.product_template}
|
||||||
|
<br/><span>Custom :</span> {item?.custom_template}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
@@ -70,7 +91,10 @@ export default function CustomerSubscriptionsView({subscriptions}) {
|
|||||||
<div className='flex items-center justify-end gap-3 md:gap-4'>
|
<div className='flex items-center justify-end gap-3 md:gap-4'>
|
||||||
<div
|
<div
|
||||||
className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
|
className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
|
||||||
<Link to={`/subscription-view/${item?.subscription_uid}`} state={{customerID: item?.id, subscriptionUID: item?.subscription_uid}}>
|
<Link to={`/subscription-view/${item?.subscription_uid}`} state={{
|
||||||
|
customerID: item?.id,
|
||||||
|
subscriptionUID: item?.subscription_uid
|
||||||
|
}}>
|
||||||
<Icons name='eye'/>
|
<Icons name='eye'/>
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,189 @@
|
|||||||
|
import { useState } from "react";
|
||||||
|
import { useQuery } from '@tanstack/react-query'
|
||||||
|
import queryKeys from '../../services/queryKeys'
|
||||||
|
import BreadcrumbCom from "../breadcrumb/BreadcrumbCom";
|
||||||
|
import { getCountry } from "../../services/siteServices";
|
||||||
|
import TablePaginatedWrapper from "../tableWrapper/TablePaginatedWrapper";
|
||||||
|
|
||||||
|
export default function CountrySettings(){
|
||||||
|
|
||||||
|
const [page, setPage] = useState(1)
|
||||||
|
const [filter, setFilter] = useState({type: '', id: ''})
|
||||||
|
const [willFilter, setWillFilter] = useState(false)
|
||||||
|
|
||||||
|
const handleFilter = ({target:{name, value}}) => {
|
||||||
|
setFilter(prev => ({...prev, [name]:value}))
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleFilterByParams = () => {
|
||||||
|
if(filter.type && !filter.id){
|
||||||
|
return
|
||||||
|
}else if(!filter.type){
|
||||||
|
setPage(1)
|
||||||
|
setWillFilter(prev => !prev)
|
||||||
|
setFilter({type: '', id: ''})
|
||||||
|
}else{
|
||||||
|
setPage(1)
|
||||||
|
setWillFilter(prev => !prev)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const {data, isFetching, isError, error} = useQuery({
|
||||||
|
// queryKey: [...queryKeys.country_list, page, willFilter],
|
||||||
|
queryKey: queryKeys.country_list,
|
||||||
|
queryFn: () => {
|
||||||
|
// const filterData = filter?.type ? {[filter?.type]: filter.id} : {}
|
||||||
|
const reqData = {
|
||||||
|
// page,
|
||||||
|
// ...filterData
|
||||||
|
}
|
||||||
|
return getCountry(reqData)
|
||||||
|
},
|
||||||
|
staleTime: 0 //0 mins
|
||||||
|
})
|
||||||
|
const countryData = data?.data?.templates // PRODUCTS TEMPLATE LIST
|
||||||
|
const pagination = data?.data?.pagination
|
||||||
|
console.log('DATA', data?.data)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className='w-full flex flex-col gap-8'>
|
||||||
|
<BreadcrumbCom title='Country Settings' paths={['Dashboard', 'Country']} />
|
||||||
|
|
||||||
|
<div className='box bg-white dark:bg-black-box text-black-body dark:text-white-body'>
|
||||||
|
|
||||||
|
<>
|
||||||
|
{/* <table className="py-2 w-full text-sm">
|
||||||
|
<thead className="py-2 text-sm text-slate-500 text-left">
|
||||||
|
<tr>
|
||||||
|
<th scope="col" className="px-2 py-2">
|
||||||
|
Code
|
||||||
|
</th>
|
||||||
|
<th scope="col" className="px-8">
|
||||||
|
Country
|
||||||
|
</th>
|
||||||
|
<th scope="col" className="px-2 text-right">
|
||||||
|
Status
|
||||||
|
</th>
|
||||||
|
<th scope="col" className="px-2 text-right">
|
||||||
|
Signup
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr className="py-2 border-t border-dashed border-slate-300">
|
||||||
|
<td className="px-2 py-2">
|
||||||
|
<div className='w-full min-w-48 flex items-center gap-2 whitespace-nowrap'>
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">US</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td className="px-8">
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">United States</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td className="px-8">
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">[chkbox]</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td className="px-8">
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">[chkbox]</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr className="py-2 border-t border-dashed border-slate-300">
|
||||||
|
<td className="px-2 py-2">
|
||||||
|
<div className='w-full min-w-48 flex items-center gap-2 whitespace-nowrap'>
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">NG</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td className="px-8">
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">Nigeria</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td className="px-8">
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">[chkbox]</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td className="px-8">
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">[chkbox]</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table> */}
|
||||||
|
<TablePaginatedWrapper data={countryData} isFetching={isFetching} setPage={setPage} itemsPerPage={pagination?.limit} pagination={pagination}>
|
||||||
|
{({ data }) => (
|
||||||
|
<>
|
||||||
|
<table className="py-2 w-full text-sm">
|
||||||
|
<thead className="py-2 text-sm text-slate-500 text-left">
|
||||||
|
<tr>
|
||||||
|
<th scope="col" className="px-2 py-2">
|
||||||
|
Code
|
||||||
|
</th>
|
||||||
|
<th scope="col" className="px-8">
|
||||||
|
Country
|
||||||
|
</th>
|
||||||
|
<th scope="col" className="px-2 text-right">
|
||||||
|
Status
|
||||||
|
</th>
|
||||||
|
<th scope="col" className="px-2 text-right">
|
||||||
|
Signup
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{(data && data.length > 0) ? data?.map((item, index) => (
|
||||||
|
<tr key={index} className="py-2 border-t border-dashed border-slate-300">
|
||||||
|
<td className="px-2 py-2">
|
||||||
|
<div className='w-full min-w-48 flex items-center gap-2 whitespace-nowrap'>
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">US</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td className="px-8">
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">United States</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td className="px-8">
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">[chkbox]</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td className="px-8">
|
||||||
|
<div className="text-left">
|
||||||
|
<div className="text-base font-semibold">[chkbox]</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
))
|
||||||
|
:
|
||||||
|
<tr className="py-2 border-t border-dashed border-slate-300">
|
||||||
|
<td className="px-3 py-2" colSpan={4}>
|
||||||
|
<div className="flex justify-center items-center">
|
||||||
|
No Record Found
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</TablePaginatedWrapper>
|
||||||
|
</>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -44,9 +44,9 @@ export default function HomeCom() {
|
|||||||
{/* <p className='text-3xl sm:text-[39px]'><span className='text-xl sm:text-2xl'>{dashData?.loans?.currency_text}</span><CustomCounter targetNumber={dashData?.loans?.value} timeInSeconds='1' /></p> */}
|
{/* <p className='text-3xl sm:text-[39px]'><span className='text-xl sm:text-2xl'>{dashData?.loans?.currency_text}</span><CustomCounter targetNumber={dashData?.loans?.value} timeInSeconds='1' /></p> */}
|
||||||
<p className='text-xl sm:text-[30px]'><span className='text-lg sm:text-xl'>
|
<p className='text-xl sm:text-[30px]'><span className='text-lg sm:text-xl'>
|
||||||
{/*{dashData?.loans?.currency_text}*/}
|
{/*{dashData?.loans?.currency_text}*/}
|
||||||
</span><CustomCounter targetNumber={formatNumber(dashData?.loans?.value)} timeInSeconds='1'/>
|
</span><CustomCounter targetNumber={formatNumber(dashData?.signups?.value)} timeInSeconds='1'/>
|
||||||
</p>
|
</p>
|
||||||
<p className='sm:text-[13.9px]'>{dashData?.loans?.text}</p>
|
<p className='sm:text-[13.9px]'>{dashData?.signups?.text.toString()}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@@ -104,10 +104,10 @@ export default function HomeCom() {
|
|||||||
Subscription
|
Subscription
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" className="px-2">
|
<th scope="col" className="px-2">
|
||||||
Status
|
URL
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" className="px-2">
|
<th scope="col" className="px-2">
|
||||||
Activity
|
Status
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" className="px-2 text-right">
|
<th scope="col" className="px-2 text-right">
|
||||||
Action
|
Action
|
||||||
@@ -138,17 +138,16 @@ export default function HomeCom() {
|
|||||||
<div className="text-base font-semibold"><a
|
<div className="text-base font-semibold"><a
|
||||||
href={`https://${item?.internal_url}`} target='_blank'
|
href={`https://${item?.internal_url}`} target='_blank'
|
||||||
rel="noreferrer">{item?.internal_url}</a></div>
|
rel="noreferrer">{item?.internal_url}</a></div>
|
||||||
<div className="font-normal text-gray-500">{item?.status}</div>
|
<div className="font-normal text-gray-500">
|
||||||
|
<a href={`http://${item?.primary_server}:${item?.provision_port}`}
|
||||||
|
target='_blank'
|
||||||
|
rel="noreferrer">
|
||||||
|
{item?.primary_server}:{item?.provision_port} </a></div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td className="px-2">
|
<td className="px-2">
|
||||||
<div className="text-left">
|
<div className="text-left">
|
||||||
<div className="font-normal text-gray-500">50%</div>
|
<div className="font-normal text-gray-500">{item?.status}</div>
|
||||||
<div
|
|
||||||
className="relative h-[6px] w-full bg-white-body dark:bg-black-body rounded-full overflow-hidden">
|
|
||||||
<div
|
|
||||||
className={`absolute left-0 h-full w-1/2 bg-emerald-600`}></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td className="px-2 text-right">
|
<td className="px-2 text-right">
|
||||||
@@ -156,7 +155,7 @@ export default function HomeCom() {
|
|||||||
<div
|
<div
|
||||||
className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
|
className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
|
||||||
<Link to={`/subscription-view/${item?.uid}`}
|
<Link to={`/subscription-view/${item?.uid}`}
|
||||||
state={{subscriptionUID: item?.uid}}
|
state={{subscriptionUID: item?.uid}}
|
||||||
>
|
>
|
||||||
<Icons name='eye'/>
|
<Icons name='eye'/>
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -157,6 +157,7 @@ const asideNavLinks = [
|
|||||||
{name: 'Billings', status: 1, icon: 'dot', to: RouteLinks.billings},
|
{name: 'Billings', status: 1, icon: 'dot', to: RouteLinks.billings},
|
||||||
{
|
{
|
||||||
name: 'Configurations', status: 1, icon: 'arrow-right', subLinks: [
|
name: 'Configurations', status: 1, icon: 'arrow-right', subLinks: [
|
||||||
|
{name: 'Country', status: 1, icon: 'dot', to: RouteLinks.countrySettings},
|
||||||
{name: 'Product Settings', status: 1, icon: 'dot', to: RouteLinks.products},
|
{name: 'Product Settings', status: 1, icon: 'dot', to: RouteLinks.products},
|
||||||
{name: 'Product Templates', status: 1, icon: 'dot', to: RouteLinks.productTemplates},
|
{name: 'Product Templates', status: 1, icon: 'dot', to: RouteLinks.productTemplates},
|
||||||
{name: 'Custom Templates', status: 1, icon: 'dot', to: RouteLinks.customTemplates},
|
{name: 'Custom Templates', status: 1, icon: 'dot', to: RouteLinks.customTemplates},
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ export default function ProductTemplates() {
|
|||||||
<th scope="col" className="px-2 py-2">
|
<th scope="col" className="px-2 py-2">
|
||||||
Product ID
|
Product ID
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" className="px-2">
|
<th scope="col" className="px-8">
|
||||||
Provision Name
|
Provision Name
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" className="px-2 text-right">
|
<th scope="col" className="px-2 text-right">
|
||||||
@@ -99,7 +99,7 @@ export default function ProductTemplates() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td className="px-2">
|
<td className="px-8">
|
||||||
<div className="text-left">
|
<div className="text-left">
|
||||||
<div className="text-base font-semibold">{item?.provision_name}</div>
|
<div className="text-base font-semibold">{item?.provision_name}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ export default function SubscriptionsCom() {
|
|||||||
Added/Updated
|
Added/Updated
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" className="px-2">
|
<th scope="col" className="px-2">
|
||||||
Product
|
Product/Server
|
||||||
</th>
|
</th>
|
||||||
<th scope="col" className="px-2">
|
<th scope="col" className="px-2">
|
||||||
Internal-URL/External-URL/SubscriptionUID
|
Internal-URL/External-URL/SubscriptionUID
|
||||||
@@ -116,8 +116,8 @@ export default function SubscriptionsCom() {
|
|||||||
<div className="text-left">
|
<div className="text-left">
|
||||||
<div
|
<div
|
||||||
className="text-base font-semibold">
|
className="text-base font-semibold">
|
||||||
{getDateTimeFromDateString(item?.added)}<br />
|
{getDateTimeFromDateString(item?.added)}<br/>
|
||||||
{getDateTimeFromDateString(item?.updated)}<br />
|
{getDateTimeFromDateString(item?.updated)}<br/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -125,14 +125,26 @@ export default function SubscriptionsCom() {
|
|||||||
<td className="px-2">
|
<td className="px-2">
|
||||||
<div className="text-left">
|
<div className="text-left">
|
||||||
<div
|
<div
|
||||||
className="text-base font-semibold">{item?.product_id}</div>
|
className="text-base font-semibold">
|
||||||
|
{item?.product_id}
|
||||||
|
<br/>
|
||||||
|
<a href={`http://${item?.primary_server}:${item?.provision_port}`}
|
||||||
|
target='_blank'
|
||||||
|
rel="noreferrer">{item?.primary_server}:{item?.provision_port}</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td className="px-2">
|
<td className="px-2">
|
||||||
<div className="text-left">
|
<div className="text-left">
|
||||||
<div className="text-base font-semibold ">
|
<div className="text-base">
|
||||||
<span>Int :</span> {item?.internal_url}<br/>
|
<span>Int :</span><a href={`https://${item?.internal_url}`}
|
||||||
<span>Ext :</span> {item?.external_url}<br/>
|
target='_blank'
|
||||||
|
rel="noreferrer"> {item?.internal_url}</a>
|
||||||
|
<br/>
|
||||||
|
<span>Ext :</span><a href={`https://${item?.external_url}`}
|
||||||
|
target='_blank'
|
||||||
|
rel="noreferrer"> {item?.external_url}</a>
|
||||||
|
<br/>
|
||||||
{item?.subscription_uid}</div>
|
{item?.subscription_uid}</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
@@ -146,7 +158,10 @@ export default function SubscriptionsCom() {
|
|||||||
<div
|
<div
|
||||||
className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
|
className='p-2 flex justify-center items-center text-slate-500 bg-white-body dark:text-white-body dark:bg-black-body rounded-md'>
|
||||||
<Link to={`/subscription-view/${item?.subscription_uid}`}
|
<Link to={`/subscription-view/${item?.subscription_uid}`}
|
||||||
state={{customerID: item?.id, subscriptionUID: item?.subscription_uid}}
|
state={{
|
||||||
|
customerID: item?.id,
|
||||||
|
subscriptionUID: item?.subscription_uid
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Icons name='eye'/>
|
<Icons name='eye'/>
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import CountrySettings from "../components/country/CountrySettings";
|
||||||
|
|
||||||
|
export default function CountrySettingsPage() {
|
||||||
|
return (
|
||||||
|
<CountrySettings />
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -22,6 +22,7 @@ const queryKeys = {
|
|||||||
account_view: ['account_view'],
|
account_view: ['account_view'],
|
||||||
subscriptions_view: ['subscriptions_view'],
|
subscriptions_view: ['subscriptions_view'],
|
||||||
users_admin: ['users_admin'],
|
users_admin: ['users_admin'],
|
||||||
|
country_list: ['country_list'],
|
||||||
}
|
}
|
||||||
|
|
||||||
export default queryKeys
|
export default queryKeys
|
||||||
@@ -62,6 +62,12 @@ export const getCustomers = (reqData) => {
|
|||||||
return getAuxEnd(`/customers`, postData)
|
return getAuxEnd(`/customers`, postData)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FUNCTION TO GET COUNTRY
|
||||||
|
export const getCountry = (reqData) => {
|
||||||
|
const postData = { ...reqData }
|
||||||
|
return getAuxEnd(`/country`, postData)
|
||||||
|
}
|
||||||
|
|
||||||
// FUNCTION TO GET BILLINGS
|
// FUNCTION TO GET BILLINGS
|
||||||
export const getBillings = (reqData) => {
|
export const getBillings = (reqData) => {
|
||||||
const postData = { ...reqData }
|
const postData = { ...reqData }
|
||||||
|
|||||||
Reference in New Issue
Block a user