This commit is contained in:
sairaj mote 2020-10-18 01:37:28 +05:30
parent 739b399963
commit 188286cf44

View File

@ -656,7 +656,7 @@
document.getElementById('view-group_by').addEventListener("click", function (e) { document.getElementById('view-group_by').addEventListener("click", function (e) {
document.getElementById("group_by").parentNode.classList.remove("hide") document.getElementById("group_by").parentNode.classList.remove("hide")
}) })*/
document.getElementById('group_by_menu').children[0].addEventListener("change", function (e) { document.getElementById('group_by_menu').children[0].addEventListener("change", function (e) {
try { try {
@ -689,7 +689,7 @@
} catch (error) { } catch (error) {
notify(error, "error") notify(error, "error")
} }
})*/ })
function removeElement(element) { function removeElement(element) {
element.parentNode.removeChild(element); element.parentNode.removeChild(element);
@ -778,7 +778,7 @@
logSheet.enterLog(title, floID, log).then(result => { logSheet.enterLog(title, floID, log).then(result => {
allFormElements.forEach(element => element.disabled = false) allFormElements.forEach(element => element.disabled = false)
form.reset(); form.reset();
notify('Log Entry Successful', 'success') notify('Log entry successful', 'success')
let row = sheetContainer.getElementsByTagName("tbody")[0].insertRow(1); let row = sheetContainer.getElementsByTagName("tbody")[0].insertRow(1);
row.insertCell().textContent = floID row.insertCell().textContent = floID
row.insertCell().innerHTML = `<input type="text" class="grade-input" disabled>` row.insertCell().innerHTML = `<input type="text" class="grade-input" disabled>`
@ -793,7 +793,7 @@
function viewSheet(title) { function viewSheet(title) {
logSheet.refreshLogs(title).then(result => { logSheet.refreshLogs(title).then(result => {
let data = logSheet.viewLogs(title) let data = logSheet.viewLogs(title)
renderSheetView(data.title, data.description, data.editors, data.attributes, data.sheet, renderSheetView(data.title, data.description, data.editors, data.attributes, data.sheet.reverse(),
!data.editors || data.editors.includes(myFloID), floGlobals.subAdmins.includes(myFloID)) !data.editors || data.editors.includes(myFloID), floGlobals.subAdmins.includes(myFloID))
}).catch(error => notify(error, "error")) }).catch(error => notify(error, "error"))
} }
@ -854,18 +854,25 @@
sheetHolder.append(frag) sheetHolder.append(frag)
} }
function createCell(text){ function createTh(text){
let cell = document.createElement('th') let cell = document.createElement('th')
cell.textContent = text cell.textContent = text
return cell return cell
} }
function createCell(text){
let cell = document.createElement('td')
cell.textContent = text
return cell
}
const sheetContainer = document.getElementById('sheet_container'), const sheetContainer = document.getElementById('sheet_container'),
sheetHeading = document.getElementById('sheet_heading'), sheetHeading = document.getElementById('sheet_heading'),
sheetDescription = document.getElementById('sheet_description'), sheetDescription = document.getElementById('sheet_description'),
sheetEditors = document.getElementById('sheet_editors') sheetEditors = document.getElementById('sheet_editors')
let startingIndex = 0,
endingIndex = 0
function renderSheetView(title, description, editors, attributes, sheet, isWriteable, isSubAdmin, onlyRenderTable = false) { function renderSheetView(title, description, editors, attributes, sheet, isWriteable, isSubAdmin, onlyRenderTable = false, lazyLoad = false) {
floGlobals.currentSheet = { floGlobals.currentSheet = {
title, title,
description, description,
@ -873,7 +880,15 @@
attributes, attributes,
sheet, sheet,
isWriteable, isWriteable,
isSubAdmin isSubAdmin,
}
if(lazyLoad){
startingIndex = sheet.length > endingIndex ? endingIndex : sheet.length
endingIndex = sheet.length - endingIndex > 20 ? endingIndex + 20 : sheet.length
console.log('lazy...')
}else{
startingIndex = 0
endingIndex = sheet.length > 20 ? 20 : sheet.length
} }
const parseVectorClock = (vc) => { const parseVectorClock = (vc) => {
vc = vc.split('_') vc = vc.split('_')
@ -931,17 +946,20 @@
table = document.createElement("table") table = document.createElement("table")
let thead = table.createTHead() let thead = table.createTHead()
let head = thead.insertRow(0) let head = thead.insertRow(0)
head.append(createCell("FLO ID"), createCell("Grade")); head.append(createTh("FLO ID"), createTh("Grade"));
attributes.forEach(a => head.append(createCell(a))) attributes.forEach(a => head.append(createTh(a)))
} }
let tbody = document.createElement("tbody") let tbody = document.createElement("tbody")
sheet.forEach(data => { for(let i = startingIndex; i < endingIndex; i++){
let row = tbody.insertRow(0); let data = sheet[i]
let row = document.createElement('tr')
row.setAttribute("title", parseVectorClock(data.vc)) row.setAttribute("title", parseVectorClock(data.vc))
row.insertCell().textContent = data.floID row.append(createCell(data.floID))
row.insertCell().appendChild(createGradeField(data.vc, data.grade)); row.append(createCell().appendChild(createGradeField(data.vc, data.grade)))
data.log.forEach(l => row.insertCell().textContent = l) data.log.forEach(l => row.append(createCell(l)))
}) frag.append(row)
}
tbody.append(frag)
//Add input fields if writable //Add input fields if writable
if (isWriteable) { if (isWriteable) {
let row = tbody.insertRow(0); let row = tbody.insertRow(0);
@ -949,7 +967,6 @@
row.insertCell().textContent = ``; row.insertCell().textContent = ``;
attributes.forEach(a => row.insertCell().innerHTML = `<input form="new-log" class="log-input" type="text">`); attributes.forEach(a => row.insertCell().innerHTML = `<input form="new-log" class="log-input" type="text">`);
} }
table.appendChild(tbody); table.appendChild(tbody);
if(!onlyRenderTable){ if(!onlyRenderTable){
clearElement(sheetContainer).appendChild(table); clearElement(sheetContainer).appendChild(table);
@ -983,16 +1000,10 @@
} }
function sortTable(n, ascending) { function sortTable(n, ascending) {
if(ascending) console.log(n)
if(ascending){
if(n === 0) if(n === 0)
floGlobals.currentSheet.sheet.sort((a, b) => { floGlobals.currentSheet.sheet.sort((a, b) => a.floID.toLowerCase().localeCompare(b.floID.toLowerCase()))
if (a.floID.toLowerCase() === b.floID.toLowerCase()) {
return 0;
}
else {
return (a.floID.toLowerCase() < b.floID.toLowerCase()) ? -1 : 1;
}
})
else if(n === 1) else if(n === 1)
floGlobals.currentSheet.sheet.sort((a, b) => { floGlobals.currentSheet.sheet.sort((a, b) => {
if (a.grade === b.grade) { if (a.grade === b.grade) {
@ -1004,25 +1015,22 @@
}) })
else else
floGlobals.currentSheet.sheet.sort((a, b) => { floGlobals.currentSheet.sheet.sort((a, b) => {
let x = a.log[n-2] ? a.log[n-2].toLowerCase() : a.log[n-2] if(isNaN(a.log[n-2])){
let y = b.log[n-2] ? b.log[n-2].toLowerCase() : b.log[n-2] let x = (a.log[n-2]) ? a.log[n-2].toLowerCase() : a.log[n-2]
if (x === y) { let y = (b.log[n-2]) ? b.log[n-2].toLowerCase() : b.log[n-2]
return 0; if (x === y) {
} return 0;
else { }
return (x < y) ? -1 : 1; else {
return (x < y) ? -1 : 1;
}
} }
else
return a.log[n-2] - b.log[n-2]
}) })
else }else{
if(n === 0) if(n === 0)
floGlobals.currentSheet.sheet.sort((a, b) => { floGlobals.currentSheet.sheet.sort((a, b) => b.floID.toLowerCase().localeCompare(a.floID.toLowerCase()))
if (a.floID.toLowerCase() === b.floID.toLowerCase()) {
return 0;
}
else {
return (a.floID.toLowerCase() > b.floID.toLowerCase()) ? -1 : 1;
}
})
else if(n === 1) else if(n === 1)
floGlobals.currentSheet.sheet.sort((a, b) => { floGlobals.currentSheet.sheet.sort((a, b) => {
if (a.grade === b.grade) { if (a.grade === b.grade) {
@ -1034,19 +1042,23 @@
}) })
else else
floGlobals.currentSheet.sheet.sort((a, b) => { floGlobals.currentSheet.sheet.sort((a, b) => {
let x = a.log[n-2] ? a.log[n-2].toLowerCase() : a.log[n-2] if(isNaN(a.log[n-2])){
let y = b.log[n-2] ? b.log[n-2].toLowerCase() : b.log[n-2] let x = (a.log[n-2]) ? a.log[n-2].toLowerCase() : a.log[n-2]
if (x === y) { let y = (b.log[n-2]) ? b.log[n-2].toLowerCase() : b.log[n-2]
return 0; if (x === y) {
} return 0;
else { }
return (x > y) ? -1 : 1; else {
return (x > y) ? -1 : 1;
}
} }
else
return b.log[n-2] - a.log[n-2]
}) })
}
console.log(floGlobals.currentSheet.sheet) console.log(floGlobals.currentSheet.sheet[0])
let {title, description, editors, attributes, sheet, isWriteable, isSubAdmin} = floGlobals.currentSheet let {title, description, editors, attributes, sheet, isWriteable, isSubAdmin} = floGlobals.currentSheet
renderSheetView(title, description, editors, attributes, sheet, isWriteable, isSubAdmin, true) renderSheetView(title, description, editors, attributes, sheet, isWriteable, isSubAdmin, true, false)
} }
</script> </script>
<script id="init_lib"> <script id="init_lib">