Fixed UI surrounding day separators.
* Reworked separator display. Now it is handled by the `EntryListView.renderOne` function instead of `EntryListView.render`. This way the proper separator is inserted even if we are only adding one new entry (like when creating a new entry) and not only when we refresh the list. * Added a periodic refresh function that is triggered every minute. It refreshes the current entry so the duration is current, and refreshes te main list when a new day begins.
This commit is contained in:
parent
f4eeb91d1a
commit
c42a3805c2
67
www/js/ts.js
67
www/js/ts.js
@ -91,14 +91,6 @@ $(document).ready(function(){
|
|||||||
|
|
||||||
_.bindAll(this, "url", "create"); },
|
_.bindAll(this, "url", "create"); },
|
||||||
|
|
||||||
/*create: function(model, options) {
|
|
||||||
if (!(model instanceof Backbone.Model)) {
|
|
||||||
model.user_id = this.timelineModel.get('user_id');
|
|
||||||
model.timeline_id = this.timelineModel.get('timeline_id'); }
|
|
||||||
else {
|
|
||||||
model.set('user_id') = this.timelineModel.get('user_id')
|
|
||||||
},*/
|
|
||||||
|
|
||||||
url: function() {
|
url: function() {
|
||||||
return "/ts_api/entries/" + this.timelineModel.get('user_id') + "/"
|
return "/ts_api/entries/" + this.timelineModel.get('user_id') + "/"
|
||||||
+ this.timelineModel.get('id'); } });
|
+ this.timelineModel.get('id'); } });
|
||||||
@ -338,6 +330,14 @@ $(document).ready(function(){
|
|||||||
// add it to the container after the topmost separator ("Today")
|
// add it to the container after the topmost separator ("Today")
|
||||||
this.topSeparator.after(el);
|
this.topSeparator.after(el);
|
||||||
|
|
||||||
|
// If this entry and the next entry are not on the same day, put a
|
||||||
|
// day separator between them.
|
||||||
|
var nextDay = nextEntry ? nextEntry.get("timestamp") : new Date();
|
||||||
|
if (entry.get("timestamp").getDate() != nextDay.getDate()) {
|
||||||
|
this.topSeparator.after(ich.daySeparatorTemplate(
|
||||||
|
{separatorLabel: this.formatDaySeparator(
|
||||||
|
TS.app.currentDay, entry.get("timestamp")) })); }
|
||||||
|
|
||||||
// hide it if excluded
|
// hide it if excluded
|
||||||
if (excluded) {
|
if (excluded) {
|
||||||
$(el).fadeOut('slow');
|
$(el).fadeOut('slow');
|
||||||
@ -379,14 +379,10 @@ $(document).ready(function(){
|
|||||||
// clear existing elements in the view container
|
// clear existing elements in the view container
|
||||||
this.entryContainer.empty();
|
this.entryContainer.empty();
|
||||||
|
|
||||||
// last day we have printed a separator for
|
// add the top-most day separator; should always be "Today"
|
||||||
var today = new Date()
|
|
||||||
var currentDay = this.collection.at(0) ?
|
|
||||||
this.collection.at(0).get("timestamp"): today;
|
|
||||||
|
|
||||||
// add the top-most day separator
|
|
||||||
this.topSeparator = ich.daySeparatorTemplate({
|
this.topSeparator = ich.daySeparatorTemplate({
|
||||||
separatorLabel: this.formatDaySeparator(today, today) });
|
separatorLabel: this.formatDaySeparator(
|
||||||
|
TS.app.currentDay, new Date()) });
|
||||||
this.entryContainer.prepend(this.topSeparator);
|
this.entryContainer.prepend(this.topSeparator);
|
||||||
|
|
||||||
// iterate through the collection and render the elements.
|
// iterate through the collection and render the elements.
|
||||||
@ -394,13 +390,6 @@ $(document).ready(function(){
|
|||||||
var entry = this.collection.at(i);
|
var entry = this.collection.at(i);
|
||||||
var nextEntry = (i + 1 < len ? this.collection.at(i + 1) : null);
|
var nextEntry = (i + 1 < len ? this.collection.at(i + 1) : null);
|
||||||
|
|
||||||
// we are rendering buttom up, which means we need to insert the
|
|
||||||
// day separator before the first entry of the *next* period
|
|
||||||
if (currentDay.getDate() != entry.get("timestamp").getDate()) {
|
|
||||||
this.topSeparator.after(ich.daySeparatorTemplate(
|
|
||||||
{separatorLabel: this.formatDaySeparator(today, currentDay)}));
|
|
||||||
currentDay = entry.get('timestamp'); }
|
|
||||||
|
|
||||||
this.renderOne(entry, nextEntry); } },
|
this.renderOne(entry, nextEntry); } },
|
||||||
|
|
||||||
formatDaySeparator: function(today, labelDay) {
|
formatDaySeparator: function(today, labelDay) {
|
||||||
@ -415,27 +404,27 @@ $(document).ready(function(){
|
|||||||
var monthDiff = today.getMonth() - labelDay.getMonth();
|
var monthDiff = today.getMonth() - labelDay.getMonth();
|
||||||
var dayDiff = today.getDate() - labelDay.getDate();
|
var dayDiff = today.getDate() - labelDay.getDate();
|
||||||
|
|
||||||
// more than a calendar year old
|
// more than a calendar year old: Weekday, Month Date, Year
|
||||||
if (yearDiff > 0) {
|
if (yearDiff > 0) {
|
||||||
|
|
||||||
return days[labelDay.getDay()] + ", " +
|
return days[labelDay.getDay()] + ", " +
|
||||||
months[labelDay.getMonth()] + " " + labelDay.getDate() +
|
months[labelDay.getMonth()] + " " + labelDay.getDate() +
|
||||||
", " + labelDay.getFullYear(); }
|
", " + labelDay.getFullYear(); }
|
||||||
|
|
||||||
// same calendar year, more than a week ago
|
// same calendar year, more than a week ago: Weekday, Month Date
|
||||||
else if (monthDiff > 0 || dayDiff > 7) {
|
else if (monthDiff > 0 || dayDiff > 7) {
|
||||||
|
|
||||||
return days[labelDay.getDay()] + ", " +
|
return days[labelDay.getDay()] + ", " +
|
||||||
months[labelDay.getMonth()] + " " + labelDay.getDate(); }
|
months[labelDay.getMonth()] + " " + labelDay.getDate(); }
|
||||||
|
|
||||||
// less than a week ago, more than yesterday
|
// less than a week ago, more than yesterday, Last Weekday
|
||||||
else if (dayDiff > 1) {
|
else if (dayDiff > 1) {
|
||||||
return "Last " + days[labelDay.getDay()]; }
|
return "Last " + days[labelDay.getDay()]; }
|
||||||
|
|
||||||
// yesterday
|
// Yesterday
|
||||||
else if (dayDiff == 1) { return "Yesterday"; }
|
else if (dayDiff == 1) { return "Yesterday"; }
|
||||||
|
|
||||||
// today
|
// Today
|
||||||
else if (dayDiff == 0) { return "Today"; } } });
|
else if (dayDiff == 0) { return "Today"; } } });
|
||||||
|
|
||||||
TS.TimelineListView = Backbone.View.extend({
|
TS.TimelineListView = Backbone.View.extend({
|
||||||
@ -536,9 +525,10 @@ $(document).ready(function(){
|
|||||||
initialize: function() {
|
initialize: function() {
|
||||||
|
|
||||||
_.bindAll(this, 'initializeViews', 'loadInitialData',
|
_.bindAll(this, 'initializeViews', 'loadInitialData',
|
||||||
'selectTimeline');
|
'periodicRefresh', 'selectTimeline');
|
||||||
|
|
||||||
appThis = this;
|
TS.app = this;
|
||||||
|
TS.app.currentDay = new Date();
|
||||||
|
|
||||||
// create the login dialog
|
// create the login dialog
|
||||||
this.loginDialog = new TS.LoginView
|
this.loginDialog = new TS.LoginView
|
||||||
@ -548,12 +538,13 @@ $(document).ready(function(){
|
|||||||
else {
|
else {
|
||||||
// this is async (waiting for user input)
|
// this is async (waiting for user input)
|
||||||
this.loginDialog.authenticate(function() {
|
this.loginDialog.authenticate(function() {
|
||||||
appThis.initializeData(appThis.loadInitialData())}); } },
|
TS.app.initializeData(TS.app.loadInitialData())}); }
|
||||||
|
|
||||||
|
// Schedule our update function.
|
||||||
|
setInterval(this.periodicRefresh, 60000); },
|
||||||
|
|
||||||
initializeData: function(data) {
|
initializeData: function(data) {
|
||||||
|
|
||||||
TS.app = this;
|
|
||||||
|
|
||||||
// create user data
|
// create user data
|
||||||
this.user = {};
|
this.user = {};
|
||||||
this.user.model = new TS.UserModel(data.user);
|
this.user.model = new TS.UserModel(data.user);
|
||||||
@ -610,6 +601,18 @@ $(document).ready(function(){
|
|||||||
|
|
||||||
return data; },
|
return data; },
|
||||||
|
|
||||||
|
periodicRefresh: function() {
|
||||||
|
|
||||||
|
var now = new Date();
|
||||||
|
|
||||||
|
if (this.currentDay.getDate() != now.getDate()) {
|
||||||
|
// It's a new day! Rerender our whole list.
|
||||||
|
this.entries.render(); }
|
||||||
|
else {
|
||||||
|
// Refresh our latest entry view so the duration is up to date.
|
||||||
|
var models = this.entries.collection.models;
|
||||||
|
models[models.length - 1].view.render(); } },
|
||||||
|
|
||||||
selectTimeline: function(e) {
|
selectTimeline: function(e) {
|
||||||
if (e) {
|
if (e) {
|
||||||
// get the timeline model
|
// get the timeline model
|
||||||
|
@ -1,247 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>TimeStamper - Simple Time Tracking</title>
|
|
||||||
<link href='http://fonts.googleapis.com/css?family=Arvo|Bentham|Cuprum|Cantarell|Geo|Josefin+Sans' rel='stylesheet' type='text/css'>
|
|
||||||
<link rel="stylesheet" media="screen" href="css/ts-screen.css" type="text/css"/>
|
|
||||||
<script type="text/javascript" src="js/jquery-1.5.js"></script>
|
|
||||||
|
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div id="top">
|
|
||||||
<div id="timeline">
|
|
||||||
<span class="timeline-desc">Work-related activities.</span>
|
|
||||||
<input class="timeline-desc-input" type="text"/>
|
|
||||||
<div class="drop-menu">
|
|
||||||
<div class="timeline-id">( work )</div>
|
|
||||||
<input class="timeline-id-input" type="text"/>
|
|
||||||
<ul class="drop-menu-items">
|
|
||||||
<li class="timeline-link"><a href="#">jdb-labs</a></li>
|
|
||||||
<li class="timeline-link"><a href="#">personal</a></li>
|
|
||||||
<li class="timeline-link"><a href="#">vbs-suite</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="user">
|
|
||||||
<div class="fullname">Jonathan Bernard</div>
|
|
||||||
<input class='fullname-input' type='text'/>
|
|
||||||
<div class='drop-menu'>
|
|
||||||
<div class="username"> - jdbernard</div>
|
|
||||||
<ul class="drop-menu-items">
|
|
||||||
<li><a href="#">logout</a></li>
|
|
||||||
<li><a href="#">user info</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="entry-list">
|
|
||||||
<div class="day-seperator">
|
|
||||||
<h4 class='mark'>Today</h4>
|
|
||||||
<h5 class='timestamp'>start</h5>
|
|
||||||
<h5 class='duration'>duration</h5>
|
|
||||||
</div>
|
|
||||||
<div id="new-entry">
|
|
||||||
<input id="new-entry-input" class="mark-input"
|
|
||||||
placeholder="Start a new task..." type="text" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="entries">
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp: Entering tickets.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">12:32</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">4<span class="tick-tock">hr </span>3<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp: Helping Steve wth WR Updates.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">9:56</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">1<span class="tick-tock">hr </span>15<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>Email</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">9:10</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">47<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="day-seperator">
|
|
||||||
<h4 class='mark'>Yesterday</h4>
|
|
||||||
<h5 class='timestamp'>start</h5>
|
|
||||||
<h5 class='duration'>duration</h5>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp: Working #7801.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">3:12 pm</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">12<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>Lunch.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">11:47 am</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">3<span class="tick-tock">hr </span>25<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp: Entering tickets.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">9:20 am</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">2<span class="tick-tock">hr </span>27<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp: Reproducing #7796.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">9:11 am</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">9<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="day-seperator">
|
|
||||||
<h4 class='mark'>Monday</h4>
|
|
||||||
<h5 class='timestamp'>start</h5>
|
|
||||||
<h5 class='duration'>duration</h5>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp: Working #7733.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">16:41</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">1<span class="tick-tock">hr </span>8<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>Zend Training: Building Security Into Your PHP Applications</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">10:30</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">4<span class="tick-tock">hr </span>11<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">8:40</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">1<span class="tick-tock">hr </span>50<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="day-seperator">
|
|
||||||
<h4 class='mark'>Friday, April 29th</h4>
|
|
||||||
<h5 class='timestamp'>start</h5>
|
|
||||||
<h5 class='duration'>duration</h5>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>Training Steve: Databases and SQL</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">16:09</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">55<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>Preparing Instructional Material: Database Basics</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">15:12</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">57<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp: Working #7729.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">15:09</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">3<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">14:44</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">25<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp: Working #7728.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">14:41</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">3<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">14:00</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">41<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>Lunch.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">13:05</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">55<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp: Working #7725.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">12:40</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">20<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>Zend Training: Building Security Into You PHP Applications.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">10:30</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">2<span class="tick-tock">hr </span>10<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>Zend Training: Preparing for security training.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">09:25</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">1<span class="tick-tock">hr </span>5<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
<div class="entry">
|
|
||||||
<div class="mark"><img src="img/round_delete_icon&16.png" class="delete-icon"/><span>ITHelp: Working #7700.</span><img src="img/notepad_2_icon&16.png" class="notes-icon"/></div>
|
|
||||||
<input class="mark-input" type="text"/>
|
|
||||||
<div class="timestamp">09:17</div>
|
|
||||||
<input class="timestamp-input" type="text"/>
|
|
||||||
<div class="duration">8<span class="tick-tock">m </span></div>
|
|
||||||
<div class="notes">Some notes should go here, but they should be hidden by default</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="footer">
|
|
||||||
Copyright 2011 <a href="http://www.jdb-labs.com"><span class="logo">JDB Labs</span> LLC.</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,38 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Testing Backbone.js</title>
|
|
||||||
<link rel="stylesheet" media="screen" href="/css/dot-luv/jquery-ui-1.8.10.custom.css" type="text/css"/>
|
|
||||||
<script type="text/javascript" src="/js/jquery-1.5.min.js"></script>
|
|
||||||
<script type="text/javascript" src="/js/jquery-ui-1.8.10.custom.min.js"></script>
|
|
||||||
<script type="text/javascript" src="/js/underscore-min.js"></script>
|
|
||||||
<script type="text/javascript" src="/js/ICanHaz.js"></script>
|
|
||||||
<script type="text/javascript" src="/js/backbone-min.js"></script>
|
|
||||||
<script type="text/javascript" src="/js/test.js"></script>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div id="user">
|
|
||||||
<div class="username">username</div>
|
|
||||||
<div class="fullname">fullname</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="entry-list"></div>
|
|
||||||
|
|
||||||
<div id="login-dialog" title="Login">
|
|
||||||
<form>
|
|
||||||
<fieldset>
|
|
||||||
<label for="login-name">Username:</label>
|
|
||||||
<input type="text" name="login-name" id="login-name"
|
|
||||||
class="text ui-widget-content ui-corner-all"></input>
|
|
||||||
<label for="login-password">Password:</label>
|
|
||||||
<input type="password" name="login-password" id="login-password"
|
|
||||||
class="text ui-widget-content ui-corner-all"></input>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
<p class="validate-tips"></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
Loading…
x
Reference in New Issue
Block a user