pro-logged-in.blade.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. @if(!isset($_REQUEST['optimised']))
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="utf-8">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <title>Stag | Pro</title>
  8. <!-- Tell the browser to be responsive to screen width -->
  9. <meta name="viewport" content="width=device-width, initial-scale=1">
  10. <!-- Font Awesome -->
  11. <link rel="stylesheet" href="/AdminLTE-3.0.5/plugins/fontawesome-free/css/all.min.css">
  12. <!-- Theme style -->
  13. <link rel="stylesheet" href="/AdminLTE-3.0.5/dist/css/adminlte.min.css">
  14. <!-- overlayScrollbars -->
  15. <link rel="stylesheet" href="/AdminLTE-3.0.5/plugins/overlayScrollbars/css/OverlayScrollbars.min.css">
  16. <link href=/css/z.css rel=stylesheet>
  17. <style>
  18. .loading-rotate {
  19. -webkit-animation:spin 0.3s linear infinite;
  20. -moz-animation:spin 0.3s linear infinite;
  21. animation:spin 0.3s linear infinite;
  22. }
  23. @-moz-keyframes spin { 100% { -moz-transform: rotate(360deg); } }
  24. @-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } }
  25. @keyframes spin { 100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } }
  26. </style>
  27. {{-- stag theme --}}
  28. <link rel="stylesheet" href="/css/theme.css">
  29. </head>
  30. <body class="hold-transition sidebar-mini layout-fixed">
  31. <div class="wrapper">
  32. <!-- Navbar -->
  33. <nav class="main-header navbar navbar-expand navbar-white navbar-light">
  34. <!-- Left navbar links -->
  35. <ul class="navbar-nav">
  36. <li class="nav-item">
  37. <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a>
  38. </li>
  39. </ul>
  40. <!-- Right navbar links -->
  41. <ul class="navbar-nav ml-auto ml-2">
  42. <li class="nav-item">
  43. <a id="reload-icon" class="nav-link" href="#" role="button" onclick="window.location.reload(); return false">
  44. <i class="fa fa-sync"></i>
  45. </a>
  46. </li>
  47. </ul>
  48. <ul class="navbar-nav ml-auto ml-2">
  49. <li class="nav-item">
  50. <a class="nav-link" href="#">
  51. <i class="fa fa-user"></i> {{$pro->name_display}}
  52. </a>
  53. </li>
  54. </ul>
  55. <!-- SEARCH FORM -->
  56. <form class="form-inline ml-2 w-25 stag-search-form">
  57. <div class="input-group input-group-sm w-100">
  58. <input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search">
  59. <div class="input-group-append">
  60. <button class="btn btn-navbar" type="submit">
  61. <i class="fas fa-search"></i>
  62. </button>
  63. </div>
  64. </div>
  65. </form>
  66. <ul class="navbar-nav ml-2 ml-2">
  67. <li class="nav-item">
  68. <a class="nav-link px-2" href="/api/session/logOut" target="_top" role="button" logout>
  69. <i class="fas fa-sign-out-alt"></i>
  70. </a>
  71. </li>
  72. </ul>
  73. </nav>
  74. <!-- /.navbar -->
  75. @endif
  76. <!-- Main Sidebar Container -->
  77. <aside class="main-sidebar sidebar-light-primary elevation-4">
  78. <!-- Brand Logo -->
  79. <a href="#" class="brand-link">
  80. <img src="/AdminLTE-3.0.5/dist/img/AdminLTELogo.png" alt="AdminLTE Logo" class="brand-image img-circle elevation-3"
  81. style="opacity: .8">
  82. <span class="brand-text font-weight-light">Scholar</span>
  83. </a>
  84. <!-- Sidebar -->
  85. <div class="sidebar">
  86. <!-- Sidebar Menu -->
  87. <nav class="mt-2">
  88. <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false" id="main-sidenav">
  89. <li class="nav-item">
  90. <a href="/dashboard" class="nav-link {{ request()->route()->getActionName() === 'App\Http\Controllers\ProController@dashboard' ? 'active' : '' }}">
  91. <i class="nav-icon fa fa-palette"></i>
  92. <p>
  93. Dashboard
  94. </p>
  95. </a>
  96. @if(\Illuminate\Support\Facades\View::exists('layouts.generated-links'))
  97. @include('layouts.generated-links')
  98. @endif
  99. </ul>
  100. </nav>
  101. <!-- /.sidebar-menu -->
  102. </div>
  103. <!-- /.sidebar -->
  104. </aside>
  105. @if(!isset($_REQUEST['optimised']))
  106. <!-- Content Wrapper. Contains page content -->
  107. <div class="content-wrapper">
  108. <!-- Main content -->
  109. <section class="content p-0">
  110. <div class="container-fluid p-0">
  111. <div class="row mb-2 mx-0">
  112. @endif
  113. <div class="col-12 px-0" id="main-content">
  114. @yield('content')
  115. </div>
  116. @if(!isset($_REQUEST['optimised']))
  117. </div>
  118. </div><!-- /.container-fluid -->
  119. </section>
  120. <!-- /.content -->
  121. </div>
  122. </div>
  123. <!-- ./wrapper -->
  124. <!-- Google Font: Source Sans Pro -->
  125. <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700" rel="stylesheet">
  126. <!-- jQuery -->
  127. <script src="/AdminLTE-3.0.5/plugins/jquery/jquery.min.js"></script>
  128. <!-- overlayScrollbars -->
  129. <script src="/AdminLTE-3.0.5/plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js"></script>
  130. <!-- AdminLTE App -->
  131. <script src="/AdminLTE-3.0.5/dist/js/adminlte.js"></script>
  132. <!-- unpoly -->
  133. <script src="/unpoly-0.62.0/es6-promise.min.js"></script>
  134. <script src="/unpoly-0.62.0/es6-promise.auto.min.js"></script>
  135. <script src="/unpoly-0.62.0/unpoly.min.js"></script>
  136. <link rel="stylesheet" href="/unpoly-0.62.0/unpoly.min.css">
  137. <style>
  138. .up-modal-content {
  139. padding: 0;
  140. }
  141. .up-modal-close {
  142. display: none;
  143. }
  144. .up-modal-dialog {
  145. border-radius: 8px;
  146. overflow: hidden;
  147. }
  148. .inner-side-nav {
  149. width: 200px;
  150. }
  151. .inner-content {
  152. width: calc(100% - 200px);
  153. }
  154. </style>
  155. <script>
  156. if(window === window.top) {
  157. window.location.href = '/mc' + window.location.pathname;
  158. }
  159. </script>
  160. <script>
  161. $(document).ready(function () {
  162. let stagCache = {}, stagCacheDone = {};
  163. function clearStagCache() {
  164. stagCache = {};
  165. }
  166. function preloadIntoStagCache(_target, _done) {
  167. if(!!stagCache[_target] && stagCache[_target] !== 'loading') {
  168. if(_done) _done(_data);
  169. else if(stagCacheDone[_target]) {
  170. stagCacheDone[_target](_done);
  171. stagCacheDone[_target] = false;
  172. }
  173. console.log('Not pre-loading. Already in cache!');
  174. return;
  175. }
  176. stagCache[_target] = 'loading';
  177. $.get('/' + _target + '?optimised=1', function(_data) {
  178. stagCache[_target] = _data;
  179. if(_done) _done(_data);
  180. else if(stagCacheDone[_target]) {
  181. stagCacheDone[_target](_data);
  182. stagCacheDone[_target] = false;
  183. }
  184. });
  185. }
  186. function getFromStagCache(_target, _done) {
  187. if(!stagCache[_target]) { // unlikely to be hit if using mouse clicks
  188. preloadIntoStagCache(_target, _done);
  189. }
  190. else if(stagCache[_target] === 'loading') {
  191. stagCacheDone[_target] = _done;
  192. }
  193. else {
  194. _done(stagCache[_target]);
  195. }
  196. }
  197. function gotoTarget(target, pushState) {
  198. getFromStagCache(target, function(_data) {
  199. $('#reload-icon').removeClass('loading-rotate');
  200. if(pushState) {
  201. window.top.history.pushState(target, null, '/mc/' + target);
  202. }
  203. var received = $('<div>' + _data + '</div>');
  204. $('#main-content').replaceWith(received.find('#main-content'));
  205. var activeHref = received.find('#main-sidenav').find('.nav-link.active').attr('href');
  206. $('#main-sidenav a.nav-link.active').removeClass('active').blur();
  207. $('#main-sidenav a[href="' + activeHref + '"]').addClass('active');
  208. $(window).scrollTop(0);
  209. window.setTimeout(function() {
  210. clearStagCache();
  211. }, 250);
  212. });
  213. }
  214. $(document).on('mouseenter', 'a:not([href="#"]):not([up-modal]):not([up-close]):not([no-ajax]):not([logout])', function() {
  215. var target = this.href;
  216. if(target.indexOf('//') !== -1) {
  217. target = target.split('//')[1];
  218. if(target.indexOf('/') !== -1) {
  219. target = target.substr(target.indexOf('/') + 1);
  220. }
  221. }
  222. preloadIntoStagCache(target);
  223. });
  224. $(document).on('click', 'a:not([href="#"]):not([up-modal]):not([up-close]):not([no-ajax]):not([logout])', function() {
  225. $('#reload-icon').addClass('loading-rotate');
  226. var target = this.href;
  227. if(target.indexOf('//') !== -1) {
  228. target = target.split('//')[1];
  229. if(target.indexOf('/') !== -1) {
  230. target = target.substr(target.indexOf('/') + 1);
  231. }
  232. }
  233. gotoTarget(target, true);
  234. return false;
  235. });
  236. $(document).on('submit', 'form[action="/post-to-api"]:not(.custom-submit)', function() {
  237. $('#reload-icon').addClass('loading-rotate');
  238. $.post(this.action, $(this).serialize(), function(_data) {
  239. $('#main-content').replaceWith($(_data).find('#main-content'));
  240. $(window).scrollTop(0);
  241. $('#reload-icon').removeClass('loading-rotate');
  242. });
  243. return false;
  244. });
  245. $(document).on('click', '[logout]', function() {
  246. $.get('/api/session/logOut', function(_data) {
  247. window.top.location = '/';
  248. });
  249. });
  250. window.top.addEventListener('popstate', function(event) {
  251. if(!!event.state) {
  252. gotoTarget(event.state, false);
  253. }
  254. });
  255. });
  256. </script>
  257. </body>
  258. </html>
  259. @endif