Skip to content

Commit

Permalink
add force_login_in_top option
Browse files Browse the repository at this point in the history
  • Loading branch information
ichynul committed Mar 22, 2019
1 parent 647b72e commit f95e56f
Show file tree
Hide file tree
Showing 11 changed files with 272 additions and 246 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ Add a config in `config/admin.php`:
* }
*/
'pass_urls' => ['/admin/auth/logout', '/admin/auth/lock'],
//When login session state of a tab-page was expired , force top-level window goto login page .
'force_login_in_top' => true
]
],

Expand Down
43 changes: 36 additions & 7 deletions resources/assets/dashboard.css
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,43 @@ body,
position: relative;
height: 33px;
background: #fafafa;
border-bottom: solid 1px #3c8dbc;
border-bottom: solid 1px #222d32;
font-size: 12px;
border-top: 1px solid #3c8dbc;
border-top: 1px solid #222d32;
margin-top: 1px;
padding-top: 1px;
}

.skin-blue .content-tabs,
.skin-blue-light .content-tabs {
border-color: #3c8dbc;
}

.skin-yellow .content-tabs,
.skin-yellow-light .content-tabs {
border-color: #f39c12;
}

.skin-green .content-tabs,
.skin-green-light .content-tabs {
border-color: #00a65a;
}

.skin-purple .content-tabs,
.skin-purple-light .content-tabs {
border-color: #605ca8;
}

.skin-red .content-tabs,
.skin-red-light .content-tabs {
border-color: #dd4b39;
}

.skin-black .content-tabs,
.skin-black-light .content-tabs {
border-color: #222d32;
}

.content-tabs .roll-nav {
position: absolute;
width: 40px;
Expand Down Expand Up @@ -95,8 +125,7 @@ body,
float: left;
}

.page-tabs-content
{
.page-tabs-content {
height: 30px;
}

Expand Down Expand Up @@ -209,10 +238,10 @@ body,
box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
}

.menu_tab span i
{
.menu_tab span i {
margin-right: 3px;
}

.layui-layer-loading div {
margin-left: 230px;
}
Expand All @@ -235,4 +264,4 @@ body,
float: left;
margin-left: 20px;
color: #8aa4af;
}
}
62 changes: 0 additions & 62 deletions resources/views/admin/index.blade.php

This file was deleted.

1 change: 1 addition & 0 deletions resources/views/content/partials/header.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<!--No header-->
1 change: 1 addition & 0 deletions resources/views/content/partials/sidebar.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<!--No sidebar-->
174 changes: 114 additions & 60 deletions resources/views/ext/index.blade.php
Original file line number Diff line number Diff line change
@@ -1,70 +1,124 @@
<!DOCTYPE html>
<html lang="{{ config('app.locale') }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{ Admin::title() }} @if($header) | {{ $header }}@endif</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
@extends('admin::index', ['header' => $header])

{!! Admin::css() !!}
@section('content')
<div class="content-tabs">
<button class="roll-nav roll-left tabLeft" onclick="scrollTabLeft()">
<i class="fa fa-backward"></i>
</button>
<nav class="page-tabs menuTabs tab-ui-menu" id="tab-menu">
<div class="page-tabs-content" style="margin-left: 0px;">

<script src="{{ Admin::jQuery() }}"></script>
{!! Admin::headerJs() !!}
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</div>
</nav>
<button class="roll-nav roll-right tabRight" onclick="scrollTabRight()">
<i class="fa fa-forward" style="margin-left: 4px;"></i>
</button>
<div class="btn-group roll-nav roll-right">
<button class="dropdown tabClose" data-toggle="dropdown">
{{ $trans['oprations'] }}<i class="fa fa-caret-down" style="padding-left: 3px;"></i>
</button>
<ul class="dropdown-menu dropdown-menu-right" style="min-width: 128px;">
<li><a class="tabReload" href="javascript:refreshTab();">{{ $trans['refresh_current'] }}</a></li>
<li><a class="tabCloseCurrent" href="javascript:closeCurrentTab();">{{ $trans['close_current'] }}</a></li>
<li><a class="tabCloseAll" href="javascript:closeOtherTabs(true);">{{ $trans['close_all'] }}</a></li>
<li><a class="tabCloseOther" href="javascript:closeOtherTabs();">{{ $trans['close_other'] }}</a></li>
</ul>
</div>
</div>
<div class="content-iframe">
<div class="tab-content " id="tab-content">
</div>
</div>

