##// END OF EJS Templates
Refactoring templates and top level js/css organization.
Brian Granger -
Show More
@@ -0,0 +1,6 b''
1
2 #main_app {
3 height: 100px;
4 width: 350px;
5 margin: 50px auto;
6 }
@@ -0,0 +1,7 b''
1
2 #main_app {
3 height: 100px;
4 width: 200px;
5 margin: 50px auto;
6 }
7
@@ -0,0 +1,20 b''
1 //----------------------------------------------------------------------------
2 // Copyright (C) 2008-2011 The IPython Development Team
3 //
4 // Distributed under the terms of the BSD License. The full license is in
5 // the file COPYING, distributed as part of this software.
6 //----------------------------------------------------------------------------
7
8 //============================================================================
9 // On document ready
10 //============================================================================
11
12
13 $(document).ready(function () {
14
15 IPython.page = new IPython.Page();
16 $('div#main_app').addClass('border-box-sizing ui-widget');
17 IPython.page.show();
18
19 });
20
@@ -0,0 +1,44 b''
1 //----------------------------------------------------------------------------
2 // Copyright (C) 2008-2011 The IPython Development Team
3 //
4 // Distributed under the terms of the BSD License. The full license is in
5 // the file COPYING, distributed as part of this software.
6 //----------------------------------------------------------------------------
7
8 //============================================================================
9 // Global header/site setup.
10 //============================================================================
11
12 var IPython = (function (IPython) {
13
14 var Page = function () {
15 this.style();
16 this.bind_events();
17 };
18
19 Page.prototype.style = function () {
20 $('div#header').addClass('border-box-sizing').
21 addClass('ui-widget ui-widget-content').
22 css('border-top-style','none').
23 css('border-left-style','none').
24 css('border-right-style','none');
25 $('div#site').addClass('border-box-sizing')
26 };
27
28
29 Page.prototype.bind_events = function () {
30 };
31
32
33 Page.prototype.show = function () {
34 // The header and site divs start out hidden to prevent FLOUC.
35 // Main scripts should call this method after styling everything.
36 $('div#header').css('display','block');
37 $('div#site').css('display','block');
38 };
39
40 IPython.Page = Page;
41
42 return IPython;
43
44 }(IPython));
@@ -0,0 +1,19 b''
1 //----------------------------------------------------------------------------
2 // Copyright (C) 2008-2011 The IPython Development Team
3 //
4 // Distributed under the terms of the BSD License. The full license is in
5 // the file COPYING, distributed as part of this software.
6 //----------------------------------------------------------------------------
7
8 //============================================================================
9 // On document ready
10 //============================================================================
11
12
13 $(document).ready(function () {
14
15 IPython.page = new IPython.Page();
16 IPython.page.show();
17
18 });
19
@@ -211,6 +211,7 b' class LoginHandler(AuthenticatedHandler):'
211 read_only=self.read_only,
211 read_only=self.read_only,
212 logged_in=self.logged_in,
212 logged_in=self.logged_in,
213 login_available=self.login_available,
213 login_available=self.login_available,
214 base_project_url=self.application.ipython_app.base_project_url,
214 message=message
215 message=message
215 )
216 )
216
217
@@ -246,6 +247,7 b' class LogoutHandler(AuthenticatedHandler):'
246 read_only=self.read_only,
247 read_only=self.read_only,
247 logged_in=self.logged_in,
248 logged_in=self.logged_in,
248 login_available=self.login_available,
249 login_available=self.login_available,
250 base_project_url=self.application.ipython_app.base_project_url,
249 message=message)
251 message=message)
250
252
251
253
@@ -1,10 +1,4 b''
1
1
2 .border-box-sizing {
3 box-sizing: border-box;
4 -moz-box-sizing: border-box;
5 -webkit-box-sizing: border-box;
6 }
7
8 /* Flexible box model classes */
2 /* Flexible box model classes */
9 /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
3 /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
10
4
@@ -101,30 +95,3 b''
101 -moz-box-pack: center;
95 -moz-box-pack: center;
102 box-pack: center;
96 box-pack: center;
103 }
97 }
104
105 .message {
106 border-width: 1px;
107 border-style: solid;
108 text-align: center;
109 padding: 0.5em;
110 margin: 0.5em 0;
111 }
112
113 .message.error {
114 background-color: #FFD3D1;
115 border-color: red;
116 }
117
118 .message.warning {
119 background-color: #FFD09E;
120 border-color: orange;
121 }
122
123 .message.info {
124 background-color: #CBFFBA;
125 border-color: green;
126 }
127
128 #content_panel {
129 margin: 0.5em;
130 } No newline at end of file
@@ -78,6 +78,14 b' span#notebook_name {'
78 font-size: 85%;
78 font-size: 85%;
79 }
79 }
80
80
81
82 div#main_app {
83 /* Initially hidden to prevent FLOUC */
84 display: none;
85 width: 100%;
86 position: relative;
87 }
88
81 span#quick_help_area {
89 span#quick_help_area {
82 position: static;
90 position: static;
83 padding: 5px 0px;
91 padding: 5px 0px;
@@ -14,7 +14,7 b' body {'
14 right: 0px;
14 right: 0px;
15 top: 0px;
15 top: 0px;
16 bottom: 0px;
16 bottom: 0px;
17 overflow: hidden;
17 overflow: visible;
18 }
18 }
19
19
20
20
@@ -41,11 +41,9 b' span#ipython_notebook h1 img {'
41 color: black;
41 color: black;
42 }
42 }
43
43
44 div#main_app {
44 #site {
45 /* Initially hidden to prevent FLOUC */
45 width: 100%
46 display: none;
46 display: none;
47 width: 100%;
48 position: relative;
49 }
47 }
50
48
51 /* We set the fonts by hand here to override the values in the theme */
49 /* We set the fonts by hand here to override the values in the theme */
@@ -63,11 +61,17 b' div#main_app {'
63 font-size: 77%;
61 font-size: 77%;
64 }
62 }
65
63
64 input.ui-button {
65 padding: 0.3em 0.9em;
66 }
67
66 span#login_widget {
68 span#login_widget {
67 float: right;
69 float: right;
68 }
70 }
69
71
70 /* generic class for hidden objects */
72 .border-box-sizing {
71 .hidden {
73 box-sizing: border-box;
72 display: none;
74 -moz-box-sizing: border-box;
75 -webkit-box-sizing: border-box;
73 }
76 }
77
@@ -5,46 +5,17 b''
5 * Author: IPython Development Team
5 * Author: IPython Development Team
6 */
6 */
7
7
8
8 #main_app {
9 body {
9 width: 920px;
10 background-color: white;
10 margin: auto;
11 /* This makes sure that the body covers the entire window and needs to
12 be in a different element than the display: box in wrapper below */
13 position: absolute;
14 left: 0px;
15 right: 0px;
16 top: 0px;
17 bottom: 0px;
18 overflow: auto;
19 }
20
21 #left_panel {
22 }
11 }
23
12
24 #drop_zone {
13 #notebooks_toolbar {
25 height: 200px;
26 width: 200px
27 }
28
29 #content_panel {
30 width: 600px;
31 }
32
33 #content_toolbar {
34 padding: 5px;
14 padding: 5px;
35 height: 25px;
15 height: 25px;
36 line-height: 25px;
16 line-height: 25px;
37 }
17 }
38
18
39 #header_border {
40 width: 100%;
41 height: 2px;
42 }
43
44 #app_hbox {
45 width: 100%;
46 }
47
48 #drag_info {
19 #drag_info {
49 float: left;
20 float: left;
50 }
21 }
1 NO CONTENT: file renamed from IPython/frontend/html/notebook/static/js/layout.js to IPython/frontend/html/notebook/static/js/layoutmanager.js
NO CONTENT: file renamed from IPython/frontend/html/notebook/static/js/layout.js to IPython/frontend/html/notebook/static/js/layoutmanager.js
@@ -12,19 +12,11 b''
12
12
13 $(document).ready(function () {
13 $(document).ready(function () {
14
14
15 $('div#header').addClass('border-box-sizing');
15 IPython.page = new IPython.Page();
16 $('div#header_border').addClass('border-box-sizing ui-widget ui-widget-content');
16 $('input#login_submit').button();
17
18 $('div#main_app').addClass('border-box-sizing ui-widget');
17 $('div#main_app').addClass('border-box-sizing ui-widget');
19 $('div#app_hbox').addClass('hbox');
18 IPython.page.show();
20
19 $('input#password_input').focus();
21 $('div#left_panel').addClass('box-flex');
22 $('div#right_panel').addClass('box-flex');
23 $('input#signin').button();
24
25 // These have display: none in the css file and are made visible here to prevent FLOUC.
26 $('div#header').css('display','block');
27 $('div#main_app').css('display','block');
28
20
29 });
21 });
30
22
@@ -24,6 +24,8 b' var IPython = (function (IPython) {'
24 this.element.find('button#logout').button();
24 this.element.find('button#logout').button();
25 this.element.find('button#login').button();
25 this.element.find('button#login').button();
26 };
26 };
27
28
27 LoginWidget.prototype.bind_events = function () {
29 LoginWidget.prototype.bind_events = function () {
28 var that = this;
30 var that = this;
29 this.element.find("button#logout").click(function () {
31 this.element.find("button#logout").click(function () {
@@ -21,7 +21,6 b' var IPython = (function (IPython) {'
21 };
21 };
22
22
23 NotebookList.prototype.style = function () {
23 NotebookList.prototype.style = function () {
24 this.element.addClass('ui-widget ui-widget-content');
25 $('div#project_name').addClass('ui-widget ui-widget-header');
24 $('div#project_name').addClass('ui-widget ui-widget-header');
26 };
25 };
27
26
@@ -99,7 +99,6 b' $(document).ready(function () {'
99 // hide various elements from read-only view
99 // hide various elements from read-only view
100 $('div#pager').remove();
100 $('div#pager').remove();
101 $('div#pager_splitter').remove();
101 $('div#pager_splitter').remove();
102 $('span#login_widget').removeClass('hidden');
103
102
104 // set the notebook name field as not modifiable
103 // set the notebook name field as not modifiable
105 $('#notebook_name').attr('disabled','disabled')
104 $('#notebook_name').attr('disabled','disabled')
@@ -12,31 +12,21 b''
12
12
13 $(document).ready(function () {
13 $(document).ready(function () {
14
14
15 $('div#header').addClass('border-box-sizing');
15 IPython.page = new IPython.Page();
16 $('div#header_border').addClass('border-box-sizing ui-widget ui-widget-content');
17
16
18 $('div#main_app').addClass('border-box-sizing ui-widget');
17 $('div#main_app').addClass('border-box-sizing ui-widget');
19 $('div#app_hbox').addClass('hbox');
18 $('div#notebooks_toolbar').addClass('ui-widget ui-helper-clearfix');
20
21 $('div#content_toolbar').addClass('ui-widget ui-helper-clearfix');
22
23 $('#new_notebook').button().click(function (e) {
19 $('#new_notebook').button().click(function (e) {
24 window.open($('body').data('baseProjectUrl')+'new');
20 window.open($('body').data('baseProjectUrl')+'new');
25 });
21 });
26
22
27 $('div#left_panel').addClass('box-flex');
23 IPython.read_only = $('body').data('readOnly') === 'True';
28 $('div#right_panel').addClass('box-flex');
29
30 IPython.read_only = $('meta[name=read_only]').attr("content") == 'True';
31 IPython.notebook_list = new IPython.NotebookList('div#notebook_list');
24 IPython.notebook_list = new IPython.NotebookList('div#notebook_list');
32 IPython.login_widget = new IPython.LoginWidget('span#login_widget');
25 IPython.login_widget = new IPython.LoginWidget('span#login_widget');
33
26
34 IPython.notebook_list.load_list();
27 IPython.notebook_list.load_list();
35
28
36 // These have display: none in the css file and are made visible here to prevent FLOUC.
29 IPython.page.show();
37 $('div#header').css('display','block');
38 $('div#main_app').css('display','block');
39
40
30
41 });
31 });
42
32
@@ -1,26 +1,42 b''
1 {% extends layout.html %}
1 {% extends page.html %}
2
2
3 {% block content_panel %}
3 {% block stylesheet %}
4
4
5 {% if login_available %}
5 <link rel="stylesheet" href="{{static_url("css/login.css") }}" type="text/css"/>
6
7 {% end %}
8
9
10 {% block login_widget %}
11 {% end %}
12
13
14 {% block site %}
6
15
16 <div id="main_app">
17
18 {% if login_available %}
7 <form action="/login?next={{url_escape(next)}}" method="post">
19 <form action="/login?next={{url_escape(next)}}" method="post">
8 Password: <input type="password" name="password" id="focus">
20 Password: <input type="password" name="password" id="password_input">
9 <input type="submit" value="Sign in" id="signin">
21 <input type="submit" value="Log in" id="login_submit">
10 </form>
22 </form>
11
12 {% end %}
23 {% end %}
13
24
25 {% if message %}
26 {% for key in message %}
27 <div class="message {{key}}">
28 {{message[key]}}
29 </div>
30 {% end %}
14 {% end %}
31 {% end %}
15
32
16 {% block login_widget %}
33 <div/>
34
17 {% end %}
35 {% end %}
18
36
37
19 {% block script %}
38 {% block script %}
20 <script type="text/javascript">
39
21 $(document).ready(function() {
40 <script src="{{static_url("js/loginmain.js") }}" type="text/javascript" charset="utf-8"></script>
22 IPython.login_widget = new IPython.LoginWidget('span#login_widget');
41
23 $('#focus').focus();
24 });
25 </script>
26 {% end %}
42 {% end %}
@@ -1,28 +1,40 b''
1 {% extends layout.html %}
1 {% extends page.html %}
2
2
3 {% block content_panel %}
3 {% block stylesheet %}
4 <ul>
5 {% if read_only or not login_available %}
6
4
7 Proceed to the <a href="/">list of notebooks</a>.</li>
5 <link rel="stylesheet" href="{{static_url("css/logout.css") }}" type="text/css"/>
8
6
9 {% else %}
7 {% end %}
10
8
11 Proceed to the <a href="/login">login page</a>.</li>
12
9
10 {% block login_widget %}
13 {% end %}
11 {% end %}
14
12
15 </ul>
13 {% block site %}
16
14
15 <div id="main_app">
16
17 {% if message %}
18 {% for key in message %}
19 <div class="message {{key}}">
20 {{message[key]}}
21 </div>
22 {% end %}
17 {% end %}
23 {% end %}
18
24
19 {% block login_widget %}
25 {% if read_only or not login_available %}
26 Proceed to the <a href="/">dashboard</a>.
27 {% else %}
28 Proceed to the <a href="/login">login page</a>.
29 {% end %}
30
31
32 <div/>
33
20 {% end %}
34 {% end %}
21
35
22 {% block script %}
36 {% block script %}
23 <script type="text/javascript">
37
24 $(document).ready(function() {
38 <script src="{{static_url("js/logoutmain.js") }}" type="text/javascript" charset="utf-8"></script>
25 IPython.login_widget = new IPython.LoginWidget('span#login_widget');
39
26 });
27 </script>
28 {% end %}
40 {% end %}
@@ -8,8 +8,8 b''
8
8
9 <link rel="stylesheet" href="{{static_url("jquery/css/themes/base/jquery-ui.min.css") }}" type="text/css" />
9 <link rel="stylesheet" href="{{static_url("jquery/css/themes/base/jquery-ui.min.css") }}" type="text/css" />
10 <link rel="stylesheet" href="{{static_url("css/boilerplate.css") }}" type="text/css" />
10 <link rel="stylesheet" href="{{static_url("css/boilerplate.css") }}" type="text/css" />
11 <link rel="stylesheet" href="{{static_url("css/layout.css") }}" type="text/css" />
11 <link rel="stylesheet" href="{{static_url("css/fbm.css") }}" type="text/css" />
12 <link rel="stylesheet" href="{{static_url("css/base.css") }}" type="text/css"/>
12 <link rel="stylesheet" href="{{static_url("css/page.css") }}" type="text/css"/>
13 {% block stylesheet %}
13 {% block stylesheet %}
14 {% end %}
14 {% end %}
15
15
@@ -21,7 +21,7 b''
21 <body {% block params %}{% end %}>
21 <body {% block params %}{% end %}>
22
22
23 <div id="header">
23 <div id="header">
24 <span id="ipython_notebook"><h1><img src='{{static_url("ipynblogo.png") }}' alt='IPython Notebook'/></h1></span>
24 <span id="ipython_notebook"><h1><a href={{base_project_url}} alt='dashboard'><img src='{{static_url("ipynblogo.png") }}' alt='IPython Notebook'/></a></h1></span>
25
25
26 {% block login_widget %}
26 {% block login_widget %}
27
27
@@ -39,43 +39,15 b''
39 {% end %}
39 {% end %}
40 </div>
40 </div>
41
41
42 <div id="header_border"></div>
42 <div id="site">
43
43 {% block site %}
44 <div id="main_app">
45
46 <div id="app_hbox">
47
48 <div id="left_panel">
49 {% block left_panel %}
50 {% end %}
51 </div>
52
53 <div id="content_panel">
54 {% if message %}
55
56 {% for key in message %}
57 <div class="message {{key}}">
58 {{message[key]}}
59 </div>
60 {% end %}
61 {% end %}
44 {% end %}
62
63 {% block content_panel %}
64 {% end %}
65 </div>
66 <div id="right_panel">
67 {% block right_panel %}
68 {% end %}
69 </div>
70
71 </div>
72
73 </div>
45 </div>
74
46
75 <script src="{{static_url("jquery/js/jquery-1.7.1.min.js") }}" type="text/javascript" charset="utf-8"></script>
47 <script src="{{static_url("jquery/js/jquery-1.7.1.min.js") }}" type="text/javascript" charset="utf-8"></script>
76 <script src="{{static_url("jquery/js/jquery-ui.min.js") }}" type="text/javascript" charset="utf-8"></script>
48 <script src="{{static_url("jquery/js/jquery-ui.min.js") }}" type="text/javascript" charset="utf-8"></script>
77 <script src="{{static_url("js/namespace.js") }}" type="text/javascript" charset="utf-8"></script>
49 <script src="{{static_url("js/namespace.js") }}" type="text/javascript" charset="utf-8"></script>
78 <script src="{{static_url("js/loginmain.js") }}" type="text/javascript" charset="utf-8"></script>
50 <script src="{{static_url("js/page.js") }}" type="text/javascript" charset="utf-8"></script>
79 <script src="{{static_url("js/loginwidget.js") }}" type="text/javascript" charset="utf-8"></script>
51 <script src="{{static_url("js/loginwidget.js") }}" type="text/javascript" charset="utf-8"></script>
80
52
81 {% block script %}
53 {% block script %}
@@ -1,27 +1,26 b''
1 {% extends layout.html %}
1 {% extends page.html %}
2
2
3 {% block title %}
3 {% block title %}IPython Dashboard{% end %}
4 IPython Dashboard
5 {% end %}
6
4
7 {% block stylesheet %}
5 {% block stylesheet %}
8 <link rel="stylesheet" href="{{static_url("css/projectdashboard.css") }}" type="text/css" />
6 <link rel="stylesheet" href="{{static_url("css/projectdashboard.css") }}" type="text/css" />
9 {% end %}
7 {% end %}
10
8
11 {% block meta %}
12 <meta name="read_only" content="{{read_only}}"/>
13 {% end %}
14
9
15 {% block params %}
10 {% block params %}
16 data-project={{project}}
11 data-project={{project}}
17 data-base-project-url={{base_project_url}}
12 data-base-project-url={{base_project_url}}
18 data-base-kernel-url={{base_kernel_url}}
13 data-base-kernel-url={{base_kernel_url}}
14 data-read-only={{read_only}}
19 {% end %}
15 {% end %}
20
16
21 {% block content_panel %}
17 {% block site %}
18
19 <div id="main_app">
20
22 {% if logged_in or not read_only %}
21 {% if logged_in or not read_only %}
23
22
24 <div id="content_toolbar">
23 <div id="notebooks_toolbar">
25 <span id="drag_info">Drag files onto the list to import
24 <span id="drag_info">Drag files onto the list to import
26 notebooks.</span>
25 notebooks.</span>
27
26
@@ -35,6 +34,9 b' data-base-kernel-url={{base_kernel_url}}'
35 <div id="notebook_list">
34 <div id="notebook_list">
36 <div id="project_name"><h2>{{project}}</h2></div>
35 <div id="project_name"><h2>{{project}}</h2></div>
37 </div>
36 </div>
37
38 </div>
39
38 {% end %}
40 {% end %}
39
41
40 {% block script %}
42 {% block script %}
General Comments 0
You need to be logged in to leave comments. Login now