diff --git a/punch_list/public/css/custom.css b/punch_list/public/css/custom.css index f34d590..9c7c8fc 100644 --- a/punch_list/public/css/custom.css +++ b/punch_list/public/css/custom.css @@ -10,8 +10,8 @@ button:hover { color: #ddd; } .details-container { width: 70%; } .priority-container { width: 20%; float:left; width:10%;} .priority { min-width:50px; color:steel; font-size: 35px; font-weight: 900; } -.inProgress { color:orange; font-size: 12px; } li.inProgress { border: 4px solid lime; } +.inProgress { color:orange; font-size: 12px; } .tags-summary { display: none; } .tags-details { font-size: 1em; margin-left: 10px; } a.tags-details { color: #00BFFF; text-decoration: none;} @@ -214,6 +214,7 @@ textarea { /* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button) */ .show {display:block;} +.hide {display:none;} .warn { color: yellow; } .green { color: lime; } diff --git a/punch_list/public/js/myFirebase.js b/punch_list/public/js/myFirebase.js index 37d5b27..833b71b 100644 --- a/punch_list/public/js/myFirebase.js +++ b/punch_list/public/js/myFirebase.js @@ -244,10 +244,31 @@ function startPunch(reference) { firebase.database().ref().update(startTime); $( "#" + reference ) - .removeClass("waiting") + .removeClass( "waiting" ) + $( "#" + reference ) + .removeClass( "punch-default" ) + $( "#" + reference ) .addClass( "inProgress" ); - $( "#progress" + reference ).addClass( "inProgress" ); -// loadPunches(window.uid); + $( "#progress" + reference ) + .removeClass( "waiting" ) + $( "#progress" + reference ) + .removeClass( "punch-default" ) + $( "#progress" + reference ) + .addClass( "inProgress" ); + + var exists = document.getElementById("timer" + reference); + if ( exists === null ) { + console.log("Generate Element: timer" + reference); + genPunchListItem('
', '#details-col-one' + reference); + } + + var timerExists = exists.innerHTML; + console.log(timerExists); + if (timerExists === null || timerExists === '') { + console.log("createTimer(" + reference + ", " + time + ")"); + var time = new Date(start).getTime(); + createTimer("timer" + reference, time); + } } function completePunch(reference) { @@ -275,8 +296,17 @@ function waitingPunch(reference) { progress['users/' + window.uid + '/punches/' + reference + '/progress'] = "waiting"; firebase.database().ref().update(progress); + $( "#" + reference ) + .removeClass( "punch-default" ) $( "#" + reference ) .removeClass( "inProgress" ) + $( "#" + reference ) + .addClass( "waiting" ); + $( "#progress" + reference ) + .removeClass( "inProgress" ) + $( "#progress" + reference ) + .removeClass( "punch-default" ) + $( "#progress" + reference ) .addClass( "waiting" ); // loadPunches(window.uid); @@ -288,6 +318,19 @@ function mkPunchNew(reference) { progress['users/' + window.uid + '/punches/' + reference + '/progress'] = "new"; firebase.database().ref().update(progress); + console.log("setting classes"); + $( "#" + reference ) + .removeClass( "waiting" ) + $( "#" + reference ) + .removeClass( "inProgress" ) + $( "#" + reference ) + .addClass( "punch-default" ); + $( "#progress" + reference ) + .removeClass( "waiting" ) + $( "#progress" + reference ) + .removeClass( "inProgress" ) + $( "#progress" + reference ) + .addClass( "punch-default" ); // loadPunches(window.uid); } @@ -477,7 +520,7 @@ function createTimer(element,timeTo) { if (exists != null) { document.getElementById(element).innerHTML = days + "day(s), " + hours + ":" + minutes + ":" + seconds; } else { - console.log("Could not update: " + element + ", because: " + exists); +// console.log("Could not update: " + element + ", because: " + exists); } }, 1000); } @@ -528,7 +571,7 @@ function updatePunchElement(childKey, childData) { updateElementData("priority" + childKey, childData.priority); updateElementData("subject" + childKey, childData.subject); updateElementData("progress" + childKey, childData.progress); - updateElementData("neededBy" + childKey, childData.needByDate); + updateElementData("neededby-data" + childKey, childData.needByDate); //tags @@ -594,7 +637,7 @@ function addPunchElement(childKey, childData) { tagData = tags[i]; if ((tags.length - 1) === i) { var comma = ' '; } else { var comma = ','; } - genPunchListItem('' + tagData + comma + '', '#tags-container-summary' + childKey); + genPunchListItem('' + tagData + comma + '', '#tags-container-summary' + childKey); genPunchListItem('' + tagData + comma + '', '#tags-column' + childKey); } } @@ -609,8 +652,25 @@ function deletePunchElement(childKey) { $('#' + childKey).remove(); } -function loadPunches(uid) { +function clearTagFilter() { + console.log("clearing tags"); + $( "li" ) + .removeClass( "hide" ); +} + +function tagFilter(reference) { + console.log("Filtering Punches on: " + reference); + + $( "li" ) + .addClass( "hide" ); + + $( "." + reference ) + .closest( "li" ) + .removeClass( "hide" ); +} + +function loadPunches(uid) { console.log("Loading Punches..."); //document.getElementById("sortable").innerHTML = ''; var punchesRef = firebase.database().ref('users/' + uid + '/punches').orderByChild('priority'); @@ -622,12 +682,7 @@ function loadPunches(uid) { addPunchElement(data.key, data.val()); }); - - mkSortable(); - -//enableDetail(); - } function sortList() { @@ -714,10 +769,10 @@ function tagFilter(tagItem) { getJson(); } -function clearTagFilter() { - console.log(`Clear Tags`); - window.tagFilterItem = undefined; - getJson(); +function cleartagfilter() { + console.log(`clear tags`); + window.tagfilteritem = undefined; + getjson(); } function getStatus(punchList, statusFilter) { @@ -958,21 +1013,21 @@ function addTag(uuid) { jsonStr = JSON.stringify(punchList); putJson(jsonStr); - editPunch(uuid); -// disableElement("editPunch"); -// enableElement("punchListAll"); - disableElement("punchListAll"); + editpunch(uuid); +// disableelement("editpunch"); +// enableelement("punchlistall"); + disableelement("punchlistall"); } -function clearDefault(a){ - if (a.defaultValue === a.value) { +function cleardefault(a){ + if (a.defaultvalue === a.value) { a.value=""; } } -function genUid() { +function genuid() { function chr4() { - return Math.random().toString(16).slice(-4); + return math.random().tostring(16).slice(-4); } return chr4() + chr4() + '-' + chr4() + @@ -982,19 +1037,19 @@ function genUid() { } //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 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.'); +function signout() { + var auth2 = gapi.auth2.getauthinstance(); + auth2.signout().then(function () { + console.log('user signed out.'); }); } @@ -1002,6 +1057,6 @@ $('li').on("click", function(event){ var target = event.target, index = $(target).index(); console.log(target, index); - document.getElementById("debug1").innerHTML = target + "
" + index; + document.getelementbyid("debug1").innerhtml = target + "
" + index; }); */ diff --git a/punch_list/public/js/myFirebase.js.save b/punch_list/public/js/myFirebase.js.save deleted file mode 100644 index d546fb7..0000000 --- a/punch_list/public/js/myFirebase.js.save +++ /dev/null @@ -1,884 +0,0 @@ -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() { - // 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) { - 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) { - - 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); -} - -// Read the punches via listener - -// standard functions -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) { - - 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); - - loadPunches(window.uid); -} - -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); - - loadPunches(window.uid); -} - -function waitingPunch(reference) { - var progress = {}; - progress['users/' + window.uid + '/punches/' + reference + '/progress'] = "waiting"; - firebase.database().ref().update(progress); - - loadPunches(window.uid); -} - -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(){ - $( 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()); - setPriority(ui.item.context.id, ui.item.index()); - console.log(`New Position: ${ui.item.index()}`); - } - }); - }); - - $(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"); -} - -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 // - - -// load punches - -function genPunchListItem(elementData, element) { - $( elementData ).appendTo( element ); -} - -function loadPunches(uid) { - - document.getElementById("sortable").innerHTML = ''; - var punchesRef = firebase.database().ref('users/' + uid + '/punches'); //.orderByChild('priority'); - var itemStyle = "punches"; -// list = '
    '; - - punchesRef.once('value', function(snapshot) { - snapshot.forEach(function(childSnapshot) { - var childKey = childSnapshot.key; - var childData = childSnapshot.val(); - console.log("Child Key: " + childKey); - - 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('
  1. ', '#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); - genPunchListItem('
    ', '#details-container' + childKey); - if ( childData.needByDate != null && childData.needByDate != undefined && childData.needByDate != '' ) { - genPunchListItem('
    ', '#details-col-three' + childKey); - genPunchListItem('
    ' + childData.needByDate + '
    ', '#neededBy' + childKey); - genPunchListItem('
    ', '#details-col-three' + childKey); - - if ( (new Date(childData.needByDate).getTime() - new Date().getTime()) <= 0 ) { - genPunchListItem('
    OVER DUE
    ', '#details-col-four' + childKey); - } else if ( ((new Date(childData.needByDate).getTime() - new Date().getTime()) / 1000) <= 259200 ) { - genPunchListItem('
    DUE SOON
    ', '#details-col-four' + childKey); - } else { - genPunchListItem('
     
    ', '#details-col-four' + childKey); - } - } - - if ( childData.tags != undefined ) { - var tags = childData.tags; - var i; - for (i=0; i' + tagData + ', ', '#details-col-five' + childKey); - } - } - genPunchListItem('
    ', '#div-portlet' + childKey) ; - if ( childData.startTime != undefined ) { - genPunchListItem('
    ' + new Date(childData.startTime) + '
    ', '#punch-list-backlog-details' + childKey); - } - if ( childData.notes != "" ) { - genPunchListItem('
    ', '#punch-list-backlog-details' + childKey); - } - genPunchListItem('', '#punch-list-backlog-details' + childKey); - -// genPunchListItem(list, '#sortable'); - } - }); - }); - -mkSortable(); -// genPunchListItem('
