Commit 2d0d71a0 by Earvin Paguia

Merge branch 'revert-e93b49aa' into 'development-encoding'

Revert "Merge branch 'feature-UI_integration-from-adhoc' into 'development-encoding'" See merge request !43
parents e93b49aa 3f518b01
......@@ -68,14 +68,11 @@ async function returnElementLogout(elementId) {
}
var returnButton = document.getElementById('return');
returnButton.addEventListener("click", function () {
returnElementBPO(sessionStorage.getItem("element_id"));
returnButton.onclick = function () {
returnElementBPO(sessionStorage.getItem("element_id"));
// const fieldForm = document.getElementById("fields");
// fieldForm.querySelector('input[type="submit"]').click();
});
};
window.addEventListener('keydown', function(e) {
if (e.altKey == true && e.keyCode == 85){
......
......@@ -3,16 +3,23 @@ var File_Path;
var gfsFileName;
async function accessFile() {
var button = 0;
var size = 0;
let file_url = [];
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 }) {
// elProgress.innerHTML = Math.round(loaded * .000001) + " mb of " + Math.round(total * .000001);
progressBar.value = Math.round(loaded / total * 100);
}
const indexedDB =
window.indexedDB ||
window.mozIndexedDB ||
......
<<<<<<< WebGde/WebContent/src/captureMetrics/captureMetrics.js
let global_start_time = 0
let global_end_time = 0
let key_strokes = 0
let time_spent = 0
let time_start = 0
let time_pause = 0
let time_pause_spent = 0
let metrics_file_name;
const conflicts = ['F', 'f', 'alphabet', 'alphanumeric']
const shift_shortcuts = ['f', 'F']
const ctrl_shortcuts = ['PageUp', 'PageDown', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', '-', '=']
const ctrl_shift_shortcuts = ['v', 'h', 'V', 'H']
const shortcut_triggers = ['Shift', 'Control']
let shortcut_flag = false
const csv_header = ['record_no', 'filename', 'speed', 'eoe_timestamp', 'avg_speed'];
let temp;
const keyArray = INVALID_KEYS.split(",");
const startMetricCapture = () => {
// reset key strokes
key_strokes = 0
time_start = Date.now()
if (global_start_time == 0) {
global_start_time = new Date().toLocaleString();
}
time_pause_spent = 0
console.log(`Metric Capture Started
Key strokes: ${key_strokes}
Start of encoding time: ${time_start}
Total time spent encoding: ${time_spent}`) // for demonstration purposes
window.onkeyup = (key) => {
const onfocus = document.activeElement
if (shortcut_flag && shortcut_triggers.includes(key.key)) {
if (!key.ctrlKey && !key.shiftKey) { // will disregard key up event on shift or ctrl right after a short cut key combination
console.log('Shortcut trigger lifted') // for demonstration purposes
shortcut_flag = false
}
return
}
if ((key.shiftKey && shift_shortcuts.includes(key.key)) || // shift shortcut
(key.ctrlKey && ctrl_shortcuts.includes(key.key))) { // ctrl shortcut
if (onfocus.nodeName !== 'INPUT' ||
!conflicts.includes(key.key)) { // ignore shortcuts with conflict if triggered inside input field
console.log('Shortcut Triggered') // for demonstration purposes
shortcut_flag = true
return
}
}
if (key.shiftKey && key.ctrlKey && ctrl_shift_shortcuts.includes(key.key)) {
console.log('Shortcut Triggered') // for demonstration purposes
shortcut_flag = true
return
}
if (searchStringInArray(`${key.key}`, keyArray) == true || key.ctrlKey && key.key) {
console.log('key invalid');
} else {
key_strokes++
}
console.log(`key: ${key.key}; key_strokes: ${key_strokes}; time_spent: ${((Date.now() - time_start) / 1000) - time_pause_spent}`) // for demonstration purposes
}
let pause = document.getElementById("pause");
pause.onclick = (event) => {
console.log("pause");
pauseMetricCapture();
/*disableTiffButtons();*/
}
/*window.onclick = (event) => {
if (event.path[0].id == 'pause') {
pauseMetricCapture();
disableTiffButtons();
}
}*/
showMetricCapture();
}
function searchStringInArray(str, strArray) {
for (var j = 0; j < strArray.length; j++) {
if (strArray[j] == str) return true;
}
return false;
}
const stopMetricCapture = () => {
const time_end = Date.now()
time_spent = (time_end - time_start) / 1000 // time spend in seconds
const rate = (key_strokes / time_spent) * 3600 // key strokes made per hour
return {
key_strokes,
time_spent,
rate
}
}
let interval = null;
const showMetricCapture = () => {
const obj = document.getElementById("counter");
if (key_strokes != 0) {
let time_spent = ((Date.now() - time_start) / 1000) - time_pause_spent;
let rate = ((key_strokes / time_spent) * 3600).toFixed(0);
rate >= ALLOWED_KPH ? obj.className = "green" : obj.className = "red";
obj.innerHTML = (rate < 0 ? 0 : rate) + " kph"; // immediately apply start value
}
interval = setTimeout(showMetricCapture, 1000);
}
const saveMetrics = async (metrics, eoe_ts) => {
try {
eoe_ts = formatDate(eoe_ts);
let rows = new Array();
if (sessionStorage.getItem('csv') === null) {
rows.push(csv_header);
rows.push([1, escapeCSV(File_Path.replace(/^.*[\\\/]/, '')), metrics.rate, eoe_ts, metrics.rate]);
} else {
rows = JSON.parse(sessionStorage.getItem('csv'));
let size = rows.length - 1;
let last = rows[size];
let avg = last[last.length - 1];
let newAvg = ((avg * size) + metrics.rate) / (size + 1);
rows.push([(size + 1), escapeCSV(File_Path.replace(/^.*[\\\/]/, '')), metrics.rate, eoe_ts, newAvg]);
}
var myFile = new File(
[(rows.map(e => e.join(",")).join("\n"))],
sessionStorage.getItem('user_id') + '_Metrics_' + (new Date()).toISOString().slice(0, 10).replace(/-/g, "") + ".csv",
{ type: "text/plain;charset=utf-8" }
);
let formData = new FormData();
formData.append("file", myFile);
let data = {};
data.metrics_dir = METRIC_FILES;
// sessionStorage.getItem('outputMetricsDir') == null ? data.outputDir = null : data.outputDir = sessionStorage.getItem('outputMetricsDir');
// formData.append("data", JSON.stringify(data));
// const outputMetricsDir = await fetch('./src/captureMetrics/saveMetrics.php', {
// method: "POST",
// body: formData
var myObject = {
"metrics_dir": sessionStorage.getItem("element_file_loc"),
"file_name" : sessionStorage.getItem('user_id') + '_Metrics_' + (new Date()).toISOString().slice(0, 10).replace(/-/g, "") + ".csv",
"metrics_rate" : metrics.rate,
"eoe_ts" : eoe_ts
};
fetch(urlWriteMetrics, {
method: 'POST',
headers: {
'Content-Type':'application/json'
},
body: JSON.stringify(myObject)
});
// sessionStorage.setItem('outputMetricsDir', await outputMetricsDir.text());
// sessionStorage.setItem('csv', JSON.stringify(rows));
} catch (Err) {
console.log("Error: " + Err.description);
}
}
const escapeCSV = (filename) => {
return filename.includes(",") ? '"' + filename + '"' : filename;
}
const pauseMetricCapture = () => {
time_pause = Date.now();
hideImage();
disableForm();
promptPaused();
clearTimeout(interval);
temp = key_strokes;
// unpauseMetricCapture();
// alert("PAUSED");
}
const unpauseMetricCapture = () => {
time_pause_spent += (Date.now() - time_pause) / 1000;
time_pause = 0;
unhideImage();
enableForm();
key_strokes = temp;
showMetricCapture();
}
const hideImage = () => {
var tiffbody = document.getElementById("TiffModalBody");
tiffbody.style.opacity = 0;
}
const unhideImage = () => {
var tiffbody = document.getElementById("TiffModalBody");
tiffbody.style.opacity = 1;
}
function promptPaused() {
var promptMain = document.createElement('div');
promptMain.classList.add("genericPopup");
promptMain.setAttribute("id", "prompt");
let pauseDiv = document.createElement('div');
pauseDiv.classList.add("parent_Window");
var pauseLabel = document.createElement('div');
pauseLabel.textContent = 'Session Paused';
var okButton = document.createElement('div');
okButton.id = "continue";
okButton.classList.add("normalButton");
okButton.textContent = 'continue';
pauseDiv.append(pauseLabel);
pauseDiv.append(okButton);
promptMain.appendChild(pauseDiv);
document.body.append(promptMain);
okButton.addEventListener("click", function () {
promptMain.remove();
unpauseMetricCapture();
});
}
function disableForm() {
var pbutton = document.getElementById("pause");
pbutton.disabled = true;
var form = document.getElementById("fields");
var elements = form.elements;
for (var i = 0, len = elements.length; i < len; ++i) {
elements[i].disabled = true;
// elements[i].style.backgroundColor = "gray";
}
}
function enableForm() {
var pbutton = document.getElementById("pause");
pbutton.disabled = false;
var form = document.getElementById("fields");
var elements = form.elements;
for (var i = 0, len = elements.length; i < len; ++i) {
elements[i].disabled = false;
// elements[i].style.backgroundColor = "white";
}
}
const formatDate = (date) => {
return date.replace(",", "");
}
function saveTime(json) {
let formData = new FormData();
formData.append("data", JSON.stringify(json));
fetch('./src/captureMetrics/saveGlobalTime.php', {
method: "POST",
body: formData
});
=======
let global_start_time = 0
let global_end_time = 0
let key_strokes = 0
......@@ -561,5 +276,4 @@ function saveTime(json) {
method: "POST",
body: formData
});
>>>>>>> WebGde/WebContent/src/captureMetrics/captureMetrics.js
}
\ No newline at end of file
......@@ -19,21 +19,18 @@ function checkForm(form){
if(inputsBlankCount==0 && selectsBlankCount==0) return true;
}
/*endButton.addEventListener("click", function(){
endButton.addEventListener("click", function(){
let endWindow = document.getElementById('end_window');
endWindow.style.display = 'block';
});
*/
createEndSessionWindow();
function createEndSessionWindow(){
let overlay = document.createElement("div");
overlay.classList.add("genericPopup");
let endWindow = document.createElement('div');
endWindow.id = 'end_window';
endWindow.classList.add("parent_Window")
endWindow.style.display = 'none';
document.body.appendChild(endWindow);
let endBodyDiv = document.createElement('div');
endBodyDiv.id = 'endBodyDiv';
......@@ -46,7 +43,6 @@ function createEndSessionWindow(){
endOkCnclDiv.id = 'endOkCnclCont';
let okEnd = document.createElement('button');
okEnd.classList.add("emphasizeButton");
okEnd.innerHTML = 'ok';
okEnd.id = 'okEndButtn';
okEnd.onclick = async function () {
......@@ -83,10 +79,11 @@ function createEndSessionWindow(){
}
let cancelEnd = document.createElement('button');
cancelEnd.classList.add("normalButton");
cancelEnd.innerHTML = 'cancel';
cancelEnd.id = 'cnclEndButton';
cancelEnd.onclick = function () {
endWindow.style.display = 'none';
}
endOkCnclDiv.appendChild(okEnd);
endOkCnclDiv.appendChild(cancelEnd);
......@@ -98,14 +95,4 @@ function createEndSessionWindow(){
endWindow.appendChild(endBodyDiv);
cancelEnd.addEventListener("click", function () {
overlay.remove();
});
overlay.append(endWindow);
document.body.append(overlay);
}
......@@ -17,30 +17,11 @@
* @returns
*/
let getDocType;
let getDocType;
const displayFields = async (parentID) => {
try {
document.getElementById("userNameValue").innerHTML = `User: ${sessionStorage.getItem("user_id")}`;
document.getElementById("elemIDValue").innerHTML = `Element ID: ${sessionStorage.getItem("element_id")}`;
let logOutDiv = document.getElementById("popupLogout");
logOutDiv.title = "Logout";
logOutDiv.classList.add("logOutButton")
let logoutIcon = document.createElement("img");
logoutIcon.classList.add("normalIcon");
logoutIcon.classList.add("logOutIcon")
logoutIcon.src = "/WebGde/assets/logout_icon.png";
let logoutClass = document.getElementsByClassName("logOutIcon");
console.log(logoutClass.length);
if(logoutClass.length === 0){
logOutDiv.append(logoutIcon);
}
let div = document.getElementById(parentID)
if(!div) return { valid: false, error: `Element with ID '${parentID}' not found` }
......@@ -105,7 +86,7 @@ const displayFields = async (parentID) => {
});
const { ACCOUNTING_DOCUMENTS } = schema
/* const { ACCOUNTING_DOCUMENTS } = schema
//getDocType = DOC_TYPE1 ;
......@@ -122,13 +103,8 @@ const displayFields = async (parentID) => {
const { HR_FILES } = schema
const { SECTION3 } = HR_FILES
div = deconstruct(SECTION3, div, 'SECTION3')
div = deconstruct(SECTION3, div, 'SECTION3')*/
const submit = document.createElement('input')
submit.classList.add("submitButtons");
submit.type = 'submit'
div.appendChild(submit)
// add handler event handler for dropdown
// separate handler is used to fit with the library used 'select2'
......
const validateSchema = () => {
const validate = schema[sessionStorage.getItem("currentDoctype")]
if(!ACCOUNTING_DOCUMENTS) return { valid: false, error: 'SECTION is missing!' }
if(!validate) return { valid: false, error: 'SECTION is missing!' }
return { valid: true }
}
}
\ No newline at end of file
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