fix array indexing

This commit is contained in:
Kameron Kenny 2019-06-18 12:58:12 -04:00
parent 1c533e2a54
commit d9b04132ce
3 changed files with 104 additions and 23 deletions

View File

@ -26,6 +26,65 @@
<script> <script>
function genUid() {
function chr4() {
return Math.random().toString(16).slice(-4);
}
return chr4() + chr4() +
'-' + chr4() +
'-' + chr4() +
'-' + chr4() +
'-' + chr4() + chr4() + chr4();
}
function getuuidJson() {
console.log(`getuuidJson`);
let req = new XMLHttpRequest();
req.onreadystatechange = () => {
if (req.readyState == XMLHttpRequest.DONE) {
window.list = JSON.parse(req.responseText);
console.log(`uuidList - ${window.list}`);
injectUuid();
}
};
req.open("GET", jsonUrl, true);
req.send();
}
function injectUuid() {
length = window.list.length;
for (x = 0; x < length; x++) {
if (window.list[x].uuid === undefined) {
window.list[x].uuid = genUid();
}
}
jsonStr = JSON.stringify(window.list);
sendJson(jsonStr);
}
function sendJson(data) {
let req = new XMLHttpRequest();
req.onreadystatechange = () => {
if (req.readyState == XMLHttpRequest.DONE) {
document.getElementById("result").innerHTML += req.status + req.responseText + "<br />";
}
};
req.open("PUT", jsonUrl, true);
req.setRequestHeader("Content-type", "application/json");
req.send(data);
}
//getuuidJson();
function test() { function test() {
d = document.getElementById("data").value; d = document.getElementById("data").value;
document.getElementById("result").innerHTML = d; document.getElementById("result").innerHTML = d;
@ -65,5 +124,4 @@ console.log(`getJson`);
} }
</script> </script>

View File

