/app/views/backend/layouts/default.blade.php

https://github.com/diazp/snipe-it · PHP · 398 lines · 334 code · 59 blank · 5 comment · 1 complexity · 57f797ae23d5634a2f31647b0f61a5a3 MD5 · raw file

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <!-- Basic Page Needs
  5. ================================================== -->
  6. <meta charset="utf-8" />
  7. <title>
  8. @section('title')
  9. {{{ Setting::getSettings()->site_name }}}
  10. @show
  11. </title>
  12. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  13. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  14. <!-- bootstrap -->
  15. <link href="{{ asset('assets/css/bootstrap/bootstrap.css') }}" rel="stylesheet" />
  16. <link href="{{ asset('assets/css/bootstrap/bootstrap-overrides.css') }}" type="text/css" rel="stylesheet" />
  17. <!-- libraries -->
  18. <link href="{{ asset('assets/css/lib/uniform.default.css') }}" rel="stylesheet" type="text/css" />
  19. <link href="{{ asset('assets/css/lib/select2.css') }}" type="text/css" rel="stylesheet">
  20. <link href="{{ asset('assets/css/lib/bootstrap.datepicker.css') }}" type="text/css" rel="stylesheet">
  21. <link href="{{ asset('assets/css/lib/font-awesome.css') }}" type="text/css" rel="stylesheet" />
  22. <!-- global styles -->
  23. <link rel="stylesheet" type="text/css" href="{{ asset('assets/css/compiled/layout.css') }}">
  24. <link rel="stylesheet" type="text/css" href="{{ asset('assets/css/compiled/elements.css') }}">
  25. <link rel="stylesheet" type="text/css" href="{{ asset('assets/css/compiled/icons.css') }}">
  26. <!-- this page specific styles -->
  27. <link rel="stylesheet" href="{{ asset('assets/css/compiled/index.css') }}" type="text/css" media="screen" />
  28. <link rel="stylesheet" href="{{ asset('assets/css/compiled/user-list.css') }}" type="text/css" media="screen" />
  29. <link rel="stylesheet" href="{{ asset('assets/css/compiled/user-profile.css') }}" type="text/css" media="screen" />
  30. <link rel="stylesheet" href="{{ asset('assets/css/compiled/form-showcase.css') }}" type="text/css" media="screen" />
  31. <link rel="stylesheet" href="{{ asset('assets/css/lib/jquery.dataTables.css') }}" type="text/css" media="screen" />
  32. <!-- global header javascripts -->
  33. <script src="//code.jquery.com/jquery-latest.js"></script>
  34. <script src="{{ asset('assets/js/jquery.dataTables.js') }}"></script>
  35. <!-- open sans font -->
  36. <link href='//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
  37. <!--[if lt IE 9]>
  38. <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
  39. <![endif]-->
  40. <style>
  41. @section('styles')
  42. h3 {
  43. padding: 10px;
  44. }
  45. @show
  46. </style>
  47. </head>
  48. <body>
  49. <!-- navbar -->
  50. <!-- navbar -->
  51. <header class="navbar navbar-inverse" role="banner">
  52. <div class="navbar navbar-inverse">
  53. <div class="navbar-inner navbar-inverse">
  54. <div class="navbar-header">
  55. <button class="navbar-toggle" type="button" data-toggle="collapse" id="menu-toggler">
  56. <span class="sr-only">Toggle navigation</span>
  57. <span class="icon-bar"></span>
  58. <span class="icon-bar"></span>
  59. <span class="icon-bar"></span>
  60. </button>
  61. <a class="navbar-brand" href="/">{{{ Setting::getSettings()->site_name }}}</a>
  62. </div>
  63. <ul class="nav navbar-nav navbar-right">
  64. @if (Sentry::check())
  65. @if(Sentry::getUser()->hasAccess('admin'))
  66. <li class="dropdown">
  67. <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  68. <i class="icon-plus"></i> @lang('general.create')
  69. <b class="caret"></b>
  70. </a>
  71. <ul class="dropdown-menu">
  72. <li {{{ (Request::is('hardware/create') ? 'class="active"' : '') }}}>
  73. <a href="{{ route('create/hardware') }}">
  74. <i class="icon-plus"></i>
  75. @lang('general.asset')</a>
  76. </li>
  77. <li {{{ (Request::is('admin/licenses/create') ? 'class="active"' : '') }}}>
  78. <a href="{{ route('create/licenses') }}">
  79. <i class="icon-plus"></i>
  80. @lang('general.license')</a>
  81. </li>
  82. <li {{{ (Request::is('admin/users/create') ? 'class="active"' : '') }}}>
  83. <a href="{{ route('create/user') }}">
  84. <i class="icon-plus"></i>
  85. @lang('general.user')</a>
  86. </li>
  87. </ul>
  88. </li>
  89. @endif
  90. <li class="dropdown">
  91. <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  92. {{{ Lang::get('general.welcome', array('name' => Sentry::getUser()->first_name)) }}}
  93. <b class="caret"></b>
  94. </a>
  95. <ul class="dropdown-menu">
  96. <li{{{ (Request::is('account/profile') ? ' class="active"' : '') }}}>
  97. <a href="{{ route('profile') }}">
  98. <i class="icon-user"></i> @lang('general.profile')
  99. </a>
  100. </li>
  101. <li class="divider"></li>
  102. <li>
  103. <a href="{{ route('logout') }}">
  104. <i class="icon-off"></i>
  105. @lang('general.logout')
  106. </a>
  107. </li>
  108. </ul>
  109. </li>
  110. @if(Sentry::getUser()->hasAccess('admin'))
  111. <li class="dropdown">
  112. <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  113. <i class="icon-wrench icon-white"></i> @lang('general.admin')
  114. <b class="caret"></b>
  115. </a>
  116. <ul class="dropdown-menu">
  117. <li>
  118. <a href="{{ route('app') }}">
  119. <i class="icon-cog"></i> @lang('general.settings')
  120. </a>
  121. </li>
  122. <li{{ (Request::is('admin/groups*') ? ' class="active"' : '') }}>
  123. <a href="{{ URL::to('admin/groups') }}">
  124. <i class="icon-group"></i> @lang('general.groups')
  125. </a>
  126. </li>
  127. <li{{ (Request::is('admin/settings/statuslabels*') ? ' class="active"' : '') }}>
  128. <a href="{{ URL::to('admin/settings/statuslabels') }}">
  129. <i class="icon-list"></i> @lang('general.status_labels')
  130. </a>
  131. </li>
  132. <li{{ (Request::is('admin/settings/manufacturers*') ? ' class="active"' : '') }}>
  133. <a href="{{ URL::to('admin/settings/manufacturers') }}">
  134. <i class="icon-briefcase"></i> @lang('general.manufacturers')
  135. </a>
  136. </li>
  137. <li{{ (Request::is('admin/settings/suppliers*') ? ' class="active"' : '') }}>
  138. <a href="{{ URL::to('admin/settings/suppliers') }}">
  139. <i class="icon-credit-card"></i> @lang('general.suppliers')
  140. </a>
  141. </li>
  142. <li{{ (Request::is('admin/settings/categories*') ? ' class="active"' : '') }}>
  143. <a href="{{ URL::to('admin/settings/categories') }}">
  144. <i class="icon-th"></i> @lang('general.categories')
  145. </a>
  146. </li>
  147. <li{{ (Request::is('admin/settings/locations*') ? ' class="active"' : '') }}>
  148. <a href="{{ URL::to('admin/settings/locations') }}">
  149. <i class="icon-globe"></i> @lang('general.locations')
  150. </a>
  151. </li>
  152. <li{{ (Request::is('admin/settings/depreciations*') ? ' class="active"' : '') }}>
  153. <a href="{{ URL::to('admin/settings/depreciations') }}">
  154. <i class="icon-arrow-down"></i> @lang('general.depreciation')
  155. </a>
  156. </li>
  157. </ul>
  158. </li>
  159. @endif
  160. @else
  161. <li {{{ (Request::is('auth/signin') ? 'class="active"' : '') }}}><a href="{{ route('signin') }}">@lang('general.sign_in')</a></li>
  162. @endif
  163. </ul>
  164. </div>
  165. </div>
  166. </header>
  167. <!-- end navbar -->
  168. @if (Sentry::check())
  169. @if(Sentry::getUser()->hasAccess('admin'))
  170. <!-- sidebar -->
  171. <div id="sidebar-nav">
  172. <ul id="dashboard-menu">
  173. <li{{ (Request::is('hardware*') ? ' class="active"><div class="pointer"><div class="arrow"></div><div class="arrow_border"></div></div>' : '>') }}
  174. <a href="#" class="dropdown-toggle">
  175. <i class="icon-barcode"></i>
  176. <span>@lang('general.assets')</span>
  177. <i class="icon-chevron-down"></i>
  178. </a>
  179. <ul class="submenu{{ (Request::is('hardware*') ? ' active' : '') }}">
  180. <li><a href="{{ URL::to('hardware?Deployed=true') }}" {{{ (Request::query('Deployed') ? ' class="active"' : '') }}} >@lang('general.deployed')</a></li>
  181. <li><a href="{{ URL::to('hardware?RTD=true') }}" {{{ (Request::query('RTD') ? ' class="active"' : '') }}} >@lang('general.ready_to_deploy')</a></li>
  182. <li><a href="{{ URL::to('hardware?Pending=true') }}" {{{ (Request::query('Pending') ? ' class="active"' : '') }}} >@lang('general.pending')</a></li>
  183. <li><a href="{{ URL::to('hardware?Undeployable=true') }}" {{{ (Request::query('Undeployable') ? ' class="active"' : '') }}} >@lang('general.undeployable')</a></li>
  184. <li><a href="{{ URL::to('hardware') }}">@lang('general.list_all')</a></li>
  185. <li><a href="{{ URL::to('hardware/models') }}" {{{ (Request::is('hardware/models*') ? ' class="active"' : '') }}} >@lang('general.asset_models')</a></li>
  186. </ul>
  187. </li>
  188. <li{{ (Request::is('admin/licenses*') ? ' class="active"><div class="pointer"><div class="arrow"></div><div class="arrow_border"></div></div>' : '>') }}
  189. <a href="{{ URL::to('admin/licenses') }}">
  190. <i class="icon-certificate"></i>
  191. <span>@lang('general.licenses')</span>
  192. </a>
  193. </li>
  194. <li{{ (Request::is('admin/users*') ? ' class="active"><div class="pointer"><div class="arrow"></div><div class="arrow_border"></div></div>' : '>') }}
  195. <a href="{{ URL::to('admin/users') }}">
  196. <i class="icon-group"></i>
  197. <span>@lang('general.people')</span>
  198. </a>
  199. </li>
  200. <li{{ (Request::is('reports*') ? ' class="active"><div class="pointer"><div class="arrow"></div><div class="arrow_border"></div></div>' : '>') }}
  201. <a href="{{ URL::to('reports') }}">
  202. <i class="icon-signal"></i>
  203. <span>@lang('general.reports')</span>
  204. </a>
  205. </li>
  206. </ul>
  207. </div>
  208. <!-- end sidebar -->
  209. @endif
  210. @endif
  211. <!-- main container -->
  212. <div class="content">
  213. @if ((Sentry::check()) && (Sentry::getUser()->hasAccess('admin')))
  214. <!-- upper main stats -->
  215. <div id="main-stats">
  216. <div class="row stats-row">
  217. <div class="col-md-3 col-sm-3 stat">
  218. <div class="data">
  219. <a href="{{ URL::to('hardware') }}">
  220. <span class="number">{{ number_format(Asset::assetcount()) }}</span>
  221. <span style="color:black">@lang('general.total_assets')</span>
  222. </a>
  223. </div>
  224. </div>
  225. <div class="col-md-3 col-sm-3 stat">
  226. <div class="data">
  227. <a href="{{ URL::to('hardware?RTD=true') }}">
  228. <span class="number">{{ number_format(Asset::availassetcount()) }}</span>
  229. <span style="color:black">@lang('general.assets_available')</span>
  230. </a>
  231. </div>
  232. </div>
  233. <div class="col-md-3 col-sm-3 stat">
  234. <div class="data">
  235. <a href="{{ URL::to('admin/licenses') }}">
  236. <span class="number">{{ number_format(License::assetcount()) }}</span>
  237. <span style="color:black">@lang('general.total_licenses')</span>
  238. </a>
  239. </div>
  240. </div>
  241. <div class="col-md-3 col-sm-3 stat last">
  242. <div class="data">
  243. <a href="{{ URL::to('admin/licenses') }}">
  244. <span class="number">{{ number_format(License::availassetcount()) }}</span>
  245. <span style="color:black">@lang('general.licenses_available')</span>
  246. </a>
  247. </div>
  248. </div>
  249. </div>
  250. </div>
  251. <!-- end upper main stats -->
  252. @endif
  253. <div id="pad-wrapper">
  254. <!-- Notifications -->
  255. @include('frontend/notifications')
  256. <!-- Content -->
  257. @yield('content')
  258. </div>
  259. </div>
  260. </div>
  261. </div>
  262. <footer>
  263. <div id="footer">
  264. <div class="container">
  265. <p class="muted credit"><a href="http://snipeitapp.com">Snipe IT</a> is a free open source
  266. project by <a href="http://twitter.com/snipeyhead">@snipeyhead</a>. <a href="https://github.com/snipe/snipe-it">Fork it here</a>!</p>
  267. </div>
  268. </div>
  269. </footer>
  270. <!-- end main container -->
  271. <div class="modal fade" id="dataConfirmModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  272. <div class="modal-dialog">
  273. <div class="modal-content">
  274. <div class="modal-header">
  275. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  276. <h4 class="modal-title" id="myModalLabel"></h4>
  277. </div>
  278. <div class="modal-body"></div>
  279. <div class="modal-footer">
  280. <button type="button" class="btn btn-default" data-dismiss="modal">Close</button><a class="btn btn-danger" id="dataConfirmOK">@lang('general.yes')</a>
  281. </div>
  282. </div>
  283. </div>
  284. </div>
  285. <!-- scripts -->
  286. <script src="{{ asset('assets/js/bootstrap.min.js') }}"></script>
  287. <script src="{{ asset('assets/js/jquery.knob.js') }}"></script>
  288. <script src="{{ asset('assets/js/select2.min.js') }}"></script>
  289. <script src="{{ asset('assets/js/jquery.uniform.min.js') }}"></script>
  290. <script src="{{ asset('assets/js/bootstrap.datepicker.js') }}"></script>
  291. <script src="{{ asset('assets/js/theme.js') }}"></script>
  292. <script type="text/javascript">
  293. $(function () {
  294. $('#example').dataTable({
  295. "sPaginationType": "full_numbers",
  296. "iDisplayLength": {{{ Setting::getSettings()->per_page }}},
  297. "aLengthMenu": [[{{{ Setting::getSettings()->per_page }}}, -1], [{{{ Setting::getSettings()->per_page }}}, "All"]],
  298. "aoColumnDefs": [{ 'bSortable': false, 'aTargets': [ 'actions' ] }]
  299. });
  300. $('#nosorting').dataTable({
  301. "sPaginationType": "full_numbers",
  302. "fnSort": [1,'asc'],
  303. "aoColumns": [
  304. { "bSortable": false },
  305. { "bSortable": false },
  306. { "bSortable": false },
  307. { "bSortable": false }
  308. ],
  309. "iDisplayLength": {{{ Setting::getSettings()->per_page }}},
  310. "aLengthMenu": [[{{{ Setting::getSettings()->per_page }}}, -1], [{{{ Setting::getSettings()->per_page }}}, "All"]]
  311. });
  312. // add uniform plugin styles to html elements
  313. $("input:checkbox, input:radio").uniform();
  314. // datepicker plugin
  315. $('.datepicker').datepicker().on('changeDate', function (ev) {
  316. $(this).datepicker('hide');
  317. });
  318. // select2 plugin for select elements
  319. $(".select2").select2({
  320. placeholder: "Select"
  321. });
  322. // jQuery Knobs
  323. $(".knob").knob();
  324. $("#example").popover();
  325. // confirm delete modal
  326. $('.delete-asset').click(function (evnt) {
  327. var href = $(this).attr('href');
  328. var message = $(this).attr('data-content');
  329. var title = $(this).attr('data-title');
  330. $('#myModalLabel').text(title);
  331. $('#dataConfirmModal .modal-body').text(message);
  332. $('#dataConfirmOK').attr('href', href);
  333. $('#dataConfirmModal').modal({show:true});
  334. return false;
  335. });
  336. });
  337. </script>
  338. </body>
  339. </html>