DISABLE_AUTO_CLOSE XML_FILE_PATH : AADHAVAN

This commit is contained in:
aadhavan valli 2023-10-09 17:56:13 +05:30
parent ab940db256
commit 86ab9c54c9
11 changed files with 75 additions and 43 deletions

View File

@ -219,8 +219,10 @@
<script> <script>
const fs = require('fs'); const fs = require('fs');
require('dotenv').config(); require('dotenv').config();
//get value from .env
const isEncrypted = process.env.ENCRYPTED; const isEncrypted = process.env.ENCRYPTED;
const url = new URL(window.location.href);// Get the URL of the current page for JSON const url = new URL(window.location.href);// Get the URL of the current page for JSON
@ -233,9 +235,12 @@
// Function to load XML from a file // Function to load XML from a file
function loadXML(xmlFileName) { function loadXML(xmlFileName) {
//XmlPath get from .env
const xmlPath=process.env.XML_FILE_PATH;
console.log(xmlFileName) console.log(xmlFileName)
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
fs.readFile('xml/'+xmlFileName, 'utf8', (error, data) => { fs.readFile(`${xmlPath}`+xmlFileName, 'utf8', (error, data) => {
if (error) { if (error) {
reject(error); reject(error);
} else { } else {

View File

@ -352,7 +352,7 @@
<ul> <ul>
<li><a href="dashboard.html"><i class="fa fa-home" aria-hidden="true" style="font-size: 24px;"></i>&nbsp;&nbsp;Home</a></li> <li><a href="dashboard.html"><i class="fa fa-home" aria-hidden="true" style="font-size: 24px;"></i>&nbsp;&nbsp;Home</a></li>
<li><a href="#" class="myBtn" onclick="saveFile()" id="SaveButton"><i class="fa fa-floppy-o" aria-hidden="true" style="font-size: 20px;"></i>&nbsp;&nbsp;Save</a></li> <li><a href="#" class="myBtn" onclick="saveFile()" id="SaveButton"><i class="fa fa-floppy-o" aria-hidden="true" style="font-size: 20px;"></i>&nbsp;&nbsp;Save</a></li>
<li><a id="editpreview" href=""><i class="fa fa-eye" aria-hidden="true" style="font-size: 24px;"></i>&nbsp;&nbsp;Preview</a></li> <li><a id="editPreview" href=""><i class="fa fa-eye" aria-hidden="true" style="font-size: 24px;"></i>&nbsp;&nbsp;Preview</a></li>
</ul> </ul>
</div> </div>
</div> </div>
@ -535,8 +535,8 @@
<!-- RTC Hide and Show Script --> <!-- RTC Hide and Show Script -->
<script src="rtc_hide_and_show.js"></script> <script src="rtc_hide_and_show.js"></script>
<!-- decrypt -->
<script src="decode.js"></script> <script src="decode.js"></script>
<!-- nave pane --> <!-- nave pane -->
<script src="nav_pane.js"></script> <script src="nav_pane.js"></script>
@ -555,8 +555,16 @@ const url = new URL(window.location.href);// Get the URL of the current page for
const params = new URLSearchParams(url.search);// Create a URLSearchParams object from the query string const params = new URLSearchParams(url.search);// Create a URLSearchParams object from the query string
const FileName = params.get('filename');// Get the value of a specific parameter const FileName = params.get('filename');// Get the value of a specific parameter
var xmlPath ="" //get the xml filepath in .env file local variable
$(document).ready(function() { $(document).ready(function() {
require('dotenv').config();
//xmlPath added
xmlPath=process.env.XML_FILE_PATH;
// console.log(xmlPath);
const isEncrypted = process.env.ENCRYPTED;
// console.log(isEncrypted);
$('.ql-toolbar').hide(); // Hide the Quill Text Editor if PAge load $('.ql-toolbar').hide(); // Hide the Quill Text Editor if PAge load
@ -564,7 +572,8 @@ $(document).ready(function() {
var random_no = Date.now(); var random_no = Date.now();
addSection(false, false, random_no, false, false, false, false); //Call the Default section on the QUestion paper addSection(false, false, random_no, false, false, false, false); //Call the Default section on the QUestion paper
}else { }else {
loadXML(FileName); //send filename to read xml files to using this function loadXML(FileName); //send filename to read xml files to using this function
} }
}) })
@ -583,8 +592,7 @@ $(document).on("click", function (event) {
document.addEventListener('DOMContentLoaded', function () { document.addEventListener('DOMContentLoaded', function () {
const scrollToTopBtn = document.getElementById('SaveButton'); const scrollToTopBtn = document.getElementById('SaveButton');
const scrollToTopBtn2 = document.getElementById('SaveButton2'); const scrollToTopBtn2 = document.getElementById('SaveButton2');
require('dotenv').config();
const isEncrypted = process.env.ENCRYPTED;
// Function to keep the cursor at its current position // Function to keep the cursor at its current position
function keepCursorAtPosition(event) { function keepCursorAtPosition(event) {
@ -598,24 +606,26 @@ document.addEventListener('DOMContentLoaded', function () {
//EditPreview //EditPreview
document.getElementById("editpreview").href = "QuestionPreview.html?filename=" + FileName; document.getElementById("editPreview").href = "QuestionPreview.html?filename=" + FileName;
// Function to load XML from a file // Function to load XML from a file
function loadXML(xmlFileName) { function loadXML(xmlFileName) {
var decodeData ="";
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
fs.readFile('xml/'+xmlFileName, 'utf8', (error, data) => { fs.readFile(`${xmlPath}${xmlFileName}`, 'utf8', (error, data) => {
if (error) { if (error) {
console.error('Error reading file:', error);
reject(error); reject(error);
} else { } else {
if (isEncrypted === 'YES') { if (isEncrypted === 'YES') {
// decrypt function call // decrypt function call go to decode.js
var decodeData = decode(data); decodeData = decode(data);
resolve(decodeData);
xml2json(decodeData);
} else { } else {
resolve(data) decodeData = data;
xml2json(data) }
} resolve(decodeData)
xml2json(decodeData)
json2nav(); json2nav();
clearSidebarWrapper(); clearSidebarWrapper();
navpane(); navpane();

View File

@ -285,6 +285,9 @@ const Swal = require('sweetalert2')
var msgDiv = document.getElementById('Message'); var msgDiv = document.getElementById('Message');
var modal = document.getElementById('myModal'); var modal = document.getElementById('myModal');
var fileInput = document.getElementById('fileInput'); var fileInput = document.getElementById('fileInput');
require('dotenv').config();
//XmlPath get from .env
const xmlPath=process.env.XML_FILE_PATH;
function fileupload(filePaths) { function fileupload(filePaths) {
@ -292,7 +295,7 @@ console.log('File path:', filePaths);
// Handle the selected folder path here // Handle the selected folder path here
// You can specify the destination folder path where you want to copy/move the files // You can specify the destination folder path where you want to copy/move the files
const destinationFolderPath = 'xml'; const destinationFolderPath = `${xmlPath}`;
// Use fs to copy or move the file // Use fs to copy or move the file
const fileName =filePaths.name; const fileName =filePaths.name;
@ -384,6 +387,8 @@ sourceStream.on('error', (err) => {
// Get the <span> element that closes the modal // Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0]; var span = document.getElementsByClassName("close")[0];
// When the user clicks the button, open the modal // When the user clicks the button, open the modal
btn.onclick = function() { btn.onclick = function() {
modal.style.display = "block"; modal.style.display = "block";
@ -406,21 +411,18 @@ sourceStream.on('error', (err) => {
const file = input.files[0]; const file = input.files[0];
const allowedExtensions = ["xml"]; const allowedExtensions = ["xml"];
const fileExtension = file.name.split(".").pop().toLowerCase(); const fileExtension = file.name.split(".").pop().toLowerCase();
if (!allowedExtensions.includes(fileExtension)) { if (!allowedExtensions.includes(fileExtension)) {
alert('Invalid file type. Only xml files are allowed.') alert('Invalid file type. Only xml files are allowed.')
input.value = ""; input.value = "";
return; return;
} }
} }
// Function to download a file by filename
// Function to download a file by filename
function downloadFile(filename) { function downloadFile(filename) {
// You can change the path to your server or specify a URL to download the file // You can change the path to your server or specify a URL to download the file
const fileURL = `xml/${filename}`; const fileURL = `${xmlPath}${filename}`;
console.log(fileURL) console.log(fileURL)
// Create a hidden anchor element to trigger the download // Create a hidden anchor element to trigger the download
const a = document.createElement('a'); const a = document.createElement('a');

View File

@ -19,7 +19,11 @@
return []; return [];
} }
} }
const folderName = "/xml"; require('dotenv').config();
//XmlPath get from .env
const xmlPath=process.env.XML_FILE_PATH;
const folderName = `/${xmlPath}`;
const filePaths = []; const filePaths = [];
const files = getFilesInFolder(folderName); const files = getFilesInFolder(folderName);
files.forEach((file) => { files.forEach((file) => {
@ -31,7 +35,7 @@ files.forEach((file) => {
// Function to load XML data and populate the list view // Function to load XML data and populate the list view
function loadList(xmlFilePath) { function loadList(xmlFilePath) {
return fetch('xml/'+xmlFilePath) return fetch(`${xmlPath}`+xmlFilePath)
.then(response => response.text()) .then(response => response.text())
.then(xmlContent => { .then(xmlContent => {
const parser = new DOMParser(); const parser = new DOMParser();

25
main.js
View File

@ -7,6 +7,9 @@ const jquery = require('jquery');
let onlineStatus = true; let onlineStatus = true;
const { dialog } = require('electron'); const { dialog } = require('electron');
const saveFile = require('./savexml') const saveFile = require('./savexml')
require('dotenv').config()
const auto_close= process.env.DISABLE_AUTO_CLOSE;
let mainWindow; let mainWindow;
@ -37,15 +40,19 @@ async function checkInternetConnection() {
// mainWindow.webContents.send('online'); // mainWindow.webContents.send('online');
dialog.showMessageBox(mainWindow, {
type: 'info', if (auto_close === 'TRUE') {
message: 'Internet is available. Click OK to close the app. Otherwise app will auto close in 10 seconds',
buttons: ['OK'], }else{
}); dialog.showMessageBox(mainWindow, {
type: 'info',
setTimeout(() => { message: 'Internet is available. Click OK to close the app. Otherwise app will auto close in 10 seconds',
app.quit(); buttons: ['OK'],
}, 10000); });
setTimeout(() => {
app.quit();
}, 10000);
}
} else if (!response.ok && !onlineStatus) { } else if (!response.ok && !onlineStatus) {
onlineStatus = true; onlineStatus = true;
// mainWindow.webContents.send('offline'); // mainWindow.webContents.send('offline');

View File

@ -2,7 +2,9 @@ const fs = require('fs');
const cheerio = require('cheerio'); const cheerio = require('cheerio');
const Swal = require('sweetalert2') const Swal = require('sweetalert2')
const encode = require('./encode') const encode = require('./encode')
require('dotenv').config(); require('dotenv').config();
//Get the value from .env
const isEncrypted = process.env.ENCRYPTED; const isEncrypted = process.env.ENCRYPTED;
function saveXmlToFile(xmlData, filePath) { function saveXmlToFile(xmlData, filePath) {
@ -47,6 +49,9 @@ function savexml(UserFilename) {
enc = xmlString; enc = xmlString;
} }
//XmlPath get from .env
const xmlPath=process.env.XML_FILE_PATH;
// Get the json string from localStorage for set fileName // Get the json string from localStorage for set fileName
var jsonData = localStorage.getItem("json"); var jsonData = localStorage.getItem("json");
@ -55,7 +60,7 @@ function savexml(UserFilename) {
// var jsonfilename = `${UserFilename}.json`; // var jsonfilename = `${UserFilename}.json`;
// file path where you want to save the XML file // file path where you want to save the XML file
const xmlfilePath = process.cwd() + '/xml/' + xmlfilename; const xmlfilePath = process.cwd() + `/${xmlPath}` + xmlfilename;
// const jsonfilePath = process.cwd() + '/xml/' + jsonfilename; // const jsonfilePath = process.cwd() + '/xml/' + jsonfilename;
// Call the function to save the XML file // Call the function to save the XML file

File diff suppressed because one or more lines are too long

2
xml2/Sample.xml Normal file

File diff suppressed because one or more lines are too long

1
xml2/vf.xml Normal file
View File

@ -0,0 +1 @@
+cQcMhFlgMkbrF+i7iP25Q==7IbbJ+oG7KTi6Im1DLQqGsG/4bfBr32ec56wEKAZRfcvUCUe+BW1RUx+wB3KC9chpNkalv2i5yaTQWGnFxVB3i8jvnrJyDxdN2vhZCVOnAuyTMqLxrvRsCJ5rMJMsxVLZeRlYpi7d1l1LoCeWhgnfdLuSQnhcS5ZWz5m7YffTntmML7GTEm22PuOS5p7FsEpyK9xcWt7YQ8PEif0BYzxudB/QfN/ThOwxYfmIUGtDXNeZi4HidEwxDzwubHVC0rT0GnXqCyBwUdBJj5dTGrp/2Kh8vS/MxvTRGwrJcwvMEw/LQGCmFWs/nfBBB3jPIk1LF/7Zz1M5IoJnATvJWcfKYq8Tux77ImB76BwsKFJcTShdtpBAAtSyBtCIUxgioE57hWIkM7X2SUkb8otsYb9i7feCimJgHndIODS93MTIyDF81aEYUxo+19enH501gxOApS0tS7n+2UkLvCkcm3WYTfb4rLJNVn5sCk1jCEnWgQuAgd/rHzrYS08sEwwtuFy0PEpuV/dyF61PGaxyFC8FvF6wcYR7pTA4HpuaOCAF4kxgCRzZizmoQYp193ifMEEtYoFmRIpgMSRUGmLCQdC41/3foq3d0OjhZpvek5daKWEVj7kN+i5WJMT0ofUu7Ug2lciCdC4VvFuvg23sToJBbP3IKAedgwNL2oRvCJEaVeYitP3Iv/+jwu9Te1p2Ze6SV+luL5lAmmSCk4bZvXKX3ooiRqrwKH1rGBhO5wDS9sCFiBIf38ShY2jGtj5gRWzzlWwHPJWwqe77Bp8u2sdh1JCh/qMz3e2lsdEef3K1kQtbzjp14Yg3EoKTRUQ+vHCKNqiEMGlBP2WQiKbCBULhTcxhsS0kyGtCIiHT0q6IYt5CY1QBucqvdtpFqsY1dag7nkCyfaymVc50igpqCnNG7IFITbLb/SLYwCsvcfSnablPnZgHn8bti3RrBZnv01AUB/Bja7dGl8xFalNjW6qTSojLSK4bZtWdfbzRUhdNQ/u7ae67j953knAVm83QnCdTixEMQzmH+GtHQDDkIeRhPK2uZB2/qnjUtj+U99BldVEcTQ9WWb+215wwgbvrIe3CZC2pNI/naOtqmywhA6EdeLitju7pyxEvHkGdlEQ2ZenaAXM9ZI5JwLZuWkkkeu5Ik2oQyjU9B8UFj8s+xcr2wds68UOuU4UtMfaFgRjuU/3D9vfRLZkw+OmcFjYBuait51W1vWNNx3Mbv33LVG4DK3LMU21e631M/B1sQlLtccAXZpL6jalzaeChmbXqfMV

View File

@ -1,8 +1,8 @@
function xml2json(xmlData) { function xml2json(xmlData) {
// console.clear(); // console.clear();
// console.log('xml to json converstion'); console.log('xml to json converstion');
// console.log(xmlData); console.log(xmlData);
function getAttributesOfXMLNode(node) function getAttributesOfXMLNode(node)
{ {

View File

@ -159,7 +159,6 @@ jsonObj['sections'] = [];
var jsonData = JSON.stringify(jsonObj); var jsonData = JSON.stringify(jsonObj);
localStorage.setItem('pjsonData', jsonData ); localStorage.setItem('pjsonData', jsonData );
QuestionPaperPreview(jsonObj); QuestionPaperPreview(jsonObj);
} }