pro-logged-in.blade.php 10 KB

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