</head>
<script>
$(function() {
window.refresh_current = "{{ $trans['refresh_current'] }}";
window.open_in_new = "{{ $trans['open_in_new'] }}";
window.open_in_pop = "{{ $trans['open_in_pop'] }}";
<body class="hold-transition {{config('admin.skin')}} {{join(' ', config('admin.layout'))}}">
<div class="wrapper">
window.use_icon = "{{ $use_icon }}" == '1';
window.pass_urls = '{{ $pass_urls }}'.split(',');
window.home_title = '{{ $home_title }}';
window.home_uri = '{{ $home_uri }}';
window.home_icon = '{{ $home_icon }}';
@include('admin::partials.header')
window.openPop = function(url, title) {
layer.open({
type: 2,
title: title,
anim: 2,
closeBtn: 1,
shade: false,
maxmin: true, //开启最大化最小化按钮
area: ['90%', '90%'],
content: url,
});
}
@include('admin::partials.sidebar')
if (!window.layer) {
window.layer = {
load: function() {
var html = '<div style="z-index:999;margin:0 auto;position:fixed;top:90px;left:50%;" class="loading-message"><img src="/vendor/laravel-admin-ext/iframe-tabs/images/loading-spinner-grey.gif" /></div>';
$('.tab-content').append(html);
return 1;
},
close: function(index) {
$('.tab-content .loading-message').remove();
},
open: function() {
alert('layer.js dose not work.');
}
};
}
<div class="content-wrapper" id="pjax-container">
<div class="content-tabs">
<button class="roll-nav roll-left tabLeft" onclick="scrollTabLeft()">
<i class="fa fa-backward"></i>
</button>
<nav class="page-tabs menuTabs tab-ui-menu" id="tab-menu">
<div class="page-tabs-content" style="margin-left: 0px;">
$('body').on('click', '.sidebar-menu li a,.navbar-nav>li a', function() {
var url = $(this).attr('href');
if (!url || url == '#') {
return;
}
if (window.pass_urls) {
for (var i in window.pass_urls) {
if (url.indexOf(window.pass_urls[i]) > -1) {
return true;
}
}
}
var icon = '<i class="fa fa-edge"></i>';
if ($(this).find('i.fa').size()) {
var icon = $(this).find('i.fa').prop("outerHTML");
}
var span = $(this).find('span');
addTabs({
id: url.replace(/\W/g, '_'),
title: span.size() ? span.text() : $(this).text().length ? $(this).text() : '*',
close: true,
url: url,
urlType: 'absolute',
icon: icon
});
</div>
</nav>
<button class="roll-nav roll-right tabRight" onclick="scrollTabRight()">
<i class="fa fa-forward" style="margin-left: 4px;"></i>
</button>
<div class="btn-group roll-nav roll-right">
<button class="dropdown tabClose" data-toggle="dropdown">
{{ $trans['oprations'] }}<i class="fa fa-caret-down" style="padding-left: 3px;"></i>
</button>
<ul class="dropdown-menu dropdown-menu-right" style="min-width: 128px;">
<li><a class="tabReload" href="javascript:refreshTab();">{{ $trans['refresh_current'] }}</a></li>
<li><a class="tabCloseCurrent" href="javascript:closeCurrentTab();">{{ $trans['close_current'] }}</a></li>
<li><a class="tabCloseAll" href="javascript:closeOtherTabs(true);">{{ $trans['close_all'] }}</a></li>
<li><a class="tabCloseOther" href="javascript:closeOtherTabs();">{{ $trans['close_other'] }}</a></li>
</ul>
</div>
</div>
<div class="content-iframe">
<div class="tab-content " id="tab-content">
</div>
</div>
{!! Admin::script() !!}
</div>
</div>

<script>
function LA() {}
LA.token = "{{ csrf_token() }}";
if ($(this).parents('.dropdown').size()) {
$(this).parents('.dropdown').find('.dropdown-toggle').trigger('click');
}
return false;
});
if (window == top) {
var url = window.home_uri;
addTabs({
id: url.replace(/\W/g, '_'),
title: window.home_title,
close: false,
url: url,
urlType: 'absolute',
icon: '<i class="fa {$home_icon}"></i>'
});
} else {
if (/\/admin\/?$/i.test(location.href)) {
$('body').html('....');
location.href = window.home_uri;
}
}
});
</script>

<!-- REQUIRED JS SCRIPTS -->
{!! Admin::js() !!}

</body>
</html>
@endsection
1 change: 1 addition & 0 deletions resources/views/index/partials/footer.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<!--No footer-->
16 changes: 16 additions & 0 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@

use Ichynul\IframeTabs\Http\Controllers\IframeTabsController;
use Ichynul\IframeTabs\IframeTabs;
use Ichynul\IframeTabs\Middleware\ForceLogin;
use Encore\Admin\Controllers\AuthController;

Route::get('/', IframeTabsController::class . '@index')->name('iframes.index');

Route::get('/dashboard', IframeTabs::config('home_action', IframeTabsController::class . '@dashboard'))->name('iframes.dashboard');

if (IframeTabs::config('force_login_in_top', true)) {

$middleware = config('admin.route.middleware', []);

array_push($middleware, 'admin.force_login');

$authController = config('admin.auth.controller', AuthController::class);

Route::aliasMiddleware('admin.force_login', ForceLogin::class);

Route::get('auth/login', $authController . '@getLogin')->middleware($middleware);
}
Loading

0 comments on commit f95e56f

Please sign in to comment.