Commit 3bb03e08 by Leonard Ambros II

resolution on WG-371

parent 33c575b4
{
"liveServer.settings.port": 5501
"liveServer.settings.port": 5501,
"java.compile.nullAnalysis.mode": "disabled"
}
\ No newline at end of file
import { BPO_URL, CURRENT_NODE , NEXT_NODE , EXCEPTION_NODE} from "../config.js";
let urlReturnElement = BPO_URL + `req/workers/{{USER_ID}}/nodes/${CURRENT_NODE}/{{ELEMENT_ID}}/return`;
let urlGetWorkload= BPO_URL + `req/workers/{{USER_ID}}/nodes/${CURRENT_NODE}/workload?sort=priority`;
let urlGetWorkerCurrentWorkloadByPriority = BPO_URL + `req/workers/{{USER_ID}}/nodes/${CURRENT_NODE}/workload?sort=priority`;
let urlGetWorkerCurrentWorkloadByProcTime = BPO_URL + `req/workers/{{USER_ID}}/nodes/${CURRENT_NODE}/workload?sort=startproctime`;
let urlGetReturnedElement = BPO_URL + `req/workers/{{USER_ID}}/nodes/${CURRENT_NODE}/returned-elements/{{ELEMENT_ID}}`;
let urlGetWaitingElement = BPO_URL + `req/workers/{{USER_ID}}/nodes/${CURRENT_NODE}/elements`;
let urlCompleteToNextNode = BPO_URL + `req/workers/{{USER_ID}}/nodes/${CURRENT_NODE}/{{ELEMENT_ID}}/?nextNodeId=${NEXT_NODE}`
let urlGetWorkersCurrentNode = BPO_URL + `req/nodes/${CURRENT_NODE}/workers`
let urlCompleteToNextNode = BPO_URL + `req/workers/{{USER_ID}}/nodes/${CURRENT_NODE}/{{ELEMENT_ID}}/?nextNodeId=${NEXT_NODE}`;
let urlGetWorkersCurrentNode = BPO_URL + `req/nodes/${CURRENT_NODE}/workers`;
let urlRejectElement = BPO_URL + `req/nodes/${CURRENT_NODE}/elements/{{elementId}}?newNodeId={{newNodeId}}`;
export function getUrlReturnElement(element_id) {
let url = urlReturnElement.replace("{{USER_ID}}", sessionStorage.getItem("user_id"));
url = url.replace("{{ELEMENT_ID}}", element_id);
return url;
}
export function getUrlGetWorkload() {
let url = urlGetWorkload.replace("{{USER_ID}}", sessionStorage.getItem("user_id"));
export function getUrlGetWorkerCurrentWorkloadByPriority() {
let url = urlGetWorkerCurrentWorkloadByPriority.replace("{{USER_ID}}", sessionStorage.getItem("user_id"));
return url;
}
......
import { ENCODING_PASS } from "../config.js";
import { createInfoModal, createModal } from "../genericPopup/genericPopup.js";
import { INDEXED_DB_STORAGE } from "../globalVariable.js";
import { getUrlGetReturnedElement, getUrlGetWaitingElement, getUrlGetWorkload, getUrlReturnElement } from "./bpoService.js";
import { getRejectElement, getUrlGetReturnedElement, getUrlGetWaitingElement, getUrlGetWorkerCurrentWorkloadByPriority, getUrlReturnElement } from "./bpoService.js";
import { urlGetFields, urlGetIfExisting } from "./gfsService.js";
export class BPO {
async getRandomElement() {
const elements = [...(await this.getWorkload())].reverse();
for (const element of elements) {
const retElement = await this.getReturnedElement(element.elementId);
if (retElement.errorCode == 0) {
const lst = await this.isLSTExisting(retElement.element);
// async getElementToProcess(){
// console.log("Getting element to process");
// //getting returned elements first
// // const retElement = await this.getReturnedElement(element.elementId);
// const assignedElements = [...(await this.getWorkerWorkloadByPriority())].reverse();
// for(const assignedElement of assignedElements){
// console.log("Assigned Element: " + assignedElement.elementId);
// const elementLst = await this.isLSTExisting(assignedElement);
// if(elementLst.isExisting){
// console.log("element LST exist");
// const elementXml = await this.isXMLExisting(assignedElement);
// let dir = await elementLst.data;
// console.log("Dir: " + dir);
// if(elementXml.isExisting){
// console.log("element XML exist");
// const xmlString = await elementXml.data.join('').replace('\t','');
// const lastImage = this.getXmlLastImage(xmlString);
// // let dir = await elementLst.data;
// // console.log("Dir: " + dir);
// // if(lastImage){
// // const index = dir.indexOf(lastImage);
// // console.log(index);
// // if (index > -1) { // only splice array when item is found
// // dir.splice(0, index +1); // 2nd parameter means remove one item only
// // }
// // console.log("DIR length : " + dir.length);
// // console.log(dir);
// // if(dir.length === 0){
// // continue;
// // }
// // }
// sessionStorage.setItem("dir_files", JSON.stringify(dir));
// sessionStorage.setItem("element_id", assignedElement.elementId);
// sessionStorage.setItem("element_file_loc", assignedElement.fileLocation);
// // console.log("TRUE??");
// // return true;
// }
// sessionStorage.setItem("dir_files", JSON.stringify(dir));
// sessionStorage.setItem("element_id", assignedElement.elementId);
// sessionStorage.setItem("element_file_loc", assignedElement.fileLocation);
// console.log("TRUE??");
// return true;
// } else{
// // transfer element to exception node
// await this.transferElement(assignedElement.element);
// }
// }
// console.log("UMABOT SA DULO");
// // let hasElement = await this.getRandomWaitingElement();
// // return hasElement;
// }
async getElementToProcess() {
const elements = [...(await this.getWorkerWorkloadByPriority())].reverse();
console.log(elements);
//processing all assigned workload first
if(elements){
if (lst.isExisting) {
const xml = await this.isXMLExisting(retElement.element);
if (xml.isExisting) {
const xmlString = await xml.data.join('').replace('\t', '');
const lastImage = this.getXmlLastImage(xmlString);
//console.log("lastImage " + lastImage);
let dir = await lst.data;
if(lastImage){
const index = dir.indexOf(lastImage);
console.log(index);
if (index > -1) { // only splice array when item is found
dir.splice(0, index +1); // 2nd parameter means remove one item only
}
if(dir.length === 0){
continue;
for (const element of elements) {
console.log("Checking element : " + element.elementId);
console.log("Element status : " + element.status);
if(element.status == "WAITING"){ //element was previously returned...
console.log("pumasok sa waiting");
const retElement = await this.getReturnedElement(element.elementId);
console.log("error code: " + retElement.errorCode);
if (retElement.errorCode == 0) {
const lst = await this.isLSTExisting(retElement.element);
if (lst.isExisting) {
const xml = await this.isXMLExisting(retElement.element);
console.log(xml);
if (xml.isExisting) {
const xmlString = await xml.data.join('').replace('\t', '');
const lastImage = this.getXmlLastImage(xmlString);
console.log("lastImage " + lastImage);
let dir = await lst.data;
if(lastImage){
const index = dir.indexOf(lastImage);
console.log(index);
if (index > -1) { // only splice array when item is found
dir.splice(0, index +1); // 2nd parameter means remove one item only
}
if(dir.length === 0){
continue;
}
}
sessionStorage.setItem("dir_files", JSON.stringify(dir));
sessionStorage.setItem("element_id", retElement.element.elementId);
sessionStorage.setItem("element_file_loc", retElement.element.fileLocation);
return true;
} else {
console.log("XML does not exist");
await this.returnElement(retElement.element.elementId);
}
sessionStorage.setItem("dir_files", JSON.stringify(dir));
sessionStorage.setItem("element_id", retElement.element.elementId);
sessionStorage.setItem("element_file_loc", retElement.element.fileLocation);
return true;
} else {
await this.returnElement(retElement.element.elementId);
// await this.returnElement(retElement.element.elementId);
await this.transferElement(element.elementId);
}
// } else if (retElement.errorCode == 463) {
// continue;
} else {
await this.returnElement(retElement.element.elementId);
function modalTest() {
sessionStorage.clear();
logoutKeycloak();
}
createInfoModal(modalTest, 'Log out', "We've encountered some errors. Please log-out and try again.");
}
} else if (retElement.errorCode == 463) {
continue;
} else {
function modalTest() {
sessionStorage.clear();
logoutKeycloak();
} else if(element.status == "PROCESSING"){ // proceed
// console.log("pumasok sa processing");
// console.log(element);
// const lst = await this.isLSTExisting(element);
// const xml = await this.isXMLExisting(element);
// console.log(xml);
// const xmlString = await xml.data.join('').replace('\t', '');
// const lastImage = this.getXmlLastImage(xmlString);
// //console.log("lastImage " + lastImage);
// let dir = await lst.data;
// if(lastImage){
// const index = dir.indexOf(lastImage);
// console.log("index number: " + index);
// if (index > -1) { // only splice array when item is found
// dir.splice(0, index +1); // 2nd parameter means remove one item only
// }
// if(dir.length === 0){
// continue;
// }
// }
// sessionStorage.setItem("dir_files", JSON.stringify(dir));
// sessionStorage.setItem("element_id", element.elementId);
// sessionStorage.setItem("element_file_loc", element.fileLocation);
// return true;
const lst = await this.isLSTExisting(element);
if (lst.isExisting) {
let dir = await lst.data;
//Dirfiles = [...dir];
sessionStorage.setItem("dir_files", JSON.stringify(dir));
sessionStorage.setItem("element_id", element.elementId);
sessionStorage.setItem("element_file_loc", element.fileLocation);
return true;
} else {
await this.returnElement(element.elementId);
}
createInfoModal(modalTest, 'Log out', "We've encountered some errors. Please log-out and try again.");
}
}
}
//if no assigned element, proceed on getting element with WAITING status
let hasElement = await this.getRandomWaitingElement();
return hasElement;
}
......@@ -78,6 +204,7 @@ export class BPO {
return true;
} else {
await this.returnElement(element.element.elementId);
}
} else if (element.errorCode == 463) {
......@@ -98,8 +225,8 @@ export class BPO {
}
}
async getWorkload() {
let response = await fetch(getUrlGetWorkload());
async getWorkerWorkloadByPriority() {
let response = await fetch(getUrlGetWorkerCurrentWorkloadByPriority());
if (response.status == 200) {
let json = await response.json();
......@@ -133,6 +260,9 @@ export class BPO {
}
async isXMLExisting(element) {
console.log("filepath : " + `${element.fileLocation}/${element.elementId}.${ENCODING_PASS == "PASS1" ? "DTA" : "DTB"}`);
const response = await fetch(urlGetIfExisting, {
method: "POST",
headers: {
......@@ -151,6 +281,24 @@ export class BPO {
return json;
}
async transferElement(elementId){
let response = await fetch(getRejectElement(elementId), {
method: "POST"
});
if (response.status != 200){
function modalTest(){
sessionStorage.clear();
logoutKeycloak();
}
createInfoModal(modalTest, 'Log out', "We've encountered in transferring element. Please log-out and try again.");
} else{
console.log("Element " + elementId + " is successfully transferred to exception node");
}
}
async returnElement(elementId) {
let response = await fetch(getUrlReturnElement(elementId), {
method: "POST"
......@@ -162,9 +310,17 @@ export class BPO {
logoutKeycloak();
}
createInfoModal(modalTest, 'Log out', "We've encountered some errors. Please log-out and try again.");
} else{
console.log("Element " + elementId + " is successfully returned to current node");
}
}
async getFieldData(filePath) {
let elementId = sessionStorage.getItem("element_id");
let xmlData = {
......
......@@ -8,6 +8,7 @@ import { BPO_OBJECT, IMAGE_VIEWER_OBJECT, INDEXED_DB_STORAGE } from "../globalVa
import { getUrlReturnElement } from "./bpoService.js";
export async function returnElementBPO(elementId) {
console.log("Returning element : " + elementId);
let response = await fetch(getUrlReturnElement(elementId), {method: "POST"});
return response;
}
......@@ -28,7 +29,6 @@ async function returnElementLogout(elementId) {
}
function returnSaveXML(){
var elementId = sessionStorage.getItem("element_id");
......
......@@ -762,6 +762,14 @@ export function saveForm(index) {
});
saveXMLToStorage(index,values);
const currentPage = sessionStorage.getItem('current_page');
const totalPage = sessionStorage.getItem('total_page');
if(currentPage == totalPage){
sessionStorage.setItem('isElementComplete', true);
}
// var formArray = JSON.parse(sessionStorage.getItem('formArray'));
// //formArray.push(formValues);
// if (formArray) {
......
......@@ -38,14 +38,14 @@ export const HIGH_LIGHT_SCHEMA = "./WebGde-Widgets/sample_schema/dbSchema_anno.
export const ROOT_FOLDER = "/WebGde-Widgets";
//this determines if the images will be retrieved from the gfs
export const DOMAIN = "http://18.208.163.99:8080"
export const DOMAIN = "http://54.175.1.206:8080"
export const CONTEXTROOT = "gfs-explorer-ws"
// export const GFS_URL = "http://54.174.197.197:8080" + "/WebGde/svc/gfs-rest"
export const GFS_URL = "http://18.208.163.99:8080" + "/WebGdeDev/svc/gfs-rest"
export const GFS_URL = "http://54.175.1.206:8080" + "/WebGdeDev/svc/gfs-rest"
export const FOLDER_URL = DOMAIN + "/" + CONTEXTROOT + "/svc/gfs-rest/get-folder?parentPath=/Users/"
export const DOWNLOAD_URL = DOMAIN + "/" + CONTEXTROOT + "/svc/gfs-rest/get-download-link"
export const IS_RETRIEVE_FROM_GFS = "N"
export const LOCAL_URL = "http://18.208.163.99:8080" + "/WebGdeDev/svc/gfs-rest"
export const LOCAL_URL = "http://54.175.1.206:8080" + "/WebGdeDev/svc/gfs-rest"
export const INVALID_KEYS = "F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,PrintScreen,ScrollLock,Pause,PageUp,PageDown,Insert,Delete,Control"
......@@ -53,7 +53,7 @@ export const INVALID_KEYS = "F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,PrintScreen
export const IS_RETRIEVE_FROM_BPO = "Y"
// export const BPO_URL = "http://35.171.20.94:8080/bpo-sqa/"
// export const CURRENT_NODE = "Web GDE"
export const BPO_URL = "http://18.208.163.99:8080/bpo/"
export const BPO_URL = "http://54.175.1.206:8080/bpo/"
export const CURRENT_NODE = "Web_GDE_DEV"
export const ENCODING_PASS = "PASS1"
export const NEXT_NODE = "Complete"
......
......@@ -6,6 +6,8 @@ import { interval, pauseMetricCapture, saveMetrics, stopMetricCapture } from '..
import { REASON_LIST, ROOT_FOLDER } from '../config.js';
import { BPO_OBJECT, DISPLAY_FIELD_OBJECT, DOCUMENT_CONTROL_OBJECT, IMAGE_VIEWER_OBJECT, INDEXED_DB_STORAGE } from '../globalVariable.js';
import { saveForm } from "../DataInputWidget/generateFields.js";
export class DocumentControlWidget {
global = {
......@@ -118,6 +120,16 @@ export class DocumentControlWidget {
// let totalRecord = JSON.parse(sessionStorage.getItem("dir_files")).length;
//if (currentDisplay + 1 === totalRecord) {
saveForm(sessionStorage.getItem("display_counter"));
console.log("Display Counter " + parseInt(sessionStorage.getItem("display_counter")) + " saved");
await submitForm(e);
if(sessionStorage.getItem("isElementComplete")){
//move element then fetch new element
let response = await completeToNextNode(sessionStorage.getItem("element_id"));
......@@ -127,6 +139,7 @@ export class DocumentControlWidget {
await saveMetrics(metrics, eoe_ts);
if (response.status == 200) {
console.log("Element " + sessionStorage.getItem("element_id") + " has been completed to next node.. \n Getting another element to work on..");
if (await BPO_OBJECT.getRandomWaitingElement()) {
document.getElementById("counter").innerHTML = "";
clearTimeout(interval);
......
......@@ -11,6 +11,30 @@ import { DocumentControlWidget } from "./WebGde-Widgets/documentControlWidget/do
import { INDEXED_DB_STORAGE , HIGHLIGHT_OBJECT, IMAGE_VIEWER_OBJECT } from "./WebGde-Widgets/globalVariable.js";
// window.addEventListener('beforeunload' , async (event) => {
// // event.preventDefault();
// if(confirm("ARE YOU SURE YOU WANT TO LEAVE? Leaving this page would return the element to node..")){
// console.log("INSERT RETURN FUNCTION HERE");
// } else{
// console.log("cancel clicked");
// }
// });
document.addEventListener("DOMContentLoaded", async ()=>{
......
......@@ -45,13 +45,125 @@ export async function startApplication() {
// let responseGetListText = await responseGetList.text();
// console.log(responseGetListText);
if(responseText == "true"){
var currentUrl = window.location.href;
await fetch(`${GFS_URL}/reset-status/${userId}`);
const beforeUnloadListener = async (event) => {
// event.preventDefault();
var elemIdToReturn = sessionStorage.getItem('element_id');
console.log(elemIdToReturn);
if(elemIdToReturn !== null){
// var returnResponse = await returnElementBPO(elemIdToReturn);
console.log("RETURN ELEMENT NA!!!");
sessionStorage.clear();
logoutKeycloak();
}
// return event.returnValue = "are you sure??";
}
window.addEventListener('beforeunload' , async (event) => {
//await fetch(`${LOCAL_URL}/reset-status/${userId}`);
await fetch(`${GFS_URL}/reset-status/${userId}`);
});
if(responseText == "true"){
const nameInput = document.querySelector("#name");
console.log(nameInput);
if(nameInput == null){
// setTimeout(() => {
// addEventListener("beforeunload", beforeUnloadListener, {capture: true});
// alert("RETURN ELEMENT NA!!");
// // alert("yown??");
// // sessionStorage.clear();
// // logoutKeycloak();
// }, 10000);
}
// nameInput.addEventListener("input", (event) =>{
// if(event.target.value !== ""){
// addEventListener("beforeunload", beforeUnloadListener, {capture: true});
// } else{
// removeEventListener("beforeunload", beforeUnloadListener, {capture: true});
// }
// });
// window.addEventListener('beforeunload' , async (event) => {
// console.log("pasok please");
// // event.returnValue = responseText;
// console.log("continue");
// var elemIdToReturn = sessionStorage.getItem('element_id');
// if(elemIdToReturn != null){
// var returnResponse = await returnElementBPO(elemIdToReturn);
// console.log(returnResponse);
// }
// setTimeout(async()=>{
// function exitTool() {
// sessionStorage.clear();
// logoutKeycloak();
// }
// createInfoModal(exitTool, 'yow', "hello");
// await fetch(`${GFS_URL}/reset-status/${userId}`);
// console.log("user id successfully reset");
// },10000);
// });
//start of process
createLoadingScreen();
if (!('indexedDB' in window)) {
......@@ -86,7 +198,8 @@ async function initializeWebGDE() {
let isElement = false;
if (!BPO_OBJECT) {
setBPOObject(new BPO());
isElement = await BPO_OBJECT.getRandomElement();
// isElement = await BPO_OBJECT.getRandomElement();
isElement = await BPO_OBJECT.getElementToProcess();
} else {
isElement = true;
}
......
web-ui @ e1d26566
Subproject commit d103b02eb8931faad2e71cb1cf2131448e899d58
Subproject commit e1d2656666fdf55c508e2a29ee82d5b903a861ac
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