layouts.blade.php 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576
  1. @extends('_layout')
  2. @section('title', sysConfig('website_name'))
  3. @section('layout_css')
  4. <link href="/assets/global/fonts/font-awesome/css/all.min.css" rel="stylesheet">
  5. @yield('css')
  6. @endsection
  7. @section('body_class', 'dashboard')
  8. @section('layout_content')
  9. <nav class="site-navbar navbar navbar-default navbar-fixed-top navbar-mega {{ config('theme.navbar.inverse') }} {{ config('theme.navbar.skin') }}"
  10. role="navigation">
  11. <div class="navbar-header">
  12. <button class="navbar-toggler hamburger hamburger-close navbar-toggler-left hided" data-toggle="menubar" type="button">
  13. <span class="sr-only">{{ trans('common.toggle_action', ['action' => trans('common.function.navigation')]) }}</span>
  14. <span class="hamburger-bar"></span>
  15. </button>
  16. <button class="navbar-toggler collapsed" data-target="#site-navbar-collapse" data-toggle="collapse" type="button">
  17. <i class="icon wb-more-horizontal" aria-hidden="true"></i>
  18. </button>
  19. <div class="navbar-brand navbar-brand-center">
  20. <img class="navbar-brand-logo" src="{{ sysConfig('website_logo') ? asset(sysConfig('website_logo')) : '/assets/images/logo.png' }}"
  21. alt="logo" />
  22. <span class="navbar-brand-text hidden-xs-down"> {{ sysConfig('website_name') }}</span>
  23. </div>
  24. </div>
  25. <div class="navbar-container container-fluid">
  26. <div class="collapse navbar-collapse navbar-collapse-toolbar" id="site-navbar-collapse">
  27. <ul class="nav navbar-toolbar">
  28. <li class="nav-item hidden-float" id="toggleMenubar">
  29. <a class="nav-link" data-toggle="menubar" href="#" role="button">
  30. <i class="icon hamburger hamburger-arrow-left">
  31. <span class="sr-only">{{ trans('common.toggle_action', ['action' => trans('common.function.menubar')]) }}</span>
  32. <span class="hamburger-bar"></span>
  33. </i>
  34. </a>
  35. </li>
  36. <li class="nav-item hidden-sm-down">
  37. <a class="nav-link icon icon-fullscreen" data-toggle="fullscreen" href="#" role="button">
  38. <span class="sr-only">{{ trans('common.toggle_action', ['action' => trans('common.function.fullscreen')]) }}</span>
  39. </a>
  40. </li>
  41. <li class="nav-item dropdown">
  42. <a class="nav-link" data-toggle="dropdown" href="javascript:void(0)" role="button">
  43. <span class="icon wb-globe"></span>
  44. <span class="icon wb-chevron-down-mini"></span>
  45. </a>
  46. <div class="dropdown-menu" role="menu">
  47. @foreach (config('common.language') as $key => $value)
  48. <a class="dropdown-item" href="{{ route('lang', ['locale' => $key]) }}" role="menuitem">
  49. <i class="fi fi-{{ $value[1] }}" aria-hidden="true"></i>
  50. <span style="padding: inherit;">{{ $value[0] }}</span>
  51. </a>
  52. @endforeach
  53. </div>
  54. </li>
  55. </ul>
  56. <ul class="nav navbar-toolbar navbar-right navbar-toolbar-right">
  57. <li class="nav-item dropdown">
  58. <a class="nav-link navbar-avatar" data-toggle="dropdown" data-animation="scale-up" href="#" role="button" aria-expanded="false">
  59. <span class="avatar avatar-online">
  60. <img data-uid="{{ Auth::getUser()->id }}" data-qq="{{ Auth::getUser()->qq }}" data-username="{{ Auth::getUser()->username }}"
  61. src="" alt="{{ trans('common.avatar') }}" loading="lazy" />
  62. <i></i>
  63. </span>
  64. </a>
  65. <div class="dropdown-menu" role="menu">
  66. <a class="dropdown-item" href="/" role="menuitem">
  67. <i class="icon wb-settings" aria-hidden="true"></i>
  68. {{ trans('admin.user_dashboard') }}
  69. </a>
  70. <div class="dropdown-divider" role="presentation"></div>
  71. <a class="dropdown-item" href="{{ route('logout') }}" role="menuitem">
  72. <i class="icon wb-power" aria-hidden="true"></i>
  73. {{ trans('auth.logout') }}
  74. </a>
  75. </div>
  76. </li>
  77. </ul>
  78. </div>
  79. </div>
  80. </nav>
  81. <div class="site-menubar {{ config('theme.sidebar') }}">
  82. <div class="site-menubar-body">
  83. <ul class="site-menu" data-plugin="menu">
  84. @can('admin.index')
  85. <li class="site-menu-item {{ request()->routeIs('admin.index') ? 'active open' : '' }}">
  86. <a href="{{ route('admin.index') }}">
  87. <i class="site-menu-icon wb-dashboard" aria-hidden="true"></i>
  88. <span class="site-menu-title">{{ trans('admin.menu.dashboard') }}</span>
  89. </a>
  90. </li>
  91. @endcan
  92. @canany(['admin.user.index', 'admin.user.group.index', 'admin.log.credit', 'admin.subscribe.index'])
  93. <li class="site-menu-item has-sub {{ request()->routeIs('admin.user.*', 'admin.log.credit', 'admin.subscribe.*') ? 'active open' : '' }}">
  94. <a href="javascript:void(0)">
  95. <i class="site-menu-icon wb-user" aria-hidden="true"></i>
  96. <span class="site-menu-title">{{ trans('admin.menu.user.attribute') }}</span>
  97. </a>
  98. <ul class="site-menu-sub">
  99. @can('admin.user.index')
  100. <li
  101. class="site-menu-item {{ request()->routeIs('admin.user.index', 'admin.user.edit', 'admin.user.monitor', 'admin.user.online', 'admin.user.online', 'admin.user.export') ? 'active open' : '' }}">
  102. <a href="{{ route('admin.user.index') }}">
  103. <span class="site-menu-title">{{ trans('admin.menu.user.list') }}</span>
  104. </a>
  105. </li>
  106. @endcan
  107. @can('admin.user.oauth')
  108. <li class="site-menu-item {{ request()->routeIs('admin.user.oauth') ? 'active open' : '' }}">
  109. <a href="{{ route('admin.user.oauth') }}">
  110. <span class="site-menu-title">{{ trans('admin.menu.user.oauth') }}</span>
  111. </a>
  112. </li>
  113. @endcan
  114. @can('admin.user.group.index')
  115. <li class="site-menu-item {{ request()->routeIs('admin.user.group.*') ? 'active open' : '' }}">
  116. <a href="{{ route('admin.user.group.index') }}">
  117. <span class="site-menu-title">{{ trans('admin.menu.user.group') }}</span>
  118. </a>
  119. </li>
  120. @endcan
  121. @can('admin.log.credit')
  122. <li class="site-menu-item {{ request()->routeIs('admin.log.credit') ? 'active open' : '' }}">
  123. <a href="{{ route('admin.log.credit') }}">
  124. <span class="site-menu-title">{{ trans('admin.menu.user.credit_log') }}</span>
  125. </a>
  126. </li>
  127. @endcan
  128. @can('admin.subscribe.index')
  129. <li class="site-menu-item {{ request()->routeIs('admin.subscribe.*') ? 'active open' : '' }}">
  130. <a href="{{ route('admin.subscribe.index') }}">
  131. <span class="site-menu-title">{{ trans('admin.menu.user.subscribe') }}</span>
  132. </a>
  133. </li>
  134. @endcan
  135. </ul>
  136. </li>
  137. @endcanany
  138. @canany(['admin.permission.index', 'admin.role.index'])
  139. <li class="site-menu-item has-sub {{ request()->routeIs('admin.permission.*', 'admin.role.*') ? 'active open' : '' }}">
  140. <a href="javascript:void(0)">
  141. <i class="site-menu-icon wb-users" aria-hidden="true"></i>
  142. <span class="site-menu-title">{{ trans('admin.menu.rbac.attribute') }}</span>
  143. </a>
  144. <ul class="site-menu-sub">
  145. @can('admin.permission.index')
  146. <li class="site-menu-item {{ request()->routeIs('admin.permission.*') ? 'active open' : '' }}">
  147. <a href="{{ route('admin.permission.index') }}">
  148. <span class="site-menu-title">{{ trans('admin.menu.rbac.permission') }}</span>
  149. </a>
  150. </li>
  151. @endcan
  152. @can('admin.role.index')
  153. <li class="site-menu-item {{ request()->routeIs('admin.role.*') ? 'active open' : '' }}">
  154. <a href="{{ route('admin.role.index') }}">
  155. <span class="site-menu-title">{{ trans('admin.menu.rbac.role') }}</span>
  156. </a>
  157. </li>
  158. @endcan
  159. </ul>
  160. </li>
  161. @endcanany
  162. @canany(['admin.ticket.index', 'admin.article.index', 'admin.marketing.index'])
  163. <li class="site-menu-item has-sub {{ request()->routeIs('admin.ticket.*', 'admin.article.*', 'admin.marketing.*') ? 'active open' : '' }}">
  164. <a href="javascript:void(0)">
  165. <i class="site-menu-icon wb-chat-working" aria-hidden="true"></i>
  166. <span class="site-menu-title">{{ trans('admin.menu.customer_service.attribute') }}</span>
  167. @can('admin.ticket.index')
  168. @php
  169. $openTicket = Cache::rememberForever('open_ticket_count', static function () {
  170. return App\Models\Ticket::whereStatus(0)->count();
  171. });
  172. @endphp
  173. @if ($openTicket)
  174. <div class="site-menu-badge">
  175. <span class="badge badge-pill badge-success">{{ $openTicket }}</span>
  176. </div>
  177. @endif
  178. @endcan
  179. </a>
  180. <ul class="site-menu-sub">
  181. @can('admin.ticket.index')
  182. <li class="site-menu-item {{ request()->routeIs('admin.ticket.*') ? 'active open' : '' }}">
  183. <a href="{{ route('admin.ticket.index') }}">
  184. <span class="site-menu-title">{{ trans('admin.menu.customer_service.ticket') }}</span>
  185. @if ($openTicket > 0)
  186. <div class="site-menu-label">
  187. <span class="badge badge-danger badge-round mr-25">{{ $openTicket }}</span>
  188. </div>
  189. @endif
  190. </a>
  191. </li>
  192. @endcan
  193. @can('admin.article.index')
  194. <li class="site-menu-item {{ request()->routeIs('admin.article.*') ? 'active open' : '' }}">
  195. <a href="{{ route('admin.article.index') }}">
  196. <span class="site-menu-title">{{ trans('admin.menu.customer_service.article') }}</span>
  197. </a>
  198. </li>
  199. @endcan
  200. @can('admin.marketing.index')
  201. <li class="site-menu-item {{ request()->routeIs('admin.marketing.index') ? 'active open' : '' }}">
  202. <a href="{{ route('admin.marketing.index') }}">
  203. <span class="site-menu-title">{{ trans('admin.menu.customer_service.marketing') }}</span>
  204. </a>
  205. </li>
  206. @endcan
  207. </ul>
  208. </li>
  209. @endcanany
  210. @canany(['admin.node.index', 'admin.node.auth.index', 'admin.node.cert.index'])
  211. <li class="site-menu-item has-sub {{ request()->routeIs('admin.node.*') ? 'active open' : '' }}">
  212. <a href="javascript:void(0)">
  213. <i class="site-menu-icon wb-cloud" aria-hidden="true"></i>
  214. <span class="site-menu-title">{{ trans('admin.menu.node.attribute') }}</span>
  215. </a>
  216. <ul class="site-menu-sub">
  217. @can('admin.node.index')
  218. <li class="site-menu-item {{ request()->routeIs('admin.node.index', 'admin.node.create', 'admin.node.edit') ? 'active open' : '' }}">
  219. <a href="{{ route('admin.node.index') }}">
  220. <span class="site-menu-title">{{ trans('admin.menu.node.list') }}</span>
  221. </a>
  222. </li>
  223. @endcan
  224. @can('admin.node.auth.index')
  225. <li class="site-menu-item {{ request()->routeIs('admin.node.auth.*') ? 'active open' : '' }}">
  226. <a href="{{ route('admin.node.auth.index') }}">
  227. <span class="site-menu-title">{{ trans('admin.menu.node.auth') }}</span>
  228. </a>
  229. </li>
  230. @endcan
  231. @can('admin.node.cert.index')
  232. <li class="site-menu-item {{ request()->routeIs('admin.node.cert.*') ? 'active open' : '' }}">
  233. <a href="{{ route('admin.node.cert.index') }}">
  234. <span class="site-menu-title">{{ trans('admin.menu.node.cert') }}</span>
  235. </a>
  236. </li>
  237. @endcan
  238. </ul>
  239. </li>
  240. @endcanany
  241. @canany(['admin.rule.index', 'admin.rule.group.index', 'admin.rule.log'])
  242. <li class="site-menu-item has-sub {{ request()->routeIs('admin.rule.*') ? 'active open' : '' }}">
  243. <a href="javascript:void(0)">
  244. <i class="site-menu-icon wb-eye" aria-hidden="true"></i>
  245. <span class="site-menu-title">{{ trans('admin.menu.rule.attribute') }}</span>
  246. </a>
  247. <ul class="site-menu-sub">
  248. @can('admin.rule.index')
  249. <li class="site-menu-item {{ request()->routeIs('admin.rule.index') ? 'active open' : '' }}">
  250. <a href="{{ route('admin.rule.index') }}">
  251. <span class="site-menu-title">{{ trans('admin.menu.rule.list') }}</span>
  252. </a>
  253. </li>
  254. @endcan
  255. @can('admin.rule.group.index')
  256. <li class="site-menu-item {{ request()->routeIs('admin.rule.group.*') ? 'active open' : '' }}">
  257. <a href="{{ route('admin.rule.group.index') }}">
  258. <span class="site-menu-title">{{ trans('admin.menu.rule.group') }}</span>
  259. </a>
  260. </li>
  261. @endcan
  262. @can('admin.rule.log')
  263. <li class="site-menu-item {{ request()->routeIs('admin.rule.log') ? 'active open' : '' }}">
  264. <a href="{{ route('admin.rule.log') }}">
  265. <span class="site-menu-title">{{ trans('admin.menu.rule.trigger') }}</span>
  266. </a>
  267. </li>
  268. @endcan
  269. </ul>
  270. </li>
  271. @endcanany
  272. @canany(['admin.goods.index', 'admin.coupon.index', 'admin.order'])
  273. <li class="site-menu-item has-sub {{ request()->routeIs('admin.goods.*', 'admin.coupon.*', 'admin.order') ? 'active open' : '' }}">
  274. <a href="javascript:void(0)">
  275. <i class="site-menu-icon wb-shopping-cart" aria-hidden="true"></i>
  276. <span class="site-menu-title">{{ trans('admin.menu.shop.attribute') }}</span>
  277. </a>
  278. <ul class="site-menu-sub">
  279. @can('admin.goods.index')
  280. <li class="site-menu-item {{ request()->routeIs('admin.goods.*') ? 'active open' : '' }}">
  281. <a href="{{ route('admin.goods.index') }}">
  282. <span class="site-menu-title">{{ trans('admin.menu.shop.goods') }}</span>
  283. </a>
  284. </li>
  285. @endcan
  286. @can('admin.coupon.index')
  287. <li class="site-menu-item {{ request()->routeIs('admin.coupon.*') ? 'active open' : '' }}">
  288. <a href="{{ route('admin.coupon.index') }}">
  289. <span class="site-menu-title">{{ trans('admin.menu.shop.coupon') }}</span>
  290. </a>
  291. </li>
  292. @endcan
  293. @can('admin.order')
  294. <li class="site-menu-item {{ request()->routeIs('admin.order') ? 'active open' : '' }}">
  295. <a href="{{ route('admin.order') }}">
  296. <span class="site-menu-title">{{ trans('admin.menu.shop.order') }}</span>
  297. </a>
  298. </li>
  299. @endcan
  300. </ul>
  301. </li>
  302. @endcanany
  303. @canany(['admin.invite.index', 'admin.aff.index', 'admin.aff.rebate'])
  304. <li class="site-menu-item has-sub {{ request()->routeIs('admin.invite.*', 'admin.aff.*') ? 'active open' : '' }}">
  305. <a href="javascript:void(0)">
  306. <i class="site-menu-icon wb-thumb-up" aria-hidden="true"></i>
  307. <span class="site-menu-title">{{ trans('admin.menu.promotion.attribute') }}</span>
  308. @can('admin.aff.index')
  309. @php
  310. $openApply = Cache::rememberForever('open_referral_apply_count', static function () {
  311. return App\Models\ReferralApply::whereStatus(0)->count();
  312. });
  313. @endphp
  314. @if ($openApply)
  315. <div class="site-menu-badge">
  316. <span class="badge badge-pill badge-success">{{ $openApply }}</span>
  317. </div>
  318. @endif
  319. @endcan
  320. </a>
  321. <ul class="site-menu-sub">
  322. @can('admin.invite.index')
  323. <li class="site-menu-item {{ request()->routeIs('admin.invite.index') ? 'active open' : '' }}">
  324. <a href="{{ route('admin.invite.index') }}">
  325. <span class="site-menu-title">{{ trans('admin.menu.promotion.invite') }}</span>
  326. </a>
  327. </li>
  328. @endcan
  329. @can('admin.aff.index')
  330. <li class="site-menu-item {{ request()->routeIs('admin.aff.index', 'admin.aff.detail') ? 'active open' : '' }}">
  331. <a href="{{ route('admin.aff.index') }}">
  332. <span class="site-menu-title">{{ trans('admin.menu.promotion.withdraw') }}</span>
  333. @if ($openApply > 0)
  334. <div class="site-menu-label">
  335. <span class="badge badge-danger badge-round mr-25">{{ $openApply }}</span>
  336. </div>
  337. @endif
  338. </a>
  339. </li>
  340. @endcan
  341. @can('admin.aff.rebate')
  342. <li class="site-menu-item {{ request()->routeIs('admin.aff.rebate') ? 'active open' : '' }}">
  343. <a href="{{ route('admin.aff.rebate') }}">
  344. <span class="site-menu-title">{{ trans('admin.menu.promotion.rebate_flow') }}</span>
  345. </a>
  346. </li>
  347. @endcan
  348. </ul>
  349. </li>
  350. @endcanany
  351. @canany(['admin.report.accounting', 'admin.report.userAnalysis', 'admin.report.siteAnalysis'])
  352. <li class="site-menu-item has-sub {{ request()->routeIs('admin.report.*') ? 'active open' : '' }}">
  353. <a href="javascript:void(0)">
  354. <i class="site-menu-icon wb-stats-bars" aria-hidden="true"></i>
  355. <span class="site-menu-title">{{ trans('admin.menu.analysis.attribute') }}</span>
  356. </a>
  357. <ul class="site-menu-sub">
  358. @can('admin.report.accounting')
  359. <li class="site-menu-item {{ request()->routeIs('admin.report.accounting') ? 'active open' : '' }}">
  360. <a href="{{ route('admin.report.accounting') }}">
  361. <span class="site-menu-title">{{ trans('admin.menu.analysis.accounting') }}</span>
  362. </a>
  363. </li>
  364. @endcan
  365. @can('admin.report.userAnalysis')
  366. <li class="site-menu-item {{ request()->routeIs('admin.report.userAnalysis') ? 'active open' : '' }}">
  367. <a href="{{ route('admin.report.userAnalysis') }}">
  368. <span class="site-menu-title">{{ trans('admin.menu.analysis.user_flow') }}</span>
  369. </a>
  370. </li>
  371. @endcan
  372. @can('admin.report.nodeAnalysis')
  373. <li class="site-menu-item {{ request()->routeIs('admin.report.nodeAnalysis') ? 'active open' : '' }}">
  374. <a href="{{ route('admin.report.nodeAnalysis') }}">
  375. <span class="site-menu-title">{{ trans('admin.menu.analysis.node_flow') }}</span>
  376. </a>
  377. </li>
  378. @endcan
  379. @can('admin.report.siteAnalysis')
  380. <li class="site-menu-item {{ request()->routeIs('admin.report.siteAnalysis') ? 'active open' : '' }}">
  381. <a href="{{ route('admin.report.siteAnalysis') }}">
  382. <span class="site-menu-title">{{ trans('admin.menu.analysis.site_flow') }}</span>
  383. </a>
  384. </li>
  385. @endcan
  386. </ul>
  387. </li>
  388. @endcanany
  389. @canany(['admin.log.traffic', 'admin.log.flow', 'admin.log.ban', 'admin.log.ip', 'admin.log.online', 'admin.log.notify', 'admin.payment.callback'])
  390. <li
  391. class="site-menu-item has-sub {{ request()->routeIs('admin.log.traffic', 'admin.log.flow', 'admin.log.ban', 'admin.log.ip', 'admin.log.online', 'admin.log.notify', 'admin.payment.callback') ? 'active open' : '' }}">
  392. <a href="javascript:void(0)">
  393. <i class="site-menu-icon wb-calendar" aria-hidden="true"></i>
  394. <span class="site-menu-title">{{ trans('admin.menu.log.attribute') }}</span>
  395. </a>
  396. <ul class="site-menu-sub">
  397. @can('admin.log.traffic')
  398. <li class="site-menu-item {{ request()->routeIs('admin.log.traffic') ? 'active open' : '' }}">
  399. <a href="{{ route('admin.log.traffic') }}">
  400. <span class="site-menu-title">{{ trans('admin.menu.log.traffic') }}</span>
  401. </a>
  402. </li>
  403. @endcan
  404. @can('admin.log.flow')
  405. <li class="site-menu-item {{ request()->routeIs('admin.log.flow') ? 'active open' : '' }}">
  406. <a href="{{ route('admin.log.flow') }}">
  407. <span class="site-menu-title">{{ trans('admin.menu.log.traffic_flow') }}</span>
  408. </a>
  409. </li>
  410. @endcan
  411. @can('admin.log.ban')
  412. <li class="site-menu-item {{ request()->routeIs('admin.log.ban') ? 'active open' : '' }}">
  413. <a href="{{ route('admin.log.ban') }}">
  414. <span class="site-menu-title">{{ trans('admin.menu.log.service_ban') }}</span>
  415. </a>
  416. </li>
  417. @endcan
  418. @can('admin.log.ip')
  419. <li class="site-menu-item {{ request()->routeIs('admin.log.ip') ? 'active open' : '' }}">
  420. <a href="{{ route('admin.log.ip') }}">
  421. <span class="site-menu-title">{{ trans('admin.menu.log.online_logs') }}</span>
  422. </a>
  423. </li>
  424. @endcan
  425. @can('admin.log.online')
  426. <li class="site-menu-item {{ request()->routeIs('admin.log.online') ? 'active open' : '' }}">
  427. <a href="{{ route('admin.log.online') }}">
  428. <span class="site-menu-title">{{ trans('admin.menu.log.online_monitor') }}</span>
  429. </a>
  430. </li>
  431. @endcan
  432. @can('admin.log.notify')
  433. <li class="site-menu-item {{ request()->routeIs('admin.log.notify') ? 'active open' : '' }}">
  434. <a href="{{ route('admin.log.notify') }}">
  435. <span class="site-menu-title">{{ trans('admin.menu.log.notify') }}</span>
  436. </a>
  437. </li>
  438. @endcan
  439. @can('admin.payment.callback')
  440. <li class="site-menu-item {{ request()->routeIs('admin.payment.callback') ? 'active open' : '' }}">
  441. <a href="{{ route('admin.payment.callback') }}">
  442. <span class="site-menu-title">{{ trans('admin.menu.log.payment_callback') }}</span>
  443. </a>
  444. </li>
  445. @endcan
  446. @can('log-viewer')
  447. <li class="site-menu-item">
  448. <a href="{{ route('log-viewer::dashboard') }}" target="_blank">
  449. <span class="site-menu-title">{{ trans('admin.menu.log.system') }}</span>
  450. </a>
  451. </li>
  452. @endcan
  453. @can('viewHorizon')
  454. <li class="site-menu-item">
  455. <a href="{{ route('horizon.index') }}" target="_blank">
  456. <span class="site-menu-title"> Horizon </span>
  457. </a>
  458. </li>
  459. @endcan
  460. @if (config('app.debug') && config('app.env') === 'local')
  461. @can('viewTelescope')
  462. <li class="site-menu-item">
  463. <a href="{{ route('telescope') }}" target="_blank">
  464. <span class="site-menu-title"> Telescope </span>
  465. </a>
  466. </li>
  467. @endcan
  468. @endif
  469. </ul>
  470. </li>
  471. @endcanany
  472. @canany(['admin.tools.decompile', 'admin.tools.convert', 'admin.tools.import', 'admin.tools.analysis'])
  473. <li class="site-menu-item has-sub {{ request()->routeIs('admin.tools.*') ? 'active open' : '' }}">
  474. <a href="javascript:void(0)">
  475. <i class="site-menu-icon wb-briefcase" aria-hidden="true"></i>
  476. <span class="site-menu-title">{{ trans('admin.menu.tools.attribute') }}</span>
  477. </a>
  478. <ul class="site-menu-sub">
  479. @can('admin.tools.decompile')
  480. <li class="site-menu-item {{ request()->routeIs('admin.tools.decompile') ? 'active open' : '' }}">
  481. <a href="{{ route('admin.tools.decompile') }}">
  482. <span class="site-menu-title">{{ trans('admin.menu.tools.decompile') }}</span>
  483. </a>
  484. </li>
  485. @endcan
  486. @can('admin.tools.convert')
  487. <li class="site-menu-item {{ request()->routeIs('admin.tools.convert') ? 'active open' : '' }}">
  488. <a href="{{ route('admin.tools.convert') }}">
  489. <span class="site-menu-title">{{ trans('admin.menu.tools.convert') }}</span>
  490. </a>
  491. </li>
  492. @endcan
  493. @can('admin.tools.import')
  494. <li class="site-menu-item {{ request()->routeIs('admin.tools.import') ? 'active open' : '' }}">
  495. <a href="{{ route('admin.tools.import') }}">
  496. <span class="site-menu-title">{{ trans('admin.menu.tools.import') }}</span>
  497. </a>
  498. </li>
  499. @endcan
  500. @can('admin.tools.analysis')
  501. <li class="site-menu-item {{ request()->routeIs('admin.tools.analysis') ? 'active open' : '' }}">
  502. <a href="{{ route('admin.tools.analysis') }}">
  503. <span class="site-menu-title">{{ trans('admin.menu.tools.analysis') }}</span>
  504. </a>
  505. </li>
  506. @endcan
  507. </ul>
  508. </li>
  509. @endcanany
  510. @canany(['admin.config.filter.index', 'admin.config.index', 'admin.system.index'])
  511. <li class="site-menu-item has-sub {{ request()->routeIs('admin.config.*', 'admin.system.index') ? 'active open' : '' }}">
  512. <a href="javascript:void(0)">
  513. <i class="site-menu-icon wb-settings" aria-hidden="true"></i>
  514. <span class="site-menu-title">{{ trans('admin.menu.setting.attribute') }}</span>
  515. </a>
  516. <ul class="site-menu-sub">
  517. @can('admin.config.filter.index')
  518. <li class="site-menu-item {{ request()->routeIs('admin.config.filter.index') ? 'active open' : '' }}">
  519. <a href="{{ route('admin.config.filter.index') }}">
  520. <span class="site-menu-title">{{ trans('admin.menu.setting.email_suffix') }}</span>
  521. </a>
  522. </li>
  523. @endcan
  524. @can('admin.config.index')
  525. <li class="site-menu-item {{ request()->routeIs('admin.config.common.*') ? 'active open' : '' }}">
  526. <a href="{{ route('admin.config.index') }}">
  527. <span class="site-menu-title">{{ trans('admin.menu.setting.universal') }}</span>
  528. </a>
  529. </li>
  530. @endcan
  531. @can('admin.system.index')
  532. <li class="site-menu-item {{ request()->routeIs('admin.system.index') ? 'active open' : '' }}">
  533. <a href="{{ route('admin.system.index') }}">
  534. <span class="site-menu-title">{{ trans('admin.menu.setting.system') }}</span>
  535. </a>
  536. </li>
  537. @endcan
  538. </ul>
  539. </li>
  540. @endcanany
  541. </ul>
  542. </div>
  543. </div>
  544. <div class="page">
  545. @yield('content')
  546. </div>
  547. @endsection
  548. @section('layout_javascript')
  549. <script src="/assets/custom/sweetalert2/sweetalert2.all.min.js"></script>
  550. <script>
  551. const $buoop = {
  552. required: {
  553. e: 11,
  554. f: -6,
  555. o: -6,
  556. s: -6,
  557. c: -6
  558. },
  559. insecure: true,
  560. unsupported: true,
  561. api: 2024.07,
  562. }
  563. function $buo_f() {
  564. const e = document.createElement('script')
  565. e.src = "//browser-update.org/update.min.js";
  566. document.body.appendChild(e);
  567. }
  568. try {
  569. document.addEventListener("DOMContentLoaded", $buo_f, false)
  570. } catch (e) {
  571. window.attachEvent("onload", $buo_f)
  572. }
  573. </script>
  574. @yield('javascript')
  575. @endsection