Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7cababc

Browse files
committed
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'
1 parent ba358e3 commit 7cababc

4 files changed

Lines changed: 34 additions & 4 deletions

File tree

IPython/frontend/html/notebook/static/css/style.min.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

IPython/frontend/html/notebook/static/js/savewidget.js

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ var IPython = (function (IPython) {
2626
SaveWidget.prototype.style = function () {
2727
this.element.find('span#save_widget').addClass('ui-widget');
2828
this.element.find('span#notebook_name').addClass('ui-widget');
29-
this.element.find('span#save_status').addClass('ui-widget')
29+
this.element.find('span#autosave_status').addClass('ui-widget')
30+
.css({border: 'none'});
31+
this.element.find('span#checkpoint_status').addClass('ui-widget')
3032
.css({border: 'none', 'margin-left': '20px'});
3133
};
3234

@@ -54,6 +56,13 @@ var IPython = (function (IPython) {
5456
$([IPython.events]).on('notebook_save_failed.Notebook', function () {
5557
that.set_save_status('Last Save Failed!');
5658
});
59+
$([IPython.events]).on('checkpoints_listed.Notebook', function (event, data) {
60+
that.set_last_checkpoint(data);
61+
});
62+
63+
$([IPython.events]).on('checkpoint_created.Notebook', function (event, data) {
64+
that.set_last_checkpoint(data);
65+
});
5766
};
5867

5968

@@ -121,13 +130,23 @@ var IPython = (function (IPython) {
121130

122131

123132
SaveWidget.prototype.set_save_status = function (msg) {
124-
this.element.find('span#save_status').html(msg);
133+
this.element.find('span#autosave_status').html(msg);
134+
}
135+
136+
SaveWidget.prototype.set_checkpoint_status = function (msg) {
137+
this.element.find('span#checkpoint_status').html(msg);
125138
}
126139

140+
SaveWidget.prototype.set_last_checkpoint = function (checkpoint) {
141+
var d = new Date(checkpoint.last_modified);
142+
this.set_checkpoint_status(
143+
"Last Checkpoint: " + d.format('mmm dd HH:MM')
144+
);
145+
}
127146

128147
SaveWidget.prototype.set_last_saved = function () {
129148
var d = new Date();
130-
this.set_save_status('Last saved: '+d.format('mmm dd HH:MM'));
149+
this.set_save_status('(autosaved: '+d.format('mmm dd HH:MM') + ')');
131150
};
132151

133152

IPython/frontend/html/notebook/static/less/notebook.less

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ span#save_widget {
2727
display:inline-block;
2828
}
2929

30+
span#checkpoint_status span#autosave_status {
31+
font-size: small;
32+
}
33+
34+
/*span#save_widget > span#autosave_status {
35+
font-size: x-small;
36+
}
37+
*/
3038
span#notebook_name {
3139
height: 1em;
3240
line-height: 1em;
@@ -498,3 +506,4 @@ input.raw_input {
498506
padding-top: 2px;
499507
height: 1em;
500508
}
509+

IPython/frontend/html/notebook/templates/notebook.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@
3838

3939
<span id="save_widget">
4040
<span id="notebook_name"></span>
41-
<span id="save_status"></span>
41+
<span id="checkpoint_status"></span>
42+
<span id="autosave_status"></span>
4243
</span>
4344

4445
{% endblock %}

0 commit comments

Comments
 (0)