From 20c70fc4c720cdd078fc9c31cfd97f56f12ea862 2013-06-17 19:57:46 From: Brian E. Granger Date: 2013-06-17 19:57:46 Subject: [PATCH] Merge pull request #3393 from minrk/bootstrap [WIP] bootstrapify --- diff --git a/IPython/frontend/html/notebook/static/auth/js/loginmain.js b/IPython/frontend/html/notebook/static/auth/js/loginmain.js index 9718fb5..4b6c536 100644 --- a/IPython/frontend/html/notebook/static/auth/js/loginmain.js +++ b/IPython/frontend/html/notebook/static/auth/js/loginmain.js @@ -13,8 +13,7 @@ $(document).ready(function () { IPython.page = new IPython.Page(); - $('input#login_submit').button(); - $('#ipython-main-app').addClass('border-box-sizing ui-widget'); + $('button#login_submit').addClass("btn"); IPython.page.show(); $('input#password_input').focus(); diff --git a/IPython/frontend/html/notebook/static/auth/js/loginwidget.js b/IPython/frontend/html/notebook/static/auth/js/loginwidget.js index 96fc030..1998aca 100644 --- a/IPython/frontend/html/notebook/static/auth/js/loginwidget.js +++ b/IPython/frontend/html/notebook/static/auth/js/loginwidget.js @@ -23,8 +23,7 @@ var IPython = (function (IPython) { }; LoginWidget.prototype.style = function () { - this.element.find('button#logout').button(); - this.element.find('button#login').button(); + this.element.find("button").addClass("btn btn-small"); }; diff --git a/IPython/frontend/html/notebook/static/auth/js/logoutmain.js b/IPython/frontend/html/notebook/static/auth/js/logoutmain.js index 16331d4..df107c6 100644 --- a/IPython/frontend/html/notebook/static/auth/js/logoutmain.js +++ b/IPython/frontend/html/notebook/static/auth/js/logoutmain.js @@ -13,7 +13,7 @@ $(document).ready(function () { IPython.page = new IPython.Page(); - $('#ipython-main-app').addClass('border-box-sizing ui-widget'); + $('#ipython-main-app').addClass('border-box-sizing'); IPython.page.show(); }); diff --git a/IPython/frontend/html/notebook/static/auth/less/login.less b/IPython/frontend/html/notebook/static/auth/less/login.less index 0c8c311..d21a3a1 100644 --- a/IPython/frontend/html/notebook/static/auth/less/login.less +++ b/IPython/frontend/html/notebook/static/auth/less/login.less @@ -1 +1,6 @@ -// Custom styles for login.html \ No newline at end of file +// Custom styles for login.html +.center-nav { + display: inline-block; + // pull the lower margin back + margin-bottom: -4px; +} \ No newline at end of file diff --git a/IPython/frontend/html/notebook/static/base/js/dialog.js b/IPython/frontend/html/notebook/static/base/js/dialog.js new file mode 100644 index 0000000..92d2e3c --- /dev/null +++ b/IPython/frontend/html/notebook/static/base/js/dialog.js @@ -0,0 +1,75 @@ +//---------------------------------------------------------------------------- +// Copyright (C) 2013 The IPython Development Team +// +// Distributed under the terms of the BSD License. The full license is in +// the file COPYING, distributed as part of this software. +//---------------------------------------------------------------------------- + +//============================================================================ +// Utility for modal dialogs with bootstrap +//============================================================================ + +IPython.namespace('IPython.dialog'); + +IPython.dialog = (function (IPython) { + + var modal = function (options) { + var dialog = $("
").addClass("modal").attr("role", "dialog"); + dialog.append( + $("
") + .addClass("modal-header") + .append($("
"+(g[0]>0&&N==g[1]-1?'
':""):""),M+=Q}K+=M}K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'':""),a._keyEvent=!1;return K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='
',m="";if(f||!i)m+=''+g[b]+"";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='"}k||(l+=m+(f||!i||!j?" ":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+=''+c+"";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='",l+=a.yearshtml,a.yearshtml=null}}l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?" ":"")+m),l+="
";return l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&bd?d:e;return e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth()));return this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth -,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return $.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return $.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b));return this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)})},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="@VERSION",window["DP_jQuery_"+dpuuid]=$}(jQuery),function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};a.widget("ui.dialog",{version:"@VERSION",options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(b){var c=a(this).css(b).offset().top;c<0&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.oldPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.options.title=this.options.title||this.originalTitle;var b=this,d=b.options,e=d.title||" ",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("
")).addClass(c+d.dialogClass).css({display:"none",outline:0,zIndex:d.zIndex}).attr("tabIndex",-1).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}).appendTo("body"),h=b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),i=(b.uiDialogTitlebar=a("
")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),j=a("").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").click(function(a){a.preventDefault(),b.close(a)}).appendTo(i),k=(b.uiDialogTitlebarCloseText=a("")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),l=a("").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i);i.find("*").add(i).disableSelection(),this._hoverable(j),this._focusable(j),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){var a=this,b,c=this.oldPosition;a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),b=c.parent.children().eq(c.index),b.length?b.before(a.element):c.parent.append(a.element)},widget:function(){return this.uiDialog},close:function(b){if(!this._isOpen)return c;var c=this,d,e;if(!1!==c._trigger("beforeClose",b)){c._isOpen=!1,c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d);return c}},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var d=this,e=d.options,f;if(e.modal&&!b||!e.stack&&!e.modal)return d._trigger("focus",c);e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c);return d},open:function(){if(!this._isOpen){var b=this,c=b.options,d=b.uiDialog;b._size(),b._position(c.position),d.show(c.show),b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode===a.ui.keyCode.TAB){var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey){d.focus(1);return!1}if(b.target===d[0]&&b.shiftKey){e.focus(1);return!1}}});var e=b.element.find(":tabbable");e.length||(e=d.find(".ui-dialog-buttonpane :tabbable"),e.length||(e=d)),e.eq(0).focus(),b._isOpen=!0,b._trigger("open");return b}},_createButtons:function(b){var c=this,d=!1;c.uiDialog.find(".ui-dialog-buttonpane").remove(),typeof b=="object"&&b!==null&&a.each(b,function(){return!(d=!0)});if(d){var e=a("
").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),f=a("
").addClass("ui-dialog-buttonset").appendTo(e);a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a("').button(); - action_col.append(start_button); - this.element.append(profile_col). - append(action_col). - append(engines_col). - append(status_col); + var start_button = $('').button(); - action_col.append(stop_button); - this.element.append(profile_col). - append(action_col). - append(engines_col). - append(status_col); + var profile_col = $('').addClass('profile_col span4').text(this.data.profile); + var status_col = $('').addClass('status_col span3').html('running'); + var engines_col = $('').addClass('engines_col span3').html(this.data.n); + var stop_button = $('').button(). + var shutdown_button = $("').button(). + var delete_button = $("').button(). - addClass('upload-button'). - click(function (e) { + var upload_button = $('').button(). - click(function (e) { + var cancel_button = $(' + +
+
+
+
+
{% endif %} - {% if message %} +
{% for key in message %}
{{message[key]}}
{% endfor %} +
{% endif %}
diff --git a/IPython/frontend/html/notebook/templates/logout.html b/IPython/frontend/html/notebook/templates/logout.html index 4289c4b..2d5eae9 100644 --- a/IPython/frontend/html/notebook/templates/logout.html +++ b/IPython/frontend/html/notebook/templates/logout.html @@ -10,7 +10,7 @@ {% block site %} -
+
{% if message %} {% for key in message %} diff --git a/IPython/frontend/html/notebook/templates/notebook.html b/IPython/frontend/html/notebook/templates/notebook.html index 6b16017..e8239d6 100644 --- a/IPython/frontend/html/notebook/templates/notebook.html +++ b/IPython/frontend/html/notebook/templates/notebook.html @@ -33,7 +33,7 @@ class="notebook_app" {% block header %} - + @@ -44,20 +44,25 @@ class="notebook_app" {% block site %} -