diff --git a/IPython/frontend/html/notebook/static/js/notebook_main.js b/IPython/frontend/html/notebook/static/js/notebook_main.js index 760458c..d4e6ea6 100644 --- a/IPython/frontend/html/notebook/static/js/notebook_main.js +++ b/IPython/frontend/html/notebook/static/js/notebook_main.js @@ -32,6 +32,7 @@ $(document).ready(function () { IPython.pager = new IPython.Pager('div#pager', 'div#pager_splitter'); IPython.left_panel = new IPython.LeftPanel('div#left_panel', 'div#left_panel_splitter'); IPython.save_widget = new IPython.SaveWidget('span#save_widget'); + IPython.print_widget = new IPython.PrintWidget('span#print_widget'); IPython.notebook = new IPython.Notebook('div#notebook'); IPython.kernel_status_widget = new IPython.KernelStatusWidget('#kernel_status'); IPython.kernel_status_widget.status_idle(); diff --git a/IPython/frontend/html/notebook/static/js/printwidget.js b/IPython/frontend/html/notebook/static/js/printwidget.js new file mode 100644 index 0000000..d9d2baf --- /dev/null +++ b/IPython/frontend/html/notebook/static/js/printwidget.js @@ -0,0 +1,54 @@ +var IPython = (function (IPython) { + + var PrintWidget = function (selector) { + this.selector = selector; + if (this.selector !== undefined) { + this.element = $(selector); + this.style(); + this.bind_events(); + } + }; + + PrintWidget.prototype.style = function () { + this.element.find('button#print_notebook').button(); + }; + + PrintWidget.prototype.bind_events = function () { + var that = this; + this.element.find('button#print_notebook').click(function () { + that.print_notebook(); + }); + }; + + PrintWidget.prototype.enable = function () { + this.element.find('button#print_notebook').button('enable'); + }; + + PrintWidget.prototype.disable = function () { + this.element.find('button#print_notebook').button('disable'); + }; + + PrintWidget.prototype.print_notebook = function () { + var w = window.open('', '_blank', 'scrollbars=1,menubar=1'); + var html = '' + + $('head').clone().html() + + '' + + '' + + $('#notebook').clone().html() + + ''; + + w.document.open(); + w.document.write(html); + w.document.close(); + + return false; + }; + + IPython.PrintWidget = PrintWidget; + + return IPython; + +}(IPython)); \ No newline at end of file diff --git a/IPython/frontend/html/notebook/static/js/savewidget.js b/IPython/frontend/html/notebook/static/js/savewidget.js index 6650edd..7f54d87 100644 --- a/IPython/frontend/html/notebook/static/js/savewidget.js +++ b/IPython/frontend/html/notebook/static/js/savewidget.js @@ -90,20 +90,23 @@ var IPython = (function (IPython) { SaveWidget.prototype.status_save = function () { - this.element.find('span.ui-button-text').text('Save'); + this.element.find('button#save_notebook').button('option', 'label', 'Save'); this.element.find('button#save_notebook').button('enable'); - }; + IPython.print_widget.enable(); + }; SaveWidget.prototype.status_saving = function () { - this.element.find('span.ui-button-text').text('Saving'); + this.element.find('button#save_notebook').button('option', 'label', 'Saving'); this.element.find('button#save_notebook').button('disable'); - }; + IPython.print_widget.disable(); + }; SaveWidget.prototype.status_loading = function () { - this.element.find('span.ui-button-text').text('Loading'); + this.element.find('button#save_notebook').button('option', 'label', 'Loading'); this.element.find('button#save_notebook').button('disable'); + IPython.print_widget.disable(); }; diff --git a/IPython/frontend/html/notebook/templates/notebook.html b/IPython/frontend/html/notebook/templates/notebook.html index 0bca8ed..3c086d3 100644 --- a/IPython/frontend/html/notebook/templates/notebook.html +++ b/IPython/frontend/html/notebook/templates/notebook.html @@ -68,6 +68,10 @@ + + + + @@ -212,6 +216,7 @@ +