add checkpoint status to notebook header

autosave is also there, but once the dirty flag is an event,
this should stop having the date, and just become 'autosaved / unsaved changes'
pull/37/head
MinRK 13 years ago
parent 030c547e58
commit a3c99d94bb

@ -26,7 +26,9 @@ var IPython = (function (IPython) {
SaveWidget.prototype.style = function () {
this.element.find('span#save_widget').addClass('ui-widget');
this.element.find('span#notebook_name').addClass('ui-widget');
this.element.find('span#save_status').addClass('ui-widget')
this.element.find('span#autosave_status').addClass('ui-widget')
.css({border: 'none'});
this.element.find('span#checkpoint_status').addClass('ui-widget')
.css({border: 'none', 'margin-left': '20px'});
};
@ -54,6 +56,13 @@ var IPython = (function (IPython) {
$([IPython.events]).on('notebook_save_failed.Notebook', function () {
that.set_save_status('Last Save Failed!');
});
$([IPython.events]).on('checkpoints_listed.Notebook', function (event, data) {
that.set_last_checkpoint(data);
});
$([IPython.events]).on('checkpoint_created.Notebook', function (event, data) {
that.set_last_checkpoint(data);
});
};
@ -121,13 +130,23 @@ var IPython = (function (IPython) {
SaveWidget.prototype.set_save_status = function (msg) {
this.element.find('span#save_status').html(msg);
this.element.find('span#autosave_status').html(msg);
}
SaveWidget.prototype.set_checkpoint_status = function (msg) {
this.element.find('span#checkpoint_status').html(msg);
}
SaveWidget.prototype.set_last_checkpoint = function (checkpoint) {
var d = new Date(checkpoint.last_modified);
this.set_checkpoint_status(
"Last Checkpoint: " + d.format('mmm dd HH:MM')
);
}
SaveWidget.prototype.set_last_saved = function () {
var d = new Date();
this.set_save_status('Last saved: '+d.format('mmm dd HH:MM'));
this.set_save_status('(autosaved: '+d.format('mmm dd HH:MM') + ')');
};

@ -27,6 +27,14 @@ span#save_widget {
display:inline-block;
}
span#checkpoint_status span#autosave_status {
font-size: small;
}
/*span#save_widget > span#autosave_status {
font-size: x-small;
}
*/
span#notebook_name {
height: 1em;
line-height: 1em;
@ -498,3 +506,4 @@ input.raw_input {
padding-top: 2px;
height: 1em;
}

@ -38,7 +38,8 @@ class="notebook_app"
<span id="save_widget">
<span id="notebook_name"></span>
<span id="save_status"></span>
<span id="checkpoint_status"></span>
<span id="autosave_status"></span>
</span>
{% endblock %}

Loading…
Cancel
Save