Commit 7aa6f173b0e365bb4a005ee4d8d5ceb2255ca6fb
1 parent
4b187a6878
Exists in
master
added student view
Showing
13 changed files
with
845 additions
and
204 deletions
Show diff stats
imports/client/views/org/admin/students/FabMenu.js
... | ... | @@ -0,0 +1,38 @@ |
1 | +import _ from 'lodash'; | |
2 | +import { Meteor } from 'meteor/meteor'; | |
3 | + | |
4 | +import React, { Component } from 'react'; | |
5 | +import { Link,browserHistory } from 'react-router'; | |
6 | +import { FormGroup,Panel,Table, | |
7 | + ButtonToolbar,Modal, | |
8 | + FormControl,Glyphicon,Button } from 'react-bootstrap'; | |
9 | +import { AddStudentForm } from './addStudentForm'; | |
10 | +import FloatingActionButton from 'material-ui/FloatingActionButton'; | |
11 | +import ContentAdd from 'material-ui/svg-icons/content/add'; | |
12 | +const style = { | |
13 | + marginRight: 20, | |
14 | +}; | |
15 | +export class FabMenuView extends Component { | |
16 | + | |
17 | + constructor(props) { | |
18 | + super(props); | |
19 | + this.state = { | |
20 | + show: false | |
21 | + }; | |
22 | + this.onUpdate = this.onUpdate.bind(this); | |
23 | + }; | |
24 | + onUpdate(key, value) { | |
25 | + this.setState({[key]: value}); | |
26 | + }; | |
27 | + | |
28 | + render() { | |
29 | + return ( | |
30 | + <div> | |
31 | + <FloatingActionButton> | |
32 | + <ContentAdd /> | |
33 | + </FloatingActionButton> | |
34 | + </div> | |
35 | + ); | |
36 | + }; | |
37 | + | |
38 | +}; | ... | ... |
imports/client/views/org/admin/students/Header.js
... | ... | @@ -0,0 +1,98 @@ |
1 | +import _ from 'lodash'; | |
2 | +import { Meteor } from 'meteor/meteor'; | |
3 | + | |
4 | +import React, { Component } from 'react'; | |
5 | +import { Link,browserHistory } from 'react-router'; | |
6 | +import { FormGroup, | |
7 | + FormControl,Glyphicon,Button } from 'react-bootstrap'; | |
8 | + | |
9 | + | |
10 | +export class Header extends Component { | |
11 | + | |
12 | + constructor(props) { | |
13 | + super(props); | |
14 | + this.state = { | |
15 | + | |
16 | + }; | |
17 | + this.onUpdate = this.onUpdate.bind(this); | |
18 | + }; | |
19 | + | |
20 | + onUpdate(key, value) { | |
21 | + this.setState({[key]: value}); | |
22 | + }; | |
23 | + | |
24 | + render() { | |
25 | + return ( | |
26 | + <div className = "enterPane-box"> | |
27 | + <div className="row"> | |
28 | + <div className="col-lg-3 col-md-6"> | |
29 | + <div className="panel panel-body"> | |
30 | + <div className="media"> | |
31 | + <div className="media-left"> | |
32 | + <a href="assets/images/placeholder.png" data-popup="lightbox"> | |
33 | + <img src="assets/images/download2.png" className="img-circle img-lg" alt="" /> | |
34 | + </a> | |
35 | + </div> | |
36 | + <div className="media-body"> | |
37 | + <h6 className="media-heading">Students</h6> | |
38 | + <span className="text-muted">Click to view</span> | |
39 | + </div> | |
40 | + </div> | |
41 | + </div> | |
42 | + </div> | |
43 | + <div className="col-lg-3 col-md-6"> | |
44 | + <div className="panel panel-body"> | |
45 | + <div className="media"> | |
46 | + <div className="media-left"> | |
47 | + <a href="assets/images/placeholder.jpg" data-popup="lightbox"> | |
48 | + <img src="assets/images/download.png" className="img-circle img-lg" alt="" /> | |
49 | + </a> | |
50 | + </div> | |
51 | + | |
52 | + <div className="media-body"> | |
53 | + <h6 className="media-heading">Teachers</h6> | |
54 | + <span className="text-muted">Click to view</span> | |
55 | + </div> | |
56 | + </div> | |
57 | + </div> | |
58 | + </div> | |
59 | + | |
60 | + <div className="col-lg-3 col-md-6"> | |
61 | + <div className="panel panel-body"> | |
62 | + <div className="media"> | |
63 | + <div className="media-left"> | |
64 | + <a href="assets/images/placeholder.jpg" data-popup="lightbox"> | |
65 | + <img src="assets/images/download3.png" className="img-circle img-lg" alt="" /> | |
66 | + </a> | |
67 | + </div> | |
68 | + | |
69 | + <div className="media-body"> | |
70 | + <h6 className="media-heading">Parents</h6> | |
71 | + <span className="text-muted">Click to view</span> | |
72 | + </div> | |
73 | + </div> | |
74 | + </div> | |
75 | + </div> | |
76 | + | |
77 | + <div className="col-lg-3 col-md-6"> | |
78 | + <div className="panel panel-body"> | |
79 | + <div className="media"> | |
80 | + <div className="media-left"> | |
81 | + <a href="assets/images/placeholder.jpg" data-popup="lightbox"> | |
82 | + <img src="assets/images/download1.png" className="img-circle img-lg" alt="" /> | |
83 | + </a> | |
84 | + </div> | |
85 | + | |
86 | + <div className="media-body"> | |
87 | + <h6 className="media-heading">Non Teaching Staff</h6> | |
88 | + <span className="text-muted">Click to view</span> | |
89 | + </div> | |
90 | + </div> | |
91 | + </div> | |
92 | + </div> | |
93 | + </div> | |
94 | + </div> | |
95 | + ); | |
96 | + }; | |
97 | + | |
98 | +}; | ... | ... |
imports/client/views/org/admin/students/StudentDataView.js
... | ... | @@ -33,55 +33,239 @@ export class StudentDataView extends Component { |
33 | 33 | |
34 | 34 | render() { |
35 | 35 | return ( |
36 | - <div className = "enterPane-box"> | |
37 | - <Panel header="Students Info" bsStyle="primary"> | |
38 | - <Table striped bordered condensed hover> | |
39 | - <thead> | |
40 | - <tr> | |
41 | - <th>#</th> | |
42 | - <th>First Name</th> | |
43 | - <th>Last Name</th> | |
44 | - </tr> | |
45 | - </thead> | |
46 | - <tbody> | |
47 | - { | |
48 | - this.props.data.students.map(function(student, i) | |
49 | - { | |
50 | - return( | |
51 | - <tr> | |
52 | - <td>{i+1}</td> | |
53 | - <td>{student.firstName}</td> | |
54 | - <td>{student.lastName}</td> | |
55 | - </tr> | |
56 | - ) | |
57 | - }) | |
58 | - } | |
59 | - | |
60 | - </tbody> | |
61 | - </Table> | |
62 | - <ButtonToolbar> | |
63 | - <Button bsStyle="primary" onClick={this.showModal}> | |
64 | - Add Student | |
65 | - </Button> | |
66 | - <Modal | |
67 | - {...this.props} | |
68 | - show={this.state.show} | |
69 | - onHide={this.hideModal} | |
70 | - dialogClassName="custom-modal" | |
71 | - > | |
72 | - <Modal.Header closeButton> | |
73 | - <Modal.Title id="contained-modal-title-lg">New Student</Modal.Title> | |
74 | - </Modal.Header> | |
75 | - <Modal.Body> | |
76 | - <AddStudentForm /> | |
77 | - </Modal.Body> | |
78 | - <Modal.Footer> | |
79 | - <Button onClick={this.hideModal}>Close</Button> | |
80 | - </Modal.Footer> | |
81 | - </Modal> | |
82 | - </ButtonToolbar> | |
83 | - </Panel> | |
84 | - </div> | |
36 | + <div className="content has-detached-left"> | |
37 | + <div className="container-detached"> | |
38 | + <div className="content-detached"> | |
39 | + <div className="row"> | |
40 | + <div className="col-lg-3 col-md-6"> | |
41 | + <div className="panel panel-body"> | |
42 | + <div className="media"> | |
43 | + <div className="media-left"> | |
44 | + <a href="assets/images/placeholder.png" data-popup="lightbox"> | |
45 | + <img src="assets/images/download2.png" className="img-circle img-lg" alt="" /> | |
46 | + </a> | |
47 | + </div> | |
48 | + | |
49 | + <div className="media-body"> | |
50 | + <h6 className="media-heading">Students</h6> | |
51 | + <span className="text-muted">Click to view</span> | |
52 | + </div> | |
53 | + </div> | |
54 | + </div> | |
55 | + </div> | |
56 | + | |
57 | + <div className="col-lg-3 col-md-6"> | |
58 | + <div className="panel panel-body"> | |
59 | + <div className="media"> | |
60 | + <div className="media-left"> | |
61 | + <a href="assets/images/placeholder.jpg" data-popup="lightbox"> | |
62 | + <img src="assets/images/download.png" className="img-circle img-lg" alt="" /> | |
63 | + </a> | |
64 | + </div> | |
65 | + | |
66 | + <div className="media-body"> | |
67 | + <h6 className="media-heading">Teachers</h6> | |
68 | + <span className="text-muted">Click to view</span> | |
69 | + </div> | |
70 | + </div> | |
71 | + </div> | |
72 | + </div> | |
73 | + | |
74 | + <div className="col-lg-3 col-md-6"> | |
75 | + <div className="panel panel-body"> | |
76 | + <div className="media"> | |
77 | + <div className="media-left"> | |
78 | + <a href="assets/images/placeholder.jpg" data-popup="lightbox"> | |
79 | + <img src="assets/images/download3.png" className="img-circle img-lg" alt="" /> | |
80 | + </a> | |
81 | + </div> | |
82 | + | |
83 | + <div className="media-body"> | |
84 | + <h6 className="media-heading">Parents</h6> | |
85 | + <span className="text-muted">Click to view</span> | |
86 | + </div> | |
87 | + </div> | |
88 | + </div> | |
89 | + </div> | |
90 | + | |
91 | + <div className="col-lg-3 col-md-6"> | |
92 | + <div className="panel panel-body"> | |
93 | + <div className="media"> | |
94 | + <div className="media-left"> | |
95 | + <a href="assets/images/placeholder.jpg" data-popup="lightbox"> | |
96 | + <img src="assets/images/download1.png" className="img-circle img-lg" alt="" /> | |
97 | + </a> | |
98 | + </div> | |
99 | + | |
100 | + <div className="media-body"> | |
101 | + <h6 className="media-heading">Non Teaching Staff</h6> | |
102 | + <span className="text-muted">Click to view</span> | |
103 | + </div> | |
104 | + </div> | |
105 | + </div> | |
106 | + </div> | |
107 | + </div> | |
108 | + | |
109 | + <div className="panel panel-flat"> | |
110 | + <div className="panel-heading"> | |
111 | + <h5 className="panel-title">Student Details</h5> | |
112 | + <div className="heading-elements"> | |
113 | + <ul className="icons-list"> | |
114 | + <li><a data-action="collapse"></a></li> | |
115 | + <li><a data-action="reload"></a></li> | |
116 | + </ul> | |
117 | + </div> | |
118 | + </div> | |
119 | + | |
120 | + | |
121 | + <table className="table datatable-basic table-striped"> | |
122 | + <thead> | |
123 | + <tr> | |
124 | + <th>First Name</th> | |
125 | + <th>Last Name</th> | |
126 | + <th>className</th> | |
127 | + <th>DOB</th> | |
128 | + <th>Status</th> | |
129 | + <th className="text-center">Actions</th> | |
130 | + </tr> | |
131 | + </thead> | |
132 | + <tbody> | |
133 | + <tr> | |
134 | + <td>Marth</td> | |
135 | + <td><a href="#">Enright</a></td> | |
136 | + <td>VII</td> | |
137 | + <td>22 Jun 1972</td> | |
138 | + <td><span className="label label-success">Active</span></td> | |
139 | + <td className="text-center"> | |
140 | + <ul className="icons-list"> | |
141 | + <li className="dropdown"> | |
142 | + <a href="#" className="dropdown-toggle" data-toggle="dropdown"> | |
143 | + <i className="icon-menu9"></i> | |
144 | + </a> | |
145 | + | |
146 | + <ul className="dropdown-menu dropdown-menu-right"> | |
147 | + <li><a href="#"><i className="icon-file-pdf"></i> Export to .pdf</a></li> | |
148 | + <li><a href="#"><i className="icon-file-excel"></i> Export to .csv</a></li> | |
149 | + <li><a href="#"><i className="icon-file-word"></i> Export to .doc</a></li> | |
150 | + </ul> | |
151 | + </li> | |
152 | + </ul> | |
153 | + </td> | |
154 | + </tr> | |
155 | + <tr> | |
156 | + <td>Jackelyn</td> | |
157 | + <td>Weible</td> | |
158 | + <td><a href="#">XI</a></td> | |
159 | + <td>3 Oct 1981</td> | |
160 | + <td><span className="label label-default">Inactive</span></td> | |
161 | + <td className="text-center"> | |
162 | + <ul className="icons-list"> | |
163 | + <li className="dropdown"> | |
164 | + <a href="#" className="dropdown-toggle" data-toggle="dropdown"> | |
165 | + <i className="icon-menu9"></i> | |
166 | + </a> | |
167 | + | |
168 | + <ul className="dropdown-menu dropdown-menu-right"> | |
169 | + <li><a href="#"><i className="icon-file-pdf"></i> Export to .pdf</a></li> | |
170 | + <li><a href="#"><i className="icon-file-excel"></i> Export to .csv</a></li> | |
171 | + <li><a href="#"><i className="icon-file-word"></i> Export to .doc</a></li> | |
172 | + </ul> | |
173 | + </li> | |
174 | + </ul> | |
175 | + </td> | |
176 | + </tr> | |
177 | + </tbody> | |
178 | + </table> | |
179 | + </div> | |
180 | + | |
181 | + | |
182 | + <ul className="fab-menu fab-menu-fixed fab-menu-bottom-right" data-fab-toggle="click"> | |
183 | + <li> | |
184 | + <a className="fab-menu-btn btn bg-teal-400 btn-float btn-rounded btn-icon"> | |
185 | + <i className="fab-icon-open icon-plus3"></i> | |
186 | + <i className="fab-icon-close icon-cross2"></i> | |
187 | + </a> | |
188 | + | |
189 | + <ul className="fab-menu-inner"> | |
190 | + <li> | |
191 | + <div data-fab-label="Upload bulk data"> | |
192 | + <a href="#" className="btn btn-default btn-rounded btn-icon btn-float"> | |
193 | + <i className="icon-file-upload2"></i> | |
194 | + </a> | |
195 | + </div> | |
196 | + </li> | |
197 | + <li> | |
198 | + <div data-fab-label="Add Student"> | |
199 | + <a href="#" className="btn btn-default btn-rounded btn-icon btn-float"> | |
200 | + <i className=" icon-file-plus2"></i> | |
201 | + </a> | |
202 | + <span className="badge bg-primary-400">5</span> | |
203 | + </div> | |
204 | + </li> | |
205 | + </ul> | |
206 | + </li> | |
207 | + </ul> | |
208 | + | |
209 | + </div> | |
210 | + </div> | |
211 | + <div className="sidebar-detached affix-top"> | |
212 | + <div className="sidebar sidebar-default"> | |
213 | + <div className="sidebar-content"> | |
214 | + | |
215 | + <div className="sidebar-category"> | |
216 | + <div className="category-title"> | |
217 | + <span>Advanced Search</span> | |
218 | + <ul className="icons-list"> | |
219 | + <li><a href="#" data-action="collapse"></a></li> | |
220 | + </ul> | |
221 | + </div> | |
222 | + | |
223 | + <div className="category-content"> | |
224 | + <form action="#"> | |
225 | + <div className="has-feedback has-feedback-left"> | |
226 | + <input type="search" className="form-control" placeholder="First Name" /> | |
227 | + <div className="form-control-feedback"> | |
228 | + <i className="icon-search4 text-size-base text-muted"></i> | |
229 | + </div> | |
230 | + </div> | |
231 | + </form> | |
232 | + </div> | |
233 | + <div className="category-content"> | |
234 | + <form action="#"> | |
235 | + <div className="has-feedback has-feedback-left"> | |
236 | + <input type="search" className="form-control" placeholder="Last Name" /> | |
237 | + <div className="form-control-feedback"> | |
238 | + <i className="icon-search4 text-size-base text-muted"></i> | |
239 | + </div> | |
240 | + </div> | |
241 | + </form> | |
242 | + </div> | |
243 | + <div className="category-content"> | |
244 | + <form action="#"> | |
245 | + <div className="has-feedback has-feedback-left"> | |
246 | + <div className="btn-group"> | |
247 | + <button type="button" className="dropdown-toggle form-control" data-toggle="dropdown"> | |
248 | + <span data-bind="label">Select className</span> <span className="caret"></span> | |
249 | + </button> | |
250 | + <ul className="dropdown-menu" role="menu"> | |
251 | + <li><a href="#">Item 1</a></li> | |
252 | + <li><a href="#">Another item</a></li> | |
253 | + <li><a href="#">This is a longer item that will not fit properly</a></li> | |
254 | + </ul> | |
255 | + </div> | |
256 | + <div className="form-control-feedback"> | |
257 | + <i className="icon-search4 text-size-base text-muted"></i> | |
258 | + </div> | |
259 | + </div> | |
260 | + </form> | |
261 | + </div> | |
262 | + </div> | |
263 | + | |
264 | + | |
265 | + </div> | |
266 | + </div> | |
267 | + </div> | |
268 | +</div> | |
85 | 269 | ); |
86 | 270 | }; |
87 | 271 | ... | ... |
imports/client/views/org/admin/students/StudentDataView0.js
... | ... | @@ -0,0 +1,88 @@ |
1 | +import _ from 'lodash'; | |
2 | +import { Meteor } from 'meteor/meteor'; | |
3 | + | |
4 | +import React, { Component } from 'react'; | |
5 | +import { Link,browserHistory } from 'react-router'; | |
6 | +import { FormGroup,Panel,Table, | |
7 | + ButtonToolbar,Modal, | |
8 | + FormControl,Glyphicon,Button } from 'react-bootstrap'; | |
9 | + import { AddStudentForm } from './addStudentForm'; | |
10 | + | |
11 | +export class StudentDataView extends Component { | |
12 | + | |
13 | + constructor(props) { | |
14 | + super(props); | |
15 | + this.state = { | |
16 | + show: false | |
17 | + }; | |
18 | + this.showModal = this.showModal.bind(this); | |
19 | + this.hideModal = this.hideModal.bind(this); | |
20 | + this.onUpdate = this.onUpdate.bind(this); | |
21 | + }; | |
22 | + | |
23 | + showModal() { | |
24 | + this.setState({show: true}); | |
25 | + } | |
26 | + | |
27 | + hideModal() { | |
28 | + this.setState({show: false}); | |
29 | + } | |
30 | + onUpdate(key, value) { | |
31 | + this.setState({[key]: value}); | |
32 | + }; | |
33 | + | |
34 | + render() { | |
35 | + return ( | |
36 | + <div className = "enterPane-box"> | |
37 | + <Panel header="Students Info" bsStyle="primary"> | |
38 | + <Table striped bordered condensed hover> | |
39 | + <thead> | |
40 | + <tr> | |
41 | + <th>#</th> | |
42 | + <th>First Name</th> | |
43 | + <th>Last Name</th> | |
44 | + </tr> | |
45 | + </thead> | |
46 | + <tbody> | |
47 | + { | |
48 | + this.props.data.students.map(function(student, i) | |
49 | + { | |
50 | + return( | |
51 | + <tr> | |
52 | + <td>{i+1}</td> | |
53 | + <td>{student.firstName}</td> | |
54 | + <td>{student.lastName}</td> | |
55 | + </tr> | |
56 | + ) | |
57 | + }) | |
58 | + } | |
59 | + | |
60 | + </tbody> | |
61 | + </Table> | |
62 | + <ButtonToolbar> | |
63 | + <Button bsStyle="primary" onClick={this.showModal}> | |
64 | + Add Student | |
65 | + </Button> | |
66 | + <Modal | |
67 | + {...this.props} | |
68 | + show={this.state.show} | |
69 | + onHide={this.hideModal} | |
70 | + dialogClassName="custom-modal" | |
71 | + > | |
72 | + <Modal.Header closeButton> | |
73 | + <Modal.Title id="contained-modal-title-lg">New Student</Modal.Title> | |
74 | + </Modal.Header> | |
75 | + <Modal.Body> | |
76 | + <AddStudentForm /> | |
77 | + </Modal.Body> | |
78 | + <Modal.Footer> | |
79 | + <Button onClick={this.hideModal}>Close</Button> | |
80 | + </Modal.Footer> | |
81 | + </Modal> | |
82 | + </ButtonToolbar> | |
83 | + </Panel> | |
84 | + </div> | |
85 | + ); | |
86 | + }; | |
87 | + | |
88 | +}; | ... | ... |
imports/client/views/org/admin/students/StudentTable.js
... | ... | @@ -0,0 +1,107 @@ |
1 | +import _ from 'lodash'; | |
2 | +import { Meteor } from 'meteor/meteor'; | |
3 | + | |
4 | +import React, { Component } from 'react'; | |
5 | +import { Link,browserHistory } from 'react-router'; | |
6 | +import { FormGroup,Panel,Table, | |
7 | + ButtonToolbar,Modal, | |
8 | + FormControl,Glyphicon,Button } from 'react-bootstrap'; | |
9 | + import { AddStudentForm } from './addStudentForm'; | |
10 | + | |
11 | +export class StudentTable extends Component { | |
12 | + | |
13 | + constructor(props) { | |
14 | + super(props); | |
15 | + this.state = { | |
16 | + show: false | |
17 | + }; | |
18 | + this.onUpdate = this.onUpdate.bind(this); | |
19 | + }; | |
20 | + onUpdate(key, value) { | |
21 | + this.setState({[key]: value}); | |
22 | + }; | |
23 | + | |
24 | + render() { | |
25 | + return ( | |
26 | + <div className="panel panel-flat"> | |
27 | + <div className="panel-heading"> | |
28 | + <h5 className="panel-title">Student Details</h5> | |
29 | + <div className="heading-elements"> | |
30 | + <ul className="icons-list"> | |
31 | + <li><a data-action="collapse"></a></li> | |
32 | + <li><a data-action="reload"></a></li> | |
33 | + </ul> | |
34 | + </div> | |
35 | + </div> | |
36 | + | |
37 | + | |
38 | + <Table striped bordered condensed hover> | |
39 | + <thead> | |
40 | + <tr> | |
41 | + <th>First Name</th> | |
42 | + <th>Last Name</th> | |
43 | + <th>className</th> | |
44 | + <th>DOB</th> | |
45 | + <th>Status</th> | |
46 | + <th className="text-center">Actions</th> | |
47 | + </tr> | |
48 | + </thead> | |
49 | + <tbody> | |
50 | + { | |
51 | + this.props.data.students.map(function(student, i) | |
52 | + { | |
53 | + return( | |
54 | + <tr> | |
55 | + <td>{student.firstName}</td> | |
56 | + <td>{student.lastName}</td> | |
57 | + <td>VII</td> | |
58 | + <td>22 Jun 1972</td> | |
59 | + <td><span className="label label-success">Active</span></td> | |
60 | + <td className="text-center"> | |
61 | + <ul className="icons-list"> | |
62 | + <li className="dropdown"> | |
63 | + <a href="#" className="dropdown-toggle" data-toggle="dropdown"> | |
64 | + <i className="icon-menu9"></i> | |
65 | + </a> | |
66 | + | |
67 | + <ul className="dropdown-menu dropdown-menu-right"> | |
68 | + <li><a href="#"><i className="icon-file-pdf"></i> Export to .pdf</a></li> | |
69 | + <li><a href="#"><i className="icon-file-excel"></i> Export to .csv</a></li> | |
70 | + <li><a href="#"><i className="icon-file-word"></i> Export to .doc</a></li> | |
71 | + </ul> | |
72 | + </li> | |
73 | + </ul> | |
74 | + </td> | |
75 | + </tr> | |
76 | + ) | |
77 | + }) | |
78 | + } | |
79 | + <tr> | |
80 | + <td>Jackelyn</td> | |
81 | + <td>Weible</td> | |
82 | + <td><a href="#">XI</a></td> | |
83 | + <td>3 Oct 1981</td> | |
84 | + <td><span className="label label-default">Inactive</span></td> | |
85 | + <td className="text-center"> | |
86 | + <ul className="icons-list"> | |
87 | + <li className="dropdown"> | |
88 | + <a href="#" className="dropdown-toggle" data-toggle="dropdown"> | |
89 | + <i className="icon-menu9"></i> | |
90 | + </a> | |
91 | + | |
92 | + <ul className="dropdown-menu dropdown-menu-right"> | |
93 | + <li><a href="#"><i className="icon-file-pdf"></i> Export to .pdf</a></li> | |
94 | + <li><a href="#"><i className="icon-file-excel"></i> Export to .csv</a></li> | |
95 | + <li><a href="#"><i className="icon-file-word"></i> Export to .doc</a></li> | |
96 | + </ul> | |
97 | + </li> | |
98 | + </ul> | |
99 | + </td> | |
100 | + </tr> | |
101 | + </tbody> | |
102 | + </Table> | |
103 | + </div> | |
104 | + ); | |
105 | + }; | |
106 | + | |
107 | +}; | ... | ... |
imports/client/views/org/admin/students/StudentView.js
... | ... | @@ -0,0 +1,111 @@ |
1 | +import _ from 'lodash'; | |
2 | +import { Meteor } from 'meteor/meteor'; | |
3 | + | |
4 | +import React, { Component } from 'react'; | |
5 | +import { Link,browserHistory } from 'react-router'; | |
6 | +import { FormGroup,Panel,Table, | |
7 | + ButtonToolbar,Modal, | |
8 | + FormControl,Glyphicon,Button } from 'react-bootstrap'; | |
9 | +import { AddStudentForm } from './addStudentForm'; | |
10 | +import { StudentTable } from './StudentTable'; | |
11 | +import { Header } from './Header'; | |
12 | +import { FabMenuView } from './FabMenu'; | |
13 | + | |
14 | +export class StudentView extends Component { | |
15 | + | |
16 | + constructor(props) { | |
17 | + super(props); | |
18 | + this.state = { | |
19 | + show: false | |
20 | + }; | |
21 | + this.showModal = this.showModal.bind(this); | |
22 | + this.hideModal = this.hideModal.bind(this); | |
23 | + this.onUpdate = this.onUpdate.bind(this); | |
24 | + }; | |
25 | + | |
26 | + showModal() { | |
27 | + this.setState({show: true}); | |
28 | + } | |
29 | + | |
30 | + hideModal() { | |
31 | + this.setState({show: false}); | |
32 | + } | |
33 | + onUpdate(key, value) { | |
34 | + this.setState({[key]: value}); | |
35 | + }; | |
36 | + | |
37 | + render() { | |
38 | + return ( | |
39 | + <div className="content has-detached-left"> | |
40 | + <div className="container-detached"> | |
41 | + <div className="content-detached"> | |
42 | + <Header/> | |
43 | + <StudentTable | |
44 | + data = {this.props.data} | |
45 | + /> | |
46 | + <FabMenuView/> | |
47 | + | |
48 | + </div> | |
49 | + </div> | |
50 | + <div className="sidebar-detached affix-top"> | |
51 | + <div className="sidebar sidebar-default"> | |
52 | + <div className="sidebar-content"> | |
53 | + | |
54 | + <div className="sidebar-category"> | |
55 | + <div className="category-title"> | |
56 | + <span>Advanced Search</span> | |
57 | + <ul className="icons-list"> | |
58 | + <li><a href="#" data-action="collapse"></a></li> | |
59 | + </ul> | |
60 | + </div> | |
61 | + | |
62 | + <div className="category-content"> | |
63 | + <form action="#"> | |
64 | + <div className="has-feedback has-feedback-left"> | |
65 | + <input type="search" className="form-control" placeholder="First Name" /> | |
66 | + <div className="form-control-feedback"> | |
67 | + <i className="icon-search4 text-size-base text-muted"></i> | |
68 | + </div> | |
69 | + </div> | |
70 | + </form> | |
71 | + </div> | |
72 | + <div className="category-content"> | |
73 | + <form action="#"> | |
74 | + <div className="has-feedback has-feedback-left"> | |
75 | + <input type="search" className="form-control" placeholder="Last Name" /> | |
76 | + <div className="form-control-feedback"> | |
77 | + <i className="icon-search4 text-size-base text-muted"></i> | |
78 | + </div> | |
79 | + </div> | |
80 | + </form> | |
81 | + </div> | |
82 | + <div className="category-content"> | |
83 | + <form action="#"> | |
84 | + <div className="has-feedback has-feedback-left"> | |
85 | + <div className="btn-group"> | |
86 | + <button type="button" className="dropdown-toggle form-control" data-toggle="dropdown"> | |
87 | + <span data-bind="label">Select className</span> <span className="caret"></span> | |
88 | + </button> | |
89 | + <ul className="dropdown-menu" role="menu"> | |
90 | + <li><a href="#">Item 1</a></li> | |
91 | + <li><a href="#">Another item</a></li> | |
92 | + <li><a href="#">This is a longer item that will not fit properly</a></li> | |
93 | + </ul> | |
94 | + </div> | |
95 | + <div className="form-control-feedback"> | |
96 | + <i className="icon-search4 text-size-base text-muted"></i> | |
97 | + </div> | |
98 | + </div> | |
99 | + </form> | |
100 | + </div> | |
101 | + </div> | |
102 | + | |
103 | + | |
104 | + </div> | |
105 | + </div> | |
106 | + </div> | |
107 | +</div> | |
108 | + ); | |
109 | + }; | |
110 | + | |
111 | +}; | ... | ... |
imports/client/views/org/admin/students/index.js
... | ... | @@ -9,7 +9,7 @@ import { Loading } from '/imports/client/components/Loadi |
9 | 9 | |
10 | 10 | import { Orgs } from '/imports/collections/orgs/index'; |
11 | 11 | import { Users } from '/imports/collections/users/index'; |
12 | -import { StudentDataView } from './StudentDataView'; | |
12 | +import { StudentView } from './StudentView'; | |
13 | 13 | import { Students } from '/imports/collections/students/methods' |
14 | 14 | |
15 | 15 | |
... | ... | @@ -51,4 +51,4 @@ const reduxTick = (props, onData) => { |
51 | 51 | export const StudentDataController = composeAll( |
52 | 52 | composeWithTracker(meteorTick, Loading), |
53 | 53 | compose(reduxTick, Loading), |
54 | -)(StudentDataView); | |
54 | +)(StudentView); | ... | ... |
package.json
... | ... | @@ -67,6 +67,8 @@ |
67 | 67 | "bootstrap": "^4.0.0-alpha.6", |
68 | 68 | "jquery": "^2.2.4", |
69 | 69 | "jquery-validation": "^1.15.1", |
70 | + "material-fabmenu": "0.0.1", | |
71 | + "material-ui": "^0.17.1", | |
70 | 72 | "moment": "^2.18.0", |
71 | 73 | "react": "^15.4.2", |
72 | 74 | "react-addons-css-transition-group": "^15.4.2", |
... | ... | @@ -80,6 +82,7 @@ |
80 | 82 | "react-router": "^2.6.1", |
81 | 83 | "react-router-bootstrap": "^0.23.1", |
82 | 84 | "react-svg": "^2.1.19", |
85 | + "react-tap-event-plugin": "^2.0.1", | |
83 | 86 | "reactstrap": "^4.3.0", |
84 | 87 | "velocity-animate": "^1.4.3", |
85 | 88 | "velocity-react": "^1.2.1" | ... | ... |
public/assets/images/download.png
32.8 KB
public/assets/images/download1.png
41.3 KB
public/assets/images/download2.png
34.4 KB
public/assets/images/download3.png
37.2 KB
public/css/assets/css/components.css
... | ... | @@ -144,17 +144,15 @@ a.badge, |
144 | 144 | * Styles for sidebar components, main navigation and sidebar itself |
145 | 145 | * |
146 | 146 | * Version: 1.2 |
147 | - * Latest update: Mar 10, 2016 | |
147 | + * Latest update: Nov 25, 2015 | |
148 | 148 | * |
149 | 149 | * ---------------------------------------------------------------------------- */ |
150 | 150 | .sidebar { |
151 | + background-color: #263238; | |
151 | 152 | color: #fff; |
152 | 153 | position: relative; |
153 | 154 | width: 100%; |
154 | 155 | display: none; |
155 | -} | |
156 | -.sidebar .sidebar-content { | |
157 | - background-color: #263238; | |
158 | 156 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); |
159 | 157 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); |
160 | 158 | } |
... | ... | @@ -162,8 +160,7 @@ a.badge, |
162 | 160 | .sidebar { |
163 | 161 | display: table-cell; |
164 | 162 | vertical-align: top; |
165 | - width: 280px; | |
166 | - padding-right: 20px; | |
163 | + width: 260px; | |
167 | 164 | } |
168 | 165 | } |
169 | 166 | .sidebar-main { |
... | ... | @@ -179,31 +176,28 @@ a.badge, |
179 | 176 | @media (min-width: 769px) { |
180 | 177 | .sidebar-opposite-visible .sidebar-opposite { |
181 | 178 | display: table-cell; |
182 | - padding-right: 0; | |
183 | - padding-left: 20px; | |
184 | 179 | } |
185 | 180 | } |
186 | 181 | .sidebar-default { |
187 | - color: #333333; | |
188 | -} | |
189 | -.sidebar-default .sidebar-content { | |
190 | 182 | background-color: #fff; |
183 | + color: #333333; | |
191 | 184 | } |
192 | 185 | .sidebar-content { |
193 | 186 | position: relative; |
194 | - border-radius: 3px; | |
195 | - margin-bottom: 20px; | |
187 | + padding-bottom: 8px; | |
196 | 188 | } |
197 | 189 | .sidebar-all-hidden .sidebar-main, |
198 | 190 | .sidebar-all-hidden .sidebar-secondary, |
199 | 191 | .sidebar-main-hidden .sidebar-main, |
192 | +.sidebar-detached-hidden .sidebar-detached > .sidebar, | |
200 | 193 | .sidebar-secondary-hidden .sidebar-secondary { |
201 | 194 | display: none; |
202 | 195 | } |
203 | 196 | @media (max-width: 768px) { |
204 | 197 | .sidebar-mobile-main .sidebar-main, |
205 | 198 | .sidebar-mobile-secondary .sidebar-secondary, |
206 | - .sidebar-mobile-opposite .sidebar-opposite { | |
199 | + .sidebar-mobile-opposite .sidebar-opposite, | |
200 | + .sidebar-mobile-detached .sidebar-detached > .sidebar { | |
207 | 201 | display: block; |
208 | 202 | } |
209 | 203 | } |
... | ... | @@ -216,19 +210,12 @@ a.badge, |
216 | 210 | } |
217 | 211 | .category-title > span { |
218 | 212 | display: block; |
219 | -} | |
220 | -.category-title:not(.h5):not(.h6) > span { | |
221 | - padding-top: 2px; | |
213 | + margin-top: 2px; | |
222 | 214 | text-transform: uppercase; |
223 | 215 | font-weight: 500; |
224 | 216 | font-size: 11px; |
225 | 217 | line-height: 1.82; |
226 | 218 | } |
227 | -.category-title.h5, | |
228 | -.category-title.h6 { | |
229 | - padding: 20px; | |
230 | - border-bottom: 0; | |
231 | -} | |
232 | 219 | .category-title > i { |
233 | 220 | position: absolute; |
234 | 221 | right: 20px; |
... | ... | @@ -241,10 +228,6 @@ a.badge, |
241 | 228 | top: 50%; |
242 | 229 | margin-top: -8px; |
243 | 230 | } |
244 | -.category-title + .sidebar-user { | |
245 | - padding-top: 5px; | |
246 | - padding-bottom: 5px; | |
247 | -} | |
248 | 231 | .sidebar-default .category-title { |
249 | 232 | border-bottom-color: #ddd; |
250 | 233 | } |
... | ... | @@ -272,7 +255,7 @@ a.badge, |
272 | 255 | .sidebar-user-material .navigation { |
273 | 256 | padding: 8px 0; |
274 | 257 | } |
275 | -.sidebar-user-material:first-child .category-content { | |
258 | +.sidebar-detached .sidebar-user-material:first-child .category-content { | |
276 | 259 | border-top-right-radius: 3px; |
277 | 260 | border-top-left-radius: 3px; |
278 | 261 | } |
... | ... | @@ -352,8 +335,7 @@ a.badge, |
352 | 335 | list-style: none; |
353 | 336 | position: relative; |
354 | 337 | } |
355 | -.sidebar-category > .h5 + .category-content > .navigation, | |
356 | -.sidebar-category > .h6 + .category-content > .navigation { | |
338 | +.sidebar-user + .sidebar-category .navigation { | |
357 | 339 | padding-top: 0; |
358 | 340 | } |
359 | 341 | .navigation .hidden-ul { |
... | ... | @@ -448,7 +430,7 @@ a.badge, |
448 | 430 | .navigation > li.active > a, |
449 | 431 | .navigation > li.active > a:hover, |
450 | 432 | .navigation > li.active > a:focus { |
451 | - background-color: #26A69A; | |
433 | + background-color: #304047; | |
452 | 434 | color: #fff; |
453 | 435 | } |
454 | 436 | .navigation > li.active > a > [class*=text-] { |
... | ... | @@ -658,85 +640,162 @@ a.badge, |
658 | 640 | min-height: 32px; |
659 | 641 | } |
660 | 642 | @media (min-width: 769px) { |
661 | - .sidebar-fixed.affix { | |
643 | + .sidebar-fixed .sidebar-content { | |
644 | + position: fixed; | |
645 | + width: 260px; | |
646 | + max-height: 100%; | |
647 | + overflow: auto; | |
648 | + top: 50px; | |
649 | + bottom: 50px; | |
650 | + margin-bottom: -50px; | |
651 | + } | |
652 | + .sidebar-xs .sidebar-fixed.sidebar-main .sidebar-content { | |
653 | + width: 56px; | |
654 | + } | |
655 | + .sidebar-fixed.sidebar-default .sidebar-content { | |
656 | + width: 260px; | |
657 | + } | |
658 | + .sidebar-fixed-expanded .sidebar-fixed.sidebar-main { | |
659 | + position: fixed; | |
660 | + display: block; | |
661 | + height: 100%; | |
662 | + z-index: 1001; | |
663 | + } | |
664 | + .sidebar-fixed-expanded .sidebar-fixed.sidebar-main .sidebar-content { | |
662 | 665 | position: fixed; |
666 | + } | |
667 | + .sidebar-xs .sidebar-fixed-expanded .sidebar-fixed.sidebar-main { | |
663 | 668 | width: 260px; |
669 | + } | |
670 | + .sidebar-fixed-expanded .content-wrapper { | |
671 | + padding-left: 56px; | |
672 | + } | |
673 | +} | |
674 | +.sidebar-xs-indicator .sidebar-fixed .sidebar-content { | |
675 | + top: 0!important; | |
676 | +} | |
677 | +@media (min-width: 769px) { | |
678 | + .has-detached-left .container-detached { | |
679 | + float: right; | |
680 | + margin-left: -260px; | |
681 | + width: 100%; | |
682 | + } | |
683 | + .has-detached-left .content-detached { | |
684 | + margin-left: 280px; | |
685 | + } | |
686 | + .has-detached-left .sidebar-detached { | |
687 | + float: left; | |
688 | + } | |
689 | + .has-detached-right .container-detached { | |
690 | + float: left; | |
691 | + margin-right: -260px; | |
692 | + width: 100%; | |
693 | + } | |
694 | + .has-detached-right .content-detached { | |
695 | + margin-right: 280px; | |
696 | + } | |
697 | + .has-detached-right .sidebar-detached { | |
698 | + float: right; | |
699 | + } | |
700 | + .has-detached-right .sidebar-detached.affix { | |
701 | + right: 20px; | |
702 | + } | |
703 | + .sidebar-detached-hidden .container-detached { | |
704 | + float: none; | |
705 | + margin: 0; | |
706 | + } | |
707 | + .sidebar-detached-hidden .content-detached { | |
708 | + margin: 0; | |
709 | + } | |
710 | + .sidebar-detached-hidden .sidebar-detached { | |
711 | + float: none; | |
712 | + } | |
713 | +} | |
714 | +.sidebar-detached .navigation.nav > .active > .hidden-ul { | |
715 | + display: block; | |
716 | +} | |
717 | +@media (max-width: 768px) { | |
718 | + .sidebar-detached .navigation.nav > li > .hidden-ul { | |
719 | + display: block; | |
720 | + } | |
721 | +} | |
722 | +.sidebar-detached.affix { | |
723 | + position: static; | |
724 | +} | |
725 | +@media (min-width: 769px) { | |
726 | + .sidebar-detached { | |
727 | + display: block; | |
728 | + position: relative; | |
729 | + margin-bottom: 0; | |
730 | + } | |
731 | + .sidebar-detached > .sidebar { | |
732 | + margin-bottom: 0; | |
733 | + display: block; | |
734 | + border-radius: 3px; | |
735 | + } | |
736 | + .sidebar-detached.affix { | |
737 | + position: fixed; | |
664 | 738 | top: 20px; |
665 | 739 | bottom: 20px; |
666 | 740 | -webkit-transition: bottom ease-in-out 0.15s; |
667 | 741 | -o-transition: bottom ease-in-out 0.15s; |
668 | 742 | transition: bottom ease-in-out 0.15s; |
669 | 743 | } |
670 | - .sidebar-fixed.affix .sidebar-content { | |
744 | + .sidebar-detached.affix > .sidebar { | |
671 | 745 | max-height: 100%; |
672 | 746 | overflow-y: auto; |
673 | 747 | } |
674 | - .sidebar-fixed.affix.fixed-sidebar-space { | |
675 | - bottom: 60px; | |
748 | + .sidebar-detached.fixed-sidebar-space { | |
749 | + bottom: 80px; | |
676 | 750 | } |
677 | - .navbar-bottom .sidebar-fixed.affix.fixed-sidebar-space { | |
751 | + .navbar-bottom .sidebar-detached.fixed-sidebar-space { | |
678 | 752 | bottom: 90px; |
679 | 753 | } |
680 | - .navbar-bottom-lg .sidebar-fixed.affix.fixed-sidebar-space { | |
754 | + .navbar-bottom-lg .sidebar-detached.fixed-sidebar-space { | |
681 | 755 | bottom: 94px; |
682 | 756 | } |
683 | - .navbar-bottom-sm .sidebar-fixed.affix.fixed-sidebar-space { | |
757 | + .navbar-bottom-sm .sidebar-detached.fixed-sidebar-space { | |
684 | 758 | bottom: 88px; |
685 | 759 | } |
686 | - .navbar-bottom-xs .sidebar-fixed.affix.fixed-sidebar-space { | |
760 | + .navbar-bottom-xs .sidebar-detached.fixed-sidebar-space { | |
687 | 761 | bottom: 86px; |
688 | 762 | } |
689 | - .navbar-fixed .sidebar-fixed.affix { | |
763 | + .navbar-fixed .sidebar-detached { | |
690 | 764 | top: 90px; |
691 | 765 | } |
692 | - .navbar-fixed-lg .sidebar-fixed.affix { | |
766 | + .navbar-fixed-lg .sidebar-detached { | |
693 | 767 | top: 94px; |
694 | 768 | } |
695 | - .navbar-fixed-sm .sidebar-fixed.affix { | |
769 | + .navbar-fixed-sm .sidebar-detached { | |
696 | 770 | top: 88px; |
697 | 771 | } |
698 | - .navbar-fixed-xs .sidebar-fixed.affix { | |
772 | + .navbar-fixed-xs .sidebar-detached { | |
699 | 773 | top: 86px; |
700 | 774 | } |
701 | - .sidebar-xs .sidebar-fixed.affix { | |
702 | - width: 56px; | |
703 | - } | |
704 | -} | |
705 | -.sidebar-fixed-expanded .sidebar-main { | |
706 | - position: absolute; | |
707 | - display: block; | |
708 | - z-index: 1001; | |
709 | -} | |
710 | -.sidebar-xs .sidebar-fixed-expanded .sidebar-main { | |
711 | - width: 280px; | |
712 | -} | |
713 | -.sidebar-fixed-expanded .content-wrapper { | |
714 | - padding-left: 76px; | |
715 | 775 | } |
716 | 776 | @media (min-width: 769px) { |
717 | - .sidebar-separate .sidebar-content { | |
777 | + .sidebar-separate { | |
718 | 778 | background-color: transparent; |
719 | 779 | } |
720 | 780 | .sidebar-separate .sidebar-category { |
721 | 781 | background-color: #263238; |
722 | 782 | border-radius: 3px; |
723 | 783 | margin-bottom: 20px; |
724 | - -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); | |
725 | - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); | |
726 | 784 | } |
727 | - .sidebar-separate.sidebar-default .sidebar-content { | |
785 | + .sidebar-separate.sidebar-default { | |
728 | 786 | background-color: transparent; |
729 | - border: 0; | |
730 | 787 | -webkit-box-shadow: none; |
731 | 788 | box-shadow: none; |
732 | 789 | } |
733 | 790 | .sidebar-separate.sidebar-default .sidebar-category { |
734 | 791 | background-color: #fff; |
792 | + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); | |
793 | + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); | |
735 | 794 | } |
736 | 795 | } |
737 | 796 | @media (min-width: 769px) { |
738 | 797 | .sidebar-xs .sidebar-main { |
739 | - width: 76px; | |
798 | + width: 56px; | |
740 | 799 | } |
741 | 800 | .sidebar-xs .sidebar-main .sidebar-category { |
742 | 801 | display: none; |
... | ... | @@ -789,7 +848,7 @@ a.badge, |
789 | 848 | position: absolute; |
790 | 849 | top: 0; |
791 | 850 | right: -260px; |
792 | - background-color: #26A69A; | |
851 | + background-color: #304047; | |
793 | 852 | padding: 12px 20px; |
794 | 853 | width: 260px; |
795 | 854 | text-align: left; |
... | ... | @@ -874,7 +933,7 @@ a.badge, |
874 | 933 | .sidebar-xs .sidebar-main .navigation > .navigation-header > span { |
875 | 934 | display: none; |
876 | 935 | } |
877 | - .sidebar-xs .sidebar-main .sidebar-user { | |
936 | + .sidebar-xs .sidebar-main .sidebar-user .category-content { | |
878 | 937 | padding-left: 0; |
879 | 938 | padding-right: 0; |
880 | 939 | } |
... | ... | @@ -951,12 +1010,10 @@ a.badge, |
951 | 1010 | } |
952 | 1011 | .sidebar .panel-group .panel { |
953 | 1012 | border-radius: 0; |
954 | - border-bottom: 1px solid #ddd; | |
955 | - -webkit-box-shadow: none; | |
956 | - box-shadow: none; | |
1013 | + border-width: 0 0 1px 0; | |
957 | 1014 | } |
958 | 1015 | .sidebar .panel-group .panel:first-child { |
959 | - border-top: 1px solid #ddd; | |
1016 | + border-top-width: 1px; | |
960 | 1017 | } |
961 | 1018 | .sidebar .panel-group .panel + .panel { |
962 | 1019 | margin-top: 0; |
... | ... | @@ -1047,22 +1104,6 @@ a.badge, |
1047 | 1104 | background-color: rgba(0, 0, 0, 0.2); |
1048 | 1105 | } |
1049 | 1106 | } |
1050 | -@media (max-width: 768px) { | |
1051 | - .sidebar .nav-tabs { | |
1052 | - border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
1053 | - border-bottom-right-radius: 0; | |
1054 | - border-bottom-left-radius: 0; | |
1055 | - -webkit-box-shadow: none; | |
1056 | - box-shadow: none; | |
1057 | - } | |
1058 | -} | |
1059 | -.sidebar .tab-pane > .category-title:first-child { | |
1060 | - padding-top: 0; | |
1061 | -} | |
1062 | -.sidebar .tab-pane > .category-title:first-child .icons-list { | |
1063 | - top: 0; | |
1064 | - margin-top: 4px; | |
1065 | -} | |
1066 | 1107 | @media (min-width: 769px) { |
1067 | 1108 | .sidebar-default .nav-tabs > li > a { |
1068 | 1109 | background-color: #fafafa; |
... | ... | @@ -1074,12 +1115,6 @@ a.badge, |
1074 | 1115 | color: #333333; |
1075 | 1116 | border-bottom-color: #ddd; |
1076 | 1117 | } |
1077 | - .sidebar-default .nav-tabs > li:first-child > a { | |
1078 | - border-top-left-radius: 3px; | |
1079 | - } | |
1080 | - .sidebar-default .nav-tabs > li:last-child > a { | |
1081 | - border-top-right-radius: 3px; | |
1082 | - } | |
1083 | 1118 | .sidebar-default .nav-tabs > .active > a, |
1084 | 1119 | .sidebar-default .nav-tabs > .active > a:hover, |
1085 | 1120 | .sidebar-default .nav-tabs > .active > a:focus { |
... | ... | @@ -1094,11 +1129,6 @@ a.badge, |
1094 | 1129 | background-color: #fafafa; |
1095 | 1130 | } |
1096 | 1131 | } |
1097 | -@media (max-width: 768px) { | |
1098 | - .sidebar-default .nav-tabs { | |
1099 | - border-bottom-color: #ddd; | |
1100 | - } | |
1101 | -} | |
1102 | 1132 | @media (min-width: 769px) { |
1103 | 1133 | .sidebar-default .nav-justified > li:first-child .dropdown-menu:not(.dropdown-menu-right) { |
1104 | 1134 | left: -1px; |
... | ... | @@ -1119,17 +1149,6 @@ a.badge, |
1119 | 1149 | * ---------------------------------------------------------------------------- */ |
1120 | 1150 | .page-container { |
1121 | 1151 | position: relative; |
1122 | - padding: 20px 20px; | |
1123 | - padding-bottom: 60px; | |
1124 | -} | |
1125 | -.navbar-bottom .page-container, | |
1126 | -.navbar-bottom-lg .page-container, | |
1127 | -.navbar-bottom-sm .page-container, | |
1128 | -.navbar-bottom-xs .page-container { | |
1129 | - padding-bottom: 20px; | |
1130 | -} | |
1131 | -.page-header + .page-container { | |
1132 | - padding-top: 0; | |
1133 | 1152 | } |
1134 | 1153 | @media (min-width: 769px) { |
1135 | 1154 | .page-container { |
... | ... | @@ -1157,6 +1176,20 @@ a.badge, |
1157 | 1176 | vertical-align: top; |
1158 | 1177 | } |
1159 | 1178 | } |
1179 | +.content { | |
1180 | + padding: 0 20px 60px 20px; | |
1181 | +} | |
1182 | +.content:after { | |
1183 | + content: ''; | |
1184 | + display: table; | |
1185 | + clear: both; | |
1186 | +} | |
1187 | +.content:first-child { | |
1188 | + padding-top: 20px; | |
1189 | +} | |
1190 | +body[class*=navbar-bottom] .content { | |
1191 | + padding-bottom: 20px; | |
1192 | +} | |
1160 | 1193 | /* ------------------------------------------------------------------------------ |
1161 | 1194 | * |
1162 | 1195 | * # Boxed layout |
... | ... | @@ -1167,66 +1200,42 @@ a.badge, |
1167 | 1200 | * Latest update: May 25, 2015 |
1168 | 1201 | * |
1169 | 1202 | * ---------------------------------------------------------------------------- */ |
1170 | -.layout-boxed .navbar .navbar-boxed, | |
1171 | -.layout-boxed .page-header-content, | |
1172 | -.layout-boxed .page-header .breadcrumb-boxed, | |
1173 | -.layout-boxed .page-container, | |
1174 | -.layout-boxed .footer-boxed { | |
1203 | +.layout-boxed { | |
1204 | + background: url(../images/backgrounds/boxed_bg.png) repeat; | |
1205 | +} | |
1206 | +.layout-boxed > .navbar { | |
1175 | 1207 | margin-left: auto; |
1176 | 1208 | margin-right: auto; |
1177 | 1209 | } |
1178 | -@media (min-width: 769px) { | |
1179 | - .layout-boxed .navbar:not(.navbar-component) { | |
1180 | - padding-left: 0; | |
1181 | - padding-right: 0; | |
1182 | - } | |
1183 | - .layout-boxed .navbar:not(.navbar-component) .navbar-boxed { | |
1184 | - position: relative; | |
1185 | - padding-left: 20px; | |
1186 | - padding-right: 20px; | |
1187 | - } | |
1188 | - .layout-boxed .navbar:not(.navbar-component) .navbar-boxed .navbar-header { | |
1189 | - margin-left: 0; | |
1190 | - } | |
1191 | - .layout-boxed .navbar:not(.navbar-component) .navbar-boxed .navbar-brand { | |
1192 | - padding-left: 0; | |
1193 | - } | |
1194 | - .layout-boxed .navbar:not(.navbar-component) .navbar-boxed .mega-menu-wide .dropdown-content { | |
1195 | - left: 20px; | |
1196 | - right: 20px; | |
1197 | - } | |
1198 | -} | |
1199 | -.layout-boxed .page-header .breadcrumb-boxed { | |
1200 | - padding-left: 20px; | |
1201 | - padding-right: 20px; | |
1210 | +.layout-boxed .page-container { | |
1211 | + background-color: #eeeded; | |
1212 | + margin-left: auto; | |
1213 | + margin-right: auto; | |
1214 | + min-width: 0; | |
1202 | 1215 | } |
1203 | 1216 | @media (min-width: 769px) { |
1204 | 1217 | .layout-boxed .page-container, |
1205 | - .layout-boxed .navbar .navbar-boxed, | |
1206 | - .layout-boxed .page-header .breadcrumb-boxed, | |
1207 | - .layout-boxed .page-header-content, | |
1208 | - .layout-boxed .footer-boxed { | |
1218 | + .layout-boxed > .navbar { | |
1209 | 1219 | width: 769px; |
1210 | 1220 | } |
1211 | 1221 | } |
1212 | 1222 | @media (min-width: 1025px) { |
1213 | 1223 | .layout-boxed .page-container, |
1214 | - .layout-boxed .navbar .navbar-boxed, | |
1215 | - .layout-boxed .page-header .breadcrumb-boxed, | |
1216 | - .layout-boxed .page-header-content, | |
1217 | - .layout-boxed .footer-boxed { | |
1224 | + .layout-boxed > .navbar { | |
1218 | 1225 | width: 1025px; |
1219 | 1226 | } |
1220 | 1227 | } |
1221 | 1228 | @media (min-width: 1200px) { |
1222 | 1229 | .layout-boxed .page-container, |
1223 | - .layout-boxed .navbar .navbar-boxed, | |
1224 | - .layout-boxed .page-header .breadcrumb-boxed, | |
1225 | - .layout-boxed .page-header-content, | |
1226 | - .layout-boxed .footer-boxed { | |
1230 | + .layout-boxed > .navbar { | |
1227 | 1231 | width: 1200px; |
1228 | 1232 | } |
1229 | 1233 | } |
1234 | +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { | |
1235 | + .layout-boxed { | |
1236 | + background: url(../images/backgrounds/boxed_bg_retina.png) repeat; | |
1237 | + } | |
1238 | +} | |
1230 | 1239 | /* ------------------------------------------------------------------------------ |
1231 | 1240 | * |
1232 | 1241 | * # Footer |
... | ... | @@ -1239,8 +1248,6 @@ a.badge, |
1239 | 1248 | * ---------------------------------------------------------------------------- */ |
1240 | 1249 | .footer { |
1241 | 1250 | position: absolute; |
1242 | - left: 20px; | |
1243 | - right: 20px; | |
1244 | 1251 | bottom: 30px; |
1245 | 1252 | } |
1246 | 1253 | .footer:not(.navbar-fixed-bottom) { |
... | ... | @@ -11841,7 +11848,12 @@ img ~ .legitRipple-ripple { |
11841 | 11848 | } |
11842 | 11849 | .fab-menu-top-left, |
11843 | 11850 | .fab-menu-top-right { |
11851 | + margin-top: -26px; | |
11852 | +} | |
11853 | +.fab-menu-top-left.affix, | |
11854 | +.fab-menu-top-right.affix { | |
11844 | 11855 | top: 20px; |
11856 | + margin-top: 0; | |
11845 | 11857 | } |
11846 | 11858 | .content-wrapper > .fab-menu-top-left, |
11847 | 11859 | .content-wrapper > .fab-menu-top-right { |
... | ... | @@ -14496,7 +14508,7 @@ a.plupload_disabled:focus { |
14496 | 14508 | * |
14497 | 14509 | * # Dropzone file uploader |
14498 | 14510 | * |
14499 | - * Open source library that provides drag’n’drop file uploads with image previews | |
14511 | + * Open source library that provides drag’n’drop file uploads with image previews | |
14500 | 14512 | * |
14501 | 14513 | * Version: 1.2 |
14502 | 14514 | * Latest update: Mar 10, 2016 |
... | ... | @@ -17741,7 +17753,7 @@ thead .htCollapseButton:after { |
17741 | 17753 | * |
17742 | 17754 | * # Responsive extension |
17743 | 17755 | * |
17744 | -* Optimise the table's layout for different screen sizes through the dynamic | |
17756 | +* Optimise the table's layout for different screen sizes through the dynamic | |
17745 | 17757 | * insertion and removal of columns from the table |
17746 | 17758 | * |
17747 | 17759 | * Version: 1.0 |
... | ... | @@ -18418,7 +18430,7 @@ thead .htCollapseButton:after { |
18418 | 18430 | margin-top: 0; |
18419 | 18431 | } |
18420 | 18432 | .task-details > li:before { |
18421 | - content: '•'; | |
18433 | + content: '•'; | |
18422 | 18434 | position: absolute; |
18423 | 18435 | right: 8px; |
18424 | 18436 | color: #999; |
... | ... | @@ -18769,7 +18781,7 @@ thead .htCollapseButton:after { |
18769 | 18781 | font-size: 12px; |
18770 | 18782 | } |
18771 | 18783 | .timeline-time span:before { |
18772 | - content: '•'; | |
18784 | + content: '•'; | |
18773 | 18785 | display: inline-block; |
18774 | 18786 | margin-right: 5px; |
18775 | 18787 | position: relative; | ... | ... |