Commit b03cad3b by Jorem Magcawas

commit latest

parent badeb13a
......@@ -5,13 +5,18 @@ var gfsFileName;
async function accessFile() {
var size = 0;
const elStatus = document.getElementById('status');
function status(text) {
elStatus.innerHTML = text;
}
//const progressBar = document.getElementById('progressBar');
const elProgress = document.getElementById('progress');
function progress({ loaded, total }) {
function progress({
loaded,
total
}) {
elProgress.innerHTML = Math.round(loaded * .000001) + " mb of " + Math.round(total * .000001);
//progressBar.value = Math.round(loaded / total * 100);
}
......@@ -29,479 +34,529 @@ async function accessFile() {
const request = indexedDB.open("ImageDatabase", 1);
request.onerror = function (event) {
request.onerror = function(event) {
console.error("An error occurred with IndexedDB");
console.error(event);
};
request.onupgradeneeded = function () {
request.onupgradeneeded = function() {
const db = request.result;
const store = db.createObjectStore("image", { keyPath: "id" });
store.createIndex("image_address", ["address"], { unique: false });
const store = db.createObjectStore("image", {
keyPath: "id"
});
store.createIndex("image_address", ["address"], {
unique: false
});
};
async function main(img) {
const request = indexedDB.open("ImageDatabase", 1);
request.onsuccess = async function () {
// console.log("Database opened successfully " + val );
const db = request.result;
const transaction = db.transaction("image", "readwrite");
const store = transaction.objectStore("image");
const imageIndex = store.index("image_address");
if(img!=null){
var filename = get_file_name(img);
}
async function main(img) {
const request = indexedDB.open("ImageDatabase", 1);
request.onsuccess = async function() {
// console.log("Database opened successfully " + val );
const db = request.result;
const transaction = db.transaction("image", "readwrite");
const store = transaction.objectStore("image");
const imageIndex = store.index("image_address");
if (img != null) {
var filename = get_file_name(img);
}
var count = store.count();
let totalImages = JSON.parse(sessionStorage.getItem("dir_files")).length;
count.onsuccess = function() {
if (totalImages != (parseInt(localStorage.getItem("sfIndex")))) {
if (img == null && count.result >= 2 && (localStorage.length) >= 2 && localStorage.getItem("submit") == 1) { //if only one file left
const idQuery = store.get(parseInt(localStorage.getItem("display_counter")));
idQuery.onsuccess = function() {
url = URL.createObjectURL(idQuery.result.address);
if (idQuery.result.name.endsWith(PDF_EXTENSION)) {
sessionStorage.setItem("file_Name", idQuery.result.name);
const TiffViewer_Header = document.getElementById("TiffModalHeader");
const TiffViewer_filedetail = document.createElement("div");
TiffViewer_filedetail.id = "TiffViewerImageName";
TiffViewer_filedetail.textContent = "Filename: " + idQuery.result.name;
TiffViewer_filedetail.title = "Filename: " + idQuery.result.name;
TiffViewer_Header.append(TiffViewer_filedetail);
displayPdf(idQuery.result.path);
} else {
console.log("This is not a pdf file");
window.addEventListener("load", loadDoc(url, TIFFViewer, idQuery.result.name), false);
}
var count = store.count();
let totalImages = JSON.parse(sessionStorage.getItem("dir_files")).length;
count.onsuccess = function() {
if (totalImages != (parseInt(localStorage.getItem("sfIndex")))) {
if (img == null && count.result >= 2 && (localStorage.length) >= 2 && localStorage.getItem("submit") == 1) { //if only one file left
const idQuery = store.get(parseInt(localStorage.getItem("display_counter")));
idQuery.onsuccess = function() {
url = URL.createObjectURL(idQuery.result.address);
if (idQuery.result.name.endsWith(PDF_EXTENSION)) {
sessionStorage.setItem("file_Name", idQuery.result.name);
const TiffViewer_Header = document.getElementById("TiffModalHeader");
const TiffViewer_filedetail = document.createElement("div");
TiffViewer_filedetail.id = "TiffViewerImageName";
TiffViewer_filedetail.textContent = "Filename: " + idQuery.result.name;
TiffViewer_filedetail.title = "Filename: " + idQuery.result.name;
TiffViewer_Header.append(TiffViewer_filedetail);
displayPdf(idQuery.result.path);
} else {
console.log("This is not a pdf file");
window.addEventListener("load", loadDoc(url, TIFFViewer, idQuery.result.name), false);
}
};
} else if (count.result >= 2 && (localStorage.length) >= 2 && localStorage.getItem("submit") == 1) {
const idQuery = store.get(parseInt(localStorage.getItem("display_counter")));
idQuery.onsuccess = function() {
url = URL.createObjectURL(idQuery.result.address);
if (idQuery.result.name.endsWith(PDF_EXTENSION)) {
sessionStorage.setItem("file_Name", idQuery.result.name);
const TiffViewer_Header = document.getElementById("TiffModalHeader");
const TiffViewer_filedetail = document.createElement("div");
TiffViewer_filedetail.id = "TiffViewerImageName";
TiffViewer_filedetail.textContent = "Filename: " + idQuery.result.name;
TiffViewer_filedetail.title = "Filename: " + idQuery.result.name;
TiffViewer_Header.append(TiffViewer_filedetail);
displayPdf(idQuery.result.path);
} else {
console.log("This is not a pdf file");
window.addEventListener("load", loadDoc(url, TIFFViewer, idQuery.result.name), false);
}
};
}
}
}
transaction.oncomplete = function () {
db.close();
};
};
status('downloading ...');
var image_info=[];
} else if (count.result >= 2 && (localStorage.length) >= 2 && localStorage.getItem("submit") == 1) {
const idQuery = store.get(parseInt(localStorage.getItem("display_counter")));
idQuery.onsuccess = function() {
url = URL.createObjectURL(idQuery.result.address);
if (idQuery.result.name.endsWith(PDF_EXTENSION)) {
sessionStorage.setItem("file_Name", idQuery.result.name);
const TiffViewer_Header = document.getElementById("TiffModalHeader");
const TiffViewer_filedetail = document.createElement("div");
TiffViewer_filedetail.id = "TiffViewerImageName";
TiffViewer_filedetail.textContent = "Filename: " + idQuery.result.name;
TiffViewer_filedetail.title = "Filename: " + idQuery.result.name;
TiffViewer_Header.append(TiffViewer_filedetail);
displayPdf(idQuery.result.path);
} else {
console.log("This is not a pdf file");
window.addEventListener("load", loadDoc(url, TIFFViewer, idQuery.result.name), false);
}
};
}
}
let response;
}
transaction.oncomplete = function() {
db.close();
};
};
status('downloading ...');
var image_info = [];
let response;
if (IS_RETRIEVE_FROM_BPO == "Y") {
if (img != null ? img.startsWith("http") : false) {
response = await fetch(img);
gfsFileName = getGfsFileName(response.headers.get("content-disposition"));
} else {
let formData = new FormData();
formData.append("data", JSON.stringify({
"dir": img
}));
response = await fetch('./src/accessFile/getImage.php', {
method: "POST",
body: formData,
});
}
} else {
response = await fetch(img);
}
const contentLength = response.headers.get('content-length');
var total = (parseInt(contentLength, 10));
let loaded = 0;
const res = new Response(new ReadableStream({
async start(controller) {
const reader = response.body.getReader();
for (;;) {
const {
done,
value
} = await reader.read();
if (done) break;
loaded += (value.byteLength);
// console.log(loaded);
progress({
loaded,
total
});
controller.enqueue(value);
}
controller.close();
},
}));
var blob = await res.blob();
status('download completed');
[...document.getElementsByClassName("bar")].forEach(el => {
el.style.display = "none";
});
const request2 = indexedDB.open("ImageDatabase", 1);
request2.onsuccess = async function() {
// console.log("Database opened successfully " + val );
const db = request2.result;
const transaction = db.transaction("image", "readwrite");
const store = transaction.objectStore("image");
var filename;
if (img != null) {
filename = gfsFileName != null ? gfsFileName : get_file_name(img);
}
var count = store.count();
let totalImages = JSON.parse(sessionStorage.getItem("dir_files")).length;
count.onsuccess = async function() {
if (count.result == 0 && (localStorage.length) == 0) {
store.put({
id: count.result + 1,
address: blob,
name: filename,
path: img
});
url = URL.createObjectURL(blob);
if (filename.endsWith(PDF_EXTENSION)) {
sessionStorage.setItem("file_Name", filename);
const TiffViewer_Header = document.getElementById("TiffModalHeader");
const TiffViewer_filedetail = document.createElement("div");
TiffViewer_filedetail.id = "TiffViewerImageName";
TiffViewer_filedetail.textContent = "Filename: " + filename;
TiffViewer_filedetail.title = "Filename: " + filename;
TiffViewer_Header.append(TiffViewer_filedetail);
displayPdf(img);
} else {
window.addEventListener("load", loadDoc(url, TIFFViewer, filename), false);
}
if (IS_RETRIEVE_FROM_BPO == "Y") {
if (img != null ? img.startsWith("http") : false) {
response = await fetch(img);
gfsFileName = getGfsFileName(response.headers.get("content-disposition"));
localStorage.setItem("display_counter", 1);
size = size + total;
File_Name = filename;
File_Path = img;
populateFields();
} else if (count.result == 1 && (localStorage.length) == 1) {
document.getElementById('prev').setAttribute('disabled', 'true');
document.getElementById('next').removeAttribute('disabled');
store.put({
id: count.result + 1,
address: blob,
name: filename,
path: img
});
localStorage.setItem("submit", "0");
localStorage.setItem("display_counter", 2);
localStorage.setItem("sfIndex", 1);
size = size + total;
} else if (totalImages != (parseInt(localStorage.getItem("sfIndex"))) && img == null && count.result >= 2 && (localStorage.length) >= 2 && localStorage.getItem("submit") == 1) { //if only one file left
const idQuery = store.get(parseInt(localStorage.getItem("display_counter")));
document.getElementById('prev').removeAttribute('disabled');
idQuery.onsuccess = async function() {
//url = URL.createObjectURL(idQuery.result.address);
//window.addEventListener("load", loadDoc(url, TIFFViewer,idQuery.result.name), false);
File_Name = idQuery.result.name;
File_Path = idQuery.result.path;
populateFields();
localStorage.setItem("submit", "0");
if (localStorage.getItem("prev") == 1) {
localStorage.setItem("prev", "0");
document.getElementById('next').removeAttribute('disabled');
//populateForm(parseInt(localStorage.getItem("sfIndex")));
localStorage.setItem("display_counter", parseInt(localStorage.getItem("display_counter")) + 1);
} else {
let formData = new FormData();
formData.append("data", JSON.stringify({ "dir": img }));
response = await fetch('./src/accessFile/getImage.php', {
method: "POST",
body: formData,
});
document.getElementById('next').setAttribute('disabled', 'true');
localStorage.setItem("sfIndex", parseInt(localStorage.getItem("sfIndex")) + 1);
localStorage.setItem("display_counter", parseInt(localStorage.getItem("display_counter")) + 1);
/*var formArray = JSON.parse(sessionStorage.getItem('formArray'));
if (typeof formArray[parseInt(localStorage.getItem("sfIndex")) - 1] !== 'undefined') {
populateForm(parseInt(localStorage.getItem("sfIndex")));
}*/
//store.clear();
//localStorage.setItem("nofilesleft", "1");
//promptNoFilesLeft();
}
} else {
response = await fetch(img);
};
} else if (img == null && count.result >= 2 && (localStorage.length) >= 2 && localStorage.getItem("submit") == 1) { //no files left
// alert("No Files Left");
if (IS_RETRIEVE_FROM_GFS != 'Y') {
const json = {
"start_time": formatDate(global_start_time),
"end_time": formatDate(global_end_time),
"metrics_dir": METRIC_FILES + "/" + metrics_file_name
}
localStorage.setItem("complete", "1");
saveTime(json);
store.clear();
// disableForm();
// promptNoFilesLeft();
}
const contentLength = response.headers.get('content-length');
var total = (parseInt(contentLength, 10));
let loaded = 0;
const res = new Response(new ReadableStream({
async start(controller) {
const reader = response.body.getReader();
for (;;) {
const {done, value} = await reader.read();
if (done) break;
loaded += (value.byteLength);
// console.log(loaded);
progress({loaded, total});
controller.enqueue(value);
}
controller.close();
},
}));
var blob = await res.blob();
status('download completed');
[...document.getElementsByClassName("bar")].forEach(el => {
el.style.display = "none";
});
const request2 = indexedDB.open("ImageDatabase", 1);
request2.onsuccess = async function () {
// console.log("Database opened successfully " + val );
const db = request2.result;
const transaction = db.transaction("image", "readwrite");
const store = transaction.objectStore("image");
var filename;
if(img!=null){
filename = gfsFileName != null ? gfsFileName : get_file_name(img);
} else if (count.result >= 2 && (localStorage.length) >= 2 && localStorage.getItem("submit") == 1) {
const idQuery = store.get(parseInt(localStorage.getItem("display_counter")));
idQuery.onsuccess = async function() {
document.getElementById('prev').removeAttribute('disabled');
document.getElementById('next').removeAttribute('disabled');
// url = URL.createObjectURL(idQuery.result.address);
// window.addEventListener("load", loadDoc(url, TIFFViewer,idQuery.result.name), false);
File_Name = idQuery.result.name;
File_Path = idQuery.result.path;
populateFields();
localStorage.setItem("submit", "0");
if (localStorage.getItem("prev") == 1) {
localStorage.setItem("prev", "0");
//populateForm(parseInt(localStorage.getItem("sfIndex")));
localStorage.setItem("display_counter", parseInt(localStorage.getItem("display_counter")) + 1); //update how many have been fetched
} else {
//store.delete(parseInt(localStorage.getItem("display_counter")) - 1);
store.put({
id: parseInt(localStorage.getItem("display_counter")) + 1,
address: blob,
name: filename,
path: img
});
localStorage.setItem("display_counter", parseInt(localStorage.getItem("display_counter")) + 1); //update how many have been fetched
localStorage.setItem("sfIndex", parseInt(localStorage.getItem("sfIndex")) + 1);
//var file = new File([blob], filename + ".TIFF", {type: "img"}); //uplaod to uploadimgfolder //scanned images
/*var formArray = JSON.parse(sessionStorage.getItem('formArray'));
if(typeof formArray[parseInt(localStorage.getItem("sfIndex")) - 1] !== 'undefined') {
populateForm(parseInt(localStorage.getItem("sfIndex")));
}*/
}
var count = store.count();
let totalImages = JSON.parse(sessionStorage.getItem("dir_files")).length;
count.onsuccess = async function() {
if (count.result == 0 && (localStorage.length) == 0) {
store.put({ id: count.result + 1, address: blob , name:filename, path:img});
url = URL.createObjectURL(blob);
if (filename.endsWith(PDF_EXTENSION)) {
sessionStorage.setItem("file_Name", filename);
const TiffViewer_Header = document.getElementById("TiffModalHeader");
const TiffViewer_filedetail = document.createElement("div");
TiffViewer_filedetail.id = "TiffViewerImageName";
TiffViewer_filedetail.textContent = "Filename: " + filename;
TiffViewer_filedetail.title = "Filename: " + filename;
TiffViewer_Header.append(TiffViewer_filedetail);
displayPdf(img);
} else {
window.addEventListener("load", loadDoc(url, TIFFViewer,filename), false);
}
localStorage.setItem("display_counter", 1);
size = size + total;
File_Name = filename;
File_Path = img;
populateFields();
} else if (count.result == 1 && (localStorage.length) == 1) {
document.getElementById('prev').setAttribute('disabled','true');
document.getElementById('next').removeAttribute('disabled');
store.put({ id: count.result + 1, address: blob , name:filename, path:img});
localStorage.setItem("submit", "0");
localStorage.setItem("display_counter", 2);
localStorage.setItem("sfIndex", 1);
size = size + total;
} else if(totalImages != (parseInt(localStorage.getItem("sfIndex"))) && img == null && count.result >= 2 && (localStorage.length) >= 2 && localStorage.getItem("submit") == 1){ //if only one file left
const idQuery = store.get(parseInt(localStorage.getItem("display_counter")));
document.getElementById('prev').removeAttribute('disabled');
idQuery.onsuccess = async function () {
//url = URL.createObjectURL(idQuery.result.address);
//window.addEventListener("load", loadDoc(url, TIFFViewer,idQuery.result.name), false);
File_Name = idQuery.result.name;
File_Path = idQuery.result.path;
populateFields();
localStorage.setItem("submit", "0");
if (localStorage.getItem("prev") == 1) {
localStorage.setItem("prev", "0");
document.getElementById('next').removeAttribute('disabled');
//populateForm(parseInt(localStorage.getItem("sfIndex")));
localStorage.setItem("display_counter", parseInt(localStorage.getItem("display_counter")) + 1);
} else {
document.getElementById('next').setAttribute('disabled', 'true');
localStorage.setItem("sfIndex", parseInt(localStorage.getItem("sfIndex")) + 1);
localStorage.setItem("display_counter", parseInt(localStorage.getItem("display_counter")) + 1);
/*var formArray = JSON.parse(sessionStorage.getItem('formArray'));
if (typeof formArray[parseInt(localStorage.getItem("sfIndex")) - 1] !== 'undefined') {
populateForm(parseInt(localStorage.getItem("sfIndex")));
}*/
//store.clear();
//localStorage.setItem("nofilesleft", "1");
//promptNoFilesLeft();
}
};
} else if(img == null && count.result >= 2 && (localStorage.length) >= 2 && localStorage.getItem("submit") == 1){//no files left
// alert("No Files Left");
if(IS_RETRIEVE_FROM_GFS != 'Y'){
const json = {
"start_time" : formatDate(global_start_time),
"end_time": formatDate(global_end_time),
"metrics_dir": METRIC_FILES + "/" + metrics_file_name
}
localStorage.setItem("complete", "1");
saveTime(json);
store.clear();
// disableForm();
// promptNoFilesLeft();
}
} else if (count.result >= 2 && (localStorage.length) >= 2 && localStorage.getItem("submit") == 1) {
const idQuery = store.get(parseInt(localStorage.getItem("display_counter")));
idQuery.onsuccess = async function () {
document.getElementById('prev').removeAttribute('disabled');
document.getElementById('next').removeAttribute('disabled');
// url = URL.createObjectURL(idQuery.result.address);
// window.addEventListener("load", loadDoc(url, TIFFViewer,idQuery.result.name), false);
File_Name = idQuery.result.name;
File_Path = idQuery.result.path;
populateFields();
localStorage.setItem("submit", "0");
if(localStorage.getItem("prev") == 1){
localStorage.setItem("prev", "0");
//populateForm(parseInt(localStorage.getItem("sfIndex")));
localStorage.setItem("display_counter", parseInt(localStorage.getItem("display_counter")) + 1); //update how many have been fetched
} else {
//store.delete(parseInt(localStorage.getItem("display_counter")) - 1);
store.put({ id: parseInt(localStorage.getItem("display_counter")) + 1, address: blob , name:filename, path:img});
localStorage.setItem("display_counter", parseInt(localStorage.getItem("display_counter")) + 1); //update how many have been fetched
localStorage.setItem("sfIndex", parseInt(localStorage.getItem("sfIndex")) + 1);
//var file = new File([blob], filename + ".TIFF", {type: "img"}); //uplaod to uploadimgfolder //scanned images
/*var formArray = JSON.parse(sessionStorage.getItem('formArray'));
if(typeof formArray[parseInt(localStorage.getItem("sfIndex")) - 1] !== 'undefined') {
populateForm(parseInt(localStorage.getItem("sfIndex")));
}*/
}
if(parseInt(localStorage.getItem("sfIndex"))<=1){
document.getElementById('prev').setAttribute('disabled','true');
}
//var file = new File([blob], filename + ".TIFF", {type: "img"}); //uplaod to uploadimgfolder //scanned images
};
size = size + total;
}
else {
const json = {
"start_time" : formatDate(global_start_time),
"end_time": formatDate(global_end_time),
"metrics_dir": METRIC_FILES + "/" + metrics_file_name
}
localStorage.setItem("complete", "1");
saveTime(json);
store.clear();
}
if (parseInt(localStorage.getItem("sfIndex")) <= 1) {
document.getElementById('prev').setAttribute('disabled', 'true');
}
//var file = new File([blob], filename + ".TIFF", {type: "img"}); //uplaod to uploadimgfolder //scanned images
transaction.oncomplete = function () {
db.close();
status('downloaded '+Math.trunc(size/1000)+" kb");
};
};
size = size + total;
} else {
const json = {
"start_time": formatDate(global_start_time),
"end_time": formatDate(global_end_time),
"metrics_dir": METRIC_FILES + "/" + metrics_file_name
}
localStorage.setItem("complete", "1");
saveTime(json);
store.clear();
}
}
var updated_input_files = await Input_files();
if(IS_RETRIEVE_FROM_GFS == "Y"){
const modal = document.getElementById("TiffViewerModal");
modal.style.display = 'none';//hide local modal\
getFolder(FOLDER_URL+sessionStorage.getItem('user_id')+'/element7');
}else{
if((localStorage.length)==0){
if(updated_input_files.length==0){
alert("No Inputs");
} else if (updated_input_files.length==1){
main(updated_input_files[0]);
} else {
await main(updated_input_files[0]);
main(updated_input_files[1]);
}
}else{
main(updated_input_files[0]);
}
}
function get_file_name(filepath){
if (filepath.startsWith(".")) {
var filename = filepath.substring(8);
var flag=0;
for (var i = 0; i < filename.length; i++) {
if(filename.charAt(filename.length-i) != "."){
flag++;
}else{
break;
}
}
filename = filename.substring(0,filename.length-flag);
return filename;
} else {
return filepath.substr(filepath.lastIndexOf("\\") + 1);
}
}
function Input_files() {
//Dirfiles from dir.php
var urls = Object.assign(new Array(), Dirfiles);
var count;
if((localStorage.length) == 0){
count = 0;
}else{
if(localStorage.getItem("prev") == 1){
localStorage.setItem("display_counter", parseInt(localStorage.getItem("display_counter")) - 2);
localStorage.setItem("sfIndex", parseInt(localStorage.getItem("sfIndex")) - 1);
count = parseInt(localStorage.getItem("display_counter"));
} else {
count = parseInt(localStorage.getItem("display_counter"));
}
}
for (var i = 0; i < count; i++) {
urls.shift();
}
return urls;
transaction.oncomplete = function() {
db.close();
status('downloaded ' + Math.trunc(size / 1000) + " kb");
};
};
}
var updated_input_files = await Input_files();
if (IS_RETRIEVE_FROM_GFS == "Y") {
const modal = document.getElementById("TiffViewerModal");
modal.style.display = 'none'; //hide local modal\
getFolder(FOLDER_URL + sessionStorage.getItem('user_id') + '/element7');
} else {
if ((localStorage.length) == 0) {
if (updated_input_files.length == 0) {
alert("No Inputs");
} else if (updated_input_files.length == 1) {
main(updated_input_files[0]);
} else {
await main(updated_input_files[0]);
main(updated_input_files[1]);
}
} else {
main(updated_input_files[0]);
}
}
function get_file_name(filepath) {
if (filepath.startsWith(".")) {
var filename = filepath.substring(8);
var flag = 0;
for (var i = 0; i < filename.length; i++) {
if (filename.charAt(filename.length - i) != ".") {
flag++;
} else {
break;
}
}
filename = filename.substring(0, filename.length - flag);
return filename;
} else {
return filepath.substr(filepath.lastIndexOf("\\") + 1);
}
}
function getFolder(url){
const promise = fetch(url, {
method: 'GET',
headers: {
'Authorization': sessionStorage.getItem('token')
// 'Content-Type': 'application/x-www-form-urlencoded',
}
//body: JSON.stringify(myObject)
})
.then(function (response) {
if(response.status === 200){
response.json().then(function(data) {
let temp = data.folderContent;
// temp.forEach(function(obj){
// //getFiles(DOWNLOAD_URL,obj.fileId);
// getFiles(DOWNLOAD_URL,obj.fileId);
// })
var container = document.getElementById("viewer");
var overlay;
for (let i = 0; i < temp.length; i++) {
overlay = document.createElement('div');
overlay.id = "containerModal" + i;
overlay.style.display = 'none';
container.append(overlay);
getFiles(DOWNLOAD_URL,temp[i].fileId,overlay,temp[i].name);
}
let counter = 0;
sessionStorage.setItem("gfsCounter", counter);
var currDislplay = document.getElementById("containerModal" + sessionStorage.getItem('gfsCounter'));
currDislplay.style.display = 'block';
});
}else{
console.log("Error");
function Input_files() {
//Dirfiles from dir.php
var urls = Object.assign(new Array(), Dirfiles);
var count;
if ((localStorage.length) == 0) {
count = 0;
} else {
if (localStorage.getItem("prev") == 1) {
localStorage.setItem("display_counter", parseInt(localStorage.getItem("display_counter")) - 2);
localStorage.setItem("sfIndex", parseInt(localStorage.getItem("sfIndex")) - 1);
count = parseInt(localStorage.getItem("display_counter"));
} else {
count = parseInt(localStorage.getItem("display_counter"));
}
}
for (var i = 0; i < count; i++) {
urls.shift();
}
return urls;
}
function getFolder(url) {
const promise = fetch(url, {
method: 'GET',
headers: {
'Authorization': sessionStorage.getItem('token')
// 'Content-Type': 'application/x-www-form-urlencoded',
}
//body: JSON.stringify(myObject)
})
.then(function(response) {
if (response.status === 200) {
response.json().then(function(data) {
let temp = data.folderContent;
// temp.forEach(function(obj){
// //getFiles(DOWNLOAD_URL,obj.fileId);
// getFiles(DOWNLOAD_URL,obj.fileId);
// })
var container = document.getElementById("viewer");
var overlay;
for (let i = 0; i < temp.length; i++) {
overlay = document.createElement('div');
overlay.id = "containerModal" + i;
overlay.style.display = 'none';
container.append(overlay);
getFiles(DOWNLOAD_URL, temp[i].fileId, overlay, temp[i].name);
}
})
.catch(function (error) {
console.log('Request failed', error);
});
return promise;
let counter = 0;
sessionStorage.setItem("gfsCounter", counter);
var currDislplay = document.getElementById("containerModal" + sessionStorage.getItem('gfsCounter'));
currDislplay.style.display = 'block';
});
} else {
console.log("Error");
}
async function getFiles(url,id,overlay,filename){
console.log(url);
var myObject = {fileId : id};
fetch(url, {
method: 'POST',
headers: {
'Authorization': sessionStorage.getItem('token'),
'Content-Type':'application/json'
},
body: JSON.stringify(myObject)
})
.then(async function(response) {
await response.text().then(async function(imgData) {
getBlobService(imgData, function(data) {
var fileReader = new FileReader();
fileReader.onload = function() {
var fileReader = new FileReader();
fileReader.onload = function () {
// File_Name = filename;
tiffViewerTest(this.result, overlay, filename);
};
fileReader.readAsArrayBuffer(data);
};
fileReader.readAsArrayBuffer(data);
});
})
.catch(function(error) {
console.log('Request failed', error);
});
});
})
.catch(function (error) {
console.log('Request failed', error);
});
}
function getBlobService(url, func) {
const promise = fetch(url, {
method: 'get',
headers: {
'Authorization': sessionStorage.getItem('token')
}
})
.then(function(response) {
switch (response.status) {
case 200: response.blob().then(function(data) { func(data); }); break;
case 460: createInfoPopup("Error 460", "User does not exist."); break;
case 403: removeOverlay(); createInfoPopup("We are so sorry...", "Permission Denied: You don't have access here."); break;
case 464: createInfoPopup("Error 464", "No folder was retrieved."); break;
case 463: createInfoPopup("Error 463", "The folder name you entered already exists."); break;
case 462: createInfoPopup("Error 462", "No file was retrieved."); break;
case 461: createInfoPopup("Error 461", "File already exists."); break;
case 465: createInfoPopup("Error 465", "Source not found"); break;
case 500: removeOverlay(); createInfoPopup("It's not you. It's us... So sorry.", "Error 500: Please contact the support team so we can fix this immediately."); break;
default: break;
}
})
.catch(function(error) {
removeOverlay();
createInfoPopup("Whoops!", "We encountered some problems with your request. Rest assured we're working on this and it'll be okay soon.");
});
return promise;
}
return promise;
async function getFiles(url, id, overlay, filename) {
console.log(url);
var myObject = {
fileId: id
};
fetch(url, {
method: 'POST',
headers: {
'Authorization': sessionStorage.getItem('token'),
'Content-Type': 'application/json'
},
body: JSON.stringify(myObject)
})
.then(async function(response) {
await response.text().then(async function(imgData) {
getBlobService(imgData, function(data) {
var fileReader = new FileReader();
fileReader.onload = function() {
var fileReader = new FileReader();
fileReader.onload = function() {
// File_Name = filename;
tiffViewerTest(this.result, overlay, filename);
};
fileReader.readAsArrayBuffer(data);
};
fileReader.readAsArrayBuffer(data);
});
});
})
.catch(function(error) {
console.log('Request failed', error);
});
}
function getBlobService(url, func) {
const promise = fetch(url, {
method: 'get',
headers: {
'Authorization': sessionStorage.getItem('token')
}
})
.then(function(response) {
switch (response.status) {
case 200:
response.blob().then(function(data) {
func(data);
});
break;
case 460:
createInfoPopup("Error 460", "User does not exist.");
break;
case 403:
removeOverlay();
createInfoPopup("We are so sorry...", "Permission Denied: You don't have access here.");
break;
case 464:
createInfoPopup("Error 464", "No folder was retrieved.");
break;
case 463:
createInfoPopup("Error 463", "The folder name you entered already exists.");
break;
case 462:
createInfoPopup("Error 462", "No file was retrieved.");
break;
case 461:
createInfoPopup("Error 461", "File already exists.");
break;
case 465:
createInfoPopup("Error 465", "Source not found");
break;
case 500:
removeOverlay();
createInfoPopup("It's not you. It's us... So sorry.", "Error 500: Please contact the support team so we can fix this immediately.");
break;
default:
break;
}
})
.catch(function(error) {
removeOverlay();
createInfoPopup("Whoops!", "We encountered some problems with your request. Rest assured we're working on this and it'll be okay soon.");
});
return promise;
}
}
function postServiceText(url, myObject, funcSuccess, funcFail){
const promise = fetch(url, {
method: 'post',
body: JSON.stringify(myObject),
headers: {
'Content-Type': 'application/json',
'Authorization': kc.token
// 'Content-Type': 'application/x-www-form-urlencoded',
}
})
.then(function (response) {
if(response.status === 200){
response.text().then(function(data) {
//var parseData = JSON.parse(data);
// funcSuccess(data);
console.log(data);
//alert(data);
//displayData(parseData);
});
}else{
console.log("Error");
funcFail();
}
})
.catch(function (error) {
console.log('Request failed', error);
});
return promise;
function postServiceText(url, myObject, funcSuccess, funcFail) {
const promise = fetch(url, {
method: 'post',
body: JSON.stringify(myObject),
headers: {
'Content-Type': 'application/json',
'Authorization': kc.token
// 'Content-Type': 'application/x-www-form-urlencoded',
}
})
.then(function(response) {
if (response.status === 200) {
response.text().then(function(data) {
//var parseData = JSON.parse(data);
// funcSuccess(data);
console.log(data);
//alert(data);
//displayData(parseData);
});
} else {
console.log("Error");
funcFail();
}
})
.catch(function(error) {
console.log('Request failed', error);
});
return promise;
}
......@@ -509,108 +564,143 @@ function refreshImage() {
var size = 0;
const elStatus = document.getElementById('status');
function status(text) {
elStatus.innerHTML = text;
}
//const progressBar = document.getElementById('progressBar');
const elProgress = document.getElementById('progress');
function progress() {
/* elProgress.innerHTML = Math.round(loaded * .000001) + " mb of " + Math.round(total * .000001);*/
/* elProgress.innerHTML = Math.round(loaded * .000001) + " mb of " + Math.round(total * .000001);*/
//progressBar.value = Math.round(100 / 100 * 100);
}
const request = indexedDB.open("ImageDatabase", 1);
request.onsuccess = async function () {
// console.log("Database opened successfully " + val );
const db = request.result;
const transaction = db.transaction("image", "readwrite");
const store = transaction.objectStore("image");
const imageIndex = store.index("image_address");
var count = store.count();
count.onsuccess = function() {
if (count.result == 0 && IS_RETRIEVE_FROM_GFS != 'Y') {
disableForm();
promptNoFilesLeft();
} else {
const idQuery = count.result == 2 ? store.get(parseInt(localStorage.getItem("display_counter")) - 1) : store.get(parseInt(localStorage.getItem("display_counter")));
idQuery.onsuccess = function () {
url = URL.createObjectURL(idQuery.result.address);
if (idQuery.result.name.endsWith(PDF_EXTENSION)) {
sessionStorage.setItem("file_Name", idQuery.result.name);
const TiffViewer_Header = document.getElementById("TiffModalHeader");
const TiffViewer_filedetail = document.createElement("div");
TiffViewer_filedetail.id = "TiffViewerImageName";
TiffViewer_filedetail.textContent = "Filename: " + idQuery.result.name;
TiffViewer_filedetail.title = "Filename: " + idQuery.result.name;
TiffViewer_Header.append(TiffViewer_filedetail);
displayPdf(idQuery.result.path);
} else {
console.log("This is not a pdf file");
window.addEventListener("load", loadDoc(url, TIFFViewer,idQuery.result.name), false);
}
File_Name = idQuery.result.name;
File_Path = idQuery.result.path;
};
var request = indexedDB.open("ImageDatabase", 1);
request.onsuccess = async function() {
// console.log("Database opened successfully " + val );
}
}
const db = request.result;
var transaction;
var store;
if (db.objectStoreNames.contains('image')) {
transaction = db.transaction("image", "readwrite");
store = transaction.objectStore("image");
}else{
noElementLogout();
}
var count = store.count();
count.onsuccess = function() {
if (count.result == 0 && IS_RETRIEVE_FROM_GFS != 'Y') {
disableForm();
promptNoFilesLeft();
} else {
const idQuery = count.result == 2 ? store.get(parseInt(localStorage.getItem("display_counter")) - 1) : store.get(parseInt(localStorage.getItem("display_counter")));
idQuery.onsuccess = function() {
url = URL.createObjectURL(idQuery.result.address);
if (idQuery.result.name.endsWith(PDF_EXTENSION)) {
sessionStorage.setItem("file_Name", idQuery.result.name);
const TiffViewer_Header = document.getElementById("TiffModalHeader");
const TiffViewer_filedetail = document.createElement("div");
TiffViewer_filedetail.id = "TiffViewerImageName";
TiffViewer_filedetail.textContent = "Filename: " + idQuery.result.name;
TiffViewer_filedetail.title = "Filename: " + idQuery.result.name;
TiffViewer_Header.append(TiffViewer_filedetail);
displayPdf(idQuery.result.path);
} else {
console.log("This is not a pdf file");
window.addEventListener("load", loadDoc(url, TIFFViewer, idQuery.result.name), false);
}
File_Name = idQuery.result.name;
File_Path = idQuery.result.path;
};
}
}
transaction.oncomplete = function() {
db.close();
status('downloaded ' + Math.trunc(size / 1000) + " kb");
progress();
[...document.getElementsByClassName("bar")].forEach(el => {
el.style.display = "none";
});
};
};
// Handle errors
request.onerror = function(event) {
console.error('Error opening database:', event.target.error);
};
}
transaction.oncomplete = function () {
db.close();
status('downloaded '+Math.trunc(size/1000)+" kb");
progress();
[...document.getElementsByClassName("bar")].forEach(el => {
el.style.display = "none";
});
};
};
function noElementLogout(){
alert("Element does not exist in current node, Logging out User");
var DBdeleteRequest = window.indexedDB.deleteDatabase("ImageDatabase");
DBdeleteRequest.addEventListener('blocked', function(e) {
console.log("Database cleared.");
});
DBdeleteRequest.addEventListener('upgradeneeded', function(e) {
console.log("Upgrade needed in deleting database");
});
DBdeleteRequest.addEventListener('error', function(e) {
console.log("Error in deleting database");
});
DBdeleteRequest.addEventListener('success', function(e) {
console.log("Database cleared.");
});
localStorage.clear();
sessionStorage.clear();
logoutKeycloak();
submitted = false;
}
function promptNoFilesLeft(){
    var viewer = document.getElementById('viewer');
    let genericDiv = document.createElement("div");
    genericDiv.classList.add("genericPopup");
    var promptMain = document.createElement('div');
    promptMain.setAttribute("id", "prompt");     var message =  document.createElement('p');
    message.innerHTML = 'No images left to be fetched, Proceed to end session'; 
    var okButton = document.createElement('button');
    okButton.innerHTML = 'ok';
    okButton.onclick = function() {
    genericDiv.remove();
var DBdeleteRequest = window.indexedDB.deleteDatabase("ImageDatabase");
DBdeleteRequest.addEventListener('blocked', function(e) {
console.log("Database cleared.");
});
DBdeleteRequest.addEventListener('upgradeneeded', function(e) {
console.log("Upgrade needed in deleting database");
});
DBdeleteRequest.addEventListener('error', function(e) {
console.log("Error in deleting database");
});
DBdeleteRequest.addEventListener('success', function(e) {
console.log("Database cleared.");
});
sessionStorage.clear();
localStorage.clear();
logoutKeycloak();
        /*promptMain.style.display = 'none';*/
    };
    promptMain.appendChild(message);
    promptMain.appendChild(okButton);
    genericDiv.append(promptMain);
    viewer.append(genericDiv);
function promptNoFilesLeft() {
var viewer = document.getElementById('viewer');
let genericDiv = document.createElement("div");
genericDiv.classList.add("genericPopup");
var promptMain = document.createElement('div');
promptMain.setAttribute("id", "prompt");
var message = document.createElement('p');
message.innerHTML = 'No images left to be fetched, Proceed to end session';
var okButton = document.createElement('button');
okButton.innerHTML = 'ok';
okButton.onclick = function() {
genericDiv.remove();
var DBdeleteRequest = window.indexedDB.deleteDatabase("ImageDatabase");
DBdeleteRequest.addEventListener('blocked', function(e) {
console.log("Database cleared.");
});
DBdeleteRequest.addEventListener('upgradeneeded', function(e) {
console.log("Upgrade needed in deleting database");
});
DBdeleteRequest.addEventListener('error', function(e) {
console.log("Error in deleting database");
});
DBdeleteRequest.addEventListener('success', function(e) {
console.log("Database cleared.");
});
sessionStorage.clear();
localStorage.clear();
logoutKeycloak();
/*promptMain.style.display = 'none';*/
};
promptMain.appendChild(message);
promptMain.appendChild(okButton);
genericDiv.append(promptMain);
viewer.append(genericDiv);
}
function getGfsFileName(contentDisposition) {
return contentDisposition.split("filename=")[1].replaceAll('"', '');
}
}
\ No newline at end of file
......@@ -468,6 +468,7 @@ div#nextDivContainer {
}
#nextDiv {
z-index: 1;
background-color: #000000a1;
width: 35px;
display: flex;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment