aadhavan
This commit is contained in:
parent
5134b8ac6a
commit
58ce2a053a
@ -1,16 +0,0 @@
|
|||||||
require('dotenv').config();
|
|
||||||
|
|
||||||
const { logMsg } = require('../services/logger');
|
|
||||||
module.exports = {
|
|
||||||
|
|
||||||
"development": {
|
|
||||||
"username": process.env.USER_NAME,
|
|
||||||
"password": process.env.PASSWORD,
|
|
||||||
"database": process.env.DATABASE,
|
|
||||||
"port": process.env.PORT,
|
|
||||||
"host": process.env.HOST,
|
|
||||||
"dialect": "mssql",
|
|
||||||
"logging": (message) =>(logMsg.info(message))
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
8
app/controllers/data.json
Normal file
8
app/controllers/data.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"email": "aadhavanvalli@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"email": "aadhavancarousell@gmail.com"
|
||||||
|
}
|
||||||
|
]
|
||||||
13
app/controllers/rosy-semiotics-399007-a9066914a24a.json
Normal file
13
app/controllers/rosy-semiotics-399007-a9066914a24a.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"type": "service_account",
|
||||||
|
"project_id": "rosy-semiotics-399007",
|
||||||
|
"private_key_id": "a9066914a24a4cf1892ec3d5e73dcbdd9e0c5690",
|
||||||
|
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDnrREnBGg7V35b\nxF4754WUdPniqyIojGO0NzThMHDzcLtu+bD7PTlkE1yYT7oUk8ncw7ogKEymuAoY\nnIvqkgEnmulva+stBIqRVVcUndhFTXB/mw4g0TfjW9MZgD4fkK+B2UpPnsWPZikf\n2zECHDTQ/mhXFlv70R8arCnsGY3dOEupdfEyO6mt2i0Z0YG1Ni8TJBdV7HvGAFt5\nsFTS/igxQYUAZQ+uIbC1NbdCgWIQdlsB83YQy2gvHXxtL+7Luyd0kK0SY1lun0bC\nJk2HsE3OWpgiyFi646eoHXuzs6J2TANVPwsLsMCxRO1EkKFRSVDGimmE0FMumbi1\nVCDHZpdPAgMBAAECggEAAMIuTQ2Lf4iGqIbUWUwlnT6IOuoKz3IIgq2vBcgCiPKm\n+CnC1bjjmBJJTMCmEnYIRJdXdhd9+MEyErH78iWFX3Jk94y1edZBrwePEklaA6Jb\n2DhA4rsxM12mdLc0M7kcsNmStG0sXY74Wu19E9/Ve0rVX3p6Z8M7Ox/7dpWSQ1W4\n00uM8j+5xAyosTiMfsPxS2fnAZTB6cXtgy0vowsHL8ffmFZWdW0kxOI2djvcXTsg\nzm2Cz0Tk8a/RVFhvithBIIhtvXBy6ECQb+WUbw1nlWbUITt9Wc9ob5L7fWsRDY9v\n3U5QmN1yTBrhyx0lidOcYDTMkeHJXLVhNSidILn/gQKBgQD/Gj7B51p8q6Ce8ERQ\ngaH67DUAZD5z69Mp+Rj4mHuCldhHM+aZs013GpeDRhOIWfBDsTiZrt6KZqoyK1zf\nD2qr68BTRcxFOk6z22tv9A5pNcU8RhN4MdwRehk9bsxLWLpF7ARXzgQHKSy2Z+WG\n3CYrQSSvTTuVHuqVlEOQ5LuEIQKBgQDofbkcyItButCzzWWl6yGYzpTyZ5CjADQu\nevxQBj6JtnB2eWZU2uuDM4YZi+UgVfqgiZ50gaOp9Tgg0O7Odq08NtnpIDiVPiYq\nCtfJZHFpQjCtQmbNQj6D9s56d7Zfkj9AceDS5gROsJ2efnylvQ4ciRvaeEN+ES9o\nXfREqA6tbwKBgQCIQr6O2ELvIMWU4AW9cuDQpObSpLjvNmH+o32BHAGtCNkTf1eH\ndczE98FCb2XziQbbQYhYHp3kE16JmbvrsdJqrmx2jmvD9pcfXu6OSDCCZiRKQ6wW\noZtJAo0E0W/yNxyYSK8xL2vbX1TwwaJKXMFOjWdI89oFlxP6fc1xUZwPwQKBgBg/\nPHYfCD8Dr86AxnAmdKuOKASb/n6xf7+1PelOrWkJaPNCOATzjApz7jFt4KidrvTd\nRXRbLOmF1KO/hphr0idshQ+GN8CA6dQKq3SqkBVtPMxlF3mixghXTjOBlrii9QvQ\nlKUKLjrSuq2T/YX/kKAzQH9peYiFXE9jNR2P9W/rAoGBAKitQDMBZ7Ov1vLsL3ZK\nhkx4cbFV9pQcjTQr62VVyNKXgq/gfwq57YnErQyRTtYVMkJT2D5cNOiiV5nwOrjT\nz34YqYb8T7jbfcdRO/QQ60wgcx5eJDeCX1gqRKMl+0PoS3l58yZ0n30eulBCUwtv\nnrO/gauaV/QcXqSEkvzU0W5s\n-----END PRIVATE KEY-----\n",
|
||||||
|
"client_email": "test-google-sheet@rosy-semiotics-399007.iam.gserviceaccount.com",
|
||||||
|
"client_id": "106850194283146982068",
|
||||||
|
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
||||||
|
"token_uri": "https://oauth2.googleapis.com/token",
|
||||||
|
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
||||||
|
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test-google-sheet%40rosy-semiotics-399007.iam.gserviceaccount.com",
|
||||||
|
"universe_domain": "googleapis.com"
|
||||||
|
}
|
||||||
@ -1,21 +1,49 @@
|
|||||||
const { sequelize,Test} = require('../models')
|
// const { sequelize,Test} = require('../models')
|
||||||
const { logMsg } = require('../services/logger.js');
|
const { logMsg } = require('../services/logger.js');
|
||||||
const { GoogleSpreadsheet } = require('google-spreadsheet');
|
const { GoogleSpreadsheet } = require('google-spreadsheet');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
// const { log } = require('util');
|
||||||
require('dotenv').config();
|
require('dotenv').config();
|
||||||
let dropdown = [];
|
let dropdown = [];
|
||||||
let column_name;
|
let column_name;
|
||||||
let doc;
|
let doc;
|
||||||
|
let CREDENTIALS;
|
||||||
// use in addRow and getRow api
|
// use in addRow and getRow api
|
||||||
let tempData = [];
|
let tempData = [];
|
||||||
|
const filePath = path.join(__dirname, 'data.json');
|
||||||
|
const datafromjson = require('./data.json');
|
||||||
|
const { log } = require('console');
|
||||||
|
// const { col } = require('sequelize');
|
||||||
|
|
||||||
|
let number; // Declare number as a global variable
|
||||||
|
|
||||||
|
async function fetchSheetData() {
|
||||||
|
try {
|
||||||
|
let sheet1 = doc.sheetsByIndex[0];
|
||||||
|
let rows1 = await sheet1.getRows();
|
||||||
|
number = rows1.length+1; // Assign the value to the global variable 'number'
|
||||||
|
|
||||||
|
// You can now use the 'number' variable as a global variable.
|
||||||
|
console.log(`Number of rows: ${number}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error fetching sheet data:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Call the async function to fetch and work with sheet data.
|
||||||
|
|
||||||
|
|
||||||
|
// You can use 'number' outside of the function.
|
||||||
|
console.log(`Global number variable: ${number}`);
|
||||||
|
|
||||||
exports.Welcome = (req, res) =>
|
exports.Welcome = (req, res) =>
|
||||||
{
|
{
|
||||||
|
// number=0;
|
||||||
|
console.log(datafromjson.length);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
const Msg = "Welcome....!";
|
const Msg = "Welcom....!";
|
||||||
console.log(Msg);
|
console.log(Msg);
|
||||||
logMsg.info("Api Call Success");
|
logMsg.info("Api Call Success");
|
||||||
res.send({'status':200 , message:"Success." ,'data': Msg});
|
res.send({'status':200 , message:"Success." ,'data': Msg});
|
||||||
@ -27,8 +55,6 @@ exports.Welcome = (req, res) =>
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exports.loginPage = async (req, res ) =>
|
exports.loginPage = async (req, res ) =>
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -40,130 +66,178 @@ exports.loginPage = async (req, res ) =>
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.adduser = async (req, res ) =>
|
||||||
|
|
||||||
exports.getRow = async (req, res) =>
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
email = req.query.email;
|
res.render( 'adduser' ,function (err, html ) { res.send(html) })
|
||||||
// arr for ejs
|
|
||||||
const empData = [];
|
|
||||||
// clear array
|
|
||||||
tempData = [];
|
|
||||||
// clear temp data
|
|
||||||
tempData = [];
|
|
||||||
await doc.loadInfo();
|
|
||||||
// Index of the sheet
|
|
||||||
let sheet = doc.sheetsByIndex[0];
|
|
||||||
// Get all the rows
|
|
||||||
let rows = await sheet.getRows();
|
|
||||||
|
|
||||||
// dropdown array for each dropdown column
|
|
||||||
category = []; age_Category = [];
|
|
||||||
basthi = []; varga = [];
|
|
||||||
milan_shaka = []; poruppu = [];
|
|
||||||
blood_group = []; ganavesh_2w_4w_basg = [];
|
|
||||||
new_index = 0;
|
|
||||||
|
|
||||||
category.push('');
|
|
||||||
age_Category.push('');
|
|
||||||
basthi.push('');
|
|
||||||
varga.push('');
|
|
||||||
milan_shaka.push('');
|
|
||||||
poruppu.push('');
|
|
||||||
blood_group.push('');
|
|
||||||
ganavesh_2w_4w_basg.push('')
|
|
||||||
|
|
||||||
for (let index = 0; index < rows.length; index++) {
|
|
||||||
const row = rows[index];
|
|
||||||
category.push(row['Çategory']);
|
|
||||||
age_Category.push(row['Age Category']);
|
|
||||||
basthi.push(row['Basthi']);
|
|
||||||
varga.push(row['Varga']);
|
|
||||||
milan_shaka.push(row['Milan / Shaka']);
|
|
||||||
poruppu.push(row['Poruppu']);
|
|
||||||
blood_group.push(row['Blood Group']);
|
|
||||||
ganavesh_2w_4w_basg.push(row['Ganavesh']);
|
|
||||||
if (index == rows.length-1) {
|
|
||||||
new_index = Number(row['Sl.']) + 1;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
dropdown =
|
|
||||||
{
|
|
||||||
"category": [...new Set(category)],
|
|
||||||
"age_Category" : [...new Set(age_Category)],
|
|
||||||
"basthi" : [...new Set(basthi)],
|
|
||||||
"varga" : [...new Set(varga)],
|
|
||||||
"milan_shaka" : [...new Set(milan_shaka)],
|
|
||||||
"poruppu" : [...new Set(poruppu)],
|
|
||||||
"blood_group" : [...new Set(blood_group)],
|
|
||||||
"ganavesh_2w_4w_basg" : [...new Set(ganavesh_2w_4w_basg)],
|
|
||||||
"new_index" : new_index
|
|
||||||
}
|
|
||||||
for (let index = 0; index < rows.length; index++) {
|
|
||||||
const row = rows[index];
|
|
||||||
// get sheet column name for dynamic insertion
|
|
||||||
if(index == 0){ column_name = row._sheet.headerValues; }
|
|
||||||
if (row.email == email) {
|
|
||||||
// store login person data from sheet because get person id that is used to match other person manager_id
|
|
||||||
var obj = {}
|
|
||||||
for (let i = 0; i < column_name.length; i++){
|
|
||||||
// get email position in dynamic array
|
|
||||||
Object.assign( obj , { [column_name[i]] : row[column_name[i]] });
|
|
||||||
}
|
|
||||||
tempData.push(obj);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if (tempData.length > 0)
|
|
||||||
{
|
|
||||||
for (let index = 0; index < rows.length; index++) {
|
|
||||||
const row = rows[index];
|
|
||||||
if (row.email == email || row.Gatnayak == tempData[0]['email'] ) {
|
|
||||||
var obj = {}
|
|
||||||
for (let i = 0; i < column_name.length; i++){
|
|
||||||
// get email position in dynamic array
|
|
||||||
Object.assign( obj , { [column_name[i]] : row[column_name[i]] });
|
|
||||||
}
|
|
||||||
empData.push(obj);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
res.render( 'displaydata' , { "data" : empData , "dropdown" : dropdown} , function (err, html ) { res.send(html) });
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
res.send('<p style="text-align:center;font-size: 4em;top: 510px;font-style:bold">No Data</p>');
|
|
||||||
}
|
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
res.send({'status':404,message: err.message || "Some error occurred while retrieving data." ,'data': "No data" });
|
res.send({'status':404,message: err.message || "Some error occurred while retrieving data." ,'data': "No data" });
|
||||||
} //end of try catch
|
} //end of try catch
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.addjson = async (req, res ) =>
|
||||||
|
|
||||||
exports.addRow = async (req, res) =>
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
newData = req.body.data;
|
|
||||||
// key value mapping
|
const getvalue = req.body.data;
|
||||||
var obj = {}
|
// console.log(req.body.data);
|
||||||
for (let i = 0; i < column_name.length; i++){
|
let newData={"email":getvalue};
|
||||||
// get email position in dynamic array
|
fs.readFile(filePath, 'utf8', (readErr, data) => {
|
||||||
Object.assign( obj , { [column_name[i]] : newData[i] });
|
if (readErr) {
|
||||||
}
|
console.error('Error reading file:', readErr);
|
||||||
let rows = [obj];
|
return;
|
||||||
// load the documents info
|
}
|
||||||
await doc.loadInfo();
|
let existingData = [];
|
||||||
// Index of the sheet
|
|
||||||
let sheet = doc.sheetsByIndex[0];
|
try {
|
||||||
for (let index = 0; index < rows.length; index++) {
|
// Parse the existing JSON data (if any)
|
||||||
const row = rows[index];
|
existingData = JSON.parse(data);
|
||||||
await sheet.addRow(row);
|
} catch (parseErr) {
|
||||||
}
|
console.error('Error parsing existing data:', parseErr);
|
||||||
if (rows[0]['Gatnayak'] == tempData[0].email ) {res.send({'status':200 , message:"Success." ,'data': "success" , 'statusCode' : 1 }); }
|
}
|
||||||
|
|
||||||
|
// Append the new data to the existing array
|
||||||
|
existingData.push(newData);
|
||||||
|
|
||||||
|
// Write the updated data back to the JSON file
|
||||||
|
fs.writeFile(filePath, JSON.stringify(existingData, null, 2), (writeErr) => {
|
||||||
|
if (writeErr) {
|
||||||
|
console.error('Error writing to file:', writeErr);
|
||||||
|
} else {
|
||||||
|
console.log('Data appended and saved to file successfully.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
if(rows[0]['Gatnayak'] == tempData[0].email ) {res.send({'status':200 , message:"Success." ,'data': "success" , 'statusCode' : 1 }); }
|
||||||
else{res.send({'status':200 , message:"Success." ,'data': "success", 'statusCode' : 0 }); }
|
else{res.send({'status':200 , message:"Success." ,'data': "success", 'statusCode' : 0 }); }
|
||||||
|
} catch(err) {
|
||||||
|
res.send({'status':404,message: err.message || "Some error occurred while retrieving data." ,'data': "No data" });
|
||||||
|
} //end of try catch
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getRow = async (req, res) =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
fetchSheetData();
|
||||||
|
for (let index = 0; index < datafromjson.length; index++) {
|
||||||
|
// console.log(req.query.email);
|
||||||
|
// email = req.query.email;
|
||||||
|
const email=req.body.email;
|
||||||
|
req.session.user = { email };
|
||||||
|
// console.log(req.session.user.email);
|
||||||
|
// console.log(email);
|
||||||
|
aadhaemail= datafromjson[0].email;
|
||||||
|
let emaill = datafromjson[index].email;
|
||||||
|
if (email == emaill) {
|
||||||
|
const empData = [];
|
||||||
|
tempData = ['fdd'];
|
||||||
|
await doc.loadInfo();
|
||||||
|
let sheet = doc.sheetsByIndex[0];
|
||||||
|
let rows = await sheet.getRows();
|
||||||
|
// const number = rows.length+1;
|
||||||
|
category = []; age_Category = [];
|
||||||
|
basthi = []; varga = [];
|
||||||
|
milan_shaka = []; poruppu = [];
|
||||||
|
blood_group = []; ganavesh_2w_4w_basg = [];
|
||||||
|
// new_index = 0;
|
||||||
|
|
||||||
|
category.push('Redmi','Samsung','ONEPLUS');
|
||||||
|
age_Category.push('18-21','22-25','26-30');
|
||||||
|
basthi.push('Niruha/Kashaya Basthi','Anuvasana Basthi');
|
||||||
|
varga.push('Rasi','Hora','Chaturthamsa','Dasamsa','Shodasamsa');
|
||||||
|
milan_shaka.push('');
|
||||||
|
poruppu.push('');
|
||||||
|
blood_group.push('A+','A-','B+','B-','AB+','AB-','O+','O-');
|
||||||
|
ganavesh_2w_4w_basg.push('')
|
||||||
|
for (let index = 0; index < rows.length; index++) {
|
||||||
|
const row = rows[index];
|
||||||
|
category.push(row['Category']);
|
||||||
|
age_Category.push(row['Age Category']);
|
||||||
|
basthi.push(row['Basthi']);
|
||||||
|
varga.push(row['Varga']);
|
||||||
|
milan_shaka.push(row['Milan / Shaka']);
|
||||||
|
poruppu.push(row['Poruppu']);
|
||||||
|
blood_group.push(row['Blood Group']);
|
||||||
|
ganavesh_2w_4w_basg.push(row['Ganavesh']);
|
||||||
|
// if (index == rows.length-1) {
|
||||||
|
// new_index = Number(row.Sl) + 1;
|
||||||
|
// }
|
||||||
|
};
|
||||||
|
dropdown ={
|
||||||
|
"category": [...new Set(category)],
|
||||||
|
"age_Category" : [...new Set(age_Category)],
|
||||||
|
"basthi" : [...new Set(basthi)],
|
||||||
|
"varga" : [...new Set(varga)],
|
||||||
|
"milan_shaka" : [...new Set(milan_shaka)],
|
||||||
|
"poruppu" : [...new Set(poruppu)],
|
||||||
|
"blood_group" : [...new Set(blood_group)],
|
||||||
|
"ganavesh_2w_4w_basg" : [...new Set(ganavesh_2w_4w_basg)],
|
||||||
|
// "new_index" : new_index
|
||||||
|
}
|
||||||
|
for (let index = 0; index < rows.length; index++) {
|
||||||
|
const row = rows[index];
|
||||||
|
if(index == 0){ column_name = row._sheet.headerValues; }
|
||||||
|
if (row.email == email) {
|
||||||
|
var obj = {}
|
||||||
|
for (let i = 0; i < column_name.length; i++){
|
||||||
|
Object.assign( obj , { [column_name[i]] : row[column_name[i]] });
|
||||||
|
}
|
||||||
|
tempData.push(obj);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// if (tempData.length > 0) {
|
||||||
|
for (let index = 0; index < rows.length; index++) {
|
||||||
|
const row = rows[index];
|
||||||
|
// console.log(rows[0]._rawData[22]);
|
||||||
|
// if (row == email || row.Gatnayak == tempData[0]['email'] ) {
|
||||||
|
if(true){
|
||||||
|
// console.log(row.);
|
||||||
|
var obj = {}
|
||||||
|
for (let i = 0; i < column_name.length; i++){
|
||||||
|
Object.assign( obj , { [column_name[i]] : row[column_name[i]] });
|
||||||
|
}
|
||||||
|
empData.push(obj);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
res.render( 'displaydata' , { "data" : empData , "dropdown" : dropdown , aadhaemail,email,number} , function (err, html ) { res.send(html) });
|
||||||
|
// }
|
||||||
|
// else{
|
||||||
|
// res.send('<p style="text-align:center;font-size: 4em;top: 510px;font-style:bold">No Data</p>');
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
res.end("<h1 style='text-align:center;font-size:40px'>No Data</h1>");
|
||||||
|
}catch(err) {
|
||||||
|
res.send({'status':404,message: err.message || "Some error occurred while retrieving data." ,'data': "No data" });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
exports.addRow = async (req, res) =>{
|
||||||
|
try{
|
||||||
|
newData = req.body.data;
|
||||||
|
console.log(newData);
|
||||||
|
var obj = {}
|
||||||
|
for (let i = 0; i < column_name.length; i++){
|
||||||
|
Object.assign( obj , { [column_name[i]] : newData[i] });
|
||||||
|
}
|
||||||
|
let rows = [obj];
|
||||||
|
await doc.loadInfo();
|
||||||
|
let sheet = doc.sheetsByIndex[0];
|
||||||
|
for (let index = 0; index < rows.length; index++) {
|
||||||
|
const row = rows[index];
|
||||||
|
await sheet.addRow(row);
|
||||||
|
}
|
||||||
|
if(rows[0]['Gatnayak'] == tempData[0].email ) {res.send({'status':200 , message:"Success." ,'data': "success" , 'statusCode' : 1 }); }
|
||||||
|
else{res.send({'status':200 , message:"Success." ,'data': "success", 'statusCode' : 0 }); }
|
||||||
|
number++;
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
res.status(500).send({'status':404,
|
res.status(500).send({'status':404,
|
||||||
message: err.message || "Some error occurred while inserting statements." ,'data': "No data"
|
message: err.message || "Some error occurred while inserting statements." ,'data': "No data"
|
||||||
@ -171,45 +245,54 @@ exports.addRow = async (req, res) =>
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exports.updateRow = async (req, res ) =>
|
exports.updateRow = async (req, res ) =>
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Olddata = req.body.Old;
|
Olddata = req.body.Old;
|
||||||
Newdata = req.body.New;
|
Newdata = req.body.New;
|
||||||
|
// console.log('old'+Olddata[1]);// this will give old number same
|
||||||
|
// console.log('new'+Newdata[1]);// this will give new number sam
|
||||||
Old = {}; New = {};
|
Old = {}; New = {};
|
||||||
|
|
||||||
column_name.forEach(async(element , index) => {
|
column_name.forEach(async(element , index) => {
|
||||||
Object.assign( Old , { [element] : Olddata[index]});
|
Object.assign( Old , { [element] : Olddata[index]});//oldata
|
||||||
Object.assign( New , { [element] : Newdata[index]});
|
Object.assign( New , { [element] : Newdata[index]});//newdata
|
||||||
});
|
});
|
||||||
arrKeys = [ ];
|
arrKeys = [ ];
|
||||||
arrKeys = Object.keys(Old)
|
arrKeys = Object.keys(Old);//keys -> heading values -> datas
|
||||||
var updateVal = [];
|
var updateVal = [];
|
||||||
for (let i = 0; i < arrKeys.length ; i++) {
|
for (let i = 0; i < arrKeys.length ; i++) {
|
||||||
if (Old[arrKeys[i]] != New[arrKeys[i]]) {
|
if (Old[arrKeys[i]] != New[arrKeys[i]]) {
|
||||||
|
// if (Old[arrKeys[i]] == New[arrKeys[i]]) {
|
||||||
obj = { "keyValue" : arrKeys[i] , oldValue : Old[arrKeys[i]] , newValue : New[arrKeys[i]] };
|
obj = { "keyValue" : arrKeys[i] , oldValue : Old[arrKeys[i]] , newValue : New[arrKeys[i]] };
|
||||||
updateVal.push(obj)
|
updateVal.push(obj)
|
||||||
obj = { }
|
obj = { };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(updateVal);
|
console.log(updateVal);
|
||||||
|
//console.log(updateVal[0].newValue); // this is the value for compare and update the value in sheet
|
||||||
// load the documents info
|
// load the documents info
|
||||||
await doc.loadInfo();
|
await doc.loadInfo();
|
||||||
// Index of the sheet
|
// Index of the sheet
|
||||||
let sheet = doc.sheetsByIndex[0];
|
let sheet = doc.sheetsByIndex[0]; //it will detials of googlesheet
|
||||||
let rows = await sheet.getRows();
|
let rows = await sheet.getRows();
|
||||||
|
// console.log(rows[0]._rawData); //this is give the googlesheet values by changin the [] value to get different
|
||||||
updateVal.forEach(async(element) => {
|
updateVal.forEach(async(element) => {
|
||||||
|
// console.log(rows.length);//check in
|
||||||
|
// console.log(rows[0]._rawData[4]); //this will get the phone number
|
||||||
for (let index = 0; index < rows.length; index++) {
|
for (let index = 0; index < rows.length; index++) {
|
||||||
const row = rows[index];
|
const row = rows[index]._rawData[1];
|
||||||
if (element.keyValue != "Sl.") {
|
|
||||||
if (row[element.keyValue] === element.oldValue) {
|
// console.log("Row->"+row);
|
||||||
|
// if (updateVal[0].newValue) {
|
||||||
|
//if (row[element.keyValue] === element.oldValue) {//row[element.keyValue]-> categry value one by one
|
||||||
|
if(Newdata[1]==row){
|
||||||
rows[index][element.keyValue] = element.newValue;
|
rows[index][element.keyValue] = element.newValue;
|
||||||
await rows[index].save();
|
await rows[index].save();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
// }
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
res.send({'status':200 , message:"Success." ,'data': "Msg"})
|
res.send({'status':200 , message:"Success." ,'data': "Msg"})
|
||||||
@ -219,15 +302,15 @@ exports.updateRow = async (req, res ) =>
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(async function ( req , res ) {
|
(async function ( req , res ) {
|
||||||
|
const private_keyy = process.env.PRIVATE_KEY.replace(/\\n/g, '\n');
|
||||||
|
|
||||||
// spreadsheet key is the long id in the sheets URL
|
// spreadsheet key is the long id in the sheets URL
|
||||||
const RESPONSES_SHEET_ID = process.env.RESPONSES_SHEET_ID;
|
const RESPONSES_SHEET_ID = process.env.RESPONSES_SHEET_ID;
|
||||||
// Create a new document
|
// Create a new document
|
||||||
doc = new GoogleSpreadsheet(RESPONSES_SHEET_ID);
|
doc = new GoogleSpreadsheet(RESPONSES_SHEET_ID);
|
||||||
// use service account creds
|
// use service account creds
|
||||||
await doc.useServiceAccountAuth({ client_email: process.env.CLIENT_EMAIL , private_key: process.env.PRIVATE_KEY });
|
await doc.useServiceAccountAuth({ client_email: process.env.CLIENT_EMAIL , private_key: private_keyy });
|
||||||
// load the documents info
|
// load the documents info
|
||||||
await doc.loadInfo();
|
await doc.loadInfo();
|
||||||
// Index of the sheet
|
// Index of the sheet
|
||||||
@ -236,7 +319,3 @@ let sheet = doc.sheetsByIndex[0];
|
|||||||
let rows = await sheet.getRows();
|
let rows = await sheet.getRows();
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,31 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
const { Model } = require('sequelize')
|
|
||||||
module.exports = (sequelize, DataTypes) => {
|
|
||||||
class Test extends Model {
|
|
||||||
/**
|
|
||||||
* Helper method for defining associations.
|
|
||||||
* This method is not a part of Sequelize lifecycle.
|
|
||||||
* The `models/index` file will call this method automatically.
|
|
||||||
*/
|
|
||||||
// define association here
|
|
||||||
// static associate({ Financials }) {
|
|
||||||
// this.hasMany(Financials, { foreignKey: 'entity_id', as: 'financialsData' })
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
Test.init(
|
|
||||||
{
|
|
||||||
losid: { type: DataTypes.STRING },
|
|
||||||
createdby: { type: DataTypes.INTEGER },
|
|
||||||
updatedby: { type: DataTypes.INTEGER },
|
|
||||||
|
|
||||||
},
|
|
||||||
{
|
|
||||||
sequelize,
|
|
||||||
tableName: 'test',
|
|
||||||
modelName: 'Test',
|
|
||||||
}
|
|
||||||
)
|
|
||||||
return Test
|
|
||||||
}
|
|
||||||
@ -1,39 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
const fs = require('fs');
|
|
||||||
const path = require('path');
|
|
||||||
const Sequelize = require('sequelize');
|
|
||||||
const basename = path.basename(__filename);
|
|
||||||
const env = process.env.NODE_ENV || 'development';
|
|
||||||
const config = require(__dirname + '/../config/db.config.js')[env];
|
|
||||||
//console.log(env);
|
|
||||||
//console.log(config);
|
|
||||||
const db = {};
|
|
||||||
|
|
||||||
let sequelize;
|
|
||||||
if (config.use_env_variable) {
|
|
||||||
sequelize = new Sequelize(process.env[config.use_env_variable], config);
|
|
||||||
} else {
|
|
||||||
sequelize = new Sequelize(config.database, config.username, config.password, config);
|
|
||||||
}
|
|
||||||
|
|
||||||
fs
|
|
||||||
.readdirSync(__dirname)
|
|
||||||
.filter(file => {
|
|
||||||
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
|
|
||||||
})
|
|
||||||
.forEach(file => {
|
|
||||||
const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
|
|
||||||
db[model.name] = model;
|
|
||||||
});
|
|
||||||
|
|
||||||
Object.keys(db).forEach(modelName => {
|
|
||||||
if (db[modelName].associate) {
|
|
||||||
db[modelName].associate(db);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
db.sequelize = sequelize;
|
|
||||||
db.Sequelize = Sequelize;
|
|
||||||
|
|
||||||
module.exports = db;
|
|
||||||
@ -5,10 +5,6 @@ module.exports = app => {
|
|||||||
const { logMsg } = require('../services/logger.js');
|
const { logMsg } = require('../services/logger.js');
|
||||||
var router = require("express").Router();
|
var router = require("express").Router();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @swagger
|
* @swagger
|
||||||
* /api/demo:
|
* /api/demo:
|
||||||
@ -19,18 +15,24 @@ module.exports = app => {
|
|||||||
* 200:
|
* 200:
|
||||||
* description: success
|
* description: success
|
||||||
*/
|
*/
|
||||||
router.get("/demo", Mycontroller.Welcome);
|
// router.get("/demo", Mycontroller.Welcome);
|
||||||
|
|
||||||
router.get("/loginPage", Mycontroller.loginPage);
|
router.get("/home", Mycontroller.loginPage);
|
||||||
|
|
||||||
router.get("/getRow", Mycontroller.getRow);
|
router.get("/adduser", Mycontroller.adduser);
|
||||||
|
|
||||||
|
router.post("/addjson", Mycontroller.addjson);
|
||||||
|
|
||||||
|
// router.get("/getRow", Mycontroller.get);
|
||||||
|
|
||||||
|
router.post("/getRow", Mycontroller.getRow);
|
||||||
|
|
||||||
router.post("/addRow", Mycontroller.addRow);
|
router.post("/addRow", Mycontroller.addRow);
|
||||||
|
|
||||||
router.post("/updateRow", Mycontroller.updateRow);
|
router.post("/updateRow", Mycontroller.updateRow);
|
||||||
|
|
||||||
// routes started here
|
// routes started here
|
||||||
app.use('/api', router);
|
app.use('/', router);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,27 +1,26 @@
|
|||||||
/**
|
/*Configurations of logger*/
|
||||||
* Configurations of logger.
|
var winston = require('winston');
|
||||||
*/
|
const {createLogger,transports} = require('winston');
|
||||||
var winston = require('winston');
|
require('winston-daily-rotate-file');
|
||||||
require('winston-daily-rotate-file');
|
|
||||||
|
|
||||||
var transport = new winston.transports.DailyRotateFile({
|
|
||||||
filename: 'storage/log/msg.log',
|
|
||||||
datePattern: 'YYYY-MM-DD',
|
|
||||||
zippedArchive: true,
|
|
||||||
maxSize: '20m',
|
|
||||||
maxFiles: '14d'
|
|
||||||
});
|
|
||||||
|
|
||||||
transport.on('rotate', function(oldFilename, newFilename) {
|
var transport = new transports.DailyRotateFile({
|
||||||
// do something fun
|
filename: 'storage/log/msg.log',
|
||||||
});
|
datePattern: 'YYYY-MM-DD',
|
||||||
|
zippedArchive: true,
|
||||||
|
maxSize: '20m',
|
||||||
|
maxFiles: '14d'
|
||||||
|
});
|
||||||
|
|
||||||
const logger = winston.createLogger({
|
transport.on('rotate', function(oldFilename, newFilename) {
|
||||||
transports: [
|
// do something fun
|
||||||
transport
|
});
|
||||||
]
|
|
||||||
});
|
const logger = createLogger({
|
||||||
module.exports = {
|
transports: [
|
||||||
'logMsg': logger,
|
transport
|
||||||
};
|
]
|
||||||
|
});
|
||||||
|
module.exports = {
|
||||||
|
'logMsg': logger,
|
||||||
|
};
|
||||||
|
|||||||
BIN
app/views/Screenshot 2023-09-16 170601.png
Normal file
BIN
app/views/Screenshot 2023-09-16 170601.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
BIN
app/views/Y4Pb2E.png
Normal file
BIN
app/views/Y4Pb2E.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
250
app/views/adduser.ejs
Normal file
250
app/views/adduser.ejs
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Document</title>
|
||||||
|
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
|
||||||
|
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
|
||||||
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
|
||||||
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<style>
|
||||||
|
/* Medium Devices, Desktops */
|
||||||
|
@media only screen and (min-width : 992px) {
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
background-color: #435d7d;
|
||||||
|
}
|
||||||
|
#div_center{
|
||||||
|
background-color: #ffffff;
|
||||||
|
width: 500px;
|
||||||
|
height: 600px;
|
||||||
|
margin: 50px auto 10px auto;
|
||||||
|
padding: 30px;
|
||||||
|
border-radius: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
box-shadow: 0 2px 10px -3px #333;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
#div_1{
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
justify-content: center; /* Horizontally center content */
|
||||||
|
align-items: center; /* Vertically center content */
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
h3{
|
||||||
|
/* font-family: Google Sans,Noto Sans Myanmar UI,arial,sans-serif; */
|
||||||
|
font-size: 26px;
|
||||||
|
/* margin-top: 70px; */
|
||||||
|
}
|
||||||
|
label{
|
||||||
|
display: flex;
|
||||||
|
padding-left: 40px;
|
||||||
|
padding-top: 10px;
|
||||||
|
|
||||||
|
}
|
||||||
|
input{
|
||||||
|
/* background-color: #999; */
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
/* Basic styles for the input container */
|
||||||
|
.input-container {
|
||||||
|
position: relative;
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Style the input field */
|
||||||
|
.input-container input {
|
||||||
|
width: 90%;
|
||||||
|
padding: 10px;
|
||||||
|
border: none;
|
||||||
|
/* border-bottom: 2px solid #2196F3; */
|
||||||
|
outline: none;
|
||||||
|
font-size: 16px;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1px;
|
||||||
|
border-color: lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Style the label (initially hidden) */
|
||||||
|
.input-container label {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
transition: 0.2s ease all;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #999; /* Color for the label */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Move the label up when input is focused */
|
||||||
|
.input-container input:focus + label,
|
||||||
|
.input-container input:valid + label {
|
||||||
|
top: -20px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: black;
|
||||||
|
/* color: #2196F3; */
|
||||||
|
}
|
||||||
|
#submitBtn{
|
||||||
|
font-size: 20px;
|
||||||
|
background-color:#1a71eb;
|
||||||
|
border-color: #1a71eb;
|
||||||
|
font-family: Google Sans,Noto Sans Myanmar UI,arial,sans-serif;
|
||||||
|
font-size: 14px;
|
||||||
|
width: 80px;
|
||||||
|
height: 30px;
|
||||||
|
color: #eeeeee;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
img{
|
||||||
|
display: block;
|
||||||
|
width: 200px;
|
||||||
|
margin: 30px auto;
|
||||||
|
/* box-shadow: 0 5px 10px -7px #333333; */
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* Smartphones (portrait and landscape) ----------- */
|
||||||
|
@media only screen and (max-width : 992px){
|
||||||
|
body {
|
||||||
|
background-color: #eeeeee;
|
||||||
|
}
|
||||||
|
#div_center{
|
||||||
|
background-color: #ffffff;
|
||||||
|
width: 500px;
|
||||||
|
height: 600px;
|
||||||
|
margin: 50px auto 10px auto;
|
||||||
|
padding: 30px;
|
||||||
|
border-radius: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
box-shadow: 0 2px 10px -3px #333;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
#div_1{
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
justify-content: center; /* Horizontally center content */
|
||||||
|
align-items: center; /* Vertically center content */
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
h3{
|
||||||
|
font-family: Google Sans,Noto Sans Myanmar UI,arial,sans-serif;
|
||||||
|
font-size: 24px;
|
||||||
|
|
||||||
|
}
|
||||||
|
label{
|
||||||
|
display: flex;
|
||||||
|
padding-left: 40px;
|
||||||
|
padding-top: 10px;
|
||||||
|
}
|
||||||
|
input{
|
||||||
|
/* background-color: #999; */
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
/* Basic styles for the input container */
|
||||||
|
.input-container {
|
||||||
|
position: relative;
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Style the input field */
|
||||||
|
.input-container input {
|
||||||
|
width: 90%;
|
||||||
|
padding: 10px;
|
||||||
|
border: none;
|
||||||
|
/* border-bottom: 2px solid #2196F3; */
|
||||||
|
outline: none;
|
||||||
|
font-size: 16px;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 1px;
|
||||||
|
border-color: lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Style the label (initially hidden) */
|
||||||
|
.input-container label {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
transition: 0.2s ease all;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #999; /* Color for the label */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Move the label up when input is focused */
|
||||||
|
.input-container input:focus + label,
|
||||||
|
.input-container input:valid + label {
|
||||||
|
top: -20px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: black;
|
||||||
|
/* color: #2196F3; */
|
||||||
|
}
|
||||||
|
#submitBtn{
|
||||||
|
font-size: 20px;
|
||||||
|
background-color:#1a71eb;
|
||||||
|
border-color: #1a71eb;
|
||||||
|
font-family: Google Sans,Noto Sans Myanmar UI,arial,sans-serif;
|
||||||
|
font-size: 14px;
|
||||||
|
width: 80px;
|
||||||
|
height: 30px;
|
||||||
|
color: #eeeeee;
|
||||||
|
}
|
||||||
|
img{
|
||||||
|
display: block;
|
||||||
|
width: 200px;
|
||||||
|
margin: 30px auto;
|
||||||
|
/* box-shadow: 0 5px 10px -7px #333333; */
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<div id="div_1">
|
||||||
|
<div id="div_center">
|
||||||
|
<img src="https://play-lh.googleusercontent.com/1-hPxafOxdYpYZEOKzNIkSP43HXCNftVJVttoo4ucl7rsMASXW3Xr6GlXURCubE1tA=w3840-h2160-rw" alt="image not there">
|
||||||
|
<h3>Welcome back! Please Add Email</h3><br><br>
|
||||||
|
<form action="/addjson" method="post">
|
||||||
|
<div class="input-container">
|
||||||
|
<input type="email" id="first-name" name="email" required>
|
||||||
|
<label for="first-name">Email</label>
|
||||||
|
</div><br><br><br>
|
||||||
|
<!-- <div class="input-container">
|
||||||
|
<input type="password" id="first-name" name="password" required>
|
||||||
|
<label for="first-name">Password</label>
|
||||||
|
</div><br><br> -->
|
||||||
|
<button id="submitBtn">Submit</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- <script>
|
||||||
|
const submitButton = document.getElementById("submitBtn");
|
||||||
|
submitButton.addEventListener("click", function () {
|
||||||
|
const emailValue = document.getElementById("emaill").value;
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "/api/addjson", // Change to the correct URL of your server-side script
|
||||||
|
data: { email: emailValue },
|
||||||
|
success: function (response) {
|
||||||
|
// Handle the response from the server
|
||||||
|
alert(response);
|
||||||
|
window.location.href = "/api/loginPage";
|
||||||
|
},
|
||||||
|
error: function (error) {
|
||||||
|
// Handle any errors that occur during the AJAX request
|
||||||
|
console.error("Error:", error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script> -->
|
||||||
|
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -4,6 +4,7 @@
|
|||||||
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
|
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
|
||||||
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
|
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
||||||
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
|
||||||
|
|
||||||
<!-- icon -->
|
<!-- icon -->
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||||
@ -35,25 +36,27 @@ body{
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 150px;
|
height: 150px;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
z-index:100
|
z-index:0
|
||||||
}
|
}
|
||||||
p{
|
p{
|
||||||
padding-top: 30px;
|
padding-top: 30px;
|
||||||
padding-left: 30px;
|
padding-left: 30px;
|
||||||
}
|
}
|
||||||
#myInput{
|
#myInput{
|
||||||
margin-left: 10px;
|
margin-left: 32%;
|
||||||
width: 55%;
|
width: 55%;
|
||||||
height: 70px;
|
height: 70px;
|
||||||
border-top-left-radius: 50px;
|
border-top-left-radius: 50px;
|
||||||
border-bottom-left-radius: 50px;
|
border-bottom-left-radius: 50px;
|
||||||
|
border-top-right-radius: 50px;
|
||||||
|
border-bottom-right-radius: 50px;
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
font-family: 'Varela Round', sans-serif;
|
font-family: 'Varela Round', sans-serif;
|
||||||
padding-left: 25px;
|
padding-left: 25px;
|
||||||
}
|
}
|
||||||
.search-panel{
|
.search-panel{
|
||||||
top: 30px;
|
top: 30px;
|
||||||
margin-left: 566px;
|
margin-left: 70%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
#search_param{
|
#search_param{
|
||||||
@ -68,7 +71,7 @@ p{
|
|||||||
#material{
|
#material{
|
||||||
top: 32px;
|
top: 32px;
|
||||||
font-size: 70px;
|
font-size: 70px;
|
||||||
margin-left:85%;
|
margin-left:90%;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
background-color: #435d7d;
|
background-color: #435d7d;
|
||||||
border-color: #435d7d;
|
border-color: #435d7d;
|
||||||
@ -76,6 +79,24 @@ p{
|
|||||||
display:inline-block;
|
display:inline-block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
#add_user_button{
|
||||||
|
border-color: #435d7d;
|
||||||
|
border-bottom: #435d7d;
|
||||||
|
border-right: #435d7d;
|
||||||
|
display:block;
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 20px;
|
||||||
|
font-size: 18px;
|
||||||
|
margin-top: -80px;
|
||||||
|
margin-left: 1%;
|
||||||
|
width: 130px;
|
||||||
|
height: 70px;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 55px;
|
||||||
|
font-family: 'Varela Round', sans-serif;
|
||||||
|
font-size: 23px;
|
||||||
|
|
||||||
|
}
|
||||||
/* Force table to not be like tables anymore */
|
/* Force table to not be like tables anymore */
|
||||||
table{
|
table{
|
||||||
width: 90%;
|
width: 90%;
|
||||||
@ -113,13 +134,13 @@ td:nth-of-type(1){
|
|||||||
display:inline-block;
|
display:inline-block;
|
||||||
}
|
}
|
||||||
/* catogary */
|
/* catogary */
|
||||||
td:nth-of-type(3)::before {
|
td:nth-of-type(4)::before {
|
||||||
content: "( ";
|
content: "( ";
|
||||||
}
|
}
|
||||||
td:nth-of-type(3)::after {
|
td:nth-of-type(4)::after {
|
||||||
content: " )";
|
content: " )";
|
||||||
}
|
}
|
||||||
td:nth-of-type(3) {
|
td:nth-of-type(4) {
|
||||||
margin-top: -20px;
|
margin-top: -20px;
|
||||||
margin-left: 0px;
|
margin-left: 0px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
@ -127,7 +148,7 @@ td:nth-of-type(3) {
|
|||||||
display:inline-block;
|
display:inline-block;
|
||||||
}
|
}
|
||||||
/* name */
|
/* name */
|
||||||
td:nth-of-type(2) {
|
td:nth-of-type(3) {
|
||||||
margin-top: -20px;
|
margin-top: -20px;
|
||||||
margin-left: 35px;
|
margin-left: 35px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
@ -135,12 +156,12 @@ td:nth-of-type(2) {
|
|||||||
display:inline-block;
|
display:inline-block;
|
||||||
}
|
}
|
||||||
/* mobile no */
|
/* mobile no */
|
||||||
td:nth-of-type(5) {
|
td:nth-of-type(6) {
|
||||||
margin-top: -50px;
|
margin-top: -50px;
|
||||||
margin-left: 140px;
|
margin-left: 140px;
|
||||||
}
|
}
|
||||||
/* Phone */
|
/* Phone */
|
||||||
td:nth-of-type(23){
|
td:nth-of-type(24){
|
||||||
font-size: 50px;
|
font-size: 50px;
|
||||||
margin-top: -85px;
|
margin-top: -85px;
|
||||||
margin-left: 90%;
|
margin-left: 90%;
|
||||||
@ -173,6 +194,7 @@ option{
|
|||||||
form {
|
form {
|
||||||
display: block;
|
display: block;
|
||||||
margin-top: 0em;
|
margin-top: 0em;
|
||||||
|
|
||||||
}
|
}
|
||||||
.modal { padding: 0 !important; }
|
.modal { padding: 0 !important; }
|
||||||
.modal .modal-dialog {
|
.modal .modal-dialog {
|
||||||
@ -268,45 +290,68 @@ label{ padding-left: 25px; }
|
|||||||
}
|
}
|
||||||
/* Medium Devices, Desktops ....................................................... */
|
/* Medium Devices, Desktops ....................................................... */
|
||||||
@media only screen and (min-width : 992px) {
|
@media only screen and (min-width : 992px) {
|
||||||
|
|
||||||
.header{
|
.header{
|
||||||
width: 100%;
|
margin-left: 15% ;
|
||||||
|
width: 70%;
|
||||||
height: 80px;
|
height: 80px;
|
||||||
background-color: #435d7d;
|
background-color: #435d7d;
|
||||||
}
|
}
|
||||||
p{
|
p{
|
||||||
|
margin-left: -25%;
|
||||||
padding-top: 30px;
|
padding-top: 30px;
|
||||||
padding-left: 30px;
|
padding-left: 30px;
|
||||||
|
|
||||||
}
|
}
|
||||||
#myInput{
|
#myInput{
|
||||||
margin-top: 70px;
|
margin-top: 1px;
|
||||||
margin-left: 50%;
|
margin-left: 67%;
|
||||||
width: 20%;
|
width: 25%;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
font-size: 25px;
|
font-size: 25px;
|
||||||
font-family: 'Varela Round', sans-serif;
|
font-family: 'Varela Round', sans-serif;
|
||||||
padding-left: 25px;
|
padding-left: 25px;
|
||||||
|
/* border-radius: 10px; */
|
||||||
}
|
}
|
||||||
.dropdown-toggle{
|
.dropdown-toggle{
|
||||||
top: -47px;
|
top: -47px;
|
||||||
width: 10%;
|
width: 10%;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
margin-left:71%;
|
margin-left:80%;
|
||||||
border-color: 5px solid #435d7d;
|
border-color: 5px solid #435d7d;
|
||||||
}
|
}
|
||||||
#material{
|
#material{
|
||||||
top: 93px;
|
top: 25px;
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
margin-left: 335px;
|
margin-left: 300px;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
background-color: #435d7d;
|
background-color: #435d7d;
|
||||||
border-color: #435d7d;
|
border-color: #435d7d;
|
||||||
margin-left:82%;
|
margin-left:65%;
|
||||||
;
|
;
|
||||||
/* position the two buttons next to each other */
|
/* position the two buttons next to each other */
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
#add_user_button{
|
||||||
|
/* top: px; */
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 5px;
|
||||||
|
margin-top: -45px;
|
||||||
|
border-radius: 3px;
|
||||||
|
border-width: 1px;
|
||||||
|
border-color: lightgray;
|
||||||
|
background-color: white;
|
||||||
|
margin-left: 5%;
|
||||||
|
font-size: 12px;
|
||||||
|
width: 75px;
|
||||||
|
height: 26px;
|
||||||
|
transform: scale(1.5);
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
}
|
||||||
.input{
|
.input{
|
||||||
display: block;
|
display: block;
|
||||||
/* padding-left: 25px; */
|
/* padding-left: 25px; */
|
||||||
@ -327,12 +372,13 @@ td:nth-of-type(1) , td:nth-of-type(23){
|
|||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
width: 70%;
|
width: 70%;
|
||||||
margin-top: 70px;
|
margin-top: 3px;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
|
|
||||||
}
|
}
|
||||||
#emp td, #emp th {
|
#emp td, #emp th {
|
||||||
border-top: 2px solid #ddd;;
|
border-top: 2px solid #ddd;
|
||||||
border-bottom: 2px solid #ddd;
|
border-bottom: 2px solid #ddd;
|
||||||
/* border-left: 2px solid #ddd;
|
/* border-left: 2px solid #ddd;
|
||||||
border-right: 2px solid #ddd; */
|
border-right: 2px solid #ddd; */
|
||||||
@ -457,15 +503,21 @@ label{ padding-left: 20px; }
|
|||||||
float: left;
|
float: left;
|
||||||
padding-left: 25px;
|
padding-left: 25px;
|
||||||
}
|
}
|
||||||
|
#email1{
|
||||||
|
border-bottom: #ddd;
|
||||||
|
width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<body>
|
<body>
|
||||||
<div class="header">
|
<div class="header">
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<input class="input" id="myInput" type="text" placeholder="Search..">
|
<input class="input" id="myInput" type="text" placeholder="Search..">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="input-group-btn search-panel">
|
<div class="input-group-btn search-panel" hidden>
|
||||||
<select name="search_param" id="search_param" class="btn btn-default dropdown-toggle" style="background-color: #ffffff;" data-toggle="dropdown">
|
<select name="search_param" id="search_param" class="btn btn-default dropdown-toggle" style="background-color: #ffffff;" data-toggle="dropdown">
|
||||||
<option class="dropdown-item" value="Default">Default</option>
|
<option class="dropdown-item" value="Default">Default</option>
|
||||||
<option class="dropdown-item" value="Name">Name</option>
|
<option class="dropdown-item" value="Name">Name</option>
|
||||||
@ -473,13 +525,17 @@ label{ padding-left: 20px; }
|
|||||||
<option class="dropdown-item" value="Catogary">Catogary</option>
|
<option class="dropdown-item" value="Catogary">Catogary</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a id="new" class="new-button" title="add new" data-toggle="modal" data-target="#add-new-form"><i class="material-icons" id="material"></i></a>
|
<a id="new" class="new-button" title="add new" data-toggle="modal" data-target="#add-new-form"><i class="material-icons" id="material"></i></a>
|
||||||
|
<% if(aadhaemail == email){ %>
|
||||||
|
<a id="add_user_button" class="new-button-email" title="add new" data-toggle="modal" data-target="#add_email">Add Email</a>
|
||||||
|
<% } %>
|
||||||
</div>
|
</div>
|
||||||
<table id="emp">
|
<table id="emp">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Sl.</th>
|
<th>Sl</th>
|
||||||
|
<th hidden>Sno</th>
|
||||||
<th>Name</th>
|
<th>Name</th>
|
||||||
<th>Category</th>
|
<th>Category</th>
|
||||||
<th hidden>Age Category</th>
|
<th hidden>Age Category</th>
|
||||||
@ -501,17 +557,18 @@ label{ padding-left: 20px; }
|
|||||||
<th hidden>Gurupooja 2021</th>
|
<th hidden>Gurupooja 2021</th>
|
||||||
<th hidden>Gatnayak</th>
|
<th hidden>Gatnayak</th>
|
||||||
<th hidden>Email</th>
|
<th hidden>Email</th>
|
||||||
<th>Phone</th>
|
<th >Phone</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<% data.forEach(function(emp , index ) { %>
|
<% data.forEach(function(emp , index ) { %>
|
||||||
<tbody id="myTable" class="update" data-toggle="modal" data-target="#edit">
|
<tbody id="myTable" class="update" data-toggle="modal" data-target="#edit">
|
||||||
<tr>
|
<tr>
|
||||||
<td><%=emp['Sl.'] %></td>
|
<td><%=emp.Sl %></td>
|
||||||
<td><%=emp.Name %></td>
|
<td hidden><%=emp.Sno %></td>
|
||||||
<td><%=emp['Çategory'] %></td>
|
<td id="name"><%=emp.Name %></td>
|
||||||
|
<td id="name"><%=emp['Category'] %></td>
|
||||||
<td hidden><%=emp['Age Category'] %></td>
|
<td hidden><%=emp['Age Category'] %></td>
|
||||||
<td><%=emp.ContactNo %></td>
|
<td id="name"><%=emp.ContactNo %></td>
|
||||||
<td hidden><%=emp.Address %></td>
|
<td hidden><%=emp.Address %></td>
|
||||||
<td hidden><%=emp.Reference %></td>
|
<td hidden><%=emp.Reference %></td>
|
||||||
<td hidden><%=emp.Basthi %></td>
|
<td hidden><%=emp.Basthi %></td>
|
||||||
@ -540,23 +597,28 @@ label{ padding-left: 20px; }
|
|||||||
<div id="edit" class="modal fade" aria-modal="true">
|
<div id="edit" class="modal fade" aria-modal="true">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<form>
|
<!-- test id to hide the form -->
|
||||||
|
<form id="form-hide" style="display: none;">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<a class="back" data-dismiss="modal" aria-hidden="true"><i id="back" class="fa fa-arrow-circle-left" style="color: #FFFFF7;"></i></a>
|
<a id="back1" class="back" data-dismiss="modal" aria-hidden="true"><i id="back" class="fa fa-arrow-circle-left" style="color: #FFFFF7;"></i></a>
|
||||||
<h4 class="modal-title">Edit</h4>
|
<h4 class="modal-title">Edit</h4>
|
||||||
<a id="up" class="add" data-dismiss="modal"><i class="fa fa-save" style="color: #FFFFF7;"></i></a>
|
<a id="up" class="add" data-dismiss="modal"><i class="fa fa-save" style="color: #FFFFF7;"></i></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body" hidden>
|
<div class="modal-body" hidden>
|
||||||
<label>Sl.</label>
|
<label>Sl.</label>
|
||||||
<input id="0" type="text" class="input" name="Sl.">
|
<input id="0" type="text" class="input" name="Sl">
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" hidden>
|
||||||
|
<label>Sno</label>
|
||||||
|
<input id="1" type="text" class="input" name="Sno">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Name</label>
|
<label>Name</label>
|
||||||
<input id="1" type="text" class="input" name="name">
|
<input id="2" type="text" class="input" name="name">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Category</label>
|
<label>Category</label>
|
||||||
<select id="2" type="text" class="input" name="Çategory">
|
<select id="3" type="text" class="input" name="Çategory">
|
||||||
<% dropdown.category.forEach(function(data , index ) { %>
|
<% dropdown.category.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -564,7 +626,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Age Category</label>
|
<label>Age Category</label>
|
||||||
<select id="3" type="text" class="input" name="Age Category">
|
<select id="4" type="text" class="input" name="Age Category">
|
||||||
<% dropdown.age_Category.forEach(function(data , index ) { %>
|
<% dropdown.age_Category.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -572,19 +634,19 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Contact No</label>
|
<label>Contact No</label>
|
||||||
<input id="4" type="text" class="input" name="ContactNo">
|
<input id="5" type="text" class="input" name="ContactNo">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Address</label>
|
<label>Address</label>
|
||||||
<input id="5" type="text" class="input" name="Address">
|
<input id="6" type="text" class="input" name="Address">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Reference</label>
|
<label>Reference</label>
|
||||||
<input id="6" type="text" class="input" name="Reference">
|
<input id="7" type="text" class="input" name="Reference">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Basthi</label>
|
<label>Basthi</label>
|
||||||
<select id="7" type="text" class="input" name="Basthi">
|
<select id="8" type="text" class="input" name="Basthi">
|
||||||
<% dropdown.basthi.forEach(function(data , index ) { %>
|
<% dropdown.basthi.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -592,7 +654,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Varga</label>
|
<label>Varga</label>
|
||||||
<select id="8" type="text" class="input" name="Varga">
|
<select id="9" type="text" class="input" name="Varga">
|
||||||
<% dropdown.varga.forEach(function(data , index ) { %>
|
<% dropdown.varga.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -600,7 +662,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Milan/Shaka</label>
|
<label>Milan/Shaka</label>
|
||||||
<select id="9" type="text" class="input" name="Milan / Shaka">
|
<select id="10" type="text" class="input" name="Milan / Shaka">
|
||||||
<% dropdown.milan_shaka.forEach(function(data , index ) { %>
|
<% dropdown.milan_shaka.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -608,7 +670,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Poruppu</label>
|
<label>Poruppu</label>
|
||||||
<select id="10" type="text" class="input" name="Poruppu">
|
<select id="11" type="text" class="input" name="Poruppu">
|
||||||
<% dropdown.poruppu.forEach(function(data , index ) { %>
|
<% dropdown.poruppu.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -616,7 +678,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Ganavesh</label>
|
<label>Ganavesh</label>
|
||||||
<select id="11" type="text" class="input" name="Ganavesh">
|
<select id="12" type="text" class="input" name="Ganavesh">
|
||||||
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -624,11 +686,11 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>DOB</label>
|
<label>DOB</label>
|
||||||
<input id="12" type="text" class="input" name="DOB">
|
<input id="13" type="text" class="input" name="DOB">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Blood Group</label>
|
<label>Blood Group</label>
|
||||||
<select id="13" type="text" class="input" name="Blood Group">
|
<select id="14" type="text" class="input" name="Blood Group">
|
||||||
<% dropdown.blood_group.forEach(function(data , index ) { %>
|
<% dropdown.blood_group.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -636,7 +698,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>2W</label>
|
<label>2W</label>
|
||||||
<select id="14" type="text" class="input" name="2W">
|
<select id="15" type="text" class="input" name="2W">
|
||||||
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -644,7 +706,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>4W</label>
|
<label>4W</label>
|
||||||
<select id="15" type="text" class="input" name="4W">
|
<select id="16" type="text" class="input" name="4W">
|
||||||
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -652,11 +714,11 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Pada Sanchalan 2022</label>
|
<label>Pada Sanchalan 2022</label>
|
||||||
<input id="16" type="text" class="input" name="Pada Sanchalan 2022">
|
<input id="17" type="text" class="input" name="Pada Sanchalan 2022">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Bagh Sanghik</label>
|
<label>Bagh Sanghik</label>
|
||||||
<select id="17" type="text" class="input" name="Bagh Sanghik">
|
<select id="18" type="text" class="input" name="Bagh Sanghik">
|
||||||
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -664,19 +726,19 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Year</label>
|
<label>Year</label>
|
||||||
<input id="18" type="text" class="input" name="Year">
|
<input id="19" type="text" class="input" name="Year">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Gurupooja 2021</label>
|
<label>Gurupooja 2021</label>
|
||||||
<input id="19" type="text" class="input" name="Gurupooja 2021">
|
<input id="20" type="text" class="input" name="Gurupooja 2021">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Gatnayak</label>
|
<label>Gatnayak</label>
|
||||||
<input id="20" type="text" class="input" name="Gatnayak">
|
<input id="21" type="text" class="input" name="Gatnayak">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Email</label>
|
<label>Email</label>
|
||||||
<input id="21" type="text" class="input" name="email">
|
<input id="22" type="text" class="input" name="email">
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@ -695,15 +757,21 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body" hidden>
|
<div class="modal-body" hidden>
|
||||||
<label>Sl.</label>
|
<label>Sl.</label>
|
||||||
<input id="new0" type="text" class="input" name="Sl." value="<%= dropdown.new_index %>">
|
<!-- value="<%= dropdown.new_index %>" -->
|
||||||
|
<input id="new0" type="text" class="input" name="Sl" >
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<label>Sno</label>
|
||||||
|
<input id="new1" type="text" class="input" name="Sno" value="<%= number %>" readonly>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Name</label>
|
<label>Name</label>
|
||||||
<input id="new1" type="text" class="input" name="name">
|
<input id="new2" type="text" class="input" name="name" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Category</label>
|
<label>Category</label>
|
||||||
<select id="new2" type="text" class="input" name="Çategory">
|
<select id="new3" type="text" class="input" name="Çategory">
|
||||||
|
<option class="dropdown-item">Select Category</option>
|
||||||
<% dropdown.category.forEach(function(data , index ) { %>
|
<% dropdown.category.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -711,7 +779,8 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Age Category</label>
|
<label>Age Category</label>
|
||||||
<select id="new3" type="text" class="input" name="Age Category">
|
<select id="new4" type="text" class="input" name="Age Category">
|
||||||
|
<option class="dropdown-item">Select Age Category</option>
|
||||||
<% dropdown.age_Category.forEach(function(data , index ) { %>
|
<% dropdown.age_Category.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -719,19 +788,19 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Contact No</label>
|
<label>Contact No</label>
|
||||||
<input id="new4" type="text" class="input" name="ContactNo">
|
<input id="new5" type="text" class="input" name="ContactNo" >
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Address</label>
|
<label>Address</label>
|
||||||
<input id="new5" type="text" class="input" name="Address">
|
<input id="new6" type="text" class="input" name="Address">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Reference</label>
|
<label>Reference</label>
|
||||||
<input id="new6" type="text" class="input" name="Reference">
|
<input id="new7" type="text" class="input" name="Reference">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Basthi</label>
|
<label>Basthi</label>
|
||||||
<select id="new7" type="text" class="input" name="Basthi">
|
<select id="new8" type="text" class="input" name="Basthi">
|
||||||
<% dropdown.basthi.forEach(function(data , index ) { %>
|
<% dropdown.basthi.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -739,7 +808,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Varga</label>
|
<label>Varga</label>
|
||||||
<select id="new8" type="text" class="input" name="Varga">
|
<select id="new9" type="text" class="input" name="Varga">
|
||||||
<% dropdown.varga.forEach(function(data , index ) { %>
|
<% dropdown.varga.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -747,7 +816,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Milan/Shaka</label>
|
<label>Milan/Shaka</label>
|
||||||
<select id="new9" type="text" class="input" name="Milan / Shaka">
|
<select id="new10" type="text" class="input" name="Milan / Shaka">
|
||||||
<% dropdown.milan_shaka.forEach(function(data , index ) { %>
|
<% dropdown.milan_shaka.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -755,7 +824,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Poruppu</label>
|
<label>Poruppu</label>
|
||||||
<select id="new10" type="text" class="input" name="Poruppu">
|
<select id="new11" type="text" class="input" name="Poruppu">
|
||||||
<% dropdown.poruppu.forEach(function(data , index ) { %>
|
<% dropdown.poruppu.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -763,7 +832,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Ganavesh</label>
|
<label>Ganavesh</label>
|
||||||
<select id="new11" type="text" class="input" name="Ganavesh">
|
<select id="new12" type="text" class="input" name="Ganavesh">
|
||||||
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -771,11 +840,11 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>DOB</label>
|
<label>DOB</label>
|
||||||
<input id="new12" type="text" class="input" name="DOB">
|
<input id="new13" type="text" class="input" name="DOB">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Blood Group</label>
|
<label>Blood Group</label>
|
||||||
<select id="new13" type="text" class="input" name="Blood Group">
|
<select id="new14" type="text" class="input" name="Blood Group">
|
||||||
<% dropdown.blood_group.forEach(function(data , index ) { %>
|
<% dropdown.blood_group.forEach(function(data , index ) { %>
|
||||||
<option value="<%=data %>"><%=data %></option>
|
<option value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -783,7 +852,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>2W</label>
|
<label>2W</label>
|
||||||
<select id="new13" type="text" class="input" name="2W">
|
<select id="new15" type="text" class="input" name="2W">
|
||||||
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -791,7 +860,7 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>4W</label>
|
<label>4W</label>
|
||||||
<select id="new14" type="text" class="input" name="4W">
|
<select id="new16" type="text" class="input" name="4W">
|
||||||
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -799,11 +868,11 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Pada Sanchalan 2022</label>
|
<label>Pada Sanchalan 2022</label>
|
||||||
<input id="new16" type="text" class="input" name="Pada Sanchalan 2022">
|
<input id="new17" type="text" class="input" name="Pada Sanchalan 2022">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Bagh Sanghik</label>
|
<label>Bagh Sanghik</label>
|
||||||
<select id="new17" type="text" class="input" name="Bagh Sanghik">
|
<select id="new18" type="text" class="input" name="Bagh Sanghik">
|
||||||
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
<% dropdown.ganavesh_2w_4w_basg.forEach(function(data , index ) { %>
|
||||||
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
<option class="dropdown-item" value="<%=data %>"><%=data %></option>
|
||||||
<% }) %>
|
<% }) %>
|
||||||
@ -811,57 +880,102 @@ label{ padding-left: 20px; }
|
|||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Year</label>
|
<label>Year</label>
|
||||||
<input id="new18" type="text" class="input" name="Year">
|
<input id="new19" type="text" class="input" name="Year">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Gurupooja 2021</label>
|
<label>Gurupooja 2021</label>
|
||||||
<input id="new19" type="text" class="input" name="Gurupooja 2021">
|
<input id="new20" type="text" class="input" name="Gurupooja 2021">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Gatnayak</label>
|
<label>Gatnayak</label>
|
||||||
<input id="new20" type="text" class="input" name="Gatnayak">
|
<input id="new21" type="text" class="input" name="Gatnayak">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<label>Email</label>
|
<label>Email</label>
|
||||||
<input id="new21" type="text" class="input" name="email">
|
<input id="new22" type="text" class="input" name="email">
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="add_email" class="modal fade" aria-modal="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<form name="contact-form">
|
||||||
|
<div class="modal-header">
|
||||||
|
<a class="back" data-dismiss="modal" aria-hidden="true"><i id="back" class="fa fa-arrow-circle-left" style="color: #FFFFF7;"></i></a>
|
||||||
|
<h4 class="modal-title">Add Email</h4>
|
||||||
|
<a id="add-email" class="add" data-dismiss="modal"><i class="fa fa-save" style="color: #FFFFF7;"></i></a>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" >
|
||||||
|
<label></label>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" >
|
||||||
|
<label>Email</label>
|
||||||
|
<input id="email0" type="email" class="input" name="email">
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" >
|
||||||
|
<label></label>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- <input id="email1" type="" class="input" name="submit"> -->
|
||||||
|
<!-- <button id="email1" class="input" name="submit">submit</button> -->
|
||||||
|
<div class="modal-body" >
|
||||||
|
<label></label>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" >
|
||||||
|
<label></label>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
let oldValue = [];let newValue = [];let pos = []; let email=[];
|
||||||
let oldValue = [];let newValue = [];let pos = [];
|
|
||||||
|
|
||||||
// SI dynamic background-color
|
// SI dynamic background-color
|
||||||
$(document).ready(function()
|
$(document).ready(function(){
|
||||||
{
|
|
||||||
var colorArray = ["#435d7d" , "Green" , "DarkViolet" , "DarkRed" , "Brown" , "DarkOrange" , "DarkGrey" , "DodgerBlue" , "DarkSeaGreen" , "SlateBlue" ];
|
var colorArray = ["#435d7d" , "Green" , "DarkViolet" , "DarkRed" , "Brown" , "DarkOrange" , "DarkGrey" , "DodgerBlue" , "DarkSeaGreen" , "SlateBlue" ];
|
||||||
$('tbody').children("tr").each(function(index){
|
$('tbody').children("tr").each(function(index){
|
||||||
// apply color dynamically
|
// apply color dynamically
|
||||||
$(this).find("td:nth-of-type(1)").css("background", colorArray[index % 10]);
|
$(this).find("td:nth-of-type(1)").css("background", colorArray[index % 10]);
|
||||||
// get first letter from name
|
// get first letter from name
|
||||||
var header = $(this).find('td:nth-of-type(2)').text()
|
var header = $(this).find('td:nth-of-type(3)').text()
|
||||||
$(this).find("td:nth-of-type(1)").html([header.charAt(0)]);
|
$(this).find("td:nth-of-type(1)").html([header.charAt(0)]);
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
// close the update form when ever we click the call icon
|
// close the update form when ever we click the call icon
|
||||||
$(document).on("click", "#last", function(){
|
|
||||||
$('#back').click();
|
$(document).ready(function() {
|
||||||
})
|
$(document).on("click", "#last", function() {
|
||||||
|
$("#form-hide").hide();
|
||||||
|
$("#back").click();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$(document).ready(function() {
|
||||||
|
$(document).on("click", "#name", function() {
|
||||||
|
$("#form-hide").show();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// Add new data in sheet
|
// Add new data in sheet
|
||||||
$(document).on("click", "#add-new", function(){
|
$(document).on("click", "#add-new", function(){
|
||||||
for (let i = 0; i < 22; i++) {
|
for (let i = 0; i < 23; i++) {
|
||||||
newValue.push($(`#new${i}`).val())
|
newValue.push($(`#new${i}`).val())
|
||||||
}
|
}
|
||||||
// add data in googlesheet using ajax
|
// add data in googlesheet using ajax
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "post",
|
type: "post",
|
||||||
url: ''+ window.location.origin +'/api/addRow',
|
url: ''+ window.location.origin +'/addRow',
|
||||||
data: { data : newValue },
|
data: { data : newValue },
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
if (response.statusCode == 1) {
|
if (response.statusCode == 1) {
|
||||||
@ -892,7 +1006,7 @@ $(document).on("click", "#up", function(){
|
|||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
newValue.push($(`#${i}`).val())
|
newValue.push($(`#${i}`).val())
|
||||||
// update first letter from name
|
// update first letter from name
|
||||||
var header = $('#1').val();
|
var header = $('#2').val();
|
||||||
// remove sl and update name first-letter
|
// remove sl and update name first-letter
|
||||||
pos[0].find(`td:nth-child(${i+1})`).html([header.charAt(0)]);
|
pos[0].find(`td:nth-child(${i+1})`).html([header.charAt(0)]);
|
||||||
}
|
}
|
||||||
@ -904,7 +1018,8 @@ $(document).on("click", "#up", function(){
|
|||||||
// update data in googlesheet using ajax
|
// update data in googlesheet using ajax
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "post",
|
type: "post",
|
||||||
url: ''+ window.location.origin +'/api/updateRow',
|
url: ''+ window.location.origin +'/updateRow',
|
||||||
|
// data: { Old : oldValue , New : newValue },
|
||||||
data: { Old : oldValue , New : newValue },
|
data: { Old : oldValue , New : newValue },
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
if (response.status == 200) { alert("updated") }
|
if (response.status == 200) { alert("updated") }
|
||||||
@ -918,33 +1033,59 @@ $(document).on("click", "#up", function(){
|
|||||||
$(document).on("click", ".update", function(){
|
$(document).on("click", ".update", function(){
|
||||||
pos.push($(this).children("tr"));
|
pos.push($(this).children("tr"));
|
||||||
$(this).children("tr").find("td:not(:last-child)").each(function(index){
|
$(this).children("tr").find("td:not(:last-child)").each(function(index){
|
||||||
oldValue.push($(this).text());
|
oldValue.push($(this).text());
|
||||||
$(`#${index}`).val($(this).text());
|
$(`#${index}`).val($(this).text());
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//add Email in Json file
|
||||||
|
$(document).on("click", "#add-email", function(){
|
||||||
|
const email =document.getElementById("email0").value;
|
||||||
|
// const email1 =email.value;
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
url: ''+ window.location.origin +'/addjson',
|
||||||
|
data: { data : email },
|
||||||
|
success: function(response) {
|
||||||
|
if (response.statusCode == 1) {
|
||||||
|
document.getElementById("email0").value = ''; // Clear the input field
|
||||||
|
alert("Data added successfully");
|
||||||
|
window.location.reload();
|
||||||
|
} else {
|
||||||
|
document.getElementById("email0").value = ''; // Clear the input field
|
||||||
|
alert("Data not added successfully"); // Corrected alert message
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(jqXHR, textStatus, err) {
|
||||||
|
// alert('text status: '+textStatus+', err :'+err+', jqXHR:'+jqXHR)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// clear arr
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
// Filter and Search
|
// Filter and Search
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
$("#myInput").on("keyup", function() {
|
$("#myInput").on("keyup", function() {
|
||||||
var value = $(this).val().toLowerCase();
|
var value = $(this).val().toLowerCase();
|
||||||
if ( $('#search_param option:selected').text() == 'Default') {
|
if ( $('#search_param option:selected').text() == 'Default') {
|
||||||
$("#myTable tr").filter(function() {
|
$("#myTable tr").filter(function() {
|
||||||
$(this).toggle($(this).find("td:nth-child(2) , td:nth-child(5)").text().toLowerCase().indexOf(value) > -1)
|
$(this).toggle($(this).find("td:nth-child(2),td:nth-child(3) ,td:nth-child(4), td:nth-child(6)").text().toLowerCase().indexOf(value) > -1)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if ( $('#search_param option:selected').text() == 'Name') {
|
if ( $('#search_param option:selected').text() == 'Name') {
|
||||||
$("#myTable tr").filter(function() {
|
$("#myTable tr").filter(function() {
|
||||||
$(this).toggle($(this).find("td:nth-child(2)").text().toLowerCase().indexOf(value) > -1)
|
$(this).toggle($(this).find("td:nth-child(3)").text().toLowerCase().indexOf(value) > -1)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if ( $('#search_param option:selected').text() == 'Mobile') {
|
if ( $('#search_param option:selected').text() == 'Mobile') {
|
||||||
$("#myTable tr").filter(function() {
|
$("#myTable tr").filter(function() {
|
||||||
$(this).toggle($(this).find("td:nth-child(5)").text().toLowerCase().indexOf(value) > -1)
|
$(this).toggle($(this).find("td:nth-child(6)").text().toLowerCase().indexOf(value) > -1)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if ( $('#search_param option:selected').text() == 'Catogary') {
|
if ( $('#search_param option:selected').text() == 'Catogary') {
|
||||||
$("#myTable tr").filter(function() {
|
$("#myTable tr").filter(function() {
|
||||||
$(this).toggle($(this).find("td:nth-child(3)").text().toLowerCase().indexOf(value) > -1)
|
$(this).toggle($(this).find("td:nth-child(4)").text().toLowerCase().indexOf(value) > -1)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -952,14 +1093,3 @@ $(document).ready(function(){
|
|||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
BIN
app/views/google.png
Normal file
BIN
app/views/google.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 55 KiB |
@ -7,25 +7,40 @@
|
|||||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
|
||||||
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
|
||||||
<script src="https://accounts.google.com/gsi/client" async defer></script>
|
<script src="https://accounts.google.com/gsi/client" async defer></script>
|
||||||
|
<!-- <script src="https://accounts.google.com/o/oauth2/auth" async defer></script> -->
|
||||||
<!------ Include the above in your HEAD tag ---------->
|
<!------ Include the above in your HEAD tag ---------->
|
||||||
<script>
|
<script>
|
||||||
function handleCredentialResponse(response) {
|
function handleCredentialResponse(response) {
|
||||||
const responsePayload = JSON.parse(atob(response.credential.split('.')[1]));
|
const responsePayload = JSON.parse(atob(response.credential.split('.')[1]));
|
||||||
window.location = `${ window.location.origin }/api/getRow?email=${responsePayload.email}`;
|
|
||||||
}
|
// Set the email value in the hidden input field
|
||||||
|
const emailInput = document.getElementById('emailInput');
|
||||||
|
emailInput.value = responsePayload.email;
|
||||||
|
|
||||||
|
// Submit the form programmatically
|
||||||
|
const signinForm = document.getElementById('signinForm');
|
||||||
|
signinForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = function () {
|
||||||
|
google.accounts.id.initialize({
|
||||||
|
client_id: "271723278161-5fkkg7rtce6pq7tchgr1gioat14oqpet.apps.googleusercontent.com",
|
||||||
|
callback: handleCredentialResponse
|
||||||
|
});
|
||||||
|
|
||||||
|
google.accounts.id.renderButton(document.getElementById("buttonDiv"), {
|
||||||
|
type: "outline",
|
||||||
|
locale: "the new locale",
|
||||||
|
theme: "filled_blue",
|
||||||
|
size: "large",
|
||||||
|
shape: "rectangular",
|
||||||
|
width: "400",
|
||||||
|
logo_alignment: "left"
|
||||||
|
});
|
||||||
|
|
||||||
|
google.accounts.id.prompt(); // also display the One Tap dialog
|
||||||
|
}
|
||||||
|
|
||||||
window.onload = function () {
|
|
||||||
google.accounts.id.initialize({
|
|
||||||
client_id: "1000433489727-n24pbvsdo5799elkaar78u0pgrcjmjv2.apps.googleusercontent.com",
|
|
||||||
callback: handleCredentialResponse
|
|
||||||
});
|
|
||||||
google.accounts.id.renderButton(document.getElementById("buttonDiv"),
|
|
||||||
{ type: "outline", locale: "the new locale" , theme: "filled_blue",
|
|
||||||
size: "large", shape: "rectangular",
|
|
||||||
width: "400",
|
|
||||||
logo_alignment: "left"})
|
|
||||||
google.accounts.id.prompt(); // also display the One Tap dialog
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<style>
|
<style>
|
||||||
@ -36,7 +51,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background-color: #eeeeee;
|
background-color: #435d7d;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
@ -47,6 +62,7 @@ img {
|
|||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
.form {
|
.form {
|
||||||
|
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
width: 500px;
|
width: 500px;
|
||||||
height: 600px;
|
height: 600px;
|
||||||
@ -65,6 +81,22 @@ h3{
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
#add_user_button{
|
||||||
|
font-family: Google Sans,Noto Sans Myanmar UI,arial,sans-serif;
|
||||||
|
font-size: 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
border-color: #1a71eb;
|
||||||
|
background-color: #1a71eb;
|
||||||
|
width: 70px;
|
||||||
|
height: 25px;
|
||||||
|
top: 50px;
|
||||||
|
margin-left: 3%;
|
||||||
|
transform: scale(1.5);
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
|
||||||
|
color: #eeeeee;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* Smartphones (portrait and landscape) ----------- */
|
/* Smartphones (portrait and landscape) ----------- */
|
||||||
@media only screen and (max-width : 992px){
|
@media only screen and (max-width : 992px){
|
||||||
@ -113,13 +145,18 @@ p{
|
|||||||
color: #fffff7;
|
color: #fffff7;
|
||||||
font-size: 4em;
|
font-size: 4em;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<body>
|
<body>
|
||||||
<div class="form">
|
<div class="form">
|
||||||
<img src="http://www.androidpolice.com/wp-content/themes/ap2/ap_resize/ap_resize.php?src=http%3A%2F%2Fwww.androidpolice.com%2Fwp-content%2Fuploads%2F2015%2F10%2Fnexus2cee_Search-Thumb-150x150.png&w=150&h=150&zc=3">
|
<img src="http://www.androidpolice.com/wp-content/themes/ap2/ap_resize/ap_resize.php?src=http%3A%2F%2Fwww.androidpolice.com%2Fwp-content%2Fuploads%2F2015%2F10%2Fnexus2cee_Search-Thumb-150x150.png&w=150&h=150&zc=3">
|
||||||
<h3>Welcome back! Please sign in</h3>
|
<h3>Welcome back! Please sign in</h3>
|
||||||
<div id="buttonDiv"></div>
|
<form method="POST" action="/getRow" id="signinForm">
|
||||||
|
<input type="hidden" name="email" id="emailInput">
|
||||||
|
</form>
|
||||||
|
<div id="buttonDiv"></div>
|
||||||
</div>
|
</div>
|
||||||
<p>......</p>
|
<p>......</p>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
669
package-lock.json
generated
669
package-lock.json
generated
@ -12,15 +12,22 @@
|
|||||||
"body-parser": "^1.19.0",
|
"body-parser": "^1.19.0",
|
||||||
"bootstrap": "^5.2.3",
|
"bootstrap": "^5.2.3",
|
||||||
"bootstrap-icons": "^1.10.2",
|
"bootstrap-icons": "^1.10.2",
|
||||||
|
"cookie-parser": "^1.4.6",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"dotenv": "^10.0.0",
|
"dotenv": "^10.0.0",
|
||||||
"ejs": "^3.1.8",
|
"ejs": "^3.1.8",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
|
"express-flash": "^0.0.2",
|
||||||
|
"express-session": "^1.17.3",
|
||||||
|
"fs": "^0.0.1-security",
|
||||||
|
"gaxios": "^6.1.1",
|
||||||
"google-auth-library": "^8.6.0",
|
"google-auth-library": "^8.6.0",
|
||||||
"google-spreadsheet": "^3.3.0",
|
"google-spreadsheet": "^3.3.0",
|
||||||
|
"googleapis": "^126.0.1",
|
||||||
"log4js": "^6.3.0",
|
"log4js": "^6.3.0",
|
||||||
"mssql": "^7.2.0",
|
"mssql": "^7.2.0",
|
||||||
"passport": "^0.6.0",
|
"passport": "^0.6.0",
|
||||||
|
"passport-google-oauth20": "^2.0.0",
|
||||||
"passport-local": "^1.0.0",
|
"passport-local": "^1.0.0",
|
||||||
"passport-openidconnect": "^0.1.1",
|
"passport-openidconnect": "^0.1.1",
|
||||||
"request": "^2.88.2",
|
"request": "^2.88.2",
|
||||||
@ -1007,6 +1014,14 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"node_modules/base64url": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/bcrypt-pbkdf": {
|
"node_modules/bcrypt-pbkdf": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||||
@ -1496,6 +1511,14 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/connect-flash": {
|
||||||
|
"version": "0.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz",
|
||||||
|
"integrity": "sha512-2rcfELQt/ZMP+SM/pG8PyhJRaLKp+6Hk2IUBNkEit09X+vwn3QsAL3ZbYtxUn7NVPzbMTSLRDhqe0B/eh30RYA==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/console-control-strings": {
|
"node_modules/console-control-strings": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
||||||
@ -1529,6 +1552,26 @@
|
|||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/cookie-parser": {
|
||||||
|
"version": "1.4.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz",
|
||||||
|
"integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==",
|
||||||
|
"dependencies": {
|
||||||
|
"cookie": "0.4.1",
|
||||||
|
"cookie-signature": "1.0.6"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/cookie-parser/node_modules/cookie": {
|
||||||
|
"version": "0.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
|
||||||
|
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/cookie-signature": {
|
"node_modules/cookie-signature": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||||
@ -1867,6 +1910,43 @@
|
|||||||
"node": ">= 0.10.0"
|
"node": ">= 0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/express-flash": {
|
||||||
|
"version": "0.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/express-flash/-/express-flash-0.0.2.tgz",
|
||||||
|
"integrity": "sha512-QVUR0ZZRCaa8+iPHoUQaQJrQWcQuK/Q+19M7IUIdIEtvwhrA/ifHT7y1CVJI41YfGiOQnbGtn3uvd2vOdgu58A==",
|
||||||
|
"dependencies": {
|
||||||
|
"connect-flash": "0.1.x"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/express-session": {
|
||||||
|
"version": "1.17.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz",
|
||||||
|
"integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==",
|
||||||
|
"dependencies": {
|
||||||
|
"cookie": "0.4.2",
|
||||||
|
"cookie-signature": "1.0.6",
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "~2.0.0",
|
||||||
|
"on-headers": "~1.0.2",
|
||||||
|
"parseurl": "~1.3.3",
|
||||||
|
"safe-buffer": "5.2.1",
|
||||||
|
"uid-safe": "~2.1.5"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/express-session/node_modules/cookie": {
|
||||||
|
"version": "0.4.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
|
||||||
|
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/extend": {
|
"node_modules/extend": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||||
@ -2030,6 +2110,11 @@
|
|||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/fs": {
|
||||||
|
"version": "0.0.1-security",
|
||||||
|
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
|
||||||
|
"integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
|
||||||
|
},
|
||||||
"node_modules/fs-constants": {
|
"node_modules/fs-constants": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||||
@ -2090,19 +2175,63 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/gaxios": {
|
"node_modules/gaxios": {
|
||||||
"version": "5.0.2",
|
"version": "6.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.1.1.tgz",
|
||||||
"integrity": "sha512-TjtV2AJOZoMQqRYoy5eM8cCQogYwazWNYLQ72QB0kwa6vHHruYkGmhhyrlzbmgNHK1dNnuP2WSH81urfzyN2Og==",
|
"integrity": "sha512-bw8smrX+XlAoo9o1JAksBwX+hi/RG15J+NTSxmNPIclKC3ZVK6C2afwY8OSdRvOK0+ZLecUJYtj2MmjOt3Dm0w==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"extend": "^3.0.2",
|
"extend": "^3.0.2",
|
||||||
"https-proxy-agent": "^5.0.0",
|
"https-proxy-agent": "^7.0.1",
|
||||||
"is-stream": "^2.0.0",
|
"is-stream": "^2.0.0",
|
||||||
"node-fetch": "^2.6.7"
|
"node-fetch": "^2.6.9"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/gaxios/node_modules/agent-base": {
|
||||||
|
"version": "7.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
|
||||||
|
"integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
|
||||||
|
"dependencies": {
|
||||||
|
"debug": "^4.3.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/gaxios/node_modules/debug": {
|
||||||
|
"version": "4.3.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||||
|
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"ms": "2.1.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"supports-color": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/gaxios/node_modules/https-proxy-agent": {
|
||||||
|
"version": "7.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
|
||||||
|
"integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
|
||||||
|
"dependencies": {
|
||||||
|
"agent-base": "^7.0.2",
|
||||||
|
"debug": "4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/gaxios/node_modules/ms": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
|
},
|
||||||
"node_modules/gcp-metadata": {
|
"node_modules/gcp-metadata": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.0.1.tgz",
|
||||||
@ -2115,6 +2244,20 @@
|
|||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/gcp-metadata/node_modules/gaxios": {
|
||||||
|
"version": "5.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz",
|
||||||
|
"integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==",
|
||||||
|
"dependencies": {
|
||||||
|
"extend": "^3.0.2",
|
||||||
|
"https-proxy-agent": "^5.0.0",
|
||||||
|
"is-stream": "^2.0.0",
|
||||||
|
"node-fetch": "^2.6.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/get-intrinsic": {
|
"node_modules/get-intrinsic": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
|
||||||
@ -2228,6 +2371,20 @@
|
|||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/google-auth-library/node_modules/gaxios": {
|
||||||
|
"version": "5.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz",
|
||||||
|
"integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==",
|
||||||
|
"dependencies": {
|
||||||
|
"extend": "^3.0.2",
|
||||||
|
"https-proxy-agent": "^5.0.0",
|
||||||
|
"is-stream": "^2.0.0",
|
||||||
|
"node-fetch": "^2.6.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/google-p12-pem": {
|
"node_modules/google-p12-pem": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz",
|
||||||
@ -2328,6 +2485,128 @@
|
|||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/googleapis": {
|
||||||
|
"version": "126.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/googleapis/-/googleapis-126.0.1.tgz",
|
||||||
|
"integrity": "sha512-4N8LLi+hj6ytK3PhE52KcM8iSGhJjtXnCDYB4fp6l+GdLbYz4FoDmx074WqMbl7iYMDN87vqD/8drJkhxW92mQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"google-auth-library": "^9.0.0",
|
||||||
|
"googleapis-common": "^7.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/googleapis-common": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-58iSybJPQZ8XZNMpjrklICefuOuyJ0lMxfKmBqmaC0/xGT4SiOs4BE60LAOOGtBURy1n8fHa2X2YUNFEWWbXyQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"extend": "^3.0.2",
|
||||||
|
"gaxios": "^6.0.3",
|
||||||
|
"google-auth-library": "^9.0.0",
|
||||||
|
"qs": "^6.7.0",
|
||||||
|
"url-template": "^2.0.8",
|
||||||
|
"uuid": "^9.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/googleapis-common/node_modules/gcp-metadata": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-Ozxyi23/1Ar51wjUT2RDklK+3HxqDr8TLBNK8rBBFQ7T85iIGnXnVusauj06QyqCXRFZig8LZC+TUddWbndlpQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"json-bigint": "^1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/googleapis-common/node_modules/google-auth-library": {
|
||||||
|
"version": "9.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.0.0.tgz",
|
||||||
|
"integrity": "sha512-IQGjgQoVUAfOk6khqTVMLvWx26R+yPw9uLyb1MNyMQpdKiKt0Fd9sp4NWoINjyGHR8S3iw12hMTYK7O8J07c6Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"base64-js": "^1.3.0",
|
||||||
|
"ecdsa-sig-formatter": "^1.0.11",
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"gcp-metadata": "^6.0.0",
|
||||||
|
"gtoken": "^7.0.0",
|
||||||
|
"jws": "^4.0.0",
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/googleapis-common/node_modules/gtoken": {
|
||||||
|
"version": "7.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.0.1.tgz",
|
||||||
|
"integrity": "sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"jws": "^4.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/googleapis-common/node_modules/uuid": {
|
||||||
|
"version": "9.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
|
||||||
|
"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
|
||||||
|
"funding": [
|
||||||
|
"https://github.com/sponsors/broofa",
|
||||||
|
"https://github.com/sponsors/ctavan"
|
||||||
|
],
|
||||||
|
"bin": {
|
||||||
|
"uuid": "dist/bin/uuid"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/googleapis/node_modules/gcp-metadata": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-Ozxyi23/1Ar51wjUT2RDklK+3HxqDr8TLBNK8rBBFQ7T85iIGnXnVusauj06QyqCXRFZig8LZC+TUddWbndlpQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"json-bigint": "^1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/googleapis/node_modules/google-auth-library": {
|
||||||
|
"version": "9.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.0.0.tgz",
|
||||||
|
"integrity": "sha512-IQGjgQoVUAfOk6khqTVMLvWx26R+yPw9uLyb1MNyMQpdKiKt0Fd9sp4NWoINjyGHR8S3iw12hMTYK7O8J07c6Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"base64-js": "^1.3.0",
|
||||||
|
"ecdsa-sig-formatter": "^1.0.11",
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"gcp-metadata": "^6.0.0",
|
||||||
|
"gtoken": "^7.0.0",
|
||||||
|
"jws": "^4.0.0",
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/googleapis/node_modules/gtoken": {
|
||||||
|
"version": "7.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.0.1.tgz",
|
||||||
|
"integrity": "sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"jws": "^4.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/got": {
|
"node_modules/got": {
|
||||||
"version": "9.6.0",
|
"version": "9.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
|
||||||
@ -2389,6 +2668,20 @@
|
|||||||
"node": ">=12.0.0"
|
"node": ">=12.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/gtoken/node_modules/gaxios": {
|
||||||
|
"version": "5.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz",
|
||||||
|
"integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==",
|
||||||
|
"dependencies": {
|
||||||
|
"extend": "^3.0.2",
|
||||||
|
"https-proxy-agent": "^5.0.0",
|
||||||
|
"is-stream": "^2.0.0",
|
||||||
|
"node-fetch": "^2.6.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/har-schema": {
|
"node_modules/har-schema": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||||
@ -3404,9 +3697,9 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"node_modules/node-fetch": {
|
"node_modules/node-fetch": {
|
||||||
"version": "2.6.7",
|
"version": "2.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
|
||||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"whatwg-url": "^5.0.0"
|
"whatwg-url": "^5.0.0"
|
||||||
},
|
},
|
||||||
@ -3576,6 +3869,14 @@
|
|||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/on-headers": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/once": {
|
"node_modules/once": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
@ -3671,6 +3972,17 @@
|
|||||||
"url": "https://github.com/sponsors/jaredhanson"
|
"url": "https://github.com/sponsors/jaredhanson"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/passport-google-oauth20": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"passport-oauth2": "1.x.x"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/passport-local": {
|
"node_modules/passport-local": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
|
||||||
@ -3682,6 +3994,25 @@
|
|||||||
"node": ">= 0.4.0"
|
"node": ">= 0.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/passport-oauth2": {
|
||||||
|
"version": "1.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.7.0.tgz",
|
||||||
|
"integrity": "sha512-j2gf34szdTF2Onw3+76alNnaAExlUmHvkc7cL+cmaS5NzHzDP/BvFHJruueQ9XAeNOdpI+CH+PWid8RA7KCwAQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"base64url": "3.x.x",
|
||||||
|
"oauth": "0.9.x",
|
||||||
|
"passport-strategy": "1.x.x",
|
||||||
|
"uid2": "0.0.x",
|
||||||
|
"utils-merge": "1.x.x"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/jaredhanson"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/passport-openidconnect": {
|
"node_modules/passport-openidconnect": {
|
||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/passport-openidconnect/-/passport-openidconnect-0.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/passport-openidconnect/-/passport-openidconnect-0.1.1.tgz",
|
||||||
@ -3863,6 +4194,14 @@
|
|||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/random-bytes": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/range-parser": {
|
"node_modules/range-parser": {
|
||||||
"version": "1.2.1",
|
"version": "1.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
|
||||||
@ -4739,6 +5078,22 @@
|
|||||||
"is-typedarray": "^1.0.0"
|
"is-typedarray": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/uid-safe": {
|
||||||
|
"version": "2.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
|
||||||
|
"integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
|
||||||
|
"dependencies": {
|
||||||
|
"random-bytes": "~1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/uid2": {
|
||||||
|
"version": "0.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz",
|
||||||
|
"integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA=="
|
||||||
|
},
|
||||||
"node_modules/undefsafe": {
|
"node_modules/undefsafe": {
|
||||||
"version": "2.0.5",
|
"version": "2.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
|
||||||
@ -4841,6 +5196,11 @@
|
|||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/url-template": {
|
||||||
|
"version": "2.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz",
|
||||||
|
"integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw=="
|
||||||
|
},
|
||||||
"node_modules/util-deprecate": {
|
"node_modules/util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||||
@ -5991,6 +6351,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
|
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
|
||||||
},
|
},
|
||||||
|
"base64url": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A=="
|
||||||
|
},
|
||||||
"bcrypt-pbkdf": {
|
"bcrypt-pbkdf": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||||
@ -6362,6 +6727,11 @@
|
|||||||
"xdg-basedir": "^4.0.0"
|
"xdg-basedir": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"connect-flash": {
|
||||||
|
"version": "0.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz",
|
||||||
|
"integrity": "sha512-2rcfELQt/ZMP+SM/pG8PyhJRaLKp+6Hk2IUBNkEit09X+vwn3QsAL3ZbYtxUn7NVPzbMTSLRDhqe0B/eh30RYA=="
|
||||||
|
},
|
||||||
"console-control-strings": {
|
"console-control-strings": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
||||||
@ -6386,6 +6756,22 @@
|
|||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
|
||||||
"integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
|
"integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
|
||||||
},
|
},
|
||||||
|
"cookie-parser": {
|
||||||
|
"version": "1.4.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz",
|
||||||
|
"integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==",
|
||||||
|
"requires": {
|
||||||
|
"cookie": "0.4.1",
|
||||||
|
"cookie-signature": "1.0.6"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"cookie": {
|
||||||
|
"version": "0.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
|
||||||
|
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"cookie-signature": {
|
"cookie-signature": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||||
@ -6648,6 +7034,36 @@
|
|||||||
"vary": "~1.1.2"
|
"vary": "~1.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"express-flash": {
|
||||||
|
"version": "0.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/express-flash/-/express-flash-0.0.2.tgz",
|
||||||
|
"integrity": "sha512-QVUR0ZZRCaa8+iPHoUQaQJrQWcQuK/Q+19M7IUIdIEtvwhrA/ifHT7y1CVJI41YfGiOQnbGtn3uvd2vOdgu58A==",
|
||||||
|
"requires": {
|
||||||
|
"connect-flash": "0.1.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"express-session": {
|
||||||
|
"version": "1.17.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.3.tgz",
|
||||||
|
"integrity": "sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw==",
|
||||||
|
"requires": {
|
||||||
|
"cookie": "0.4.2",
|
||||||
|
"cookie-signature": "1.0.6",
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "~2.0.0",
|
||||||
|
"on-headers": "~1.0.2",
|
||||||
|
"parseurl": "~1.3.3",
|
||||||
|
"safe-buffer": "5.2.1",
|
||||||
|
"uid-safe": "~2.1.5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"cookie": {
|
||||||
|
"version": "0.4.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
|
||||||
|
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"extend": {
|
"extend": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||||
@ -6775,6 +7191,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||||||
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
||||||
},
|
},
|
||||||
|
"fs": {
|
||||||
|
"version": "0.0.1-security",
|
||||||
|
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
|
||||||
|
"integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
|
||||||
|
},
|
||||||
"fs-constants": {
|
"fs-constants": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||||
@ -6825,14 +7246,46 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gaxios": {
|
"gaxios": {
|
||||||
"version": "5.0.2",
|
"version": "6.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.1.1.tgz",
|
||||||
"integrity": "sha512-TjtV2AJOZoMQqRYoy5eM8cCQogYwazWNYLQ72QB0kwa6vHHruYkGmhhyrlzbmgNHK1dNnuP2WSH81urfzyN2Og==",
|
"integrity": "sha512-bw8smrX+XlAoo9o1JAksBwX+hi/RG15J+NTSxmNPIclKC3ZVK6C2afwY8OSdRvOK0+ZLecUJYtj2MmjOt3Dm0w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"extend": "^3.0.2",
|
"extend": "^3.0.2",
|
||||||
"https-proxy-agent": "^5.0.0",
|
"https-proxy-agent": "^7.0.1",
|
||||||
"is-stream": "^2.0.0",
|
"is-stream": "^2.0.0",
|
||||||
"node-fetch": "^2.6.7"
|
"node-fetch": "^2.6.9"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"agent-base": {
|
||||||
|
"version": "7.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
|
||||||
|
"integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
|
||||||
|
"requires": {
|
||||||
|
"debug": "^4.3.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"version": "4.3.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||||
|
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"https-proxy-agent": {
|
||||||
|
"version": "7.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
|
||||||
|
"integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
|
||||||
|
"requires": {
|
||||||
|
"agent-base": "^7.0.2",
|
||||||
|
"debug": "4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gcp-metadata": {
|
"gcp-metadata": {
|
||||||
@ -6842,6 +7295,19 @@
|
|||||||
"requires": {
|
"requires": {
|
||||||
"gaxios": "^5.0.0",
|
"gaxios": "^5.0.0",
|
||||||
"json-bigint": "^1.0.0"
|
"json-bigint": "^1.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"gaxios": {
|
||||||
|
"version": "5.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz",
|
||||||
|
"integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==",
|
||||||
|
"requires": {
|
||||||
|
"extend": "^3.0.2",
|
||||||
|
"https-proxy-agent": "^5.0.0",
|
||||||
|
"is-stream": "^2.0.0",
|
||||||
|
"node-fetch": "^2.6.9"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"get-intrinsic": {
|
"get-intrinsic": {
|
||||||
@ -6930,6 +7396,19 @@
|
|||||||
"gtoken": "^6.1.0",
|
"gtoken": "^6.1.0",
|
||||||
"jws": "^4.0.0",
|
"jws": "^4.0.0",
|
||||||
"lru-cache": "^6.0.0"
|
"lru-cache": "^6.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"gaxios": {
|
||||||
|
"version": "5.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz",
|
||||||
|
"integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==",
|
||||||
|
"requires": {
|
||||||
|
"extend": "^3.0.2",
|
||||||
|
"https-proxy-agent": "^5.0.0",
|
||||||
|
"is-stream": "^2.0.0",
|
||||||
|
"node-fetch": "^2.6.9"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"google-p12-pem": {
|
"google-p12-pem": {
|
||||||
@ -7007,6 +7486,101 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"googleapis": {
|
||||||
|
"version": "126.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/googleapis/-/googleapis-126.0.1.tgz",
|
||||||
|
"integrity": "sha512-4N8LLi+hj6ytK3PhE52KcM8iSGhJjtXnCDYB4fp6l+GdLbYz4FoDmx074WqMbl7iYMDN87vqD/8drJkhxW92mQ==",
|
||||||
|
"requires": {
|
||||||
|
"google-auth-library": "^9.0.0",
|
||||||
|
"googleapis-common": "^7.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"gcp-metadata": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-Ozxyi23/1Ar51wjUT2RDklK+3HxqDr8TLBNK8rBBFQ7T85iIGnXnVusauj06QyqCXRFZig8LZC+TUddWbndlpQ==",
|
||||||
|
"requires": {
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"json-bigint": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"google-auth-library": {
|
||||||
|
"version": "9.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.0.0.tgz",
|
||||||
|
"integrity": "sha512-IQGjgQoVUAfOk6khqTVMLvWx26R+yPw9uLyb1MNyMQpdKiKt0Fd9sp4NWoINjyGHR8S3iw12hMTYK7O8J07c6Q==",
|
||||||
|
"requires": {
|
||||||
|
"base64-js": "^1.3.0",
|
||||||
|
"ecdsa-sig-formatter": "^1.0.11",
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"gcp-metadata": "^6.0.0",
|
||||||
|
"gtoken": "^7.0.0",
|
||||||
|
"jws": "^4.0.0",
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gtoken": {
|
||||||
|
"version": "7.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.0.1.tgz",
|
||||||
|
"integrity": "sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ==",
|
||||||
|
"requires": {
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"jws": "^4.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"googleapis-common": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-58iSybJPQZ8XZNMpjrklICefuOuyJ0lMxfKmBqmaC0/xGT4SiOs4BE60LAOOGtBURy1n8fHa2X2YUNFEWWbXyQ==",
|
||||||
|
"requires": {
|
||||||
|
"extend": "^3.0.2",
|
||||||
|
"gaxios": "^6.0.3",
|
||||||
|
"google-auth-library": "^9.0.0",
|
||||||
|
"qs": "^6.7.0",
|
||||||
|
"url-template": "^2.0.8",
|
||||||
|
"uuid": "^9.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"gcp-metadata": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-Ozxyi23/1Ar51wjUT2RDklK+3HxqDr8TLBNK8rBBFQ7T85iIGnXnVusauj06QyqCXRFZig8LZC+TUddWbndlpQ==",
|
||||||
|
"requires": {
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"json-bigint": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"google-auth-library": {
|
||||||
|
"version": "9.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.0.0.tgz",
|
||||||
|
"integrity": "sha512-IQGjgQoVUAfOk6khqTVMLvWx26R+yPw9uLyb1MNyMQpdKiKt0Fd9sp4NWoINjyGHR8S3iw12hMTYK7O8J07c6Q==",
|
||||||
|
"requires": {
|
||||||
|
"base64-js": "^1.3.0",
|
||||||
|
"ecdsa-sig-formatter": "^1.0.11",
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"gcp-metadata": "^6.0.0",
|
||||||
|
"gtoken": "^7.0.0",
|
||||||
|
"jws": "^4.0.0",
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gtoken": {
|
||||||
|
"version": "7.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.0.1.tgz",
|
||||||
|
"integrity": "sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ==",
|
||||||
|
"requires": {
|
||||||
|
"gaxios": "^6.0.0",
|
||||||
|
"jws": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"uuid": {
|
||||||
|
"version": "9.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
|
||||||
|
"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"got": {
|
"got": {
|
||||||
"version": "9.6.0",
|
"version": "9.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
|
||||||
@ -7056,6 +7630,19 @@
|
|||||||
"gaxios": "^5.0.1",
|
"gaxios": "^5.0.1",
|
||||||
"google-p12-pem": "^4.0.0",
|
"google-p12-pem": "^4.0.0",
|
||||||
"jws": "^4.0.0"
|
"jws": "^4.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"gaxios": {
|
||||||
|
"version": "5.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz",
|
||||||
|
"integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==",
|
||||||
|
"requires": {
|
||||||
|
"extend": "^3.0.2",
|
||||||
|
"https-proxy-agent": "^5.0.0",
|
||||||
|
"is-stream": "^2.0.0",
|
||||||
|
"node-fetch": "^2.6.9"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"har-schema": {
|
"har-schema": {
|
||||||
@ -7846,9 +8433,9 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"node-fetch": {
|
"node-fetch": {
|
||||||
"version": "2.6.7",
|
"version": "2.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
|
||||||
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"whatwg-url": "^5.0.0"
|
"whatwg-url": "^5.0.0"
|
||||||
}
|
}
|
||||||
@ -7965,6 +8552,11 @@
|
|||||||
"ee-first": "1.1.1"
|
"ee-first": "1.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"on-headers": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
|
||||||
|
},
|
||||||
"once": {
|
"once": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
@ -8037,6 +8629,14 @@
|
|||||||
"utils-merge": "^1.0.1"
|
"utils-merge": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"passport-google-oauth20": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-KSk6IJ15RoxuGq7D1UKK/8qKhNfzbLeLrG3gkLZ7p4A6DBCcv7xpyQwuXtWdpyR0+E0mwkpjY1VfPOhxQrKzdQ==",
|
||||||
|
"requires": {
|
||||||
|
"passport-oauth2": "1.x.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
"passport-local": {
|
"passport-local": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
|
||||||
@ -8045,6 +8645,18 @@
|
|||||||
"passport-strategy": "1.x.x"
|
"passport-strategy": "1.x.x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"passport-oauth2": {
|
||||||
|
"version": "1.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.7.0.tgz",
|
||||||
|
"integrity": "sha512-j2gf34szdTF2Onw3+76alNnaAExlUmHvkc7cL+cmaS5NzHzDP/BvFHJruueQ9XAeNOdpI+CH+PWid8RA7KCwAQ==",
|
||||||
|
"requires": {
|
||||||
|
"base64url": "3.x.x",
|
||||||
|
"oauth": "0.9.x",
|
||||||
|
"passport-strategy": "1.x.x",
|
||||||
|
"uid2": "0.0.x",
|
||||||
|
"utils-merge": "1.x.x"
|
||||||
|
}
|
||||||
|
},
|
||||||
"passport-openidconnect": {
|
"passport-openidconnect": {
|
||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/passport-openidconnect/-/passport-openidconnect-0.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/passport-openidconnect/-/passport-openidconnect-0.1.1.tgz",
|
||||||
@ -8180,6 +8792,11 @@
|
|||||||
"side-channel": "^1.0.4"
|
"side-channel": "^1.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"random-bytes": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ=="
|
||||||
|
},
|
||||||
"range-parser": {
|
"range-parser": {
|
||||||
"version": "1.2.1",
|
"version": "1.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
|
||||||
@ -8812,6 +9429,19 @@
|
|||||||
"is-typedarray": "^1.0.0"
|
"is-typedarray": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"uid-safe": {
|
||||||
|
"version": "2.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz",
|
||||||
|
"integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==",
|
||||||
|
"requires": {
|
||||||
|
"random-bytes": "~1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"uid2": {
|
||||||
|
"version": "0.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.4.tgz",
|
||||||
|
"integrity": "sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA=="
|
||||||
|
},
|
||||||
"undefsafe": {
|
"undefsafe": {
|
||||||
"version": "2.0.5",
|
"version": "2.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
|
||||||
@ -8892,6 +9522,11 @@
|
|||||||
"prepend-http": "^2.0.0"
|
"prepend-http": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"url-template": {
|
||||||
|
"version": "2.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz",
|
||||||
|
"integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw=="
|
||||||
|
},
|
||||||
"util-deprecate": {
|
"util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||||
|
|||||||
@ -13,15 +13,22 @@
|
|||||||
"body-parser": "^1.19.0",
|
"body-parser": "^1.19.0",
|
||||||
"bootstrap": "^5.2.3",
|
"bootstrap": "^5.2.3",
|
||||||
"bootstrap-icons": "^1.10.2",
|
"bootstrap-icons": "^1.10.2",
|
||||||
|
"cookie-parser": "^1.4.6",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"dotenv": "^10.0.0",
|
"dotenv": "^10.0.0",
|
||||||
"ejs": "^3.1.8",
|
"ejs": "^3.1.8",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
|
"express-flash": "^0.0.2",
|
||||||
|
"express-session": "^1.17.3",
|
||||||
|
"fs": "^0.0.1-security",
|
||||||
|
"gaxios": "^6.1.1",
|
||||||
"google-auth-library": "^8.6.0",
|
"google-auth-library": "^8.6.0",
|
||||||
"google-spreadsheet": "^3.3.0",
|
"google-spreadsheet": "^3.3.0",
|
||||||
|
"googleapis": "^126.0.1",
|
||||||
"log4js": "^6.3.0",
|
"log4js": "^6.3.0",
|
||||||
"mssql": "^7.2.0",
|
"mssql": "^7.2.0",
|
||||||
"passport": "^0.6.0",
|
"passport": "^0.6.0",
|
||||||
|
"passport-google-oauth20": "^2.0.0",
|
||||||
"passport-local": "^1.0.0",
|
"passport-local": "^1.0.0",
|
||||||
"passport-openidconnect": "^0.1.1",
|
"passport-openidconnect": "^0.1.1",
|
||||||
"request": "^2.88.2",
|
"request": "^2.88.2",
|
||||||
|
|||||||
10
server.js
10
server.js
@ -1,12 +1,18 @@
|
|||||||
require('dotenv').config();
|
require('dotenv').config();
|
||||||
const express = require('express')
|
const express = require('express')
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const app = express()
|
const app = express();
|
||||||
|
const flash = require('express-flash');
|
||||||
|
const session = require("express-session");
|
||||||
|
const cookieParser = require("cookie-parser")
|
||||||
|
|
||||||
// app.set('views', path.join(__dirname, 'app\\views'));
|
// app.set('views', path.join(__dirname, 'app\\views'));
|
||||||
app.set('views', path.join(__dirname, 'app/views'));
|
app.set('views', path.join(__dirname, 'app/views'));
|
||||||
app.set('view engine', 'ejs');
|
app.set('view engine', 'ejs');
|
||||||
|
|
||||||
|
app.use(cookieParser())
|
||||||
|
app.use(session({key:'email' ,secret: "secret",saveUninitialized: false ,cookie:{ expires:600000 } ,resave: false}));
|
||||||
|
app.use(flash());
|
||||||
|
|
||||||
//it is used to clear cache
|
//it is used to clear cache
|
||||||
app.use(function(req, res, next) {
|
app.use(function(req, res, next) {
|
||||||
@ -15,7 +21,7 @@ app.use(function(req, res, next) {
|
|||||||
res.set("Expires", 0)
|
res.set("Expires", 0)
|
||||||
next()
|
next()
|
||||||
})
|
})
|
||||||
const {logMsg} = require('./app/services/logger.js');
|
const {logMsg} = require('./app/services/logger');
|
||||||
|
|
||||||
const swaggerJsdoc = require('swagger-jsdoc');
|
const swaggerJsdoc = require('swagger-jsdoc');
|
||||||
const swaggerUi = require('swagger-ui-express');
|
const swaggerUi = require('swagger-ui-express');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user