1 | <!DOCTYPE html> |
---|
2 | <!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js" lang="{{=T.accepted_language or 'en'}}"> <!--<![endif]--> |
---|
3 | <head> |
---|
4 | <meta charset="utf-8"> |
---|
5 | <!-- www.phpied.com/conditional-comments-block-downloads/ --> |
---|
6 | <!-- Always force latest IE rendering engine |
---|
7 | (even in intranet) & Chrome Frame |
---|
8 | Remove this if you use the .htaccess --> |
---|
9 | <meta http-equiv="X-UA-Compatible" content="IE=edge{{=not request.is_local and ',chrome=1' or ''}}"> |
---|
10 | <!-- Mobile Viewport Fix |
---|
11 | j.mp/mobileviewport & davidbcalhoun.com/2010/viewport-metatag |
---|
12 | device-width: Occupy full width of the screen in its current orientation |
---|
13 | initial-scale = 1.0 retains dimensions instead of zooming out if page height > device height |
---|
14 | user-scalable = yes allows the user to zoom in --> |
---|
15 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
---|
16 | <title>{{=response.title or request.application}}</title> |
---|
17 | <!-- http://dev.w3.org/html5/markup/meta.name.html --> |
---|
18 | <meta name="application-name" content="{{=request.application}}"> |
---|
19 | <!-- Speaking of Google, don't forget to set your site up: |
---|
20 | http://google.com/webmasters --> |
---|
21 | <meta name="google-site-verification" content=""> |
---|
22 | <!-- include stylesheets --> |
---|
23 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"/> |
---|
24 | <link rel="stylesheet" href="{{=URL('static','css/bootstrap.min.css')}}"/> |
---|
25 | <link rel="stylesheet" href="{{=URL('static','css/web2py-bootstrap4.css')}}"/> |
---|
26 | <link rel="shortcut icon" href="{{=URL('static','images/favicon.ico')}}" type="image/x-icon"> |
---|
27 | <link rel="apple-touch-icon" href="{{=URL('static','images/favicon.png')}}"> |
---|
28 | |
---|
29 | <!-- All JavaScript at the bottom, except for Modernizr which enables |
---|
30 | HTML5 elements & feature detects --> |
---|
31 | <script src="{{=URL('static','js/modernizr-2.8.3.min.js')}}"></script> |
---|
32 | <!-- Favicons --> |
---|
33 | {{include 'web2py_ajax.html'}} <!-- this includes jquery.js, calendar.js/.css and web2py.js --> |
---|
34 | {{block head}}{{end}} |
---|
35 | </head> |
---|
36 | <body> |
---|
37 | <div class="w2p_flash alert alert-dismissable">{{=response.flash or ''}}</div> |
---|
38 | <!-- Navbar ======================================= --> |
---|
39 | <nav class="navbar navbar-light navbar-expand-md bg-faded bg-dark navbar-dark justify-content-center"> |
---|
40 | <div class="navbar-brand d-flex w-50 mr-auto"><a style="color: white;" href="{{=URL('show', 'ous')}}">Open RLabs</a> |
---|
41 | <span id="version" style="font-size: 0.7em;font-style: oblique;color: gray;font-weight: bold;">v1.2.1</span></div> |
---|
42 | <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation"> |
---|
43 | <span class="navbar-toggler-icon"></span> |
---|
44 | </button> |
---|
45 | <div class="navbar-collapse collapse w-100" id="navbarNavDropdown"> |
---|
46 | <ul class="navbar-nav w-100 justify-content-center"> |
---|
47 | {{for _item in response.menu or []:}} |
---|
48 | {{if len(_item)<4 or not _item[3]:}} |
---|
49 | <li class="nav-item {{if _item[1]:}}active{{pass}}"> |
---|
50 | <a class="nav-link" href="{{=_item[2]}}">{{=_item[0]}}</a> |
---|
51 | </li> |
---|
52 | {{else:}} |
---|
53 | <li class="nav-item dropdown"> |
---|
54 | <a class="nav-link dropdown-toggle" href="{{=_item[2]}}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{=_item[0]}}</a> |
---|
55 | <div class="dropdown-menu"> |
---|
56 | {{for _subitem in _item[3]:}} |
---|
57 | <a class="dropdown-item" href="{{=_subitem[2]}}">{{=_subitem[0]}}</a> |
---|
58 | {{pass}} |
---|
59 | </div> |
---|
60 | </li> |
---|
61 | {{pass}} |
---|
62 | {{pass}} |
---|
63 | </ul> |
---|
64 | <!-- |
---|
65 | <form class="form-inline my-2 my-lg-0"> |
---|
66 | <input class="form-control mr-sm-2" type="text" placeholder="Search"> |
---|
67 | </form> |
---|
68 | --> |
---|
69 | {{if 'auth' in globals():}} |
---|
70 | <ul class="nav navbar-nav ml-auto w-100 justify-content-end"> |
---|
71 | <li class="nav-item"> |
---|
72 | <a class="nav-link" target="_blank" href="http://wiki.openrlabs.es/PreguntasFrecuentes">FAQs</a> |
---|
73 | </li> |
---|
74 | <li class="nav-item dropdown"> |
---|
75 | <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> |
---|
76 | {{if auth.user:}}{{=auth.user.first_name}}{{else:}}LOGIN{{pass}} |
---|
77 | </a> |
---|
78 | <div class="dropdown-menu dropdown-menu-right"> |
---|
79 | {{if auth.user:}} |
---|
80 | {{ if auth.has_membership(group_id='admin'):}} |
---|
81 | <a class="dropdown-item" href="{{=URL('setup', 'index')}}">{{=T('Setup')}}</a> |
---|
82 | {{pass}} |
---|
83 | {{if 'profile' not in auth.settings.actions_disabled:}} |
---|
84 | <a class="dropdown-item" href="{{=URL('default','user/profile')}}">{{=T('Profile')}}</a> |
---|
85 | {{pass}} |
---|
86 | {{if 'change_password' not in auth.settings.actions_disabled:}} |
---|
87 | <a class="dropdown-item" href="{{=URL('default','user/change_password')}}">{{=T('Change Password')}}</a> |
---|
88 | {{pass}} |
---|
89 | <a class="dropdown-item" href="{{=URL('default','user/logout')}}">{{=T('Logout')}}</a> |
---|
90 | {{else:}} |
---|
91 | <a class="dropdown-item" href="{{=URL('default','user/login')}}">{{=T('Login')}}</a> |
---|
92 | {{if 'register' not in auth.settings.actions_disabled:}} |
---|
93 | <a class="dropdown-item" href="{{=URL('default','user/register')}}">{{=T('Sign up')}}</a> |
---|
94 | {{pass}} |
---|
95 | {{if 'retrieve_password' not in auth.settings.actions_disabled:}} |
---|
96 | <a class="dropdown-item" href="{{=URL('default','user/retrieve_password')}}">{{=T('Lost Password')}}</a> |
---|
97 | {{pass}} |
---|
98 | {{pass}} |
---|
99 | |
---|
100 | </div> |
---|
101 | </li> |
---|
102 | </ul> |
---|
103 | {{pass}} |
---|
104 | </div> |
---|
105 | </nav> |
---|
106 | |
---|
107 | <!-- Masthead ===================================== --> |
---|
108 | {{block header}} |
---|
109 | {{end}} |
---|
110 | <!-- Main ========================================= --> |
---|
111 | <!-- Begin page content --> |
---|
112 | <div class="container-fluid main-container"> |
---|
113 | {{include}} |
---|
114 | {{=response.toolbar() if response.show_toolbar else ''}} |
---|
115 | </div> |
---|
116 | |
---|
117 | {{block footer}} <!-- this is default footer --> |
---|
118 | |
---|
119 | <footer class="footer container-fluid"> |
---|
120 | <div class="row"> |
---|
121 | <div class="col-md-12"> |
---|
122 | <div class="copyright pull-left">{{=T('Copyright')}} © {{=request.now.year}}</div> |
---|
123 | <div id="poweredBy" class="pull-right"> |
---|
124 | {{=T('Powered by')}} |
---|
125 | <a href="http://www.web2py.com/">web2py</a> |
---|
126 | </div> |
---|
127 | </div> |
---|
128 | </div> |
---|
129 | </footer> |
---|
130 | {{end}} |
---|
131 | <!-- The javascript =============================== --> |
---|
132 | <script src="{{=URL('static','js/bootstrap.bundle.min.js')}}"></script> |
---|
133 | <script src="{{=URL('static','js/web2py-bootstrap4.js')}}"></script> |
---|
134 | {{block page_js}}{{end page_js}} |
---|
135 | {{if response.google_analytics_id:}} |
---|
136 | <!-- Analytics ==================================== --> |
---|
137 | <script src="{{=URL('static','js/analytics.min.js')}}"></script> |
---|
138 | <script type="text/javascript"> |
---|
139 | analytics.initialize({ |
---|
140 | 'Google Analytics':{trackingId:'{{=response.google_analytics_id}}'} |
---|
141 | }); |
---|
142 | </script> |
---|
143 | {{pass}} |
---|
144 | </body> |
---|
145 | </html> |
---|