adzon/iframe-tabs

laravel-admin 扩展 iframe-tabs

2.0.0 2020-05-06 18:53 UTC

README

原作者里面的 config 与我的代码不兼容,我已经修改并进行了写死处理。

安装

运行

$ composer require ichynul/iframe-tabs

然后运行

$ php artisan vendor:publish --tag=iframe-tabs

$ php artisan admin:import iframe-tabs

更新它

[2019-10-19] 修复了当左侧菜单很多时上下滚动无效的bug#32#29#21。修改了dashboard.css样式,升级后请记得使用php artisan vendor:publish --tag=iframe-tabs --force更新样式。

(本扩展依赖一些js和css文件,如果composer update时版本号有变,请强制发布资源,可能是更新了某些样式)

在运行composer update后,如果本扩展的版本有变化

运行

php artisan vendor:publish --tag=iframe-tabs --force

这将覆盖css和js文件到/public/vendor/laravel-admin-ext/iframe-tabs/

或者你可以在composer.json中添加一个脚本

"scripts": {
    "post-update-cmd": "php artisan vendor:publish --tag=iframe-tabs --force",
}

配置

config/admin.php中添加配置

    'extensions' => [
        'iframe-tabs' => [
           // Set to `false` if you want to disable this extension
            'enable' => true,
            // The controller and action of dashboard page `/admin/dashboard`
            'home_action' => App\Admin\Controllers\HomeController::class . '@index',
            // Default page tab-title
            'home_title' => 'Home',
            // Default page tab-title icon
            'home_icon' => 'fa-home',
            // Whether show icon befor titles for all tab
            'use_icon' => true,
            // dashboard css
            'tabs_css' =>'vendor/laravel-admin-ext/iframe-tabs/dashboard.css',
            // layer.js path
            'layer_path' => 'vendor/laravel-admin-ext/iframe-tabs/layer/layer.js',
            /**
             * href links do not open in tab .
             * selecter : .sidebar-menu li a,.navbar-nav>li a,.sidebar .user-panel a,.sidebar-form .dropdown-menu li a
             * if(href.indexOf(pass_urls[i]) > -1) //pass
             */
            'pass_urls' => ['/auth/logout', '/auth/lock'],
            // When login session state of a tab-page was expired , force top-level window goto login page .
            //登录超时是是否强制整体跳转到登录页面,设为false的话只在触发超时登录的页面跳转,最大程度保留已打开页面。
            'force_login_in_top' => true,
            // tabs left offset
            'tabs_left'  => 42,
            // bind click event of table actions [edit / view]  
            'bind_urls' => 'popup', //[ popup / new_tab / none]
            //table actions dom selecter
            'bind_selecter' => '.box-body table.table tbody a.grid-row-view,.box-body table.table tbody a.grid-row-edit,.box-header .pull-right .btn-success,.popup',
            //table action links [view edit] and create button ,and any thing has class pupop : <a class="pupop" popw="400px" poph="200px" href="someurl">mylink</a>
        ]
    ],

如果bind_urls设置为popupnew_tab,建议在/Admin/bootstrap.php中设置disableViewdisableList

    Encore\Admin\Form::init(function ($form) {
        $form->tools(function ($tools) {
            $tools->disableDelete();
            $tools->disableView();
            $tools->disableList();
        });
    });

https://laravel-admin.org/docs/zh/model-form-init

并在展示时设置disableEditdisableList

   $show->panel()
   ->tools(function ($tools) {
       $tools->disableEdit();
       $tools->disableList();
       $tools->disableDelete();
   });;

语言

resources/lang/{zh-CN}/admin.php中添加语言配置

'iframe_tabs' => [
    'oprations' => '页签操作',
    'refresh_current' => '刷新当前',
    'close_current' => '关闭当前',
    'close_all' => '关闭全部',
    'close_other' => '关闭其他',
    'open_in_new' => '新窗口打开',
    'open_in_pop' => '弹出窗打开',
    'scroll_left' => '滚动到最左',
    'scroll_right' => '滚动到最右',
    'scroll_current' => '滚动到当前',
    'goto_login' => '登录超时,正在跳转登录页面...'
],

用法

打开http://your-host/admin

感谢https://github.com/bswsfhcw/AdminLTE-With-Iframe

许可证

根据MIT许可证(MIT)授权。