Compare commits
2 Commits
37786c459e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3246d7c970 | |||
| a538f23124 |
BIN
appUser.db
BIN
appUser.db
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
,ov,d4,16.05.2023 12:44,file:///home/ov/.config/libreoffice/4;
|
|
||||||
BIN
data/appUser.db
BIN
data/appUser.db
Binary file not shown.
@@ -1,4 +1,4 @@
|
|||||||
uname,status,user,type,year,start_month,start_date,end_date,plan,klas,lang,phone,pass,annual,early_start_programme,toddlers,interakto,email,country,state,city,address,school
|
uname,status,user,type,year,start_month,start_date,end_date,plan,klas,lang,phone,pass,anual,early_start_programme,toddlers,interakto,email,country,state,city,address,school
|
||||||
name 1,published,,parent,,Feb,2023-05-14,2024-05-13,,IK2,,70000000011,,Jan,Feb,Mar,Jul,1@email.com,IN,WB,Habra,sample road near landmark,individual
|
name 1,published,,parent,,Feb,2023-05-14,2024-05-13,,IK2,,70000000011,,Jan,Feb,Mar,Jul,1@email.com,IN,WB,Habra,sample road near landmark,individual
|
||||||
name 5,published,,parent,,Feb,2023-05-14,2024-05-13,,IK2,,70000000011,,Jan,Feb,Mar,Jul,5@email.com,IN,WB,Habra,sample road near landmark,individual
|
name 5,published,,parent,,Feb,2023-05-14,2024-05-13,,IK2,,70000000011,,Jan,Feb,Mar,Jul,5@email.com,IN,WB,Habra,sample road near landmark,individual
|
||||||
name 4,published,,parent,,Feb,2023-05-14,2024-05-13,,IK2,,70000000011,,Jan,Feb,Mar,Jul,4@email.com,IN,WB,Habra,sample road near landmark,individual
|
name 4,published,,parent,,Feb,2023-05-14,2024-05-13,,IK2,,70000000011,,Jan,Feb,Mar,Jul,4@email.com,IN,WB,Habra,sample road near landmark,individual
|
||||||
|
|||||||
|
BIN
mydatabase.db
BIN
mydatabase.db
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
<svg width="20px" height="20px" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#ffffff"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path d="M7.5 4.5L11.5 6.5V14.5H3.5V6.5L7.5 4.5ZM7.5 4.5V0M0 14.5H15M1.5 14.5V8.5H3.5M13.5 14.5V8.5H11.5M6.5 14.5V11.5H8.5V14.5M7.5 0.5H10.5V2.5H7.5M7.5 9.5C6.94772 9.5 6.5 9.05228 6.5 8.5C6.5 7.94772 6.94772 7.5 7.5 7.5C8.05228 7.5 8.5 7.94772 8.5 8.5C8.5 9.05228 8.05228 9.5 7.5 9.5Z" stroke="#ffffff"></path> </g></svg>
|
|
||||||
|
Before Width: | Height: | Size: 595 B |
@@ -29,7 +29,7 @@ export default function Modal() {
|
|||||||
country: event.target.country.value,
|
country: event.target.country.value,
|
||||||
state: event.target.state.value,
|
state: event.target.state.value,
|
||||||
cities: event.target.cities.value,
|
cities: event.target.cities.value,
|
||||||
annual: event.target.annual.value,
|
anual: event.target.anual.value,
|
||||||
toddlers: event.target.toddlers.value,
|
toddlers: event.target.toddlers.value,
|
||||||
early_start_programme: event.target.early_start_programme.value,
|
early_start_programme: event.target.early_start_programme.value,
|
||||||
interakto: event.target.interakto.value,
|
interakto: event.target.interakto.value,
|
||||||
@@ -119,8 +119,8 @@ export default function Modal() {
|
|||||||
<label htmlFor="phone" className='text-xl font-bold'> Phone</label>
|
<label htmlFor="phone" className='text-xl font-bold'> Phone</label>
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-col w-full pt-4'>
|
<div className='flex flex-col w-full pt-4'>
|
||||||
<label htmlFor="annual" className='text-xl font-bold'>annual</label>
|
<label htmlFor="anual" className='text-xl font-bold'>Anual</label>
|
||||||
<select name="annual" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
<select name="anual" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
||||||
<option value="0" >-NA-</option>
|
<option value="0" >-NA-</option>
|
||||||
<option value="January">January</option>
|
<option value="January">January</option>
|
||||||
<option value="February">February</option>
|
<option value="February">February</option>
|
||||||
|
|||||||
@@ -52,23 +52,23 @@ export default function addSchoolForm() {
|
|||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
const data = {
|
const data = {
|
||||||
"status":"published",
|
"status":"published",
|
||||||
sname: event.target.sname.value,
|
name: event.target.schoolName.value,
|
||||||
country: event.target.country.value,
|
country: event.target.country.value,
|
||||||
state: event.target.state.value,
|
state: event.target.state.value,
|
||||||
city: event.target.city.value,
|
cities: event.target.cities.value,
|
||||||
annual: event.target.annual.value,
|
anual: event.target.anual.value,
|
||||||
toddlers: event.target.toddlers.value,
|
toddlers: event.target.toddlers.value,
|
||||||
early_start_programme: event.target.early_start_programme.value,
|
early_start_programme: event.target.early_start_programme.value,
|
||||||
interakto: event.target.interakto.value,
|
interakto: event.target.interakto.value,
|
||||||
agg_expiry: event.target.agg_expiry.value,
|
agreement_expiry_date: event.target.agreement_expiry_date.value,
|
||||||
usage_expiry: event.target.usage_expiry.value,
|
school_agreement: event.target.school_agreement.value,
|
||||||
phone: event.target.phone.value,
|
school_contact_number: event.target.school_contact_number.value,
|
||||||
email: event.target.email.value,
|
school_email_id: event.target.school_email_id.value,
|
||||||
|
|
||||||
}
|
}
|
||||||
const JSONdata = JSON.stringify(data)
|
const JSONdata = JSON.stringify(data)
|
||||||
console.log(data)
|
console.log(data)
|
||||||
const endpoint = '/api/addSchool'
|
const endpoint = 'https://management.beanstalkedu.com/items/school'
|
||||||
const options = {
|
const options = {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
@@ -96,11 +96,11 @@ export default function addSchoolForm() {
|
|||||||
<form onSubmit={handleSubmit} className='w-full px-6 md:px-20'>
|
<form onSubmit={handleSubmit} className='w-full px-6 md:px-20'>
|
||||||
<div className='flex flex-col w-full'>
|
<div className='flex flex-col w-full'>
|
||||||
<label htmlFor="school" className='text-xl font-bold'>School Name</label>
|
<label htmlFor="school" className='text-xl font-bold'>School Name</label>
|
||||||
<input type="text" name="sname" placeholder='School Name' className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
<input type="text" name="schoolName" placeholder='School Name' className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-col w-full pt-4'>
|
<div className='flex flex-col w-full pt-4'>
|
||||||
<label htmlFor="email" className='text-xl font-bold'> Email ID</label>
|
<label htmlFor="school_email_id" className='text-xl font-bold'> Email ID</label>
|
||||||
<input type="text" name="email" id="email" placeholder='School Email ID' className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
<input type="text" name="school_email_id" id="school_email_id" placeholder='School Email ID' className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-col w-full'>
|
<div className='flex flex-col w-full'>
|
||||||
<label htmlFor="country" className='text-xl font-bold'>Country</label>
|
<label htmlFor="country" className='text-xl font-bold'>Country</label>
|
||||||
@@ -120,10 +120,10 @@ export default function addSchoolForm() {
|
|||||||
{
|
{
|
||||||
allCities && allCities.length > 0 &&
|
allCities && allCities.length > 0 &&
|
||||||
<div className='flex flex-col w-full'>
|
<div className='flex flex-col w-full'>
|
||||||
<label htmlFor="cyti" className='text-xl font-bold'>City</label>
|
<label htmlFor="Cities" className='text-xl font-bold'>Cities</label>
|
||||||
<Select
|
<Select
|
||||||
className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'
|
className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'
|
||||||
name="city" options={allCities} value={allCities[0].name}
|
name="cities" options={allCities} value={allCities[0].name}
|
||||||
// onChange={() => {}}
|
// onChange={() => {}}
|
||||||
/>
|
/>
|
||||||
</div>}
|
</div>}
|
||||||
@@ -132,8 +132,8 @@ export default function addSchoolForm() {
|
|||||||
<PhoneInput className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' name="phone" placeholder="Enter phone number" value={phoneValue} onChange={setphoneValue}/>
|
<PhoneInput className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' name="phone" placeholder="Enter phone number" value={phoneValue} onChange={setphoneValue}/>
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-col w-full pt-4'>
|
<div className='flex flex-col w-full pt-4'>
|
||||||
<label htmlFor="annual" className='text-xl font-bold'> Annual</label>
|
<label htmlFor="anual" className='text-xl font-bold'>Anual</label>
|
||||||
<select name="annual" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
<select name="anual" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
||||||
<option value="0" >-NA-</option>
|
<option value="0" >-NA-</option>
|
||||||
<option value="Jan">Jan</option>
|
<option value="Jan">Jan</option>
|
||||||
<option value="Feb">Feb</option>
|
<option value="Feb">Feb</option>
|
||||||
@@ -168,7 +168,7 @@ export default function addSchoolForm() {
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-col w-full pt-4'>
|
<div className='flex flex-col w-full pt-4'>
|
||||||
<label htmlFor="early_start_programme" className='text-xl font-bold'>Early Start Programme</label>
|
<label htmlFor="early_start_programme" className='text-xl font-bold'>Early Start Program</label>
|
||||||
<select name="early_start_programme" className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
<select name="early_start_programme" className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
||||||
<option value="0" >-NA-</option>
|
<option value="0" >-NA-</option>
|
||||||
<option value="Jan">Jan</option>
|
<option value="Jan">Jan</option>
|
||||||
@@ -189,26 +189,22 @@ export default function addSchoolForm() {
|
|||||||
<label htmlFor="interakto" className='text-xl font-bold'>Interakto</label>
|
<label htmlFor="interakto" className='text-xl font-bold'>Interakto</label>
|
||||||
<select name="interakto" className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
<select name="interakto" className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
||||||
<option value="na">-NA-</option>
|
<option value="na">-NA-</option>
|
||||||
<option value="Jan"> Jan</option>
|
<option value="Jan"> Jan</option>
|
||||||
<option value="Feb"> Feb</option>
|
<option value="Feb"> Feb</option>
|
||||||
<option value="Mar"> Mar</option>
|
<option value="Mar"> Mar</option>
|
||||||
<option value="Apr"> Apr</option>
|
<option value="Apr"> Apr</option>
|
||||||
<option value="May"> May</option>
|
<option value="May"> May</option>
|
||||||
<option value="Jun"> Jun</option>
|
<option value="Jun"> Jun</option>
|
||||||
<option value="Jul"> Jul</option>
|
<option value="Jul"> Jul</option>
|
||||||
<option value="Aug"> Aug</option>
|
<option value="Aug"> Aug</option>
|
||||||
<option value="Sept"> Sept</option>
|
<option value="Sept"> Sept</option>
|
||||||
<option value="Nov"> Nov</option>
|
<option value="Nov"> Nov</option>
|
||||||
<option value="Dec"> Dec</option>
|
<option value="Dec"> Dec</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-col w-full'>
|
<div className='flex flex-col w-full'>
|
||||||
<label htmlFor="agg_expiry" className='text-xl font-bold pt-4'>Agreement Expiry Date</label>
|
<label htmlFor="agreement_expiry_date" className='text-xl font-bold pt-4'>Agreement Expiry Date</label>
|
||||||
<input type="date" name="agg_expiry" id="agg_expiry" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
<input type="date" name="agreement_expiry_date" id="agreement_expiry_date" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="usage_expiry" className='text-xl font-bold pt-4'>Usage Expiry Date</label>
|
|
||||||
<input type="date" name="usage_expiry" id="usage_expiry" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
</div>
|
||||||
{/* <div className='flex flex-col w-full'>
|
{/* <div className='flex flex-col w-full'>
|
||||||
<label htmlFor="school_agreement" className='text-xl font-bold pt-4'>Upload School Agreement</label>
|
<label htmlFor="school_agreement" className='text-xl font-bold pt-4'>Upload School Agreement</label>
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ export default function addUserForm() {
|
|||||||
start_month: event.target.start_month.value,
|
start_month: event.target.start_month.value,
|
||||||
start_date: event.target.start_date.value,
|
start_date: event.target.start_date.value,
|
||||||
end_date: event.target.end_date.value,
|
end_date: event.target.end_date.value,
|
||||||
annual: event.target.annual.value,
|
anual: event.target.anual.value,
|
||||||
early_start_programme: event.target.early_start_programme.value,
|
early_start_programme: event.target.early_start_programme.value,
|
||||||
toddlers: event.target.toddlers.value,
|
toddlers: event.target.toddlers.value,
|
||||||
interakto: event.target.interakto.value,
|
interakto: event.target.interakto.value,
|
||||||
@@ -242,8 +242,8 @@ export default function addUserForm() {
|
|||||||
{individualValue &&
|
{individualValue &&
|
||||||
<div>
|
<div>
|
||||||
<div className='flex flex-col w-full pt-4'>
|
<div className='flex flex-col w-full pt-4'>
|
||||||
<label htmlFor="annual" className='text-xl font-bold'>annual</label>
|
<label htmlFor="anual" className='text-xl font-bold'>Anual</label>
|
||||||
<select name="annual" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
<select name="anual" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
||||||
<option value="0">-NA-</option>
|
<option value="0">-NA-</option>
|
||||||
<option value="Jan">Jan</option>
|
<option value="Jan">Jan</option>
|
||||||
<option value="Feb">Feb</option>
|
<option value="Feb">Feb</option>
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ export default function addUserForm() {
|
|||||||
start_month: event.target.start_month.value,
|
start_month: event.target.start_month.value,
|
||||||
start_date: event.target.start_date.value,
|
start_date: event.target.start_date.value,
|
||||||
end_date: event.target.end_date.value,
|
end_date: event.target.end_date.value,
|
||||||
annual: event.target.annual.value,
|
anual: event.target.anual.value,
|
||||||
}
|
}
|
||||||
const JSONdata = JSON.stringify(data)
|
const JSONdata = JSON.stringify(data)
|
||||||
const endpoint = '/api/addUsers'
|
const endpoint = '/api/addUsers'
|
||||||
@@ -234,8 +234,8 @@ export default function addUserForm() {
|
|||||||
{individualValue &&
|
{individualValue &&
|
||||||
<div>
|
<div>
|
||||||
<div className='flex flex-col w-full pt-4'>
|
<div className='flex flex-col w-full pt-4'>
|
||||||
<label htmlFor="annual" className='text-xl font-bold'>annual</label>
|
<label htmlFor="anual" className='text-xl font-bold'>Anual</label>
|
||||||
<select name="annual"
|
<select name="anual"
|
||||||
className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
||||||
<option value="0">-NA-</option>
|
<option value="0">-NA-</option>
|
||||||
<option value="January">January</option>
|
<option value="January">January</option>
|
||||||
@@ -256,8 +256,8 @@ export default function addUserForm() {
|
|||||||
<label htmlFor="plan" className='text-xl font-bold'>Plan</label>
|
<label htmlFor="plan" className='text-xl font-bold'>Plan</label>
|
||||||
<div className='grid grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-y-2 pt-2 '>
|
<div className='grid grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-y-2 pt-2 '>
|
||||||
<div className='flex flex-row place-items-center'>
|
<div className='flex flex-row place-items-center'>
|
||||||
<label className='cursor-pointer' htmlFor="annual">annual</label>
|
<label className='cursor-pointer' htmlFor="Anual">Anual</label>
|
||||||
<input type="checkbox" name="plan" id="annual" value='annual' className='check-box'/>
|
<input type="checkbox" name="plan" id="Anual" value='Anual' className='check-box'/>
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-row place-items-center'>
|
<div className='flex flex-row place-items-center'>
|
||||||
<label className='cursor-pointer' htmlFor="Toddler">Toddler</label>
|
<label className='cursor-pointer' htmlFor="Toddler">Toddler</label>
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
export default function handler(req, res) {
|
|
||||||
const sqlite3 = require('sqlite3').verbose();
|
|
||||||
|
|
||||||
// console.log(req.body)
|
|
||||||
// Open a new database connection
|
|
||||||
let sname, status, phone, annual, early_start_programme, toddlers, interakto, email, country, state, city, address, agg_expiry, usage_expiry = "";
|
|
||||||
|
|
||||||
if(req.body.sname) sname =req.body.sname;
|
|
||||||
// if(req.body.status) status =req.body.status;
|
|
||||||
if(req.body.status) status ="published";
|
|
||||||
if(req.body.phone) phone =req.body.phone;
|
|
||||||
if(req.body.annual) annual =req.body.annual;
|
|
||||||
if(req.body.early_start_programme) early_start_programme =req.body.early_start_programme;
|
|
||||||
if(req.body.toddlers) toddlers =req.body.toddlers;
|
|
||||||
if(req.body.interakto) interakto =req.body.interakto;
|
|
||||||
if(req.body.email) email =req.body.email;
|
|
||||||
if(req.body.country) country =req.body.country;
|
|
||||||
if(req.body.state) state =req.body.state;
|
|
||||||
if(req.body.city) city =req.body.city;
|
|
||||||
if(req.body.address) address =req.body.address;
|
|
||||||
if(req.body.agg_expiry) agg_expiry =req.body.agg_expiry;
|
|
||||||
if(req.body.usage_expiry) usage_expiry =req.body.usage_expiry;
|
|
||||||
|
|
||||||
const db = new sqlite3.Database('data/appUser.db');
|
|
||||||
db.run(`INSERT INTO school (sname, status, phone, annual, early_start_programme, toddlers, interakto, email, country, state, city, address, agg_expiry, usage_expiry ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [ sname, status, phone, annual, early_start_programme, toddlers, interakto, email, country, state, city, address, agg_expiry, usage_expiry],
|
|
||||||
function(err) {
|
|
||||||
if (err) {
|
|
||||||
return console.log(err.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
db.close();
|
|
||||||
|
|
||||||
|
|
||||||
res.status(200).json({ msg: 'ok' });
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -3,7 +3,7 @@ export default function handler(req, res) {
|
|||||||
|
|
||||||
console.log(req.body)
|
console.log(req.body)
|
||||||
// Open a new database connection
|
// Open a new database connection
|
||||||
let uname, status, type, start_month, start_date, end_date, plan, klas, lang, phone, pass, annual, early_start_programme, toddlers, interakto, email, country, state, city, address, school="";
|
let uname, status, type, start_month, start_date, end_date, plan, klas, lang, phone, pass, anual, early_start_programme, toddlers, interakto, email, country, state, city, address, school="";
|
||||||
|
|
||||||
if(req.body.uname) uname =req.body.uname;
|
if(req.body.uname) uname =req.body.uname;
|
||||||
if(req.body.status) status =req.body.status;
|
if(req.body.status) status =req.body.status;
|
||||||
@@ -15,9 +15,10 @@ export default function handler(req, res) {
|
|||||||
if(req.body.plan) plan =req.body.plan;
|
if(req.body.plan) plan =req.body.plan;
|
||||||
if(req.body.klas) klas =req.body.klas;
|
if(req.body.klas) klas =req.body.klas;
|
||||||
if(req.body.lang) lang =req.body.lang;
|
if(req.body.lang) lang =req.body.lang;
|
||||||
|
if(req.body.lang) lang =req.body.lang;
|
||||||
if(req.body.phone) phone =req.body.phone;
|
if(req.body.phone) phone =req.body.phone;
|
||||||
if(req.body.pass) pass =req.body.pass;
|
if(req.body.pass) pass =req.body.pass;
|
||||||
if(req.body.annual) annual =req.body.annual;
|
if(req.body.anual) anual =req.body.anual;
|
||||||
if(req.body.early_start_programme) early_start_programme =req.body.early_start_programme;
|
if(req.body.early_start_programme) early_start_programme =req.body.early_start_programme;
|
||||||
if(req.body.toddlers) toddlers =req.body.toddlers;
|
if(req.body.toddlers) toddlers =req.body.toddlers;
|
||||||
if(req.body.interakto) interakto =req.body.interakto;
|
if(req.body.interakto) interakto =req.body.interakto;
|
||||||
@@ -28,7 +29,7 @@ export default function handler(req, res) {
|
|||||||
if(req.body.address) address =req.body.address;
|
if(req.body.address) address =req.body.address;
|
||||||
if(req.body.school) school =req.body.school;
|
if(req.body.school) school =req.body.school;
|
||||||
const db = new sqlite3.Database('data/appUser.db');
|
const db = new sqlite3.Database('data/appUser.db');
|
||||||
db.run(`INSERT INTO user (uname, status, type, start_month, start_date, end_date, plan, klas, lang, phone, pass, annual, early_start_programme, toddlers, interakto, email, country, state, city, address, school ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [ uname, status, type, start_month, start_date, end_date, plan, klas, lang, phone, pass, annual, early_start_programme, toddlers, interakto, email, country, state, city, address, school],
|
db.run(`INSERT INTO user (uname, status, type, start_month, start_date, end_date, plan, klas, lang, phone, pass, anual, early_start_programme, toddlers, interakto, email, country, state, city, address, school ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [ uname, status, type, start_month, start_date, end_date, plan, klas, lang, phone, pass, anual, early_start_programme, toddlers, interakto, email, country, state, city, address, school],
|
||||||
function(err) {
|
function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return console.log(err.message);
|
return console.log(err.message);
|
||||||
|
|||||||
@@ -1,41 +0,0 @@
|
|||||||
export default function handler(req, res) {
|
|
||||||
const sqlite3 = require('sqlite3').verbose();
|
|
||||||
|
|
||||||
console.log(req.body)
|
|
||||||
|
|
||||||
// Open a new database connection
|
|
||||||
let sname, status, phone, annual, early_start_programme, toddlers, interakto, email, country, state, city, address, agg_expiry, usage_expiry = "";
|
|
||||||
|
|
||||||
if(req.body.sname) sname =req.body.sname;
|
|
||||||
if(req.body.status) status =req.body.status;
|
|
||||||
// if(req.body.status) status ="published";
|
|
||||||
if(req.body.phone) phone =req.body.phone;
|
|
||||||
if(req.body.annual) annual =req.body.annual;
|
|
||||||
if(req.body.early_start_programme) early_start_programme =req.body.early_start_programme;
|
|
||||||
if(req.body.toddlers) toddlers =req.body.toddlers;
|
|
||||||
if(req.body.interakto) interakto =req.body.interakto;
|
|
||||||
if(req.body.email) email =req.body.email;
|
|
||||||
if(req.body.country) country =req.body.country;
|
|
||||||
if(req.body.state) state =req.body.state;
|
|
||||||
if(req.body.city) city =req.body.city;
|
|
||||||
if(req.body.address) address =req.body.address;
|
|
||||||
if(req.body.agg_expiry) agg_expiry =req.body.agg_expiry;
|
|
||||||
if(req.body.usage_expiry) usage_expiry =req.body.usage_expiry;
|
|
||||||
|
|
||||||
const db = new sqlite3.Database('data/appUser.db');
|
|
||||||
console.log(req.body.userId)
|
|
||||||
db.run(`UPDATE school SET sname = ?, status = ?, phone = ?, annual = ?, early_start_programme = ?, toddlers = ?, interakto = ?, email = ?, country = ?, state = ?, city = ?, address = ?, agg_expiry = ?, usage_expiry = ? WHERE id = ? `, [ sname, status, phone, annual, early_start_programme, toddlers, interakto, email, country, state, city, address, agg_expiry, usage_expiry, req.body.schoolId],
|
|
||||||
function(err) {
|
|
||||||
if (err) {
|
|
||||||
res.status(400).json({ msg: 'Err400D' });
|
|
||||||
return console.log(err.message);
|
|
||||||
}
|
|
||||||
res.status(200).json({ msg: 'ok' });
|
|
||||||
}
|
|
||||||
);
|
|
||||||
db.close();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
export default function handler(req, res) {
|
|
||||||
const sqlite3 = require('sqlite3').verbose();
|
|
||||||
|
|
||||||
// console.log(req.body)
|
|
||||||
// Open a new database connection
|
|
||||||
let uname, status, type, start_month, start_date, end_date, klas, lang, phone, pass, annual, early_start_programme, toddlers, interakto, email, country, state, city, address, school="";
|
|
||||||
|
|
||||||
if(req.body.uname) uname =req.body.uname;
|
|
||||||
if(req.body.status) status =req.body.status;
|
|
||||||
if(req.body.type) type =req.body.type;
|
|
||||||
if(req.body.start_date) start_date =req.body.start_date;
|
|
||||||
if(req.body.end_date) end_date =req.body.end_date;
|
|
||||||
if(req.body.klas) klas =req.body.klas;
|
|
||||||
if(req.body.lang) lang =req.body.lang;
|
|
||||||
if(req.body.lang) lang =req.body.lang;
|
|
||||||
if(req.body.phone) phone =req.body.phone;
|
|
||||||
if(req.body.pass) pass =req.body.pass;
|
|
||||||
if(req.body.annual) annual =req.body.annual;
|
|
||||||
if(req.body.early_start_programme) early_start_programme =req.body.early_start_programme;
|
|
||||||
if(req.body.toddlers) toddlers =req.body.toddlers;
|
|
||||||
if(req.body.interakto) interakto =req.body.interakto;
|
|
||||||
if(req.body.email) email =req.body.email;
|
|
||||||
if(req.body.country) country =req.body.country;
|
|
||||||
if(req.body.state) state =req.body.state;
|
|
||||||
if(req.body.city) city =req.body.city;
|
|
||||||
if(req.body.address) address =req.body.address;
|
|
||||||
if(req.body.school) school =req.body.school;
|
|
||||||
const db = new sqlite3.Database('data/appUser.db');
|
|
||||||
var msg=null;
|
|
||||||
console.log(req.body.userId)
|
|
||||||
db.run(`UPDATE user SET uname = ?, status = ?, type = ?, start_month = ?, start_date = ?, end_date = ?, klas = ?, lang = ?, phone = ?, annual = ?, early_start_programme = ?, toddlers = ?, interakto = ?, email = ?, country = ?, state = ?, city = ?, address = ?, school = ? WHERE id = ? `, [ uname, status, type, start_month, start_date, end_date, klas, lang, phone, annual, early_start_programme, toddlers, interakto, email, country, state, city, address, school, req.body.userId],
|
|
||||||
function(err) {
|
|
||||||
if (err) {
|
|
||||||
msg={ msg: 'Err400D' };
|
|
||||||
// res.status(400).send({ msg: 'Err400D' });
|
|
||||||
// return console.log(err.message);
|
|
||||||
}
|
|
||||||
// console.log('message');
|
|
||||||
msg="{ msg: 'ok' }";
|
|
||||||
// res.statusCode = 200;
|
|
||||||
// res.setHeader('Content-Type', 'application/json');
|
|
||||||
// res.setHeader('Cache-Control', 'max-age=180000');
|
|
||||||
// res.end(JSON.stringify({ msg: 'ok' }));
|
|
||||||
// res.status(200).json({ msg: 'ok' });
|
|
||||||
}
|
|
||||||
);
|
|
||||||
db.close();
|
|
||||||
|
|
||||||
res.statusCode = 200;
|
|
||||||
res.setHeader('Content-Type', 'application/json');
|
|
||||||
res.setHeader('Cache-Control', 'max-age=180000');
|
|
||||||
res.end(JSON.stringify(msg));
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
import csv from 'csv-parser';
|
|
||||||
import fs from 'fs';
|
|
||||||
import sqlite3 from 'sqlite3';
|
|
||||||
|
|
||||||
export default function handler(req,res) {
|
|
||||||
|
|
||||||
|
|
||||||
const DB_NAME = 'data/appUser.db';
|
|
||||||
const TABLE_NAME = 'school';
|
|
||||||
|
|
||||||
const db = new sqlite3.Database(DB_NAME);
|
|
||||||
|
|
||||||
const query = `SELECT * FROM ${TABLE_NAME}`;
|
|
||||||
|
|
||||||
function getAllRows(tableName) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
const sql = `SELECT * FROM ${tableName} WHERE id = ?`;
|
|
||||||
db.all(sql, [req.query.school], (err, rows) => {
|
|
||||||
if (err) {
|
|
||||||
reject(err);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const data = rows;
|
|
||||||
resolve(data);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
async function doSomething() {
|
|
||||||
try {
|
|
||||||
const returnData = await getAllRows('school');
|
|
||||||
res.setHeader('Content-Type', 'application/json')
|
|
||||||
res.status(200).json(returnData)
|
|
||||||
// console.log(data);
|
|
||||||
} catch (err) {
|
|
||||||
console.error(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
doSomething();
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
import csv from 'csv-parser';
|
|
||||||
import fs from 'fs';
|
|
||||||
import sqlite3 from 'sqlite3';
|
|
||||||
|
|
||||||
export default function handler(req,res) {
|
|
||||||
|
|
||||||
|
|
||||||
const DB_NAME = 'data/appUser.db';
|
|
||||||
const TABLE_NAME = 'user';
|
|
||||||
|
|
||||||
// Open a connection to the SQLite database
|
|
||||||
const db = new sqlite3.Database(DB_NAME);
|
|
||||||
|
|
||||||
const query = `SELECT * FROM ${TABLE_NAME}`;
|
|
||||||
|
|
||||||
function getAllRows(tableName) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
const sql = `SELECT * FROM ${tableName} WHERE id = ?`;
|
|
||||||
db.all(sql, [req.query.user], (err, rows) => {
|
|
||||||
if (err) {
|
|
||||||
reject(err);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const data = rows;
|
|
||||||
resolve(data);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
async function doSomething() {
|
|
||||||
try {
|
|
||||||
const returnData = await getAllRows('user');
|
|
||||||
res.setHeader('Content-Type', 'application/json')
|
|
||||||
res.status(200).json(returnData)
|
|
||||||
// console.log(data);
|
|
||||||
} catch (err) {
|
|
||||||
console.error(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
doSomething();
|
|
||||||
// const returnData = getAllRows('user');
|
|
||||||
// console.log(getAllRows('user'));
|
|
||||||
// const returnData= db.run('SELECT * FROM user');
|
|
||||||
|
|
||||||
// fs.createReadStream('data/user.csv')
|
|
||||||
// .pipe(csv())
|
|
||||||
// .on('data', (data) => {
|
|
||||||
// const values = Object.values(data);
|
|
||||||
// const placeholders = values.map(() => '?').join(',');
|
|
||||||
// const sql = `INSERT INTO ${TABLE_NAME} (${Object.keys(data).join(',')}) VALUES (${placeholders})`;
|
|
||||||
// db.run(sql, values, (err) => {
|
|
||||||
// if (err) {
|
|
||||||
// console.error(err);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// })
|
|
||||||
// .on('end', () => {
|
|
||||||
// console.log(`Data inserted successfully into table ${TABLE_NAME}`);
|
|
||||||
|
|
||||||
// // Close the database connection
|
|
||||||
// db.close();
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
import csv from 'csv-parser';
|
|
||||||
import fs from 'fs';
|
|
||||||
import sqlite3 from 'sqlite3';
|
|
||||||
|
|
||||||
export default function handler(req,res) {
|
|
||||||
|
|
||||||
console.log(req.body.school)
|
|
||||||
// const {
|
|
||||||
// query: { name, keyword },
|
|
||||||
// method,
|
|
||||||
// } = req;
|
|
||||||
// console.log(name, keyword, method);
|
|
||||||
|
|
||||||
const DB_NAME = 'data/appUser.db';
|
|
||||||
const TABLE_NAME = 'school';
|
|
||||||
|
|
||||||
// Open a connection to the SQLite database
|
|
||||||
const db = new sqlite3.Database(DB_NAME);
|
|
||||||
|
|
||||||
const query = `SELECT * FROM ${TABLE_NAME}`;
|
|
||||||
|
|
||||||
function getAllRows(tableName) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
const sql = `SELECT * FROM ${tableName}`;
|
|
||||||
db.all(sql, [], (err, rows) => {
|
|
||||||
if (err) {
|
|
||||||
reject(err);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const data = rows;
|
|
||||||
resolve(data);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
async function doSomething() {
|
|
||||||
try {
|
|
||||||
const returnData = await getAllRows(TABLE_NAME);
|
|
||||||
res.setHeader('Content-Type', 'application/json')
|
|
||||||
res.status(200).json(returnData)
|
|
||||||
// console.log(data);
|
|
||||||
} catch (err) {
|
|
||||||
console.error(err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
doSomething();
|
|
||||||
// const returnData = getAllRows('user');
|
|
||||||
// console.log(getAllRows('user'));
|
|
||||||
// const returnData= db.run('SELECT * FROM user');
|
|
||||||
|
|
||||||
// fs.createReadStream('data/user.csv')
|
|
||||||
// .pipe(csv())
|
|
||||||
// .on('data', (data) => {
|
|
||||||
// const values = Object.values(data);
|
|
||||||
// const placeholders = values.map(() => '?').join(',');
|
|
||||||
// const sql = `INSERT INTO ${TABLE_NAME} (${Object.keys(data).join(',')}) VALUES (${placeholders})`;
|
|
||||||
// db.run(sql, values, (err) => {
|
|
||||||
// if (err) {
|
|
||||||
// console.error(err);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// })
|
|
||||||
// .on('end', () => {
|
|
||||||
// console.log(`Data inserted successfully into table ${TABLE_NAME}`);
|
|
||||||
|
|
||||||
// // Close the database connection
|
|
||||||
// db.close();
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -4,12 +4,6 @@ import sqlite3 from 'sqlite3';
|
|||||||
|
|
||||||
export default function handler(req,res) {
|
export default function handler(req,res) {
|
||||||
|
|
||||||
console.log(req.body.school)
|
|
||||||
// const {
|
|
||||||
// query: { name, keyword },
|
|
||||||
// method,
|
|
||||||
// } = req;
|
|
||||||
// console.log(name, keyword, method);
|
|
||||||
|
|
||||||
const DB_NAME = 'data/appUser.db';
|
const DB_NAME = 'data/appUser.db';
|
||||||
const TABLE_NAME = 'user';
|
const TABLE_NAME = 'user';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
export default function handler(req, res) {
|
export default function handler(req, res) {
|
||||||
// const sqlite3 = require('sqlite3').verbose();
|
// const sqlite3 = require('sqlite3').verbose();
|
||||||
|
|
||||||
// console.log(req.body)
|
// console.log(req.body)
|
||||||
const sqlite3 = require('sqlite3');
|
const sqlite3 = require('sqlite3');
|
||||||
const argon2 = require('argon2');
|
const argon2 = require('argon2');
|
||||||
const jwt = require('jsonwebtoken');
|
const jwt = require('jsonwebtoken');
|
||||||
@@ -14,58 +14,58 @@ const username = req.body.email;
|
|||||||
// console.log(username)
|
// console.log(username)
|
||||||
const sql = 'SELECT * FROM user WHERE email = ?';
|
const sql = 'SELECT * FROM user WHERE email = ?';
|
||||||
db.get(sql, [username], async (err, userRecord) => {
|
db.get(sql, [username], async (err, userRecord) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(err);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (userRecord) {
|
|
||||||
const storedHash = userRecord.pass;
|
|
||||||
console.log(storedHash)
|
|
||||||
const providedPassword = req.body.password;
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Verify the provided password with the stored hash
|
|
||||||
const isPasswordValid = await argon2.verify(storedHash, providedPassword);
|
|
||||||
|
|
||||||
if (isPasswordValid) {
|
|
||||||
// Passwords match, generate JWT token
|
|
||||||
const secretKey = process.env.TOKEN_HEADER_KEY;
|
|
||||||
const tokenPayload = {
|
|
||||||
email:userRecord.email,
|
|
||||||
role: userRecord.type,
|
|
||||||
iat: Math.floor(Date.now() / 1000),
|
|
||||||
exp: Math.floor(Date.now() / 1000) + 3600*24*7,
|
|
||||||
|
|
||||||
};
|
|
||||||
const jwtToken = jwt.sign(tokenPayload, secretKey, { algorithm: 'HS256' });
|
|
||||||
const jwtTokenData ={
|
|
||||||
data:{
|
|
||||||
access_token:jwtToken,
|
|
||||||
role: userRecord.type,
|
|
||||||
email: userRecord.email,
|
|
||||||
expires: 3600*24*7,
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Return the JWT token
|
|
||||||
res.status(200).json(jwtTokenData);
|
|
||||||
console.log(jwtToken);
|
|
||||||
} else {
|
|
||||||
console.log('Invalid password');
|
|
||||||
res.status(400).json({err:'400P'});
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
console.error(err);
|
console.error(err);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
res.status(400).json({err:'400U'});
|
|
||||||
console.log('User not found');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close the database connection
|
if (userRecord) {
|
||||||
db.close();
|
const storedHash = userRecord.pass;
|
||||||
|
console.log(storedHash)
|
||||||
|
const providedPassword = req.body.password;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Verify the provided password with the stored hash
|
||||||
|
const isPasswordValid = await argon2.verify(storedHash, providedPassword);
|
||||||
|
|
||||||
|
if (isPasswordValid) {
|
||||||
|
// Passwords match, generate JWT token
|
||||||
|
const secretKey = process.env.TOKEN_HEADER_KEY;
|
||||||
|
const tokenPayload = {
|
||||||
|
email:userRecord.email,
|
||||||
|
role: userRecord.type,
|
||||||
|
iat: Math.floor(Date.now() / 1000),
|
||||||
|
exp: Math.floor(Date.now() / 1000) + 3600*24*7,
|
||||||
|
|
||||||
|
};
|
||||||
|
const jwtToken = jwt.sign(tokenPayload, secretKey, { algorithm: 'HS256' });
|
||||||
|
const jwtTokenData ={
|
||||||
|
data:{
|
||||||
|
access_token:jwtToken,
|
||||||
|
role: userRecord.type,
|
||||||
|
email: userRecord.email,
|
||||||
|
expires: 3600*24*7,
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Return the JWT token
|
||||||
|
res.status(200).json(jwtTokenData);
|
||||||
|
console.log(jwtToken);
|
||||||
|
} else {
|
||||||
|
console.log('Invalid password');
|
||||||
|
res.status(400).json({err:'400P'});
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
res.status(400).json({err:'400U'});
|
||||||
|
console.log('User not found');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close the database connection
|
||||||
|
db.close();
|
||||||
});
|
});
|
||||||
|
|
||||||
// res.status(200).json({ name: 'John Doe' });
|
// res.status(200).json({ name: 'John Doe' });
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ export default function addSchoolForm() {
|
|||||||
country: event.target.country.value,
|
country: event.target.country.value,
|
||||||
state: event.target.state.value,
|
state: event.target.state.value,
|
||||||
cities: event.target.cities.value,
|
cities: event.target.cities.value,
|
||||||
annual: event.target.annual.value,
|
anual: event.target.anual.value,
|
||||||
toddlers: event.target.toddlers.value,
|
toddlers: event.target.toddlers.value,
|
||||||
early_start_programme: event.target.early_start_programme.value,
|
early_start_programme: event.target.early_start_programme.value,
|
||||||
interakto: event.target.interakto.value,
|
interakto: event.target.interakto.value,
|
||||||
@@ -100,8 +100,8 @@ export default function addSchoolForm() {
|
|||||||
<input type="text" value={school.school_contact_number} onChange={e => setSchool(e.target.value)} name="school_contact_number" />
|
<input type="text" value={school.school_contact_number} onChange={e => setSchool(e.target.value)} name="school_contact_number" />
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-col w-full pt-4'>
|
<div className='flex flex-col w-full pt-4'>
|
||||||
<label htmlFor="annual" className='text-xl font-bold'>annual</label>
|
<label htmlFor="anual" className='text-xl font-bold'>Anual</label>
|
||||||
<input type="text" value={school.annual} onChange={e => setSchool(e.target.value)} />
|
<input type="text" value={school.anual} onChange={e => setSchool(e.target.value)} />
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-col w-full pt-4'>
|
<div className='flex flex-col w-full pt-4'>
|
||||||
<label htmlFor="toddlers" className='text-xl font-bold'>Toddlers</label>
|
<label htmlFor="toddlers" className='text-xl font-bold'>Toddlers</label>
|
||||||
|
|||||||
@@ -1,48 +1,59 @@
|
|||||||
import {useId, useState, useEffect, useMemo} from 'react';
|
import NavBar from '../components/NavBar'
|
||||||
|
import { useId, useState, useEffect, useMemo } from 'react';
|
||||||
import 'react-phone-number-input/style.css'
|
import 'react-phone-number-input/style.css'
|
||||||
import NavBar from '../components/NavBar';
|
|
||||||
import { useRouter } from 'next/router'
|
import { useRouter } from 'next/router'
|
||||||
|
|
||||||
export default function editSchool() {
|
|
||||||
|
export default function addSchoolForm() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
|
const uploadToServer = async (event) => {
|
||||||
|
const body = new FormData();
|
||||||
|
body.append("file", agreement.files[0]);
|
||||||
|
body.append("fName", `${router.query.school}.pdf`);
|
||||||
|
const response = await fetch("/api/fileUpload", {
|
||||||
|
method: "POST",
|
||||||
|
body
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const [school, setSchool] = useState({});
|
const [school, setSchool] = useState({});
|
||||||
|
|
||||||
useEffect(()=>{
|
useEffect(()=>{
|
||||||
if(router.query.school && router.query.school>0 ){
|
// if(router.query.school<1) {
|
||||||
console.log(router.query);
|
// const { sid } = router.query;
|
||||||
fetch(`/api/getSchoolDetails?school=${router.query.school}`)
|
// setSchool(sid)
|
||||||
.then(res => res.json())
|
if(router.query.school && router.query.school>1 ){
|
||||||
.then(data => {
|
fetch(`https://management.beanstalkedu.com/items/school/${router.query.school}`)
|
||||||
console.log(data);
|
.then(res => res.json())
|
||||||
setSchool(data[0])
|
.then(data => {
|
||||||
// console.log(school)
|
console.log(router.query.school); setSchool(data.data)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
}, [router.query.school]);
|
|
||||||
|
|
||||||
const updateSchoolData = async (event) => {
|
}, [router.query.school]);
|
||||||
|
|
||||||
|
const handleSubmit = async (event) => {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
const data = {
|
const data = {
|
||||||
schoolId: router.query.school,
|
"status":"published",
|
||||||
sname: event.target.sname.value,
|
name: event.target.schoolName.value,
|
||||||
status: event.target.status.value,
|
|
||||||
country: event.target.country.value,
|
country: event.target.country.value,
|
||||||
state: event.target.state.value,
|
state: event.target.state.value,
|
||||||
city: event.target.city.value,
|
cities: event.target.cities.value,
|
||||||
annual: event.target.annual.value,
|
anual: event.target.anual.value,
|
||||||
toddlers: event.target.toddlers.value,
|
toddlers: event.target.toddlers.value,
|
||||||
early_start_programme: event.target.early_start_programme.value,
|
early_start_programme: event.target.early_start_programme.value,
|
||||||
interakto: event.target.interakto.value,
|
interakto: event.target.interakto.value,
|
||||||
agg_expiry: event.target.agg_expiry.value,
|
agreement_expiry_date: event.target.agreement_expiry_date.value,
|
||||||
usage_expiry: event.target.usage_expiry.value,
|
school_agreement: event.target.school_agreement.value,
|
||||||
phone: event.target.phone.value,
|
school_contact_number: event.target.school_contact_number.value,
|
||||||
email: event.target.email.value,
|
school_email_id: event.target.school_email_id.value,
|
||||||
|
|
||||||
}
|
}
|
||||||
const JSONdata = JSON.stringify(data)
|
const JSONdata = JSON.stringify(data)
|
||||||
console.log(data)
|
console.log(data)
|
||||||
const endpoint = '/api/editSchool'
|
const endpoint = 'https://management.beanstalkedu.com/items/school'
|
||||||
const options = {
|
const options = {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
@@ -54,106 +65,101 @@ export default function editSchool() {
|
|||||||
|
|
||||||
const result = await response.json()
|
const result = await response.json()
|
||||||
// alert(`Is this your full name: ${result.data}`)
|
// alert(`Is this your full name: ${result.data}`)
|
||||||
alert(`User data updated`)
|
alert(`School Saved`)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
|
||||||
<main>
|
return (
|
||||||
<div>
|
<main>
|
||||||
<NavBar/>
|
<div>
|
||||||
<section className='container mx-auto px-4 my-16 lg:px-28 xl:px-56 2xl:px-96'>
|
<NavBar />
|
||||||
<div
|
<section className='container mx-auto px-4 my-16 lg:px-28 xl:px-56 2xl:px-96'>
|
||||||
className='flex flex-col justify-center place-items-center bg-[#FFF6F2] pt-6 pb-20 rounded-tl-[50px] rounded-br-[50px]'>
|
<div className='flex flex-col justify-center place-items-center bg-[#FFF6F2] pt-6 pb-20 rounded-tl-[50px] rounded-br-[50px]'>
|
||||||
<div className='inline-flex p-4 '>
|
<div className='flex flex-col justify-center place-items-center'>
|
||||||
<a href="/add-school-form" className="m-2 inline-flex place-items-center justify-center p-2 pl-4 pr-4 bg-[#FE4501] text-white font-bold rounded-full whitespace-nowrap">
|
<img src="/img/1.svg" alt="" />
|
||||||
<img src="/img/4.svg" alt="" />
|
<p className='text-2xl md:text-4xl font-bold underline decoration-4 decoration-[#FE4501] pb-10'>School Registration Form</p>
|
||||||
List Users Under This School
|
</div>
|
||||||
</a>
|
<form className='w-full px-6 md:px-20'>
|
||||||
<div className="place-items-center justify-center m-2 p-2 bg-[#FE4501] text-white font-bold rounded-full whitespace-nowrap">
|
<div className='flex flex-col w-full'>
|
||||||
<span className="text-small">CSV Upload </span>
|
<label htmlFor="school" className='text-xl font-bold'>School Name</label>
|
||||||
<input type="file" />
|
<input type="text" value={school.name} onChange={e => setSchool(e.target.value)} name="schoolName" placeholder='School Name' className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
||||||
</div>
|
</div>
|
||||||
{/* <img src="/img/2.svg" alt=""/> */}
|
<div className='flex flex-col w-full pt-4'>
|
||||||
|
<label htmlFor="school_email_id" className='text-xl font-bold'> Email ID</label>
|
||||||
</div>
|
<input type="text" value={school.school_email_id} onChange={e => setSchool(e.target.value)} name="school_email_id" id="school_email_id" placeholder='School Email ID' className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
||||||
<p className='text-2xl font-bold underline decoration-4 decoration-[#FE4501] pb-10'>Update School Information </p>
|
</div>
|
||||||
<form onSubmit={updateSchoolData} action="" className='w-full px-6 md:px-20'>
|
<div className='flex flex-col w-full'>
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="sname" className='text-xl font-bold'>School Name</label>
|
|
||||||
<input value={school.sname} onChange={e => setSchool(e.target.value)} type="text" name="sname" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="status" className='text-xl font-bold'>Status</label>
|
|
||||||
<input value={school.status} onChange={e => setSchool(e.target.value)} type="text" name="status" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="phone" className='text-xl font-bold'>School contact Number</label>
|
|
||||||
<input value={school.phone} onChange={e => setSchool(e.target.value)} type="text" name="phone" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="email" className='text-xl font-bold'> School contact Email ID</label>
|
|
||||||
<input value={school.email} onChange={e => setSchool(e.target.value)} type="text" name="email" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="country" className='text-xl font-bold'>Country</label>
|
<label htmlFor="country" className='text-xl font-bold'>Country</label>
|
||||||
<input value={school.country} onChange={e => setSchool(e.target.value)} type="text" name="country" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
<input type="text" value={school.country} onChange={e => setSchool(e.target.value)} name="country" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-col w-full'>
|
<div className='flex flex-col w-full'>
|
||||||
<label htmlFor="state" className='text-xl font-bold'>State</label>
|
<label htmlFor="state" className='text-xl font-bold'>State</label>
|
||||||
<input value={school.state} onChange={e => setSchool(e.target.value)} type="text" name="state" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
<input type="text" value={school.state} onChange={e => setSchool(e.target.value)} name="state" />
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="city" className='text-xl font-bold'>Cities</label>
|
|
||||||
<input value={school.city} onChange={e => setSchool(e.target.value)} type="text" name="city" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="annual" className='text-xl font-bold'>Annual</label>
|
|
||||||
<input value={school.annual} onChange={e => setSchool(e.target.value)} type="text" name="annual" placeholder='' className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'/>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="toddlers" className='text-xl font-bold'>Toddlers</label>
|
|
||||||
<input value={school.toddlers} onChange={e => setSchool(e.target.value)} type="text" name="toddlers" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="early_start_programme" className='text-xl font-bold'>Early Start Program</label>
|
|
||||||
<input value={school.early_start_programme} onChange={e => setSchool(e.target.value)} type="text" name="early_start_programme" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="interakto" className='text-xl font-bold'>Interakto</label>
|
|
||||||
<input value={school.interakto} onChange={e => setSchool(e.target.value)} type="text" name="interakto" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="usage_expiry" className='text-xl font-bold'> Usage Expiry Date: (YYYY-MM-DD)</label>
|
|
||||||
<input value={school.usage_expiry} onChange={e => setSchool(e.target.value)} type="text" name="usage_expiry" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="agg_expiry" className='text-xl font-bold'> Agreement Expiry Date: (YYYY-MM-DD)</label>
|
|
||||||
<input value={school.agg_expiry} onChange={e => setSchool(e.target.value)} type="text" name="agg_expiry" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
</div>
|
||||||
<div className='flex justify-center pt-8'>
|
<div className='flex flex-col w-full'>
|
||||||
<button type="submit"
|
<label htmlFor="Cities" className='text-xl font-bold'>Cities</label>
|
||||||
className='bg-[#FE4501] hover:shadow-2xl hover:shadow-[#F2B705] p-2.5 rounded-lg px-10 rounded-tl-full rounded-br-full hover:scale-110 active:scale-75 duration-200 text-xl font-bold text-white cursor-pointer'>Update
|
<input type="text" value={school.cities} onChange={e => setSchool(e.target.value)} name="cities" />
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
<div className='flex flex-col w-full'>
|
||||||
</div>
|
<label htmlFor="school_contact_number" className='text-xl font-bold'> Phone</label>
|
||||||
|
<input type="text" value={school.school_contact_number} onChange={e => setSchool(e.target.value)} name="school_contact_number" />
|
||||||
|
</div>
|
||||||
|
<div className='flex flex-col w-full pt-4'>
|
||||||
|
<label htmlFor="anual" className='text-xl font-bold'>Anual</label>
|
||||||
|
<input type="text" value={school.anual} onChange={e => setSchool(e.target.value)} />
|
||||||
|
</div>
|
||||||
|
<div className='flex flex-col w-full pt-4'>
|
||||||
|
<label htmlFor="toddlers" className='text-xl font-bold'>Toddlers</label>
|
||||||
|
<input type="text" name="toddlers" value={school.toddlers} onChange={e => setSchool(e.target.value)} />
|
||||||
|
</div>
|
||||||
|
<div className='flex flex-col w-full pt-4'>
|
||||||
|
<label htmlFor="early_start_programme" className='text-xl font-bold'>Early Start Program</label>
|
||||||
|
<input type="text" name="early_start_programme" value={school.early_start_programme} onChange={e => setSchool(e.target.value)} />
|
||||||
|
</div>
|
||||||
|
<div className='flex flex-col w-full pt-4'>
|
||||||
|
<label htmlFor="interakto" className='text-xl font-bold'>Interakto</label>
|
||||||
|
<input type="text" name="interakto" value={school.interakto} onChange={e => setSchool(e.target.value)} />
|
||||||
|
</div>
|
||||||
|
<div className='flex flex-col w-full'>
|
||||||
|
<label htmlFor="agreement_expiry_date" className='text-xl font-bold pt-4'>Agreement Expiry Date</label>
|
||||||
|
<input type="date" name="agreement_expiry_date" value={school.agreement_expiry_date} onChange={e => setSchool(e.target.value)} id="agreement_expiry_date" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
||||||
|
</div>
|
||||||
|
{/* <div className='flex flex-col w-full'>
|
||||||
|
<label htmlFor="agreement_expiry_date" className='text-xl font-bold pt-4'>Upload Agreement</label>
|
||||||
|
<input type="file" name="agreement_expiry_date" />
|
||||||
|
</div> */}
|
||||||
|
{/* <div className='flex justify-center pt-8'>
|
||||||
|
<input type="submit" value="Save" className='bg-[#FE4501] hover:shadow-2xl hover:shadow-[#F2B705] p-2.5 rounded-lg px-10 rounded-tl-full rounded-br-full hover:scale-110 active:scale-75 duration-200 text-xl font-bold text-white cursor-pointer' />
|
||||||
|
</div> */}
|
||||||
|
</form>
|
||||||
|
|
||||||
<div className='flex flex-col w-full'>
|
<div class="flex pt-6">
|
||||||
<label htmlFor="agreement_documents" className='text-xl font-bold'>Upload Agreement Document's</label>
|
<div class="flex-1 ">
|
||||||
<input onChange={e => setSchool(e.target.value)} type="file" name="agreement_documents" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
<input id="agreement" type="file" name="myImage" onChange={uploadToServer} />
|
||||||
<div className='flex justify-end pt-2'>
|
{/* <button
|
||||||
<button className=' bg-[#FE4501] px-4 py-1.5 rounded-lg text-white'>Download Agreement</button>
|
className="rounded-full bg-[#FE4501] p-2 text-white"
|
||||||
|
type="submit"
|
||||||
|
onClick={uploadToServer}
|
||||||
|
>
|
||||||
|
Upload Agreement
|
||||||
|
</button> */}
|
||||||
|
</div>
|
||||||
|
<div class="flex-1 ">
|
||||||
|
<a href={'/uploaded/'+router.query.school+'.pdf'}><button
|
||||||
|
className="rounded-full bg-[#FE4501] p-2 text-white"
|
||||||
|
type="submit"
|
||||||
|
onClick={uploadToServer}
|
||||||
|
>
|
||||||
|
Download Agreement
|
||||||
|
</button></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
</main>
|
||||||
</div>
|
)
|
||||||
|
}
|
||||||
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,167 +0,0 @@
|
|||||||
import NavBar from '../components/NavBar'
|
|
||||||
import { useId, useState, useEffect, useMemo } from 'react';
|
|
||||||
import 'react-phone-number-input/style.css'
|
|
||||||
import { useRouter } from 'next/router'
|
|
||||||
|
|
||||||
|
|
||||||
export default function addSchoolForm() {
|
|
||||||
const router = useRouter();
|
|
||||||
|
|
||||||
const uploadToServer = async (event) => {
|
|
||||||
const body = new FormData();
|
|
||||||
body.append("file", agreement.files[0]);
|
|
||||||
body.append("fName", `${router.query.school}.pdf`);
|
|
||||||
const response = await fetch("/api/fileUpload", {
|
|
||||||
method: "POST",
|
|
||||||
body
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const [school, setSchool] = useState({});
|
|
||||||
|
|
||||||
useEffect(()=>{
|
|
||||||
// if(router.query.school<1) {
|
|
||||||
// const { sid } = router.query;
|
|
||||||
// setSchool(sid)
|
|
||||||
if(router.query.school && router.query.school>1 ){
|
|
||||||
fetch(`https://management.beanstalkedu.com/items/school/${router.query.school}`)
|
|
||||||
.then(res => res.json())
|
|
||||||
.then(data => {
|
|
||||||
// console.log(router.query.school);
|
|
||||||
setSchool(data.data)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
}, [router.query.school]);
|
|
||||||
// console.log(setSchool)
|
|
||||||
|
|
||||||
const handleSubmit = async (event) => {
|
|
||||||
event.preventDefault()
|
|
||||||
const data = {
|
|
||||||
"status":"published",
|
|
||||||
name: event.target.schoolName.value,
|
|
||||||
country: event.target.country.value,
|
|
||||||
state: event.target.state.value,
|
|
||||||
cities: event.target.cities.value,
|
|
||||||
annual: event.target.annual.value,
|
|
||||||
toddlers: event.target.toddlers.value,
|
|
||||||
early_start_programme: event.target.early_start_programme.value,
|
|
||||||
interakto: event.target.interakto.value,
|
|
||||||
agreement_expiry_date: event.target.agreement_expiry_date.value,
|
|
||||||
school_agreement: event.target.school_agreement.value,
|
|
||||||
school_contact_number: event.target.school_contact_number.value,
|
|
||||||
school_email_id: event.target.school_email_id.value,
|
|
||||||
|
|
||||||
}
|
|
||||||
const JSONdata = JSON.stringify(data)
|
|
||||||
console.log(data)
|
|
||||||
const endpoint = 'https://management.beanstalkedu.com/items/school'
|
|
||||||
const options = {
|
|
||||||
method: 'POST',
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
},
|
|
||||||
body: JSONdata,
|
|
||||||
}
|
|
||||||
const response = await fetch(endpoint, options)
|
|
||||||
|
|
||||||
const result = await response.json()
|
|
||||||
// alert(`Is this your full name: ${result.data}`)
|
|
||||||
alert(`School Saved`)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
|
||||||
<main>
|
|
||||||
<div>
|
|
||||||
<NavBar />
|
|
||||||
<section className='container mx-auto px-4 my-16 lg:px-28 xl:px-56 2xl:px-96'>
|
|
||||||
<div className='flex flex-col justify-center place-items-center bg-[#FFF6F2] pt-6 pb-20 rounded-tl-[50px] rounded-br-[50px]'>
|
|
||||||
<div className='flex flex-col justify-center place-items-center'>
|
|
||||||
<img src="/img/1.svg" alt="" />
|
|
||||||
<p className='text-2xl md:text-4xl font-bold underline decoration-4 decoration-[#FE4501] pb-10'>Update School Information</p>
|
|
||||||
</div>
|
|
||||||
<form className='w-full px-6 md:px-20'>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="school" className='text-xl font-bold'>School Name</label>
|
|
||||||
<input type="text" value={school.name} onChange={e => setSchool(e.target.value)} name="schoolName" placeholder='School Name' className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="school_email_id" className='text-xl font-bold'> Email ID</label>
|
|
||||||
<input type="text" value={school.school_email_id} onChange={e => setSchool(e.target.value)} name="school_email_id" id="school_email_id" placeholder='School Email ID' className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="country" className='text-xl font-bold'>Country</label>
|
|
||||||
<input className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' type="text" value={school.country} onChange={e => setSchool(e.target.value)} name="country" />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="state" className='text-xl font-bold'>State</label>
|
|
||||||
<input type="text" value={school.state} onChange={e => setSchool(e.target.value)} name="state" className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="Cities" className='text-xl font-bold'>Cities</label>
|
|
||||||
<input type="text" value={school.cities} onChange={e => setSchool(e.target.value)} name="cities" className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'/>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="school_contact_number" className='text-xl font-bold'> Phone</label>
|
|
||||||
<input type="text" value={school.school_contact_number} onChange={e => setSchool(e.target.value)} name="school_contact_number" className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="annual" className='text-xl font-bold'>annual</label>
|
|
||||||
<input type="text" value={school.annual} onChange={e => setSchool(e.target.value)} className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="toddlers" className='text-xl font-bold'>Toddlers</label>
|
|
||||||
<input type="text" name="toddlers" value={school.toddlers} onChange={e => setSchool(e.target.value)} className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="early_start_programme" className='text-xl font-bold'>Early Start Program</label>
|
|
||||||
<input type="text" name="early_start_programme" value={school.early_start_programme} onChange={e => setSchool(e.target.value)} className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="interakto" className='text-xl font-bold'>Interakto</label>
|
|
||||||
<input type="text" name="interakto" value={school.interakto} onChange={e => setSchool(e.target.value)} className='border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="agreement_expiry_date" className='text-xl font-bold pt-4'>Agreement Expiry Date</label>
|
|
||||||
<input type="date" name="agreement_expiry_date" value={school.agreement_expiry_date} onChange={e => setSchool(e.target.value)} id="agreement_expiry_date" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
{/* <div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="agreement_expiry_date" className='text-xl font-bold pt-4'>Upload Agreement</label>
|
|
||||||
<input type="file" name="agreement_expiry_date" />
|
|
||||||
</div> */}
|
|
||||||
{/* <div className='flex justify-center pt-8'>
|
|
||||||
<input type="submit" value="Save" className='bg-[#FE4501] hover:shadow-2xl hover:shadow-[#F2B705] p-2.5 rounded-lg px-10 rounded-tl-full rounded-br-full hover:scale-110 active:scale-75 duration-200 text-xl font-bold text-white cursor-pointer' />
|
|
||||||
</div> */}
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<div class="flex pt-6">
|
|
||||||
<div class="flex-1 ">
|
|
||||||
<input id="agreement" type="file" name="myImage" onChange={uploadToServer} />
|
|
||||||
{/* <button
|
|
||||||
className="rounded-full bg-[#FE4501] p-2 text-white"
|
|
||||||
type="submit"
|
|
||||||
onClick={uploadToServer}
|
|
||||||
>
|
|
||||||
Upload Agreement
|
|
||||||
</button> */}
|
|
||||||
</div>
|
|
||||||
<div class="flex-1 ">
|
|
||||||
<a href={'/uploaded/'+router.query.school+'.pdf'}><button
|
|
||||||
className="rounded-full bg-[#FE4501] p-2 text-white"
|
|
||||||
type="submit"
|
|
||||||
onClick={uploadToServer}
|
|
||||||
>
|
|
||||||
Download Agreement
|
|
||||||
</button></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -1,182 +0,0 @@
|
|||||||
import {useId, useState, useEffect, useMemo} from 'react';
|
|
||||||
import 'react-phone-number-input/style.css'
|
|
||||||
import NavBar from '../components/NavBar';
|
|
||||||
import { useRouter } from 'next/router'
|
|
||||||
|
|
||||||
export default function editUser() {
|
|
||||||
const router = useRouter();
|
|
||||||
|
|
||||||
// const updateUserData = async (event) => {
|
|
||||||
// const body = new FormData();
|
|
||||||
// body.append("file", agreement.files[0]);
|
|
||||||
// body.append("fName", `${router.query.school}.pdf`);
|
|
||||||
// const response = await fetch("/api/updateUserDetails", {
|
|
||||||
// method: "POST",
|
|
||||||
// body
|
|
||||||
// });
|
|
||||||
// };
|
|
||||||
|
|
||||||
const [user, setUser] = useState({});
|
|
||||||
|
|
||||||
useEffect(()=>{
|
|
||||||
// console.log(router.query);
|
|
||||||
// if(router.query.school<1) {
|
|
||||||
// const { sid } = router.query;
|
|
||||||
// setSchool(sid)
|
|
||||||
if(router.query.user && router.query.user>0 ){
|
|
||||||
fetch(`/api/getUserDetails?user=${router.query.user}`)
|
|
||||||
.then(res => res.json())
|
|
||||||
.then(data => {
|
|
||||||
// console.log(data);
|
|
||||||
setUser(data[0])
|
|
||||||
// console.log(user)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
}, [router.query.user]);
|
|
||||||
|
|
||||||
const updateUserData = async (event) => {
|
|
||||||
event.preventDefault()
|
|
||||||
const data = {
|
|
||||||
userId: router.query.user,
|
|
||||||
type: event.target.type.value,
|
|
||||||
status: event.target.status.value,
|
|
||||||
uname: event.target.uname.value,
|
|
||||||
country: event.target.country.value,
|
|
||||||
state: event.target.state.value,
|
|
||||||
city: event.target.city.value,
|
|
||||||
address: event.target.address.value,
|
|
||||||
start_date: event.target.start_date.value,
|
|
||||||
end_date: event.target.end_date.value,
|
|
||||||
school: event.target.school.value,
|
|
||||||
annual: event.target.annual.value,
|
|
||||||
toddlers: event.target.toddlers.value,
|
|
||||||
early_start_programme: event.target.early_start_programme.value,
|
|
||||||
interakto: event.target.interakto.value,
|
|
||||||
email: event.target.email.value,
|
|
||||||
phone: event.target.phone.value,
|
|
||||||
klas: event.target.klas.value
|
|
||||||
}
|
|
||||||
const JSONdata = JSON.stringify(data)
|
|
||||||
// console.log(data)
|
|
||||||
const endpoint = '/api/editUser'
|
|
||||||
const options = {
|
|
||||||
method: 'POST',
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
},
|
|
||||||
body: JSONdata,
|
|
||||||
}
|
|
||||||
const response = await fetch(endpoint, options)
|
|
||||||
// .then(res => res.json())
|
|
||||||
// .then(data => {
|
|
||||||
// console.log(data);
|
|
||||||
// // setUser(data[0])
|
|
||||||
// // console.log(user)
|
|
||||||
// })
|
|
||||||
|
|
||||||
const result = await response.json()
|
|
||||||
console.log(result)
|
|
||||||
// alert(`Is this your full name: ${result.data}`)
|
|
||||||
alert(`User data updated`)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<main>
|
|
||||||
<div>
|
|
||||||
<NavBar/>
|
|
||||||
<section className='container mx-auto px-4 my-16 lg:px-28 xl:px-56 2xl:px-96'>
|
|
||||||
<div
|
|
||||||
className='flex flex-col justify-center place-items-center bg-[#FFF6F2] pt-6 pb-20 rounded-tl-[50px] rounded-br-[50px]'>
|
|
||||||
<div className='flex flex-col justify-center place-items-center'>
|
|
||||||
<img src="/img/2.svg" alt=""/>
|
|
||||||
<p className='text-2xl md:text-4xl font-bold underline decoration-4 decoration-[#FE4501] pb-10'>Update User Information </p>
|
|
||||||
</div>
|
|
||||||
<form onSubmit={updateUserData} action="" className='w-full px-6 md:px-20'>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="class" className='text-xl font-bold'>Type</label>
|
|
||||||
<input value={user.type} onChange={e => setUser(e.target.value)} type="text" name="type" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="name" className='text-xl font-bold'> Name</label>
|
|
||||||
<input value={user.uname} onChange={e => setUser(e.target.value)} type="text" name="uname" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="status" className='text-xl font-bold'> Status</label>
|
|
||||||
<input value={user.status} onChange={e => setUser(e.target.value)} type="text" name="status" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="start_date" className='text-xl font-bold'> Start Date (YYYY-MM-DD) </label>
|
|
||||||
<input value={user.start_date} onChange={e => setUser(e.target.value)} type="text" name="start_date" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="end_date" className='text-xl font-bold'> End Date (YYYY-MM-DD)</label>
|
|
||||||
<input value={user.end_date} onChange={e => setUser(e.target.value)} type="text" name="end_date" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="email" className='text-xl font-bold'>Email</label>
|
|
||||||
<input value={user.email} onChange={e => setUser(e.target.value)} type="email" name="email" placeholder='ex. xyz@email.com' className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'/>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="phone" className='text-xl font-bold'> Phone</label>
|
|
||||||
<input value={user.phone} onChange={e => setUser(e.target.value)} type="text" name="phone" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="country" className='text-xl font-bold'>Country</label>
|
|
||||||
<input value={user.country} onChange={e => setUser(e.target.value)} type="text" name="country" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="state" className='text-xl font-bold'> State</label>
|
|
||||||
<input value={user.state} onChange={e => setUser(e.target.value)} type="text" name="state" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="city" className='text-xl font-bold'> City</label>
|
|
||||||
<input value={user.city} onChange={e => setUser(e.target.value)} type="text" name="city" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="address" className='text-xl font-bold'> Address Line-1</label>
|
|
||||||
<input value={user.address} onChange={e => setUser(e.target.value)} type="text" name="address" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
{/* <div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="address" className='text-xl font-bold'> Address Line-2</label>
|
|
||||||
<input value={user.address} onChange={e => setUser(e.target.value)} type="text" name="address" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div> */}
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="" className='text-xl font-bold'>School ID</label>
|
|
||||||
<input value={user.school} onChange={e => setUser(e.target.value)} type="text" name="school" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="klas" className='text-xl font-bold'>Class</label>
|
|
||||||
<input value={user.klas} onChange={e => setUser(e.target.value)} type="text" name="klas" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="annual" className='text-xl font-bold'>annual</label>
|
|
||||||
<input value={user.annual} onChange={e => setUser(e.target.value)} type="text" name="annual" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="early_start_programme" className='text-xl font-bold'>Early Start Programme</label>
|
|
||||||
<input value={user.early_start_programme} onChange={e => setUser(e.target.value)} type="text" name="early_start_programme" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="toddlers" className='text-xl font-bold'>Toddlers</label>
|
|
||||||
<input value={user.toddlers} onChange={e => setUser(e.target.value)} type="text" name="toddlers" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="interakto" className='text-xl font-bold'>Interakto</label>
|
|
||||||
<input value={user.interakto} onChange={e => setUser(e.target.value)} type="text" name="interakto" className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className='flex justify-center pt-8'>
|
|
||||||
<button type="submit"
|
|
||||||
className='bg-[#FE4501] hover:shadow-2xl hover:shadow-[#F2B705] p-2.5 rounded-lg px-10 rounded-tl-full rounded-br-full hover:scale-110 active:scale-75 duration-200 text-xl font-bold text-white cursor-pointer'>Update
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -1,402 +0,0 @@
|
|||||||
// https://management.beanstalkedu.com/items/school
|
|
||||||
// import React from 'react';
|
|
||||||
import {useId, useState, useEffect, useMemo} from 'react';
|
|
||||||
import Select from 'react-select'
|
|
||||||
import countryList from 'react-select-country-list'
|
|
||||||
import 'react-phone-number-input/style.css'
|
|
||||||
import PhoneInput from 'react-phone-number-input'
|
|
||||||
import NavBar from '../components/NavBar';
|
|
||||||
import { useRouter } from 'next/router'
|
|
||||||
// import { Inter } from 'next/font/google'
|
|
||||||
|
|
||||||
const typeParent = "parent"
|
|
||||||
|
|
||||||
export default function addUserForm() {
|
|
||||||
|
|
||||||
const router = useRouter();
|
|
||||||
|
|
||||||
const [allLanguage, setLanguage] = useState([
|
|
||||||
{lang: "Assamese", value: false},
|
|
||||||
{lang: "Bengali", value: false},
|
|
||||||
{lang: "English", value: false},
|
|
||||||
{lang: "Hindi", value: false},
|
|
||||||
{lang: "Telegu", value: false},
|
|
||||||
{lang: "Punjabi", value: false},
|
|
||||||
{lang: "Malayalam", value: false},
|
|
||||||
{lang: "Tamil", value: false},
|
|
||||||
{lang: "Kannada", value: false},
|
|
||||||
{lang: "Gujrati", value: false},
|
|
||||||
])
|
|
||||||
// console.log(allLanguage)
|
|
||||||
const [currentType, setCurrentType] = useState(typeParent)
|
|
||||||
const [countryValue, setCountryValue] = useState('')
|
|
||||||
const options = useMemo(() => countryList().getData(), [])
|
|
||||||
const [phoneValue, setphoneValue] = useState()
|
|
||||||
let [individualValue = true, setindividualValue] = useState()
|
|
||||||
|
|
||||||
const [allStates, setAllStates] = useState([])
|
|
||||||
const [allCities, setAllCities] = useState([])
|
|
||||||
|
|
||||||
const handleSelectAllStates = stateCode => {
|
|
||||||
setAllCities([])
|
|
||||||
fetch(`https://api.siliconpin.com/v3/list/country/city/?country=${countryValue.value}&state=${stateCode.value}`)
|
|
||||||
.then(res => res.json())
|
|
||||||
.then(data => {
|
|
||||||
// console.log("handleSelectAllStates:", data, options)
|
|
||||||
let newData = data && data.length > 0 && data.map(n => {
|
|
||||||
return {
|
|
||||||
label: n.name,
|
|
||||||
value: n.name
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
setAllCities(newData)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const selectCountry = countryValue => {
|
|
||||||
setAllStates([])
|
|
||||||
fetch(`https://api.siliconpin.com/v3/list/country/state/?country=${countryValue.value}`).then(res => res.json())
|
|
||||||
.then(data => {
|
|
||||||
console.log("countryValue:", data, options)
|
|
||||||
let newData = data && data.length > 0 && data.map(n => {
|
|
||||||
return {
|
|
||||||
label: n.name,
|
|
||||||
value: n.iso2
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
setAllStates(newData)
|
|
||||||
setAllCities([])
|
|
||||||
})
|
|
||||||
|
|
||||||
setCountryValue(countryValue)
|
|
||||||
}
|
|
||||||
|
|
||||||
const individual = (event) => {
|
|
||||||
// console.log(event.target.schoolID.value)
|
|
||||||
|
|
||||||
setindividualValue(individualValue = false)
|
|
||||||
}
|
|
||||||
const [school, setSchool] = useState(null);
|
|
||||||
useEffect(() => {
|
|
||||||
fetch(`https://management.beanstalkedu.com/items/school`)
|
|
||||||
.then(res => res.json())
|
|
||||||
.then(data => {
|
|
||||||
setSchool(data)
|
|
||||||
|
|
||||||
})
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
const [user, setUser] = useState({});
|
|
||||||
|
|
||||||
useEffect(()=>{
|
|
||||||
if(router.query.user && router.query.user>1){
|
|
||||||
fetch(`/api/listUsers/${router.query.user}`)
|
|
||||||
.then(res => res.json())
|
|
||||||
.then(data => {
|
|
||||||
setUser(data)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[router.query.user]);
|
|
||||||
console.log(user)
|
|
||||||
|
|
||||||
const handleFormsubmit = async (event) => {
|
|
||||||
event.preventDefault()
|
|
||||||
console.log(event.target.lang.checked)
|
|
||||||
const data = {
|
|
||||||
"status": "published",
|
|
||||||
type: event.target.type.value,
|
|
||||||
uname: event.target.uname.value,
|
|
||||||
country: event.target.country.value,
|
|
||||||
state: event.target.state.value ? event.target.state.value:"",
|
|
||||||
city: event.target.city.value ? event.target.city.value:"",
|
|
||||||
phone: event.target.phone.value,
|
|
||||||
email: event.target.email.value,
|
|
||||||
school: event.target.schoolID.value,
|
|
||||||
klas: event.target.klas.value,
|
|
||||||
lang: allLanguage,
|
|
||||||
start_month: event.target.start_month.value,
|
|
||||||
start_date: event.target.start_date.value,
|
|
||||||
end_date: event.target.end_date.value,
|
|
||||||
annual: event.target.annual.value,
|
|
||||||
early_start_programme: event.target.early_start_programme.value,
|
|
||||||
toddlers: event.target.toddlers.value,
|
|
||||||
interakto: event.target.interakto.value,
|
|
||||||
}
|
|
||||||
const JSONdata = JSON.stringify(data)
|
|
||||||
const endpoint = '/api/addUsers'
|
|
||||||
const options = {
|
|
||||||
method: 'POST',
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
},
|
|
||||||
body: JSONdata,
|
|
||||||
}
|
|
||||||
const response = await fetch(endpoint, options)
|
|
||||||
const result = await response.json()
|
|
||||||
// console.log(result)
|
|
||||||
// alert(`Is this your full name: ${result}`)
|
|
||||||
}
|
|
||||||
const handleOnLanguageChange = (e, v) => {
|
|
||||||
let idx = allLanguage.findIndex(o => o.lang === e.target.value);
|
|
||||||
let newAllLang = [...allLanguage]
|
|
||||||
newAllLang[idx].value = true
|
|
||||||
// console.log(newAllLang)
|
|
||||||
|
|
||||||
if ([typeParent, "teacher"].includes(currentType)) {
|
|
||||||
let counter = 0
|
|
||||||
newAllLang.forEach((n, idx) => {
|
|
||||||
if (n.value) {
|
|
||||||
counter++
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if (counter >= 2) {
|
|
||||||
newAllLang.forEach((n, idx) => {
|
|
||||||
newAllLang[idx].disabled = true
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
setLanguage(newAllLang)
|
|
||||||
}
|
|
||||||
const handleTypeOnChange = (e) => {
|
|
||||||
let newAllLang = [...allLanguage]
|
|
||||||
newAllLang.forEach((n, idx) => {
|
|
||||||
newAllLang[idx].value = false
|
|
||||||
newAllLang[idx].disabled = false
|
|
||||||
})
|
|
||||||
const { name, checked } = e.target;
|
|
||||||
setLanguage({ ...allLanguage, [name]: checked });
|
|
||||||
|
|
||||||
// setLanguage(newAllLang)
|
|
||||||
setCurrentType(e.target.value)
|
|
||||||
}
|
|
||||||
return (
|
|
||||||
<main>
|
|
||||||
<div>
|
|
||||||
<NavBar/>
|
|
||||||
<section className='container mx-auto px-4 my-16 lg:px-28 xl:px-56 2xl:px-96'>
|
|
||||||
<div
|
|
||||||
className='flex flex-col justify-center place-items-center bg-[#FFF6F2] pt-6 pb-20 rounded-tl-[50px] rounded-br-[50px]'>
|
|
||||||
<div className='flex flex-col justify-center place-items-center'>
|
|
||||||
<img src="/img/2.svg" alt=""/>
|
|
||||||
<p className='text-2xl md:text-4xl font-bold underline decoration-4 decoration-[#FE4501] pb-10'>Update User Information </p>
|
|
||||||
</div>
|
|
||||||
<form onSubmit={handleFormsubmit} action="" className='w-full px-6 md:px-20'>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="class" className='text-xl font-bold'>Type</label>
|
|
||||||
<input type="text" value="wvgfbhvwhvf" name="type" onChange={handleTypeOnChange} className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' />
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="name" className='text-xl font-bold'> Name</label>
|
|
||||||
<input type="text" name="uname"
|
|
||||||
className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'
|
|
||||||
placeholder='Enter your Name'/>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="email" className='text-xl font-bold'>Email</label>
|
|
||||||
<input type="email" name="email" placeholder='ex. xyz@email.com'
|
|
||||||
className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'/>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="country" className='text-xl font-bold'>Country</label>
|
|
||||||
<Select
|
|
||||||
className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'
|
|
||||||
name="country" instanceId={useId()} options={options} value={countryValue}
|
|
||||||
onChange={selectCountry}/>
|
|
||||||
</div>
|
|
||||||
{allStates && allStates.length > 0 &&
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="state" className='text-xl font-bold'>State</label>
|
|
||||||
<Select
|
|
||||||
className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'
|
|
||||||
name="state" options={allStates} value={allStates[0].name}
|
|
||||||
onChange={handleSelectAllStates}/>
|
|
||||||
</div>}
|
|
||||||
{
|
|
||||||
allCities && allCities.length > 0 &&
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="city" className='text-xl font-bold'>City</label>
|
|
||||||
<Select
|
|
||||||
className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'
|
|
||||||
name="city" options={allCities} value={allCities[0].name}
|
|
||||||
// onChange={() => {}}
|
|
||||||
/>
|
|
||||||
</div>}
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="phone" className='text-xl font-bold'> Phone</label>
|
|
||||||
<PhoneInput
|
|
||||||
className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'
|
|
||||||
name="phone" placeholder="Enter phone number" value={phoneValue}
|
|
||||||
onChange={setphoneValue}/>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="" className='text-xl font-bold'>School name</label>
|
|
||||||
<select name="schoolID" onChange={individual}
|
|
||||||
className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
|
||||||
<option value="0"> individual</option>
|
|
||||||
{school && school.data.map(data =>
|
|
||||||
<option value={data.id} key={data.id}>{data.name}</option>
|
|
||||||
)}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="class" className='text-xl font-bold'>Class</label>
|
|
||||||
<select name="klas"
|
|
||||||
className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
|
||||||
<option value="0">-Select-</option>
|
|
||||||
<option value="IK1">IK1</option>
|
|
||||||
<option value="IK2">IK2</option>
|
|
||||||
<option value="IK3">IK3</option>
|
|
||||||
<option value="PG">PG</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
{individualValue &&
|
|
||||||
<div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="annual" className='text-xl font-bold'>annual</label>
|
|
||||||
<select name="annual" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
|
||||||
<option value="0">-NA-</option>
|
|
||||||
<option value="Jan">Jan</option>
|
|
||||||
<option value="Feb">Feb</option>
|
|
||||||
<option value="Mar">Mar</option>
|
|
||||||
<option value="Apr">Apr</option>
|
|
||||||
<option value="May">May</option>
|
|
||||||
<option value="Jun">Jun</option>
|
|
||||||
<option value="Jul">Jul</option>
|
|
||||||
<option value="Aug">Aug</option>
|
|
||||||
<option value="Sept">Sept</option>
|
|
||||||
<option value="Oct">Oct</option>
|
|
||||||
<option value="Nov">Nov</option>
|
|
||||||
<option value="Dec">Dec</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="early_start_programme" className='text-xl font-bold'>Early Start Programme</label>
|
|
||||||
<select name="early_start_programme" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
|
||||||
<option value="0">-NA-</option>
|
|
||||||
<option value="Jan">Jan</option>
|
|
||||||
<option value="Feb">Feb</option>
|
|
||||||
<option value="Mar">Mar</option>
|
|
||||||
<option value="Apr">Apr</option>
|
|
||||||
<option value="May">May</option>
|
|
||||||
<option value="Jun">Jun</option>
|
|
||||||
<option value="Jul">Jul</option>
|
|
||||||
<option value="Aug">Aug</option>
|
|
||||||
<option value="Sept">Sept</option>
|
|
||||||
<option value="Oct">Oct</option>
|
|
||||||
<option value="Nov">Nov</option>
|
|
||||||
<option value="Dec">Dec</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="toddlers" className='text-xl font-bold'>Toddlers</label>
|
|
||||||
<select name="toddlers" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
|
||||||
<option value="0">-NA-</option>
|
|
||||||
<option value="Jan">Jan</option>
|
|
||||||
<option value="Feb">Feb</option>
|
|
||||||
<option value="Mar">Mar</option>
|
|
||||||
<option value="Apr">Apr</option>
|
|
||||||
<option value="May">May</option>
|
|
||||||
<option value="Jun">Jun</option>
|
|
||||||
<option value="Jul">Jul</option>
|
|
||||||
<option value="Aug">Aug</option>
|
|
||||||
<option value="Sept">Sept</option>
|
|
||||||
<option value="Oct">Oct</option>
|
|
||||||
<option value="Nov">Nov</option>
|
|
||||||
<option value="Dec">Dec</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="interakto" className='text-xl font-bold'>Interakto</label>
|
|
||||||
<select name="interakto" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
|
||||||
<option value="0">-NA-</option>
|
|
||||||
<option value="Jan">Jan</option>
|
|
||||||
<option value="Feb">Feb</option>
|
|
||||||
<option value="Mar">Mar</option>
|
|
||||||
<option value="Apr">Apr</option>
|
|
||||||
<option value="May">May</option>
|
|
||||||
<option value="Jun">Jun</option>
|
|
||||||
<option value="Jul">Jul</option>
|
|
||||||
<option value="Aug">Aug</option>
|
|
||||||
<option value="Sept">Sept</option>
|
|
||||||
<option value="Oct">Oct</option>
|
|
||||||
<option value="Nov">Nov</option>
|
|
||||||
<option value="Dec">Dec</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="lang" className='text-xl font-bold'>Language</label>
|
|
||||||
<div className='grid grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-y-2 pt-2'>
|
|
||||||
{/* <label className='cursor-pointer' htmlFor="Assamese"> Assamese </label> <input type="checkbox" name="lang" value="Assamese" className='check-box'/> <br />
|
|
||||||
<label className='cursor-pointer' htmlFor="Bengali"> Bengali </label> <input type="checkbox" name="lang" value="Bengali" className='check-box'/> <br />
|
|
||||||
<label className='cursor-pointer' htmlFor="English"> English </label> <input type="checkbox" name="lang" value="English" className='check-box'/> <br />
|
|
||||||
<label className='cursor-pointer' htmlFor="Hindi"> Hindi </label> <input type="checkbox" name="lang" value="Hindi" className='check-box'/> <br />
|
|
||||||
<label className='cursor-pointer' htmlFor="Telegu"> Telegu </label> <input type="checkbox" name="lang" value="Telegu" className='check-box'/> <br />
|
|
||||||
<label className='cursor-pointer' htmlFor="Punjabi"> Punjabi </label> <input type="checkbox" name="lang" value="Punjabi" className='check-box'/> <br />
|
|
||||||
<label className='cursor-pointer' htmlFor="Malayalam"> Malayalam </label> <input type="checkbox" name="lang" value="Malayalam" className='check-box'/> <br />
|
|
||||||
<label className='cursor-pointer' htmlFor="Tamil"> Tamil </label> <input type="checkbox" name="lang" value="Tamil" className='check-box'/> <br />
|
|
||||||
<label className='cursor-pointer' htmlFor="Kannada"> Kannada </label> <input type="checkbox" name="lang" value="Kannada" className='check-box'/> <br />
|
|
||||||
<label className='cursor-pointer' htmlFor="Gujrati"> Gujrati </label> <input type="checkbox" name="lang" value="Gujrati" className='check-box'/> <br /> */}
|
|
||||||
{allLanguage && allLanguage.length && allLanguage.map(n => {
|
|
||||||
return (
|
|
||||||
<div key={n.lang} className=''>
|
|
||||||
<label className='cursor-pointer'
|
|
||||||
htmlFor="assamese">{n.lang}</label>
|
|
||||||
<input type="checkbox" disabled={n.disabled} name="lang" value={n.lang} checked={n.value}
|
|
||||||
onChange={handleOnLanguageChange}
|
|
||||||
className='check-box'/>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
})}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full pt-4'>
|
|
||||||
<label htmlFor="start_month" className='text-xl font-bold'>Start Month</label>
|
|
||||||
<select name="start_month" id="start_month" className='bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
|
||||||
<option value="0">-Select-</option>
|
|
||||||
<option value="Jan"> Jan</option>
|
|
||||||
<option value="Feb"> Feb</option>
|
|
||||||
<option value="Mar"> Mar</option>
|
|
||||||
<option value="Apr"> Apr</option>
|
|
||||||
<option value="May"> May</option>
|
|
||||||
<option value="Jun"> Jun</option>
|
|
||||||
<option value="Jul"> Jul</option>
|
|
||||||
<option value="Aug"> Aug</option>
|
|
||||||
<option value="Sept"> Sept</option>
|
|
||||||
<option value="Nov"> Nov</option>
|
|
||||||
<option value="Dec"> Dec</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="start_date" className='text-xl font-bold pt-4'>Start
|
|
||||||
Date</label>
|
|
||||||
<input type="date" name="start_date" id="start_date"
|
|
||||||
className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'/>
|
|
||||||
</div>
|
|
||||||
<div className='flex flex-col w-full'>
|
|
||||||
<label htmlFor="end_date" className='text-xl font-bold pt-4'>Subscription Expiry
|
|
||||||
Date.</label>
|
|
||||||
<input type="date" name="end_date" id="end_date"
|
|
||||||
className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
<div className='flex justify-center pt-8'>
|
|
||||||
<button type="submit"
|
|
||||||
className='bg-[#FE4501] hover:shadow-2xl hover:shadow-[#F2B705] p-2.5 rounded-lg px-10 rounded-tl-full rounded-br-full hover:scale-110 active:scale-75 duration-200 text-xl font-bold text-white cursor-pointer'>Update
|
|
||||||
</button>
|
|
||||||
{/* <input type="submit" value="Submit Now" className='bg-[#FE4501] hover:shadow-2xl hover:shadow-[#F2B705] p-2.5 rounded-lg px-10 rounded-tl-full rounded-br-full hover:scale-110 active:scale-75 duration-200 text-xl font-bold text-white cursor-pointer' /> */}
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -58,7 +58,7 @@ export default function addSchoolForm() {
|
|||||||
country: event.target.country.value,
|
country: event.target.country.value,
|
||||||
state: event.target.state.value,
|
state: event.target.state.value,
|
||||||
cities: event.target.cities.value,
|
cities: event.target.cities.value,
|
||||||
annual: event.target.annual.value,
|
anual: event.target.anual.value,
|
||||||
toddlers: event.target.toddlers.value,
|
toddlers: event.target.toddlers.value,
|
||||||
early_start_programme: event.target.early_start_programme.value,
|
early_start_programme: event.target.early_start_programme.value,
|
||||||
interakto: event.target.interakto.value,
|
interakto: event.target.interakto.value,
|
||||||
@@ -150,8 +150,8 @@ export default function addSchoolForm() {
|
|||||||
<PhoneInput className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' name="phone" placeholder="Enter phone number" value={phoneValue} onChange={setphoneValue}/>
|
<PhoneInput className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' name="phone" placeholder="Enter phone number" value={phoneValue} onChange={setphoneValue}/>
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-col w-full pt-4'>
|
<div className='flex flex-col w-full pt-4'>
|
||||||
<label htmlFor="annual" className='text-xl font-bold'>annual</label>
|
<label htmlFor="anual" className='text-xl font-bold'>Anual</label>
|
||||||
<select name="annual" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
<select name="anual" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
||||||
<option value="0" >-NA-</option>
|
<option value="0" >-NA-</option>
|
||||||
<option value="January">January</option>
|
<option value="January">January</option>
|
||||||
<option value="February">February</option>
|
<option value="February">February</option>
|
||||||
|
|||||||
@@ -5,11 +5,11 @@ import { Inter } from 'next/font/google'
|
|||||||
const inter = Inter({ subsets: ['latin'] })
|
const inter = Inter({ subsets: ['latin'] })
|
||||||
import NavBar from '../../components/NavBar'
|
import NavBar from '../../components/NavBar'
|
||||||
export default function Modal() {
|
export default function Modal() {
|
||||||
const [school, setSchool] = useState([]);
|
const [school, setUser] = useState([]);
|
||||||
const fetchData = async () => {
|
const fetchData = async () => {
|
||||||
const response = await fetch("/api/listSchlools");
|
const response = await fetch("https://management.beanstalkedu.com/items/school?filter[status][_eq]=published");
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
return setSchool(data);
|
return setUser(data.data);
|
||||||
}
|
}
|
||||||
console.log(school)
|
console.log(school)
|
||||||
|
|
||||||
@@ -22,29 +22,22 @@ const fetchData = async () => {
|
|||||||
<div>
|
<div>
|
||||||
<NavBar />
|
<NavBar />
|
||||||
<section className='container mx-auto px-4 mt-16'>
|
<section className='container mx-auto px-4 mt-16'>
|
||||||
<div className="flex flex-row justify-end bg-[#FFF6F2] p-2 gap-x-4 border-x-2 border-t-2 rounded-t-xl">
|
<div className="flex justify-end bg-[#FFF6F2] p-2 border-x-2 border-t-2 rounded-t-xl ">
|
||||||
<div className="flex flex-row justify-center place-items-center">
|
<a href="/add-school-form" className=" inline-flex place-items-center p-2">
|
||||||
<input type="text" className="md:w-32 md:focus:w-96 duration-[1s] border-2 border-[#FE4501] w-full rounded-l-full p-2 focus:outline-none focus:border-[#F2B705] bg-[#FFF6F2] focus:bg-white text-center" placeholder="Search School" />
|
<img src="/img/3.svg" alt="" />Add School</a>
|
||||||
<a href="" className="bg-[#FE4501] rounded-r-full p-2 px-4 border-2 border-[#FE4501] text-white font-bold ">
|
</div>
|
||||||
<svg width="24px" height="24px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="#ffffff"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path fill="#ffffff" fill-rule="evenodd" d="M4 9a5 5 0 1110 0A5 5 0 014 9zm5-7a7 7 0 104.2 12.6.999.999 0 00.093.107l3 3a1 1 0 001.414-1.414l-3-3a.999.999 0 00-.107-.093A7 7 0 009 2z"></path> </g></svg>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
{/* <a href="/add-school-form" className="inline-flex place-items-center justify-center p-2 bg-[#FE4501] text-white font-bold rounded-full whitespace-nowrap">
|
|
||||||
<svg width="20px" height="20px" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#ffffff"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path d="M7.5 4.5L11.5 6.5V14.5H3.5V6.5L7.5 4.5ZM7.5 4.5V0M0 14.5H15M1.5 14.5V8.5H3.5M13.5 14.5V8.5H11.5M6.5 14.5V11.5H8.5V14.5M7.5 0.5H10.5V2.5H7.5M7.5 9.5C6.94772 9.5 6.5 9.05228 6.5 8.5C6.5 7.94772 6.94772 7.5 7.5 7.5C8.05228 7.5 8.5 7.94772 8.5 8.5C8.5 9.05228 8.05228 9.5 7.5 9.5Z" stroke="#ffffff"></path> </g></svg>
|
|
||||||
Add School
|
|
||||||
</a> */}
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div className='flex xl:justify-center overflow-x-scroll pb-4 w-full'>
|
<div className='flex xl:justify-center overflow-x-scroll pb-4 w-full'>
|
||||||
<table className=" text-center border-x-2 border-b-2 p-2 w-full">
|
<table className=" text-center border-x-2 border-b-2 p-2 w-full">
|
||||||
<thead className=''>
|
<thead className=''>
|
||||||
<tr className='bg-[#FFF6F2] text-[#1D1D1D] text-xl whitespace-nowrap'>
|
<tr className='bg-[#FFF6F2] text-[#1D1D1D] text-xl whitespace-nowrap'>
|
||||||
<th className=" p-2">ID</th>
|
<th className=" p-2">ID</th>
|
||||||
<th className=" p-2"> Name</th>
|
<th className=" p-2">School Name</th>
|
||||||
<th className=" p-2">City</th>
|
<th className=" p-2">Country</th>
|
||||||
|
<th className=" p-2">Anual</th>
|
||||||
|
<th className=" p-2">Early Start Program</th>
|
||||||
|
<th className=" p-2">Toddlers</th>
|
||||||
|
<th className=" p-2">Interakto</th>
|
||||||
<th className=" p-2">Status</th>
|
<th className=" p-2">Status</th>
|
||||||
<th className=" p-2">Expiry</th>
|
|
||||||
<th className=" p-2 inline-flex"> <img src="/img/3.svg" alt="" />Edit</th>
|
<th className=" p-2 inline-flex"> <img src="/img/3.svg" alt="" />Edit</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -52,14 +45,14 @@ const fetchData = async () => {
|
|||||||
{school.map(data=>
|
{school.map(data=>
|
||||||
<tr className="border-b-2 whitespace-normal">
|
<tr className="border-b-2 whitespace-normal">
|
||||||
<td className=" p-2">{data.id}</td>
|
<td className=" p-2">{data.id}</td>
|
||||||
<td className=" p-2">{data.sname}</td>
|
<td className=" p-2">{data.name}</td>
|
||||||
<td className="p-2">{data.city}</td>
|
<td className="p-2">{data.country}</td>
|
||||||
|
<td className="p-2">{data.anual}</td>
|
||||||
|
<td className="p-2">{data.early_start_programme}</td>
|
||||||
|
<td className="p-2">{data.toddlers}</td>
|
||||||
|
<td className="p-2">{data.interakto}</td>
|
||||||
<td className="p-2">{data.status}</td>
|
<td className="p-2">{data.status}</td>
|
||||||
<td className="p-2">{data.usage_expiry}</td>
|
<td className="p-2"><a href={'/edit-school?school='+data.id}>Edit</a> </td>
|
||||||
<td className="p-2">
|
|
||||||
<a href={'/edit-school?school='+data.id} className="flex justify-center place-items-center">
|
|
||||||
<svg width="35px" height="35px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#166435"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path opacity="0.15" d="M8 16H12L18 10L14 6L8 12V16Z" fill="#166435"></path> <path d="M14 6L8 12V16H12L18 10M14 6L17 3L21 7L18 10M14 6L18 10M10 4L4 4L4 20L20 20V14" stroke="#166435" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> </g></svg></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
)}
|
)}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ export default function addSchoolForm() {
|
|||||||
country: event.target.country.value,
|
country: event.target.country.value,
|
||||||
state: event.target.state.value,
|
state: event.target.state.value,
|
||||||
cities: event.target.cities.value,
|
cities: event.target.cities.value,
|
||||||
annual: event.target.annual.value,
|
anual: event.target.anual.value,
|
||||||
toddlers: event.target.toddlers.value,
|
toddlers: event.target.toddlers.value,
|
||||||
early_start_programme: event.target.early_start_programme.value,
|
early_start_programme: event.target.early_start_programme.value,
|
||||||
interakto: event.target.interakto.value,
|
interakto: event.target.interakto.value,
|
||||||
@@ -150,8 +150,8 @@ export default function addSchoolForm() {
|
|||||||
<PhoneInput className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' name="phone" placeholder="Enter phone number" value={phoneValue} onChange={setphoneValue}/>
|
<PhoneInput className=' border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]' name="phone" placeholder="Enter phone number" value={phoneValue} onChange={setphoneValue}/>
|
||||||
</div>
|
</div>
|
||||||
<div className='flex flex-col w-full pt-4'>
|
<div className='flex flex-col w-full pt-4'>
|
||||||
<label htmlFor="annual" className='text-xl font-bold'>annual</label>
|
<label htmlFor="anual" className='text-xl font-bold'>Anual</label>
|
||||||
<select name="annual" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
<select name="anual" className=' bg-white border-2 border-[#FE4501] p-2 rounded-md focus:outline-none focus:border-2 focus:border-[#F2B705]'>
|
||||||
<option value="0" >-NA-</option>
|
<option value="0" >-NA-</option>
|
||||||
<option value="January">January</option>
|
<option value="January">January</option>
|
||||||
<option value="February">February</option>
|
<option value="February">February</option>
|
||||||
|
|||||||
@@ -1,91 +0,0 @@
|
|||||||
import React, { useEffect, useState } from "react";
|
|
||||||
|
|
||||||
import Image from 'next/image'
|
|
||||||
import { Inter } from 'next/font/google'
|
|
||||||
const inter = Inter({ subsets: ['latin'] })
|
|
||||||
import NavBar from '../components/NavBar'
|
|
||||||
export default function Modal() {
|
|
||||||
const [user, setUser] = useState([]);
|
|
||||||
const fetchData = async () => {
|
|
||||||
const response = await fetch("/api/listUsers");
|
|
||||||
const data = await response.json();
|
|
||||||
// console.log(data)
|
|
||||||
return setUser(data);
|
|
||||||
}
|
|
||||||
// console.log(user)
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
fetchData();
|
|
||||||
},[])
|
|
||||||
|
|
||||||
return (
|
|
||||||
<main>
|
|
||||||
<div>
|
|
||||||
<NavBar />
|
|
||||||
<section className='container mx-auto px-4 mt-16'>
|
|
||||||
<div className="flex flex-row justify-end bg-[#FFF6F2] p-2 gap-x-4 border-x-2 border-t-2 rounded-t-xl">
|
|
||||||
<div className="flex flex-row justify-center place-items-center">
|
|
||||||
<input type="text" className="md:w-32 md:focus:w-96 duration-[1s] border-2 border-[#FE4501] w-full rounded-l-full p-2 focus:outline-none focus:border-[#F2B705] bg-[#FFF6F2] focus:bg-white text-center" placeholder="Search User" />
|
|
||||||
<a href="" className="bg-[#FE4501] rounded-r-full p-2 px-4 border-2 border-[#FE4501] text-white font-bold ">
|
|
||||||
<svg className="hover:scale-110 active:scale-75 duration-300" width="24px" height="24px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="#ffffff"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path fill="#ffffff" fill-rule="evenodd" d="M4 9a5 5 0 1110 0A5 5 0 014 9zm5-7a7 7 0 104.2 12.6.999.999 0 00.093.107l3 3a1 1 0 001.414-1.414l-3-3a.999.999 0 00-.107-.093A7 7 0 009 2z"></path> </g></svg>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<a href="/add-user-form" className="inline-flex place-items-center p-2 bg-[#FE4501] text-white font-bold rounded-full whitespace-nowrap">
|
|
||||||
<svg className="font-bold" width="25px" height="25px" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" fill="#ffffff" stroke="#ffffff"><g id="SVGRepo_bgCarrier" stroke-width="2"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g fill="none" fill-rule="evenodd" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" transform="translate(3 2)"> <path d="m7.5.5c1.65685425 0 3 1.34314575 3 3v2c0 1.65685425-1.34314575 3-3 3s-3-1.34314575-3-3v-2c0-1.65685425 1.34314575-3 3-3z"></path> <path d="m14.5 2.5v4"></path> <path d="m16.5 4.5h-4"></path> <path d="m14.5 14.5v-.7281753c0-3.1864098-3.6862915-5.2718247-7-5.2718247s-7 2.0854149-7 5.2718247v.7281753c0 .5522847.44771525 1 1 1h12c.5522847 0 1-.4477153 1-1z"></path> </g> </g></svg>
|
|
||||||
Add User
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div className='flex overflow-x-scroll xl:justify-center'>
|
|
||||||
<table className=" text-center border-2 p-2 w-full">
|
|
||||||
<thead className=''>
|
|
||||||
<tr className='bg-[#FFF6F2] text-[#1D1D1D] text-xl whitespace-nowrap'>
|
|
||||||
<th className="border-x-2 p-4">Name</th>
|
|
||||||
<th className="border-x-2 p-4">Mobile</th>
|
|
||||||
<th className="border-x-2 p-4">Email</th>
|
|
||||||
<th className="border-x-2 p-4">School Name</th>
|
|
||||||
<th className="border-x-2 p-4">User Type</th>
|
|
||||||
<th className="border-x-2 p-4">Start Date</th>
|
|
||||||
<th className="border-x-2 p-4">End Date</th>
|
|
||||||
<th className="border-x-2 p-4">Action</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{user.map
|
|
||||||
(data=>
|
|
||||||
<tr className="border-b-2 whitespace-normal text-left">
|
|
||||||
<td className="border-x-2 p-2 text-center">{data.uname}</td>
|
|
||||||
<td className="border-x-2 p-2 text-center">{data.phone}</td>
|
|
||||||
<td className="border-x-2 p-2 text-center">{data.email}</td>
|
|
||||||
<td className="border-x-2 p-2 text-center">{data.school}</td>
|
|
||||||
<td className="border-x-2 p-2 text-center">{data.type}</td>
|
|
||||||
<td className="border-x-2 p-2 text-center">{data.start_date}</td>
|
|
||||||
<td className="border-x-2 p-2 text-center">{data.end_date}</td>
|
|
||||||
<td>
|
|
||||||
<div className="flex flex-row justify-center place-items-center">
|
|
||||||
<div className="flex justify-center">
|
|
||||||
<a href={'/edit-user/?user='+data.id} className="px-2 py-1 rounded-md">
|
|
||||||
<svg width="35px" height="35px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#166435"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path opacity="0.15" d="M8 16H12L18 10L14 6L8 12V16Z" fill="#166435"></path> <path d="M14 6L8 12V16H12L18 10M14 6L17 3L21 7L18 10M14 6L18 10M10 4L4 4L4 20L20 20V14" stroke="#166435" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> </g></svg>
|
|
||||||
{/* <p className="text-[16px] text-green-800">Edit</p> */}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div className="flex justify-center">
|
|
||||||
<button className=" text-white px-2 py-1 rounded-md">
|
|
||||||
<svg width="35px" height="35px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#991b1b"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path d="M10 12V17" stroke="#991b1b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M14 12V17" stroke="#991b1b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M4 7H20" stroke="#991b1b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M6 10V18C6 19.6569 7.34315 21 9 21H15C16.6569 21 18 19.6569 18 18V10" stroke="#991b1b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M9 5C9 3.89543 9.89543 3 11 3H13C14.1046 3 15 3.89543 15 5V7H9V5Z" stroke="#991b1b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </g></svg>
|
|
||||||
{/* <p className="text-[16px] text-red-800">Delete</p> */}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
)
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
|
|
||||||
import Image from 'next/image'
|
import Image from 'next/image'
|
||||||
import { Inter } from 'next/font/google'
|
import { Inter } from 'next/font/google'
|
||||||
const inter = Inter({ subsets: ['latin'] })
|
const inter = Inter({ subsets: ['latin'] })
|
||||||
@@ -9,7 +8,7 @@ export default function Modal() {
|
|||||||
const fetchData = async () => {
|
const fetchData = async () => {
|
||||||
const response = await fetch("/api/listUsers");
|
const response = await fetch("/api/listUsers");
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
// console.log(data)
|
console.log(data)
|
||||||
return setUser(data);
|
return setUser(data);
|
||||||
}
|
}
|
||||||
// console.log(user)
|
// console.log(user)
|
||||||
@@ -23,15 +22,9 @@ const fetchData = async () => {
|
|||||||
<div>
|
<div>
|
||||||
<NavBar />
|
<NavBar />
|
||||||
<section className='container mx-auto px-4 mt-16'>
|
<section className='container mx-auto px-4 mt-16'>
|
||||||
<div className="flex flex-row justify-end bg-[#FFF6F2] p-2 gap-x-4 border-x-2 border-t-2 rounded-t-xl">
|
<div className="flex justify-end bg-[#FFF6F2] p-2 border-x-2 border-t-2 rounded-t-xl">
|
||||||
<div className="flex flex-row justify-center place-items-center">
|
<a href="/add-user-form" className=" inline-flex place-items-center p-2">
|
||||||
<input type="text" className="md:w-32 md:focus:w-96 duration-[1s] border-2 border-[#FE4501] w-full rounded-l-full p-2 focus:outline-none focus:border-[#F2B705] bg-[#FFF6F2] focus:bg-white text-center" placeholder="Search User" />
|
<svg width="20px" height="20px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path fill-rule="evenodd" clip-rule="evenodd" d="M21.1213 2.70705C19.9497 1.53548 18.0503 1.53547 16.8787 2.70705L15.1989 4.38685L7.29289 12.2928C7.16473 12.421 7.07382 12.5816 7.02986 12.7574L6.02986 16.7574C5.94466 17.0982 6.04451 17.4587 6.29289 17.707C6.54127 17.9554 6.90176 18.0553 7.24254 17.9701L11.2425 16.9701C11.4184 16.9261 11.5789 16.8352 11.7071 16.707L19.5556 8.85857L21.2929 7.12126C22.4645 5.94969 22.4645 4.05019 21.2929 2.87862L21.1213 2.70705ZM18.2929 4.12126C18.6834 3.73074 19.3166 3.73074 19.7071 4.12126L19.8787 4.29283C20.2692 4.68336 20.2692 5.31653 19.8787 5.70705L18.8622 6.72357L17.3068 5.10738L18.2929 4.12126ZM15.8923 6.52185L17.4477 8.13804L10.4888 15.097L8.37437 15.6256L8.90296 13.5112L15.8923 6.52185ZM4 7.99994C4 7.44766 4.44772 6.99994 5 6.99994H10C10.5523 6.99994 11 6.55223 11 5.99994C11 5.44766 10.5523 4.99994 10 4.99994H5C3.34315 4.99994 2 6.34309 2 7.99994V18.9999C2 20.6568 3.34315 21.9999 5 21.9999H16C17.6569 21.9999 19 20.6568 19 18.9999V13.9999C19 13.4477 18.5523 12.9999 18 12.9999C17.4477 12.9999 17 13.4477 17 13.9999V18.9999C17 19.5522 16.5523 19.9999 16 19.9999H5C4.44772 19.9999 4 19.5522 4 18.9999V7.99994Z" fill="#1d1d1d"></path> </g></svg>
|
||||||
<a href="" className="bg-[#FE4501] rounded-r-full p-2 px-4 border-2 border-[#FE4501] text-white font-bold ">
|
|
||||||
<svg className="hover:scale-110 active:scale-75 duration-300" width="24px" height="24px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" fill="none" stroke="#ffffff"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path fill="#ffffff" fill-rule="evenodd" d="M4 9a5 5 0 1110 0A5 5 0 014 9zm5-7a7 7 0 104.2 12.6.999.999 0 00.093.107l3 3a1 1 0 001.414-1.414l-3-3a.999.999 0 00-.107-.093A7 7 0 009 2z"></path> </g></svg>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<a href="/add-user-form" className="inline-flex place-items-center p-2 bg-[#FE4501] text-white font-bold rounded-full whitespace-nowrap">
|
|
||||||
<svg className="font-bold" width="25px" height="25px" viewBox="0 0 21 21" xmlns="http://www.w3.org/2000/svg" fill="#ffffff" stroke="#ffffff"><g id="SVGRepo_bgCarrier" stroke-width="2"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g fill="none" fill-rule="evenodd" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" transform="translate(3 2)"> <path d="m7.5.5c1.65685425 0 3 1.34314575 3 3v2c0 1.65685425-1.34314575 3-3 3s-3-1.34314575-3-3v-2c0-1.65685425 1.34314575-3 3-3z"></path> <path d="m14.5 2.5v4"></path> <path d="m16.5 4.5h-4"></path> <path d="m14.5 14.5v-.7281753c0-3.1864098-3.6862915-5.2718247-7-5.2718247s-7 2.0854149-7 5.2718247v.7281753c0 .5522847.44771525 1 1 1h12c.5522847 0 1-.4477153 1-1z"></path> </g> </g></svg>
|
|
||||||
Add User
|
Add User
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -39,46 +32,31 @@ const fetchData = async () => {
|
|||||||
<table className=" text-center border-2 p-2 w-full">
|
<table className=" text-center border-2 p-2 w-full">
|
||||||
<thead className=''>
|
<thead className=''>
|
||||||
<tr className='bg-[#FFF6F2] text-[#1D1D1D] text-xl whitespace-nowrap'>
|
<tr className='bg-[#FFF6F2] text-[#1D1D1D] text-xl whitespace-nowrap'>
|
||||||
<th className="border-x-2 p-4">Name</th>
|
<th className="border-x-2 p-4">user Name</th>
|
||||||
<th className="border-x-2 p-4">Mobile</th>
|
|
||||||
<th className="border-x-2 p-4">Email</th>
|
|
||||||
<th className="border-x-2 p-4">School Name</th>
|
<th className="border-x-2 p-4">School Name</th>
|
||||||
<th className="border-x-2 p-4">User Type</th>
|
<th className="border-x-2 p-4">User Type</th>
|
||||||
|
<th className="border-x-2 p-4">Plan</th>
|
||||||
|
<th className="border-x-2 p-4">Class</th>
|
||||||
|
<th className="border-x-2 p-4">Language</th>
|
||||||
|
{/* <th className="border-x-2 p-4">Year</th> */}
|
||||||
<th className="border-x-2 p-4">Start Date</th>
|
<th className="border-x-2 p-4">Start Date</th>
|
||||||
<th className="border-x-2 p-4">End Date</th>
|
<th className="border-x-2 p-4">End Date</th>
|
||||||
<th className="border-x-2 p-4">Action</th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{user.map
|
{user.map(data=>
|
||||||
(data=>
|
<tr className="border-b-2 whitespace-normal text-left">
|
||||||
<tr className="border-b-2 whitespace-normal text-left">
|
<td className="border-x-2 p-2">{data.user}</td>
|
||||||
<td className="border-x-2 p-2 text-center">{data.uname}</td>
|
<td className="border-x-2 p-2">{data.school}</td>
|
||||||
<td className="border-x-2 p-2 text-center">{data.phone}</td>
|
<td className="border-x-2 p-2 text-center">{data.type}</td>
|
||||||
<td className="border-x-2 p-2 text-center">{data.email}</td>
|
<td className="border-x-2 p-2 text-center">{data.plan}</td>
|
||||||
<td className="border-x-2 p-2 text-center">{data.school}</td>
|
<td className="border-x-2 p-2 text-center">{data.class}</td>
|
||||||
<td className="border-x-2 p-2 text-center">{data.type}</td>
|
<td className="border-x-2 p-2 text-center">{data.lang}</td>
|
||||||
<td className="border-x-2 p-2 text-center">{data.start_date}</td>
|
{/* <td className="border-x-2 p-2">{data.year}</td> */}
|
||||||
<td className="border-x-2 p-2 text-center">{data.end_date}</td>
|
<td className="border-x-2 p-2 text-center">{data.start_date}</td>
|
||||||
<td>
|
<td className="border-x-2 p-2 text-center">{data.end_date}</td>
|
||||||
<div className="flex flex-row justify-center place-items-center">
|
</tr>
|
||||||
<div className="flex justify-center">
|
)}
|
||||||
<a href={'/edit-user/?user='+data.id} className="px-2 py-1 rounded-md">
|
|
||||||
<svg width="35px" height="35px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#166435"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path opacity="0.15" d="M8 16H12L18 10L14 6L8 12V16Z" fill="#166435"></path> <path d="M14 6L8 12V16H12L18 10M14 6L17 3L21 7L18 10M14 6L18 10M10 4L4 4L4 20L20 20V14" stroke="#166435" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path> </g></svg>
|
|
||||||
{/* <p className="text-[16px] text-green-800">Edit</p> */}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div className="flex justify-center">
|
|
||||||
<button className=" text-white px-2 py-1 rounded-md">
|
|
||||||
<svg width="35px" height="35px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" stroke="#991b1b"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path d="M10 12V17" stroke="#991b1b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M14 12V17" stroke="#991b1b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M4 7H20" stroke="#991b1b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M6 10V18C6 19.6569 7.34315 21 9 21H15C16.6569 21 18 19.6569 18 18V10" stroke="#991b1b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M9 5C9 3.89543 9.89543 3 11 3H13C14.1046 3 15 3.89543 15 5V7H9V5Z" stroke="#991b1b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </g></svg>
|
|
||||||
{/* <p className="text-[16px] text-red-800">Delete</p> */}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user