'; -// document.getElementById("punchListBacklog").innerHTML = list; - -} - -// 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 = ''; - -var x = setInterval(function() { - punchList = window.punches; - for ( i = 0; i < punchList.length; i++ ) { - if ( punchList[i].progress.toLowerCase() != "done" && punchList[i].startTime != undefined ) { - distance = (new Date().getTime() - new Date(punchList[i].startTime).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 (hours < 10) { - hours = ('0' + hours); - } - if (minutes < 10) { - minutes = ('0' + minutes); - } - if (seconds < 10) { - seconds = ('0' + seconds); - } - - document.getElementById("timer-" + punchList[i].uuid).innerHTML = days + "day(s), " + hours + ":" + minutes + ":" + seconds; - } - - if ( punchList[i].progress.toLowerCase() != "done" && punchList[i].nDate != "" ) { - var style = "punch-list"; - distance = -(new Date().getTime() - new Date(punchList[i].nDate).getTime()); - if ( (distance / 1000) <= 0 ) { style = "overdue" } - else if ( (distance / 1000) <= 259200 ) { style = "duesoon" } - 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); } - if (hours < 0) { hours = (-(hours) - 1); } - if (minutes < 0) { minutes = -(minutes); } - if (seconds < 0) { seconds = -(seconds); } - - if (hours < 10) { hours = ('0' + hours); } - if (minutes < 10) { minutes = ('0' + minutes); } - if (seconds < 10) { seconds = ('0' + seconds); } - - document.getElementById("countdown-" + punchList[i].uuid).innerHTML = days + "day(s), " + hours + ":" + minutes + ":" + seconds; - document.getElementById("countdown-" + punchList[i].uuid).classList.add(style); - } - } -}, 1000); - - -function mkSortable() { - punchList = window.punches; - - $( function() { - $( "#sortable" ).sortable({ - cancel: ".portlet-toggle", - placeholder: "portlet-placeholder ui-corner-all", - revert: true, - distance: 50, - start: function(event, ui) { - window.sortObjectUUID = punchList[ui.item.index()].uuid; - console.log(`Start Position: ${ui.item.index()}`); - }, - stop: function(event, ui) { - setPriority(window.sortObjectUUID, ui.item.index()); - console.log(`New Position: ${ui.item.index()}`); - } - }); - - $( ".portlet" ) - .addClass( "ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" ) - .find( ".backlog-list-header" ) - .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" ); - }); -} - -function setPriority(sortObject, newPosition) { - var punchList = window.punches; - item = findArrayId(sortObject); - - for (i = 0; i < punchList.length; i++) { - if (punchList[i].priority < 100 && punchList[i].priority >= newPosition && punchList[i].uuid != punchList[item].uuid) { - punchList[i].priority = i; - } - } - - punchList[item].priority = newPosition; - - jsonStr = JSON.stringify(punchList); - putJson(jsonStr); -} - -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 genDaily() { -getJson(); - - punchList = window.punches; - - var daily = [ "Check Workday", "Check Expenses", "Check Change Cases", "Check TD's", "Check at-mentions" ]; - console.log(`${daily[1]}`); - - for (x = 0; x < daily.length; x++) { - var newEventJson = { uuid: genUid(), nDate: "EOD", subject: daily[x], priority: "1", progress: "new", notes: "", tags: [ "work", "daily", "today" ] }; - punchList.push(newEventJson); - jsonStr = JSON.stringify(punchList); - putJson(jsonStr); - } -} - -function genWeekly() { -getJson(); - - punchList = window.punches; - - var weekly = [ "Update ORB Notes", "Prep Weekly Meeting", "Build out Broadcast Timer" ]; - - for (x = 0; x < weekly.length; x++) { - var newEventJson = { uuid: genUid(), nDate: "Tuesday", subject: weekly[x], priority: "1", progress: "new", notes: "", tags: [ "work", "weekly" ] }; - punchList.push(newEventJson); - jsonStr = JSON.stringify(punchList); - putJson(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 = punchList[id].subject; - var priority = punchList[id].priority; - var progress = punchList[id].progress; - var nDate = punchList[id].nDate; - var notes = punchList[id].notes; - var tags = punchList[id].tags; - - var html = '
'; - html += ''; - html += '
Subject:
'; - 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; - - punchList[id].subject = subjectField; - punchList[id].priority = priorityField; - punchList[id].progress = progressField; - punchList[id].nDate = nDateField; - //punchList[id].tags = tagsField; - punchList[id].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; -}); -*/