This is the code for the latest version. It keeps growing as I use it. I've eliminated a lot of need to use the Sheets App on my iphone because I think the sheets app kind of sucks.
Code.gs:
var yourEmailAddress='Your Email Address';//Dont forget to put your email address here
function onOpen()
{
SpreadsheetApp.getUi().createMenu('My Tools')
.addItem('Load AdminBar', 'loadAdminBar')
.addItem('Load SideBar', 'loadSideBar')
.addSubMenu(SpreadsheetApp.getUi().createMenu('Send Menu')
.addItem('Email Hotlist','sendHotList')
.addItem('Email Hold List', 'sendHoldList')
.addItem('Email Done List', 'sendDonelist')
.addItem('Email Complete List', 'sendCompleteList'))
.addToUi();
var sh=SpreadsheetApp.getActive().getSheetByName('Notes');
var rg=sh.getRange(sh.getLastRow()+5,1).activate();
loadAdminBar();
}
function getRDQ()
{
return 'Your have ' + MailApp.getRemainingDailyQuota() + ' emails left in your daily quota.';
}
function dispText(obj)
{
var ss=SpreadsheetApp.getActive();
var sht=ss.getSheetByName('Notes');
keepAMemo();
var msgsht=ss.getSheetByName('memo');
var ts=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "M/dd/yyyy HH:mm:ss");
var row=[];
row.push(ts);
row.push(obj.type);
row.push(obj.text);
row.push(Session.getActiveUser().getEmail());
sht.appendRow(row);
sht.getRange(sht.getLastRow(),3).setBackground(obj.color);
var clrmsg=msgsht.getRange('A1').getValue();
msgsht.getRange('A1').setValue('');//I decided to clear so it only gets sent once because most of the time I will be right there to grab it.
return clrmsg;
}
function loadAdminBar()
{
var userInterface=HtmlService.createHtmlOutputFromFile('adminbar').setTitle('Don\'t Forget Admin');
SpreadsheetApp.getUi().showSidebar(userInterface);
}
function loadSideBar()
{
var userInterface=HtmlService.createHtmlOutputFromFile('sidebar1').setTitle('Don\'t Forget Web App');//sidebar for html and formBar for form
SpreadsheetApp.getUi().showSidebar(userInterface);
}
function doGet()
{
var output=HtmlService.createHtmlOutputFromFile('sidebar1');
return output.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL).addMetaTag('viewport', 'width=360, initial-scale=1');
}
function getSelectOptions()
{
sortOptions();
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Options');
var rg=sh.getDataRange();
var vA=rg.getValues();
var options=[];
for(var i=0;i<vA.length;i++)
{
options.push(vA[i][0]);
}
return vA;
}
function addNewLabel(lbl)
{
var sh=SpreadsheetApp.getActive().getSheetByName('Options');
sh.appendRow([lbl]);
return getSelectOptions();
}
function delSelectedLabel(lbl)
{
var r=[];
if(lbl)
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Options');
var rg=sh.getDataRange();
var vA=rg.getValues();
var options=[];
for(var i=0;i<vA.length;i++)
{
if(vA[i][0]==lbl)
{
sh.deleteRow(i+1);
break;//delete 1 at a time due to row loss problem
}
}
r=getSelectOptions();
}
return r;
}
function sortOptions()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Options');
var rg=sh.getRange(2,1,sh.getLastRow()-1,1);
rg.sort({column:1,ascending:true});
}
function sendHotList()
{
sendList('#f4cccc');
}
function sendAllList()
{
sendList('#ffffff');
}
function sendHoldList()
{
sendList('#fff2cc');
}
function sendDoneList()
{
sendList('#d9ead3');
}
function getFuncs()
{
var br='<br />';
var funcs=[{desc:'Display HotList',id:'showHotList'},{desc:'Display Last Day',id:'getLastDay'},{desc:'Display Last Week',id:'dispLastSeven'},{desc:'Add New Label',id:'addNewLabel'},{desc:'Delete Label',id:'delSelectedLabel'},{desc:'Clear',id:'clear'},{desc:'Get RemainingDailyQuota',id:'getRDQ'},{desc:'Send HotList',id:'sendHotList'},{desc:'Send Last Day',id:'sendLastDay'},{desc:'Send Last Week',id:'sendLastSeven'}];
var hl='<strong>Available Functions</strong>';
//hl+=br + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM d, HHmm");
for(var i=0;i<funcs.length;i++)
{
hl+=br + '<label><input class="rad1" type="radio" name="cmdList" value="' + funcs[i].id + '" onClick="selectRadio(\'' + funcs[i].id + '\');" />' + funcs[i].desc + '</label>';
}
return hl;
}
function getHotList()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Notes');
var rg=sh.getDataRange();
var vA=rg.getValues();
var cA=rg.getBackgrounds();
var br='<br />';
var hl=br + 'Today:<strong>' + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM d, HHmm") + '</strong>';
for(var i=0;i<vA.length;i++)
{
if(cA[i][2]=='#f4cccc')
{
hl+=br + '<span class="type">' + vA[i][1] + ':</span>';
hl+=br + '<span class="date">' + Utilities.formatDate(new Date(vA[i][0]), Session.getScriptTimeZone(), "E MMM d, HHmm") + '</span>';
hl+='<input class="marknot" title="Remove from Hot List" name="marknot" type="checkbox" value="' + new Date(vA[i][0]).valueOf() + '" />';
hl+=br + '<span class="note">' + vA[i][2] + '</span><br/>';
}
}
hl+=br + '<input type="button" value="Mark SelectedAs NotHot" onClick="markAsNot();" style="width:250px;height:35px;text-align:center;margin:10px 0 10px 0;" />';
return hl;
}
function getSelectList()
{
var ss=SpreadsheetApp.getActive();
var vO=getSelectOptions();
var sl='';
var br='<br />';
for(var i=1;i<vO.length;i++)
{
sl+=br + '<label><input class="chk1" name="handsel" title="Display Message of This Type" type="checkbox" value="' + vO[i] + '" />' + vO[i] + '</label>';
}
return sl;
}
function sendList(color)
{
var color=(typeof(color)!='undefined')?color:'#f4cccc';//#f4cccc lightred #fff2cc lightyellow #d9ead3 lightgreen
var colorName={'#f4cccc':'hot','#fff2cc':'hold','#d9ead3':'done','#ffffff':'complete'}
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Notes');
var rg=sh.getDataRange();
var vA=rg.getValues();
var cA=rg.getBackgrounds();
var br='<br />';
var subject='Your ' + colorName[color] + ' list has arrived.';
var body=br + 'Hello Jim' + br + 'This is your ' + colorName[color] + ' list.';
var send=false;
var rdq=MailApp.getRemainingDailyQuota();
var dmsg= 'Today: ' + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM d, HHmm");
body+=br + dmsg;
var tmsg='You have ' + rdq + ' emails left in your daily quota.'
if(rdq>75)
{
for(var i=0;i<vA.length;i++)
{
if(cA[i][2]==color || color=='#ffffff')//if white send all
{
body+=br + br + '<span style="color:#ff0000;">' + vA[i][1] + '</span>' + br + vA[i][2];
send=true;
}
}
body+=br + br + 'Sincerely ' + br + 'The Computer';
if(send)
{
MailApp.sendEmail({to:yourEmailAddress,from:yourEmailAddress,subject: subject, htmlBody: body});
SpreadsheetApp.getActive().toast(tmsg, 'Emails Left');
}
}
}
function sendLastSeven()
{
sendLastDDays(7);
}
function sendLastDay()
{
sendLastDDays(1);
}
function sendLastDDays(D)
{
var D=(typeof(D)!='undefined')?D:1;
var br='<br />';
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Notes');
var rg=sh.getDataRange();
var vA=rg.getValues();
var aDay=1000*60*60*24;
var DDaysAgo=new Date().valueOf()-(D*aDay);
var subject='Your last ' + D + ' days list.';
var body='';
var send=false;
var rdq=MailApp.getRemainingDailyQuota();
var dmsg= 'Today:<strong>' + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM d, HHmm") + '</strong>';
var tmsg='You have ' + Number(rdq-1) + ' emails left in your daily quota.'
body+=br + dmsg + br + tmsg + br;
for(var i=1;i<vA.length;i++)
{
if(new Date(vA[i][0]).valueOf()>DDaysAgo && rdq>75)
{
body+=br + br + Utilities.formatDate(new Date(vA[i][0]), Session.getScriptTimeZone(), "E MMM d, HHmm");
body+=br + '<span style="color:#ff0000;">' + vA[i][1] + '</span>' + br + vA[i][2];
send=true;
}
}
if(send)
{
MailApp.sendEmail({to:yourEmailAddress,from:yourEmailAddress,subject: subject, htmlBody: body});
//var s=Utilities.formatString('<br />%s',body);
//var userInterface=HtmlService.createHtmlOutput(s).setWidth(400).setHeight(450);
//SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Last Seven Days')
}
}
function sendSelected(sA)//I decided not to send emails but to simply review on device.
{
var br='<br />';
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Notes');
var rg=sh.getDataRange();
var vA=rg.getValues();
var subject='Your selected list.';
var body='';
var send=false;
var dmsg= 'Today:<strong>' + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM d, HHmm") + '</strong>';
body+=br + dmsg;
for(var i=1;i<vA.length;i++)
{
if(sA.indexOf(vA[i][1])>-1)
{
body+=br + br + Utilities.formatDate(new Date(vA[i][0]), Session.getScriptTimeZone(), "E MMM d, HHmm");
body+=' <input type="checkbox" class="markdone" title="Mark As Done" name="markdone" value="' + new Date(vA[i][0]).valueOf() + '" />';
body+=br + '<span style="color:#ff0000;">' + vA[i][1] + '</span>' + br + vA[i][2];
send=true;
}
}
if(send)
{
//MailApp.sendEmail({to:yourEmailAddress,from:yourEmailAddress,subject: subject, htmlBody: body});
//var s=Utilities.formatString('<br />%s',body);
//var userInterface=HtmlService.createHtmlOutput(s).setWidth(400).setHeight(450);
//SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Selected');
body+=br + '<input type="button" value="Mark Selected As Done" onClick="markAsDone();" style="width:250px;height:35px;text-align:center;margin:10px 0 10px 0;" />';
return body;
}
else
{
return 'No Messages of that Type';
}
}
function markAsNot(dA)
{
var br='<br />';
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Notes');
var rg=sh.getDataRange();
var vA=rg.getValues();
for(var i=1;i<vA.length;i++)
{
for(var j=0;j<dA.length;j++)
{
if(new Date(vA[i][0]).valueOf()==dA[j])
{
sh.getRange(i+1,3).setBackground('#ffffff');
}
}
}
return true;
}
function markAsDone(dA)
{
var br='<br />';
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Notes');
var rg=sh.getDataRange();
var vA=rg.getValues();
for(var i=1;i<vA.length;i++)
{
for(var j=0;j<dA.length;j++)
{
if(new Date(vA[i][0]).valueOf()==dA[j])
{
sh.getRange(i+1,2).setValue(vA[i][1] + ':Done');
}
}
}
return true;
}
function setBackgroundColor(color)
{
var ss=SpreadsheetApp.getActive();
var as=ss.getActiveSheet();
if(as.getName()=='Notes')
{
var rg=sh.getActiveRange();
as.getRange(rg.getRow(),3).setBackground(color);
}
else
{
var msg='Current Sheet Name is "' + as.getName() + '" which is not equal to "Notes".';
ss.toast(msg, 'Wrong Sheet')
}
}
function markDone()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getActiveRange();
var row=rg.getRow();
if(sh.getName()=='Notes')
{
sh.getRange(row,2).setValue('Done');
sh.getRange(row,3).setBackground('#d9ead3');
}
else
{
var msg='Current Sheet Name is "' + as.getName() + '" which is not equal to "Notes".';
ss.toast(msg, 'Wrong Sheet')
}
}
function keepAMemo()
{
var ss=SpreadsheetApp.getActive();
var allshts=ss.getSheets();
var itshere=false;
for(var i=0;i<allshts.length;i++)
{
if(allshts[i].getName()=='memo')
{
itshere=true;
break;
}
}
if(!itshere)
{
ss.insertSheet('memo');
}
}
function testTimeDifff()
{
calcTimeDifference('08/08/2017 21:24:11','8/13/2017 14:57:02')
}
function calcTimeDifference(Start,End)
{
if(Start && End)
{
var second=1000;
var minute=60*second;
var hour=minute*60;
var day=hour*24;
var t1=new Date(Start).valueOf();
var t2=new Date(End).valueOf();
var d=t2-t1;
var days=Math.floor(d/day);
var hours=Math.floor(d%day/hour);
var minutes=Math.floor(d%day%hour/minute);
var seconds=Math.floor(d%day%hour%minute/second);
return 'dd:hh:mm:ss\n' + days + ':' + hours + ':' + minutes + ':' + seconds;
}
else
{
return 'Invalid Inputs';
}
}
function getStartDate()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Notes');
var cell=sh.getActiveCell();
var data=Utilities.formatDate(new Date(cell.getValue()), Session.getScriptTimeZone(), "M/dd/yyyy HH:mm:ss");
return data;
}
function getEndDate()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Notes');
var cell=sh.getActiveCell();
var data=Utilities.formatDate(new Date(cell.getValue()), Session.getScriptTimeZone(), "M/dd/yyyy HH:mm:ss");
return data;
}
function dispFromDDaysAgo(D)
{
var D=(typeof(D)!='undefined')?D:1;
var br='<br />';
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Notes');
var rg=sh.getDataRange();
var vA=rg.getValues();
var aDay=1000*60*60*24;
var DDaysAgo=new Date().valueOf()-(D*aDay);
var hl=br + 'Today:<strong>' + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM d, HHmm") + '</strong>';
for(var i=1;i<vA.length;i++)
{
if(new Date(vA[i][0]).valueOf()>DDaysAgo)
{
hl+=br + '<span class="type">' + vA[i][1] + ':</span><br /><span class="date">' + Utilities.formatDate(new Date(vA[i][0]), Session.getScriptTimeZone(), "E MMM d, HHmm") + '</span>' + br + '<span class="note">' + vA[i][2] + '</span><br />';
}
}
return hl;
}
sidebar1.html:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(function() {
$('#txt1').val('');
google.script.run
.withSuccessHandler(updateSelect)
.getSelectOptions();
});
function sendText()
{
var culr=$('input[name="priority"]:checked').val();
var type=$('#sel1').val();
var txt=$('#txt1').val();
var obj={'type':type,'text':txt,'color':culr};
$('#txt1').css('background-color','#ffff00');
google.script.run
.withSuccessHandler(clearText)
.dispText(obj);
}
function clearText(p)
{
$("#not").prop("checked", true)
$('#txt1').css('background-color','#ffffff');
$('#txt1').val(p);
}
function updateSelect(vA)
{
var select = document.getElementById("sel1");
select.options.length = 0;
for(var i=0;i<vA.length;i++)
{
select.options[i] = new Option(vA[i],vA[i]);
}
}
function getRDQ()
{
google.script.run
.withSuccessHandler(dispInHotBox)
.getRDQ();
}
function sendHotList()
{
google.script.run.sendHotList();
}
function showHotList()
{
google.script.run
.withSuccessHandler(dispInHotBox)
.getHotList();
}
function getFuncs()
{
google.script.run
.withSuccessHandler(dispInHotBox)
.getFuncs();
}
function showSelections()
{
google.script.run
.withSuccessHandler(dispInHotBox)
.getSelectList();
}
function dispLastSeven()
{
google.script.run
.withSuccessHandler(dispInHotBox)
.dispFromDDaysAgo(7);
}
function getLastDay()
{
google.script.run
.withSuccessHandler(dispInHotBox)
.dispFromDDaysAgo(1);
}
function dispInHotBox(hl)
{
document.getElementById('hotbox').innerHTML=hl;
}
function clearHotBox()
{
document.getElementById('hotbox').style.backgroundColor='#ffffff';
document.getElementById('hotbox').innerHTML='';
}
function markAsNot()
{
var dA=new Array();
$('#hotbox').css('background-color','#ffff00');
$.each($("input[name='marknot']:checked"), function() {
dA.push($(this).val());});
google.script.run
.withSuccessHandler(clearHotBox)
.markAsNot(dA);
}
function markAsDone()
{
var dA=new Array();
$('#hotbox').css('background-color','#ffff00');
$.each($("input[name='markdone']:checked"), function() {
dA.push($(this).val());});
google.script.run
.withSuccessHandler(clearHotBox)
.markAsDone(dA);
}
function sendSelected()
{
var sA = new Array();
$('#hotbox').css('background-color','#ffff00');
$.each($("input[name='handsel']:checked"), function() {
sA.push($(this).val());});
google.script.run
.withSuccessHandler(updateSelected)
.sendSelected(sA);
}
function sendLastSeven()
{
google.script.run.sendLastSeven();
}
function sendLastDay()
{
google.script.run.sendLastDay();
}
function addNewLabel()
{
var lbl=$('#txt2').val();
$('#txt2').css('background-color','#ffff00');
google.script.run
.withSuccessHandler(upDateLabel)
.addNewLabel(lbl);
}
function delSelectedLabel()
{
var lbl=$('#sel1').val();
$('#txt2').css('background-color','#ffff00');
google.script.run
.withSuccessHandler(upDateLabel)
.delSelectedLabel(lbl);
}
function upDateLabel(vA)
{
$('#txt2').css('background-color','#ffffff');
if(vA)
{
updateSelect(vA);
}
$('#txt2').val('');
}
function updateSelected(sl)
{
$('#hotbox').css('background-color','#ffffff');
//$('#hotbox').css('display','none');
document.getElementById('hotbox').innerHTML=sl;
}
function selectRadio(id)
{
$('#btn3').unbind('click');
$('#btn3').val('Select Function');
$('#btn3').prop('disabled',true);
switch(id)
{
case 'showHotList':
document.getElementById('hotbox').innerHTML='';
$('#btn3').click(showHotList);
$('#btn3').val('Display Hotlist');
$('#btn3').removeAttr('disabled')
break;
case 'sendHotList':
document.getElementById('hotbox').innerHTML='';
$('#btn3').click(sendHotList);
$('#btn3').val('Send Hotlist');
$('#btn3').removeAttr('disabled');
break;
case 'sendLastSeven':
document.getElementById('hotbox').innerHTML='';
$('#btn3').click(sendLastSeven);
$('#btn3').val('Send Last 7');
$('#btn3').removeAttr('disabled');
break;
case 'dispLastSeven':
document.getElementById('hotbox').innerHTML='';
$('#btn3').click(dispLastSeven);
$('#btn3').val('Display Last 7');
$('#btn3').removeAttr('disabled');
break;
case 'sendLastDay':
document.getElementById('hotbox').innerHTML='';
$('#btn3').click(sendLastDay);
$('#btn3').val('Send 1 Day');
$('#btn3').removeAttr('disabled');
break;
case 'getLastDay':
document.getElementById('hotbox').innerHTML='';
$('#btn3').click(getLastDay);
$('#btn3').val('Display 1 Day');
$('#btn3').removeAttr('disabled');
break;
case 'addNewLabel':
document.getElementById('hotbox').innerHTML='';
$('#btn3').click(addNewLabel);
$('#btn3').val('Add Label');
$('#btn3').removeAttr('disabled');
break;
case 'delSelectedLabel':
document.getElementById('hotbox').innerHTML='';
$('#btn3').click(delSelectedLabel);
$('#btn3').val('Delete Label');
$('#btn3').removeAttr('disabled');
break;
case 'getRDQ':
document.getElementById('hotbox').innerHTML='';
$('#btn3').click(getRDQ);
$('#btn3').val('RDQ');
$('#btn3').removeAttr('disabled');
break;
default:
document.getElementById('hotbox').innerHTML='';
break;
}
}
console.log("My code");
</script>
<style>
div.scroll{background-color: #ffffff;width: 250px;height:100%;display:block;margin:0 0 0 5px;padding:0 0 0 10px;}
#sel1 option{width:250px;}
.type{color:#ff0000;font-weight:500;}
.date{color:#080b58;font-weight:500;}
.note{font-weight:500;}
.rad1{transform: scale(2);margin:10px 10px 10px 10px;vertical-align:-25%;}
.marknot,.markdone,.chk1{transform: scale(2);margin:10px 10px 10px 10px;vertical-align:-25%;}
body{margin:5px 5px 5px 10px;width:275px;}
</style>
</head>
<body>
<textarea id="txt1" rows="4" cols="35" style="width:250px;height:100px;"></textarea>
<select id="sel1" style="width:125px;height:35px;margin:10px 0 10px 0;">
<option value="" selected></option>
</select>
<label><input id="hot" type="radio" name="priority" value="#f4cccc" style="width:35px;height:35px;margin:10px 1px;vertical-align:-90%;" />Hot</label><label>
<input id="not" type="radio" name="priority" value="#ffffff" style="width:35px;height:35px;margin:5px 1px;vertical-align:-90%;" checked>Not</label>
<br />
<input id="btn0" type="button" value="submit" onClick="sendText();" style="width:125px;height:35px;text-align:center;margin:10px 0 10px 0;vertical-align:top;" />
<input id="txt2" type="text" placeholder="Enter Label" style="width:125px;height:30px;margin:10px 0 10px 0;vertical-align:top;" />
<br />
<input id="btn2" type="button" value="Functions" onClick="getFuncs();" style="width:125px;height:35px;text-align:center;margin:10px 0 10px 0;" />
<input id="btn3" type="button" value="Select Function" style="width:125px;height:35px;text-align:center;margin:10px 0 10px 0;" disabled="true" />
<br /><input id="btn5" type="button" value="Selections" onClick="showSelections();" style="width:125px;height:35px;text-align:center;margin:10px 0 10px 0;" />
<input id="btn4" type="button" value="View Selected" onClick="sendSelected();" style="width:125px;height:35px;text-align:center;margin:10px 0 10px 0;" />
<br /><div id="hotbox" class="scroll"></div>
</body>
</html>
adminbar.html:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(function() {
});
function setBackground(color)
{
google.script.run.setBackgroundColor(color);
}
function markDone()
{
google.script.run.markDone();
}
function sendHotList()
{
google.script.run.sendHotList();
}
function showHotList()
{
if($('#hotbox').css('display') == 'none')
{
$('#hotbox').css('display','block')
google.script.run
.withSuccessHandler(displayHotList)
.getHotList();
}
else if($('#hotbox').css('display') == 'block')
{
$('#hotbox').css('display','none');
}
}
function displayHotList(hl)
{
document.getElementById('hotbox').innerHTML= '<h1>Hot List</h1>' + hl;
}
function sendLastSeven()
{
google.script.run.sendLastWeek();
}
function getStartDate()
{
google.script.run
.withSuccessHandler(loadStartDate)
.getStartDate();
}
function loadStartDate(data)
{
$('#Start').val(data);
}
function getEndDate()
{
google.script.run
.withSuccessHandler(loadEndDate)
.getEndDate();
}
function loadEndDate(data)
{
$('#End').val(data);
}
function getDifference()
{
var Start=$('#Start').val();
var End=$('#End').val();
$('#Diff').css('background-color','#ffff00');
google.script.run
.withSuccessHandler(loadDifference)
.calcTimeDifference(Start,End);
}
function loadDifference(data)
{
var A=data.split('\n')
var diff=A[1];
$('#Diff').val(diff);
$('#Diff').css('background-color','#ffffff');
}
function sendTimeStamp()
{
var culr='#ffffff';
var type='TimeStamp';
var txt='TimeStamp';
var obj={'type':type,'text':txt,'color':culr};
google.script.run.dispText(obj);
}
console.log("My code");
</script>
<style>
div.scroll{background-color: #ffffff;width: 260px;height: 250px;overflow-y:scroll;display:none;margin:0 0 0 5px;}
.type{color:#ff0000;font-weight:bold;}
.note{font-weight:500;}
body{border:1px solid #000;padding:5px;width:300px;background-color:#ffffff}
#clrset,#lstcntl,#timediff{border:1px solid #000;padding:5px;}
</style>
</head>
<body>
<div id="clrset">
<strong>Color Controls</strong>
<br /><input id="btn1" type="button" value="Hot" onClick="setBackground('#f4cccc')"/>
<input id="btn2" type="button" value="Hold" onClick="setBackground('#fff2cc')"/>
<input id="btn3" type="button" value="Done" onClick="markDone()" />
<input id="btn4" type="button" value="Clear" onClick="setBackground('#ffffff')"/>
</div>
<div id="lstcntl">
<strong>List Controls</strong>
<br /><input id="btn8" type="button" value="View HotList" onClick="showHotList();" style="margin:5px 0;" />
<input id="btn5" type="button" value="Email HotList" onClick="sendHotList();" style="margin:5px 0;" />
<input id="btn6" type="button" value="Email Last 7" onClick="sendLastSeven();" style="margin:5px 0;" />
</div>
<div id="timediff">
<strong>Time Difference</strong>
<br /><input type="button" id="btn7" value="StartDate" onClick="getStartDate();" style="margin:5px 0;" />
<input type="text" id="Start" placeholder="Start Date" size="15" />
<br /><input type="button" id="btn8" value="EndDate" onClick="getEndDate();" style="margin:5px 0;" />
<input type="text" id="End" placeholder="End Date" size="15" />
<br /><input type="button" id="btn9" value="Difference" onClick="getDifference();" style="margin:5px 0;" />
<input type="text" id="Diff" size="15" placeholder="dd:hh:mm:ss" />
<br /><input type="button" id="btn7" value="TimeStamp" onClick="sendTimeStamp()" />
</div>
<br /><div id="hotbox" class="scroll"></div>
</body>
</html>