var config = {
apiKey: "AIzaSyA4De5itV56yaOBfBW6Cnk3fS7skPmDCHM",
authDomain: "punchlist-1561043639952.firebaseapp.com",
databaseURL: "https://punchlist-1561043639952.firebaseio.com",
projectId: "punchlist-1561043639952",
storageBucket: "",
messagingSenderId: "999467953896",
appId: "1:999467953896:web:a4ded59b12ccb9ff"
};
//firebase.initializeApp(firebaseConfig);
if (!firebase.apps.length) {
firebase.initializeApp(config);
}
function initApp() {
console.log("function: initApp()");
// Auth state changes.
// [START authstatelistener]
firebase.auth().onAuthStateChanged(function(user){
console.log(`in onAuthStateChanged`);
if (user) {
console.log(`${user.displayName}`);
// User is signed in.
var displayName = user.displayName;
var email = user.email;
var emailVerified = user.emailVerified;
var photoURL = user.photoURL;
var isAnonymous = user.isAnonymous;
var uid = user.uid;
window.uid = uid;
var providerData = user.providerData;
writeUserData(uid, displayName, email, photoURL);
//newPunch(uid);
loadPunches(uid);
document.getElementById('whoami').innerHTML = email;
// [START_EXCLUDE]
//document.getElementById('quickstart-sign-in-status').textContent = 'Signed in';
//document.getElementById('signout').disabled = false;
//document.getElementById('quickstart-account-details').textContent = JSON.stringify(user, null, ' ');
// [END_EXCLUDE]
} else {
// User is signed out.
// [START_EXCLUDE]
//document.getElementById('quickstart-sign-in-status').textContent = 'Signed out';
//document.getElementById('signout').disabled = true;
//document.getElementById('quickstart-account-details').textContent = 'null';
// [END_EXCLUDE]
}
});
// [END authstatelistener]
//document.getElementById('signout').addEventListener('click', handleSignOut, true);
}
// AUTH //
// [START googlecallback]
function onSignIn(googleUser) {
console.log('Google Auth Response', googleUser);
// We need to register an Observer on Firebase Auth to make sure auth is initialized.
var unsubscribe = firebase.auth().onAuthStateChanged(function(firebaseUser) {
unsubscribe();
// Check if we are already signed-in Firebase with the correct user.
if (!isUserEqual(googleUser, firebaseUser)) {
// Build Firebase credential with the Google ID token.
// [START googlecredential]
var credential = firebase.auth.GoogleAuthProvider.credential(
googleUser.getAuthResponse().id_token);
// [END googlecredential]
// Sign in with credential from the Google user.
// [START authwithcred]
firebase.auth().signInWithCredential(credential).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// [START_EXCLUDE]
if (errorCode === 'auth/account-exists-with-different-credential') {
alert('You have already signed up with a different auth provider for that email.');
// If you are using multiple auth providers on your app you should handle linking
// the user's accounts here.
} else {
console.error(error);
}
// [END_EXCLUDE]
});
// [END authwithcred]
} else {
var user = googleUser;
console.log('User already signed-in Firebase.');
var displayName = user.displayName;
var email = user.email;
var emailVerified = user.emailVerified;
var photoURL = user.photoURL;
var isAnonymous = user.isAnonymous;
var uid = user.uid;
var providerData = user.providerData;
// [START_EXCLUDE]
//document.getElementById('quickstart-sign-in-status').textContent = 'Signed in';
//document.getElementById('signout').disabled = false;
//document.getElementById('quickstart-account-details').textContent = JSON.stringify(user, null, ' ');
// [END_EXCLUDE]
}
});
}
// [END googlecallback]
/**
* Check that the given Google user is equals to the given Firebase user.
*/
// [START checksameuser]
function isUserEqual(googleUser, firebaseUser) {
if (firebaseUser) {
var providerData = firebaseUser.providerData;
for (var i = 0; i < providerData.length; i++) {
if (providerData[i].providerId === firebase.auth.GoogleAuthProvider.PROVIDER_ID &&
providerData[i].uid === googleUser.getBasicProfile().getId()) {
// We don't need to reauth the Firebase connection.
return true;
}
}
}
return false;
}
// [END checksameuser]
/**
* Handle the sign out button press.
*/
function handleSignOut() {
var googleAuth = gapi.auth2.getAuthInstance();
googleAuth.signOut().then(function() {
firebase.auth().signOut();
});
}
function writeUserData(userId, name, email, imageUrl) {
console.log("function: writeUserData(" + userId + ", " + name + ", " + email + ", " + imageUrl + ")");
firebase.database().ref('users/' + userId).update({
username: name,
email: email,
profile_picture : imageUrl
});
}
//var punchesRef = firebase.database().ref('users/' + userId + '/punches');
//punchesRef.on('value', function(snapshot) {
// updateStarCount(postElement, snapshot.val());
//});
function newPunch(uid, subject, priority, progress, needBy, notes, tags) {
console.log("function: newPunch(" + uid + ", " + subject + ", " + priority + ", " + progress + ", " + needBy + ", " + notes + ", " + tags + ")");
var punchData = {
uid: uid,
subject: subject,
priority: priority,
progress: progress,
needByDate: needBy,
notes: notes,
tags: tags
};
//Get a key for a new post
var newPunchKey = firebase.database().ref().child('users/' + window.uid + '/punches').push().key;
// Write the new punch data
var updates = {};
updates['users/' + uid + '/punches/' + newPunchKey] = punchData;
return firebase.database().ref().update(updates);
}
function genDaily() {
console.log("function: genDaily()");
var daily = [ "Check Workday", "Check Expenses", "Check Change Cases", "Check TD's", "Check at-mentions" ];
console.log(`${daily[1]}`);
priority = parseInt("3");
var d = new Date();
var needBy = d.setHours(17,0,0);
var newTag = "work,daily";
var stripLeadingSpace = newTag.replace(/, /g, ',');
var noSpaces = stripLeadingSpace.replace(/ /g, '_');
var newTags = noSpaces.split(",");
for (x = 0; x < daily.length; x++) {
newPunch(window.uid, daily[x], priority, "new", needBy, "", newTags);
}
}
function genWeekly() {
console.log("function: genWeekly()");
//get next monday:
// var d = new Date();
// d.setDate(d.getDate() + (1 + 7 - d.getDay()) % 7);
// console.log(d)
// };
var weekly = [ "Update ORB Notes", "Prep Weekly Meeting", "Build out Broadcast Timer" ];
var priority = parseInt("5");
var newTag = "work,weekly";
var stripLeadingSpace = newTag.replace(/, /g, ',');
var noSpaces = stripLeadingSpace.replace(/ /g, '_');
var newTags = noSpaces.split(",");
var needBy = '';
for (x = 0; x < weekly.length; x++) {
newPunch(window.uid, weekly[x], priority, "new", needBy, "", newTags);
}
}
// Read the punches via listener
// standard functions
function setPriority(sortObject, newPosition) {
console.log("function: setPriority(" + sortObject + ", " + newPosition + ")");
var priority = {};
priority['users/' + window.uid + '/punches/' + sortObject + '/priority' ] = parseInt(newPosition);
firebase.database().ref().update(priority);
// loadPunches(window.uid);
}
function startPunch(reference) {
console.log("function: startPunch(" + reference + ")");
var start = new Date().getTime();
// Write the new punch data
var progress = {};
var startTime = {};
progress['users/' + window.uid + '/punches/' + reference + '/progress'] = "in progress";
startTime['users/' + window.uid + '/punches/' + reference + '/startTime'] = start;
firebase.database().ref().update(progress);
firebase.database().ref().update(startTime);
$( "#" + reference )
.removeClass("waiting")
.addClass( "inProgress" );
$( "#progress" + reference ).addClass( "inProgress" );
// loadPunches(window.uid);
}
function completePunch(reference) {
console.log("function: completePunch(" + reference + ")");
var end = new Date().getTime();
// Write the new punch data
var progress = {};
var endTime = {};
progress['users/' + window.uid + '/punches/' + reference + '/progress'] = "done";
endTime['users/' + window.uid + '/punches/' + reference + '/endTime'] = end;
firebase.database().ref().update(progress);
firebase.database().ref().update(endTime);
deletePunchElement(reference);
// loadPunches(window.uid);
}
function waitingPunch(reference) {
console.log("function: waitingPunch(" + reference + ")");
var progress = {};
progress['users/' + window.uid + '/punches/' + reference + '/progress'] = "waiting";
firebase.database().ref().update(progress);
$( "#" + reference )
.removeClass( "inProgress" )
.addClass( "waiting" );
// loadPunches(window.uid);
}
function mkPunchNew(reference) {
console.log("function: mkPunchNew(" + reference + ")");
var progress = {};
progress['users/' + window.uid + '/punches/' + reference + '/progress'] = "new";
firebase.database().ref().update(progress);
// loadPunches(window.uid);
}
function clearDefault(a){
if (a.defaultValue === a.value) {
a.value="";
}
}
function mkSortable(){
console.log("function: mkSortable()");
$( function() {
$( "#sortable" ).sortable({
cancel: ".portlet-toggle",
placeholder: "portlet-placeholder ui-corner-all",
revert: true,
distance: 50,
start: function(event, ui) {
//console.log($( this ).( "li" ));
console.log(ui.item.context.id);
console.log(`Start Position: ${ui.item.index()}`);
},
stop: function(event, ui) {
// setPriority(window.sortObjectUUID, ui.item.index());
console.log(event, ui);
setPriority(ui.item.context.id, ui.item.index());
console.log(`New Position: ${ui.item.index()}`);
}
});
});
}
function enableDetail(){
console.log("function: enableDetail()");
$(function() {
$( ".portlet" )
.addClass( "ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" )
.find( ".details-container" )
.addClass( "ui-corner-all" )
.prepend( "");
$( ".portlet-toggle" ).on( "click", function() {
var icon = $( this );
icon.toggleClass( "ui-icon-minusthick ui-icon-plusthick" );
icon.closest( ".portlet" ).find( ".backlog-list-content" ).toggle();
});
$( "#sortable" ).disableSelection();
});
// pop-over dialog
$( "#dialog" ).dialog({ autoOpen: false });
$( "#opener" ).click(function() {
$( "#dialog" ).dialog( "open" );
});
}
// some element functions...
function enableElement(element) {
console.log(`enabling ${element}`);
document.getElementById(element).style.display = "block";
}
function disableElement(element) {
console.log(`disabling ${element}`);
document.getElementById(element).style.display = "none";
}
// menus
function mainMenuDrop() {
document.getElementById("mainMenuDropdown").classList.toggle("show");
}
function progressMenuDrop(uuid) {
document.getElementById("progressDropdown" + uuid).classList.toggle("show");
}
function toggleElement(element) {
document.getElementById(element).classList.toggle("show");
}
window.onclick = function(event) {
if (!event.target.matches('.dropbtn')) {
var dropdowns = document.getElementsByClassName("dropdown-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
var openDropdown = dropdowns[i];
if (openDropdown.classList.contains('show')) {
openDropdown.classList.remove('show');
}
}
}
}
// end menus //
// edit punch
function editPunch(uuid) {
disableElement("punchListAll");
enableElement("editPunch");
var punchRef = firebase.database().ref('users/' + uid + '/punches/' + uuid);
punchRef.once('value').then(function(snapshot) {
var data = snapshot.val();
console.log(data);
var nDate = new Date(data.needByDate);
var notes = data.notes;
var priority = data.priority;
var progress = data.progress;
var subject = data.subject;
var tags = data.tags;
var html = '
';
html += '
';
html += '
';
html += '
Priority:
';
html += '
Need By:
';
html += '
Progress:
';
html += progress;
html += '
';
html += '
Add Tag:
';
html += '
Notes:
';
html += '
';
html += '
';
html += '
';
document.getElementById("editPunch").innerHTML = html;
});
}
function submitEditPunch(uuid) {
var punchRef = firebase.database().ref('users/' + window.uid + '/punches/' + uuid);
// var uuid = document.getElementById("editID").value;
var subjectField = document.getElementById("editSubject").value;
var priorityField = parseInt(document.getElementById("editPriority").value);
var progressField = document.getElementById("editProgress").innerHTML;
var nDateField = document.getElementById("timepickerEdit").value;
var tagsField = document.getElementById("editTags").value.toLowerCase();
var stripLeadingSpace = tagsField.replace(/, /g, ',');
var noSpaces = stripLeadingSpace.replace(/ /g, '_');
var tagField = noSpaces.split(",");
var notesField = document.getElementById("editNotes").value;
var punchData = {
subject: subjectField,
priority: priorityField,
progress: progressField,
needByDate: nDateField,
notes: notesField,
tags: tagField
};
var updates = {};
updates['users/' + uid + '/punches/' + uuid] = punchData;
firebase.database().ref().update(updates);
disableElement('editPunch');
enableElement('punchListAll');
}
function createTimer(element,timeTo) {
if (timeTo != null && timeTo != undefined && new Date(timeTo).getTime() != 'Invalid Date') {
var x = setInterval(function() {
distance = (new Date().getTime() - new Date(timeTo).getTime());
seconds = Math.floor((distance / 1000) % 60);
minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
days = Math.floor(distance / (1000 * 60 * 60 * 24));
if (days < 0) { days = -(days + 1);
seconds = (seconds + 1); }
if (hours < 0) { hours = (-(hours) - 1); }
if (hours < 10) { hours = ('0' + hours); }
if (minutes < 0) { minutes = -(minutes); }
if (minutes < 10) { minutes = ('0' + minutes); }
seconds = (seconds -1); //really effing dumb.
if (seconds < 0) { seconds = -(seconds); }
if (seconds < 10) { seconds = ('0' + seconds); }
//console.log("Setting Timer on element:" + element);
var exists = document.getElementById(element);
if (exists != null) {
document.getElementById(element).innerHTML = days + "day(s), " + hours + ":" + minutes + ":" + seconds;
} else {
console.log("Could not update: " + element + ", because: " + exists);
}
}, 1000);
}
}
function formatDate(d) {
d = new Date(d);
var minutes = d.getMinutes();
var hours = d.getHours();
if (minutes < 10) { minutes = ('0' + minutes); }
if (hours === 0) { hours = ('0' + hours); }
var s = d.getFullYear() + '/' + d.getMonth() + '/' + d.getDate() + ' ' + hours + ':' + minutes;
return s;
}
// load punches
function genPunchListItem(elementData, element) {
$( elementData ).appendTo( element );
}
function updateElementData(element, d) {
var exists = document.getElementById(element);
if ( exists != null || exists != undefined ) {
var e = document.getElementById(element).innerHTML;
if ( d != e ) {
console.log("updating: " + element + ", with: " + d + ", was: " + e);
document.getElementById(element).innerHTML = d;
} else if ( d === e ) {
console.log("Not Updating: " + element + ", because: " + d + " === " + e);
} else {
console.log("Not updating: " + element + ", because: Something weird happened with: " + d + " & " + e);
}
} else {
console.log("add new element");
}
}
function updatePunchElement(childKey, childData) {
updateElementData("priority" + childKey, childData.priority);
updateElementData("subject" + childKey, childData.subject);
updateElementData("progress" + childKey, childData.progress);
updateElementData("neededBy" + childKey, childData.needByDate);
//tags
}
function addPunchElement(childKey, childData) {
if (childData.progress.toLowerCase() === "in progress") { var style = "inProgress"; }
else if (childData.progress.toLowerCase() === "waiting") { var style = "waiting"; }
else if (childData.progress.toLowerCase() === "new") { var style = "punch-default"; }
else { style = "punch-default"; }
if (childData.progress.toLowerCase() != "done") {
genPunchListItem('', '#sortable');
genPunchListItem('', '#' + childKey);
genPunchListItem('', '#div-portlet' + childKey);
genPunchListItem('', '#div-portlet' + childKey);
genPunchListItem('' + childData.priority + '
', '#priority-container' + childKey);
genPunchListItem('' + childData.subject + '
', '#details-container' + childKey);
genPunchListItem('', '#details-container' + childKey);
genPunchListItem('' + childData.progress + '
', '#details-col-one' + childKey);
genPunchListItem('', '#details-col-one' + childKey);
// status dropdown
genPunchListItem('', '#details-container' + childKey);
genPunchListItem('
', '#dropdown-wrapper' + childKey);
genPunchListItem('', '#dropdown-wrapper' + childKey);
genPunchListItem('New', '#progressDropdown' + childKey);
genPunchListItem('Start', '#progressDropdown' + childKey);
genPunchListItem('Waiting', '#progressDropdown' + childKey);
genPunchListItem('Finish', '#progressDropdown' + childKey);
genPunchListItem('', '#details-container' + childKey);
genPunchListItem('', '#details-container' + childKey);
if ( childData.needByDate != null && childData.needByDate != undefined && childData.needByDate != '' ) {
genPunchListItem('', '#details-col-three' + childKey);
genPunchListItem('' + formatDate(childData.needByDate) + '
', '#neededBy' + childKey);
genPunchListItem('', '#neededBy' + childKey);
createTimer('needby-date-timer' + childKey, childData.needByDate);
genPunchListItem('', '#details-col-three' + childKey);
if ( (new Date(childData.needByDate).getTime() - new Date().getTime()) <= 0 ) {
$( '#needby-data' + childKey ).addClass( "overdue" );
} else if ( ((new Date(childData.needByDate).getTime() - new Date().getTime()) / 1000) <= 259200 ) {
$( '#needby-data' + childKey ).addClass( "duesoon" );
}
}
genPunchListItem('', '#div-portlet' + childKey) ;
if ( childData.startTime != undefined ) {
genPunchListItem('' + formatDate(childData.startTime) + '
', '#punch-list-backlog-details' + childKey);
var time = new Date(childData.startTime).getTime();
createTimer("timer" + childKey, time);
}
if ( childData.tags != undefined ) {
var tags = childData.tags;
genPunchListItem('', '#details-col-five' + childKey);
genPunchListItem('', '#punch-list-backlog-details' + childKey);
genPunchListItem('Tags:
', '#tags-container' + childKey);
genPunchListItem('', '#tags-container' + childKey);
var i;
for (i=0; i' + tagData + comma + '', '#tags-container-summary' + childKey);
genPunchListItem('' + tagData + comma + '', '#tags-column' + childKey);
}
}
if ( childData.notes != "" ) {
genPunchListItem('
', '#punch-list-backlog-details' + childKey);
}
genPunchListItem('', '#punch-list-backlog-details' + childKey);
}
}
function deletePunchElement(childKey) {
$('#' + childKey).remove();
}
function loadPunches(uid) {
console.log("Loading Punches...");
//document.getElementById("sortable").innerHTML = '';
var punchesRef = firebase.database().ref('users/' + uid + '/punches').orderByChild('priority');
var itemStyle = "punches";
// list = '';
punchesRef.on('child_added', function(data) {
console.log("child Added");
addPunchElement(data.key, data.val());
});
mkSortable();
//enableDetail();
}
function sortList() {
console.log('function: sortList()');
var items = $('li');
items.sort(function(a, b){
console.log($(a).data('priority'));
return +$(a).data('priority') - +$(b).data('priority');
});
items.appendTo('#sortable');
}
var looper = setInterval(function() {
var uid = window.uid;
var punchesRef = firebase.database().ref('users/' + uid + '/punches').orderByChild('priority');
punchesRef.on('child_changed', function(data) {
console.log("Child Changed");
updatePunchElement(data.key, data.val());
// deletePunchElement(data.key);
// addPunchElement(data.key, data.val());
});
punchesRef.on('child_removed', function(data) {
console.log("child Removed");
deletePunchElement(data.key);
});
}, 1000);
// create new punch
function genEventForm() {
document.getElementById("newSubject").value = "subject";
document.getElementById("newPriority").value = "priority";
document.getElementById("timepickerCreate").value = "date";
document.getElementById("newNotes").value = '';
document.getElementById("tagsCreate").value = 'tag1,tag2, tag3';
disableElement('punchListAll');
enableElement('newEvent');
}
function createNewEvent() {
disableElement("punchListAll");
enableElement("newEvent");
var subjectField = document.getElementById("newSubject").value;
var priorityField = parseInt(document.getElementById("newPriority").value);
var progressField = document.getElementById("newProgress").value;
var nDateField = document.getElementById("timepickerCreate").value;
var notesField = document.getElementById("newNotes").value;
var newTag = document.getElementById("tagsCreate").value.toLowerCase();
var stripLeadingSpace = newTag.replace(/, /g, ',');
var noSpaces = stripLeadingSpace.replace(/ /g, '_');
var newTags = noSpaces.split(",");
newPunch(window.uid, subjectField, priorityField, progressField, nDateField, notesField, newTags)
disableElement("newEvent");
enableElement("punchListAll");
// loadPunches(window.uid);
// document.getElementById("newEventList").innerHTML = jsonStr;
}
// load everything up!
window.onload = function() {
initApp();
};
//
//
//
// old script
//
//
//
/*
function tagFilter(tagItem) {
console.log(`In tagFilter function`);
window.tagFilterItem = tagItem;
getJson();
}
function clearTagFilter() {
console.log(`Clear Tags`);
window.tagFilterItem = undefined;
getJson();
}
function getStatus(punchList, statusFilter) {
return punchList.filter(function(punch) { return punch.progress.toLowerCase() != statusFilter; });
}
window.punches = '';
function startPunch(uuid) {
var punchList = window.punches;
item = findArrayId(uuid);
if ( punchList[item].startTime === undefined ) {
punchList[item].startTime = new Date().getTime();
}
punchList[item].progress = "In Progress";
punchList[item].priority = 0;
jsonStr = JSON.stringify(punchList);
putJson(jsonStr);
}
function completePunch(uuid) {
var punchList = window.punches;
item = findArrayId(uuid);
if ( punchList[item].doneTime === undefined ) {
punchList[item].doneTime = new Date().getTime();
}
punchList[item].progress = "Done";
jsonStr = JSON.stringify(punchList);
putJson(jsonStr);
}
function waitingPunch(uuid) {
var punchList = window.punches;
item = findArrayId(uuid);
punchList[item].progress = "Waiting";
jsonStr = JSON.stringify(punchList);
putJson(jsonStr);
}
function mkPunchNew(uuid) {
var punchList = window.punches;
item = findArrayId(uuid);
punchList[item].progress = "New";
jsonStr = JSON.stringify(punchList);
putJson(jsonStr);
}
function enablePunchDetail(uuid) {
var punchList = window.punches;
item = findArrayId(uuid);
console.log(`inside enablePunchDetail`);
disableElement("punchListAll");
enableElement("punchDetail");
// html = "";
html = "subject: " + punchList[item].subject + "
Created: " + punchList[item].cDate + "
Modified Date: " + punchList[item].mDate + "
Priority: " + punchList[item].priority + "
Progress: " + punchList[item].progress + "
";
document.getElementById("punchDetail").innerHTML = html;
}
function genEventForm() {
document.getElementById("newSubject").value = "subject";
document.getElementById("newPriority").value = "priority";
document.getElementById("timepickerCreate").value = "date";
document.getElementById("newNotes").value = '';
disableElement('punchListAll');
enableElement('newEvent');
}
function createNewEvent() {
getJson();
// console.log(`${punchList}`);
// console.log(`${window.punches}`);
// disableElement("punchList");
// disableElement("punchDetail");
punchList = window.punches;
var subjectField = document.getElementById("newSubject").value;
var priorityField = document.getElementById("newPriority").value;
var progressField = document.getElementById("newProgress").value;
var nDateField = document.getElementById("timepickerCreate").value;
var notesField = document.getElementById("newNotes").value;
var newTag = document.getElementById("tagsCreate").value.toLowerCase();
var stripLeadingSpace = newTag.replace(/, /g, ',');
var noSpaces = stripLeadingSpace.replace(/ /g, '_');
var newTags = noSpaces.split(",");
// make sure tags object exists
var newEventJson = { uuid: genUid(), nDate: nDateField, subject: subjectField, priority: priorityField, progress: progressField, tags: newTags, notes: notesField };
punchList.push(newEventJson);
jsonStr = JSON.stringify(punchList);
putJson(jsonStr);
disableElement("newEvent");
enableElement("punchListAll");
// document.getElementById("newEventList").innerHTML = jsonStr;
}
function deletePunch(uuid) {
getJson();
// console.log(`${punchList}`);
// console.log(`${window.punches}`);
punchList = window.punches;
item = findArrayId(uuid);
console.log(`splicing ${item}`);
punchList.splice(item, 1);
jsonStr = JSON.stringify(punchList);
putJson(jsonStr);
// document.getElementById("newEventList").innerHTML = jsonStr;
}
function enableElement(element) {
console.log(`enabling ${element}`);
document.getElementById(element).style.display = "block";
}
function disableElement(element) {
console.log(`disabling ${element}`);
document.getElementById(element).style.display = "none";
}
function displayMeta() {
document.getElementById("meta").innerHTML = "Version: " + version ;
}
function toggleShowDone() {
if (showDone === false) {
window.showDone = true;
} else if (showDone === true) {
window.showDone = false;
} else {
window.showDone = false;
}
getJson();
}
function editPunch(uuid) {
disableElement("punchListAll");
enableElement("editPunch");
punchList = window.punches;
item = findArrayId(uuid);
if ( punchList[item].tags === undefined ) {
punchList[item].tags = [];
}
var id = item;
var subject = punchRef.subject;
var priority = punchRef.priority;
var progress = punchRef.progress;
var nDate = punchRef.nDate;
var notes = punchRef.notes;
var tags = punchRef.tags;
var html = '';
html += '
';
html += '
';
html += '
Priority:
';
html += '
Need By:
';
html += '
Progress:
';
html += progress;
html += '
';
html += '
Tags:
' + tags + '
';
html += '
Add Tag:
';
html += '
Notes:
';
html += '
';
html += '
';
html += '
';
document.getElementById("editPunch").innerHTML = html;
}
function submitEditPunch(uuid) {
punchList = window.punches;
// var uuid = document.getElementById("editID").value;
var id = findArrayId(uuid);
var subjectField = document.getElementById("editSubject").value;
var priorityField = document.getElementById("editPriority").value;
var progressField = document.getElementById("editProgress").innerHTML;
var nDateField = document.getElementById("timepickerEdit").value;
//var tagsField = document.getElementById("editTags").value.toLowerCase();
var notesField = document.getElementById("editNotes").value;
punchRef.subject = subjectField;
punchRef.priority = priorityField;
punchRef.progress = progressField;
punchRef.nDate = nDateField;
//punchRef.tags = tagsField;
punchRef.notes = notesField;
jsonStr = JSON.stringify(punchList);
putJson(jsonStr);
disableElement("editPunch");
}
function addTag(uuid) {
var item = findArrayId(uuid);
// var item = document.getElementById("addTag-" + uuid).value;
var newTag = document.getElementById("addTag-" + uuid).value.toLowerCase();
var stripLeadingSpace = newTag.replace(', ', ',');
var noSpaces = stripLeadingSpace.replace(' ', '_');
var newTags = noSpaces.split(",");
// make sure tags object exists
if (punchList[item].tags === undefined) {
console.log(`Adding tags object to punchList[${item}]`);
punchList[item].tags = [];
}
for ( nt = 0; nt < newTags.length; nt++ ) {
punchList[item].tags.push(newTags[nt]);
console.log(`${punchList[item].tags}`);
}
jsonStr = JSON.stringify(punchList);
putJson(jsonStr);
editPunch(uuid);
// disableElement("editPunch");
// enableElement("punchListAll");
disableElement("punchListAll");
}
function clearDefault(a){
if (a.defaultValue === a.value) {
a.value="";
}
}
function genUid() {
function chr4() {
return Math.random().toString(16).slice(-4);
}
return chr4() + chr4() +
'-' + chr4() +
'-' + chr4() +
'-' + chr4() +
'-' + chr4() + chr4() + chr4();
}
//google stuff
function onSignIn(googleUser) {
// var profile = googleUser.getBasicProfile();
// console.log('ID: ' + profile.getId()); // Do not send to your backend! Use an ID token instead.
// console.log('Name: ' + profile.getName());
// console.log('Image URL: ' + profile.getImageUrl());
// console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present.
// getJson();
}
function signOut() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
console.log('User signed out.');
});
}
$('li').on("click", function(event){
var target = event.target,
index = $(target).index();
console.log(target, index);
document.getElementById("debug1").innerHTML = target + "
" + index;
});
*/