@ -38,6 +38,16 @@ function getJson() {
} }
function findArrayId(uid) {
var length = window.punches.length;
for (x = 0; x < length; x++) {
if (window.punches[x].uuid === uid) {
return x;
}
}
}
function tagFilter(tagItem) { function tagFilter(tagItem) {
console.log(`In tagFilter function`); console.log(`In tagFilter function`);
window.tagFilterItem = tagItem; window.tagFilterItem = tagItem;
@ -81,7 +91,7 @@ function genList(punchList, element) {
list += "<div class='punchlist top-bottom-border'>"; // list += "<div class='punchlist top-bottom-border'>"; //
list += "<div class='punchlist container top-bottom-border'>"; // list += "<div class='punchlist container top-bottom-border'>"; //
list += "<div class='ten columns'>"; list += "<div class='ten columns'>";
list += "<div class='12 columns " + itemStyle + "' onClick=enablePunchDetail(" + i + ")><span class=subject>" + punchList[i].subject + "</span></div>"; // list += "<div class='12 columns " + itemStyle + "' onClick=enablePunchDetail(\"" + punchList[i].uuid + "\")><span class=subject>" + punchList[i].subject + "</span></div>"; //
list += "<div class='three columns " + itemStyle + "'>Status: " + punchList[i].progress + "</div>"; list += "<div class='three columns " + itemStyle + "'>Status: " + punchList[i].progress + "</div>";
list += "<div class='two columns " + itemStyle + "'>Priority: " + punchList[i].priority + "</div>"; list += "<div class='two columns " + itemStyle + "'>Priority: " + punchList[i].priority + "</div>";
list += "<div class='four columns " + itemStyle + "'>Need By: " + punchList[i].nDate + "</div>"; list += "<div class='four columns " + itemStyle + "'>Need By: " + punchList[i].nDate + "</div>";
@ -96,12 +106,12 @@ function genList(punchList, element) {
list += "</div>"; list += "</div>";
list += "<div class='two columns'>"; list += "<div class='two columns'>";
list += "<div class=dropdown>"; list += "<div class=dropdown>";
list += "<button class=dropbtn onClick=dropMenu(" + i + ")>Act<i class='fa fa-caret-down'></i></button>"; list += "<button class=dropbtn onClick=dropMenu(\"" + punchList[i].uuid + "\")>Act<i class='fa fa-caret-down'></i></button>";
list += "<div class=dropdown-content id='myDropdown" + i + "'>"; list += "<div class=dropdown-content id='myDropdown" + punchList[i].uuid + "'>";
list += "<a onClick=startPunch(" + i + ")>start</a>"; list += "<a onClick=startPunch(\"" + punchList[i].uuid + "\")>start</a>";
list += "<a onClick=completePunch(" + i + ")>done</a>"; list += "<a onClick=completePunch(\"" + punchList[i].uuid + "\")>done</a>";
list += "<a onClick=editPunch(" + i + ")>edit</a>"; list += "<a onClick=editPunch(\"" + punchList[i].uuid + "\")>edit</a>";
list += "<a onClick=deletePunch(" + i + ")>delete</a>"; list += "<a onClick=deletePunch(\"" + punchList[i].uuid + "\")>delete</a>";
list += "</div></div></div></div></div>"; list += "</div></div></div></div></div>";
} }
} else { } else {
@ -109,7 +119,7 @@ function genList(punchList, element) {
list += "<div class='punchlist top-bottom-border'>"; // list += "<div class='punchlist top-bottom-border'>"; //
list += "<div class='punchlist container top-bottom-border'>"; // list += "<div class='punchlist container top-bottom-border'>"; //
list += "<div class='ten columns'>"; list += "<div class='ten columns'>";
list += "<div class='12 columns " + itemStyle + "' onClick=enablePunchDetail(" + i + ")><span class=subject>" + punchList[i].subject + "</span></div>"; // list += "<div class='12 columns " + itemStyle + "' onClick=enablePunchDetail(\"" + punchList[i].uuid + "\")><span class=subject>" + punchList[i].subject + "</span></div>"; //
list += "<div class='three columns " + itemStyle + "'>Status: " + punchList[i].progress + "</div>"; list += "<div class='three columns " + itemStyle + "'>Status: " + punchList[i].progress + "</div>";
list += "<div class='two columns " + itemStyle + "'>Priority: " + punchList[i].priority + "</div>"; list += "<div class='two columns " + itemStyle + "'>Priority: " + punchList[i].priority + "</div>";
list += "<div class='four columns " + itemStyle + "'>Need By: " + punchList[i].nDate + "</div>"; list += "<div class='four columns " + itemStyle + "'>Need By: " + punchList[i].nDate + "</div>";
@ -124,12 +134,12 @@ function genList(punchList, element) {
list += "</div>"; list += "</div>";
list += "<div class='two columns'>"; list += "<div class='two columns'>";
list += "<div class=dropdown>"; list += "<div class=dropdown>";
list += "<button class=dropbtn onClick=dropMenu(" + i + ")>Act<i class='fa fa-caret-down'></i></button>"; list += "<button class=dropbtn onClick=dropMenu(\"" + punchList[i].uuid + "\")>Act<i class='fa fa-caret-down'></i></button>";
list += "<div class=dropdown-content id='myDropdown" + i + "'>"; list += "<div class=dropdown-content id='myDropdown" + punchList[i].uuid + "'>";
list += "<a onClick=startPunch(" + i + ")>start</a>"; list += "<a onClick=startPunch(\"" + punchList[i].uuid + "\")>start</a>";
list += "<a onClick=completePunch(" + i + ")>done</a>"; list += "<a onClick=completePunch(\"" + punchList[i].uuid + "\")>done</a>";
list += "<a onClick=editPunch(" + i + ")>edit</a>"; list += "<a onClick=editPunch(\"" + punchList[i].uuid + "\")>edit</a>";
list += "<a onClick=deletePunch(" + i + ")>delete</a>"; list += "<a onClick=deletePunch(\"" + punchList[i].uuid + "\")>delete</a>";
list += "</div></div></div></div></div>"; list += "</div></div></div></div></div>";
} }
} }
@ -160,13 +170,12 @@ function completePunch(item) {
putJson(jsonStr); putJson(jsonStr);
} }
function enablePunchDetail(item) { function enablePunchDetail(uuid) {
var punchList = window.punches; var punchList = window.punches;
item = findArrayId(uuid);
console.log(`inside enablePunchDetail`); console.log(`inside enablePunchDetail`);
disableElement("punchListAll"); disableElement("punchListAll");
console.log(`punchList Disabled`);
enableElement("punchDetail"); enableElement("punchDetail");
console.log(`punchDetail Enabled`);
// html = ""; // html = "";
html = "<p>subject: " + punchList[item].subject + "<br />Created: " + punchList[item].cDate + "<br />Modified Date: " + punchList[item].mDate + "<br />Priority: " + punchList[item].priority + "<br />Progress: " + punchList[item].progress + "<br /><textarea>" + punchList[item].notes + "</textarea><br /><input onfocus='clearDefault(this)' type='text' id='tag' value='Add tag'><input onClick='addTag()' type=button value='Add' /></p><input type=button value=close onClick=getJson()>"; html = "<p>subject: " + punchList[item].subject + "<br />Created: " + punchList[item].cDate + "<br />Modified Date: " + punchList[item].mDate + "<br />Priority: " + punchList[item].priority + "<br />Progress: " + punchList[item].progress + "<br /><textarea>" + punchList[item].notes + "</textarea><br /><input onfocus='clearDefault(this)' type='text' id='tag' value='Add tag'><input onClick='addTag()' type=button value='Add' /></p><input type=button value=close onClick=getJson()>";
document.getElementById("punchDetail").innerHTML = html; document.getElementById("punchDetail").innerHTML = html;
@ -185,7 +194,7 @@ function createNewEvent() {
var nDateField = document.getElementById("timepickerCreate").value; var nDateField = document.getElementById("timepickerCreate").value;
var notesField = document.getElementById("newNotes").value; var notesField = document.getElementById("newNotes").value;
var newEventJson = { nDate: nDateField, subject: subjectField, priority: priorityField, progress: progressField, notes: notesField }; var newEventJson = { uuid: genUid(), nDate: nDateField, subject: subjectField, priority: priorityField, progress: progressField, notes: notesField };
punchList.push(newEventJson); punchList.push(newEventJson);
jsonStr = JSON.stringify(punchList); jsonStr = JSON.stringify(punchList);
putJson(jsonStr); putJson(jsonStr);
@ -194,10 +203,11 @@ function createNewEvent() {
// document.getElementById("newEventList").innerHTML = jsonStr; // document.getElementById("newEventList").innerHTML = jsonStr;
} }
function deletePunch(item) { function deletePunch(uuid) {
// console.log(`${punchList}`); // console.log(`${punchList}`);
// console.log(`${window.punches}`); // console.log(`${window.punches}`);
punchList = window.punches; punchList = window.punches;
item = findArrayId(uuid);
console.log(`splicing ${item}`); console.log(`splicing ${item}`);
@ -251,12 +261,13 @@ function toggleShowDone() {
getJson(); getJson();
} }
function editPunch(item) { function editPunch(uuid) {
disableElement("newEvent"); disableElement("newEvent");
disableElement("punchListAll"); disableElement("punchListAll");
enableElement("editPunch"); enableElement("editPunch");
punchList = window.punches; punchList = window.punches;
item = findArrayId(uuid);
var id = item; var id = item;
@ -297,7 +308,7 @@ function submitEditPunch() {
function addTag() { function addTag() {
var item = document.getElementById("editID").value; var item = document.getElementById("editID").value;
var newTag = document.getElementById("tag").value; var newTag = document.getElementById("tag").value.toLowerCase();
console.log(`Item: ${item}`); console.log(`Item: ${item}`);
console.log(`New Tag: ${newTag}`); console.log(`New Tag: ${newTag}`);
@ -321,3 +332,15 @@ function clearDefault(a){
a.value=""; a.value="";
} }
} }
function genUid() {
function chr4() {
return Math.random().toString(16).slice(-4);
}
return chr4() + chr4() +
'-' + chr4() +
'-' + chr4() +
'-' + chr4() +
'-' + chr4() + chr4() + chr4();
}

View File

@ -1,4 +1,4 @@
var version = "0.3.045", var version = "0.3.047",
debug = false, debug = false,
jsonUrl = "https://api.myjson.com/bins/1dodsj", jsonUrl = "https://api.myjson.com/bins/1dodsj",
showDone = false, showDone = false,