From f71815a1fd346642f2ffd76ebca7d261e2635711 Mon Sep 17 00:00:00 2001
From: Karson <karsonzhang@163.com>
Date: Wed, 7 Nov 2018 09:53:23 +0800
Subject: [PATCH] 新增buttons禁用属性控制 优化后台超级管理员权限控制 修复后台清除缓存的一处BUG

---
 application/admin/controller/Ajax.php        |  7 ++++---
 application/admin/lang/zh-cn/addon.php       |  4 ++--
 application/admin/library/traits/Backend.php |  2 +-
 application/admin/view/dashboard/index.html  |  8 ++++----
 public/assets/js/require-backend.min.js      |  9 +++++++--
 public/assets/js/require-frontend.min.js     |  3 ++-
 public/assets/js/require-table.js            |  6 +++++-
 7 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/application/admin/controller/Ajax.php b/application/admin/controller/Ajax.php
index 216d053..1bf0fe8 100644
--- a/application/admin/controller/Ajax.php
+++ b/application/admin/controller/Ajax.php
@@ -198,16 +198,17 @@ class Ajax extends Backend
     {
         $type = $this->request->request("type");
         switch ($type) {
-            case 'content' || 'all':
+            case 'all':
+            case 'content':
                 rmdirs(CACHE_PATH, false);
                 Cache::clear();
                 if ($type == 'content')
                     break;
-            case 'template' || 'all':
+            case 'template':
                 rmdirs(TEMP_PATH, false);
                 if ($type == 'template')
                     break;
-            case 'addons' || 'all':
+            case 'addons':
                 Service::refresh();
                 if ($type == 'addons')
                     break;
diff --git a/application/admin/lang/zh-cn/addon.php b/application/admin/lang/zh-cn/addon.php
index 69f7b96..248e974 100755
--- a/application/admin/lang/zh-cn/addon.php
+++ b/application/admin/lang/zh-cn/addon.php
@@ -21,8 +21,8 @@ return [
     'Pay tips'                       => '扫码支付后如果仍然无法立即下载,请不要重复支付,请加<a href="https://jq.qq.com/?_wv=1027&k=487PNBb" target="_blank">QQ群:636393962</a>向管理员反馈',
     'Pay click tips'                 => '请点击这里在新窗口中进行支付!',
     'Pay new window tips'            => '请在新弹出的窗口中进行支付,支付完成后再重新点击安装按钮进行安装!',
-    'Uninstall tips'                 => '确认卸载[%s]?<p class="text-danger">卸载将会删除所有插件文件且不可找回!!! 插件如果有创建数据库表请手动删除!!!</p>如有重要数据请备份后再操作!',
-    'Upgrade tips'                   => '确认升级[%s]?<p class="text-danger">如果之前购买插件时未登录,此次升级可能出现购买后才可以下载的提示!!!<br>升级后可能出现部分冗余数据记录,请根据需要移除即可!!!</p>如有重要数据请备份后再操作!',
+    'Uninstall tips'                 => '确认卸载<b>[%s]</b>?<p class="text-danger">卸载将会删除所有插件文件且不可找回!!! 插件如果有创建数据库表请手动删除!!!</p>如有重要数据请备份后再操作!',
+    'Upgrade tips'                   => '确认升级<b>[%s]</b>?<p class="text-danger">如果之前购买插件时未登录,此次升级可能出现购买后才可以下载的提示!!!<br>升级后可能出现部分冗余数据记录,请根据需要移除即可!!!</p>如有重要数据请备份后再操作!',
     'Offline installed tips'         => '插件安装成功!清除浏览器缓存和框架缓存后生效!',
     'Online installed tips'          => '插件安装成功!清除浏览器缓存和框架缓存后生效!',
     'Not login tips'                 => '你当前未登录FastAdmin,登录后将同步已购买的记录,下载时无需二次付费!',
diff --git a/application/admin/library/traits/Backend.php b/application/admin/library/traits/Backend.php
index cd4e653..89b73ac 100755
--- a/application/admin/library/traits/Backend.php
+++ b/application/admin/library/traits/Backend.php
@@ -228,7 +228,7 @@ trait Backend
             if ($this->request->has('params')) {
                 parse_str($this->request->post("params"), $values);
                 $values = array_intersect_key($values, array_flip(is_array($this->multiFields) ? $this->multiFields : explode(',', $this->multiFields)));
-                if ($values) {
+                if ($values || $this->auth->isSuperAdmin()) {
                     $adminIds = $this->getDataLimitAdminIds();
                     if (is_array($adminIds)) {
                         $this->model->where($this->dataLimitField, 'in', $adminIds);
diff --git a/application/admin/view/dashboard/index.html b/application/admin/view/dashboard/index.html
index d9ee7ec..04db234 100644
--- a/application/admin/view/dashboard/index.html
+++ b/application/admin/view/dashboard/index.html
@@ -294,11 +294,11 @@
                                     <div class="row">
                                         <div class="col-md-6">
                                             <h1 class="no-margins">1234</h1>
-                                            <div class="font-bold text-navy"><i class="fa fa-commenting"></i> <small>{:__('Comment count')}</small></div>
+                                            <div class="font-bold"><i class="fa fa-commenting"></i> <small>{:__('Comment count')}</small></div>
                                         </div>
                                         <div class="col-md-6">
                                             <h1 class="no-margins">6754</h1>
-                                            <div class="font-bold text-navy"><i class="fa fa-heart"></i> <small>{:__('Like count')}</small></div>
+                                            <div class="font-bold"><i class="fa fa-heart"></i> <small>{:__('Like count')}</small></div>
                                         </div>
                                     </div>
                                 </div>
@@ -317,11 +317,11 @@
                                     <div class="row">
                                         <div class="col-md-6">
                                             <h1 class="no-margins">5302</h1>
-                                            <div class="font-bold text-navy"><i class="fa fa-commenting"></i> <small>{:__('Comment count')}</small></div>
+                                            <div class="font-bold"><i class="fa fa-commenting"></i> <small>{:__('Comment count')}</small></div>
                                         </div>
                                         <div class="col-md-6">
                                             <h1 class="no-margins">8205</h1>
-                                            <div class="font-bold text-navy"><i class="fa fa-user"></i> <small>{:__('Like count')}</small></div>
+                                            <div class="font-bold"><i class="fa fa-user"></i> <small>{:__('Like count')}</small></div>
                                         </div>
                                     </div>
                                 </div>
diff --git a/public/assets/js/require-backend.min.js b/public/assets/js/require-backend.min.js
index 84a683f..949330b 100644
--- a/public/assets/js/require-backend.min.js
+++ b/public/assets/js/require-backend.min.js
@@ -860,7 +860,8 @@ define('fast',['jquery', 'bootstrap', 'toastr', 'layer', 'lang'], function ($, u
                         if ($(this).hasClass("disabled") || $(this).parent().hasClass("disabled")) {
                             return;
                         }
-                        $(".btn:eq(" + $(this).index() + ")", layerfooter).trigger("click");
+                        var index = footer.find('.btn').index(this);
+                        $(".btn:eq(" + index + ")", layerfooter).trigger("click");
                     });
 
                     var titHeight = layero.find('.layui-layer-title').outerHeight() || 0;
@@ -9928,7 +9929,7 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
                 type = typeof type === 'undefined' ? 'buttons' : type;
                 var options = table ? table.bootstrapTable('getOptions') : {};
                 var html = [];
-                var hidden, visible, url, classname, icon, text, title, refresh, confirm, extend, click;
+                var hidden, visible, disable, url, classname, icon, text, title, refresh, confirm, extend, click;
                 var fieldIndex = column.fieldIndex;
 
                 $.each(buttons, function (i, j) {
@@ -9959,6 +9960,10 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
                         refresh = j.refresh ? 'data-refresh="' + j.refresh + '"' : '';
                         confirm = j.confirm ? 'data-confirm="' + j.confirm + '"' : '';
                         extend = j.extend ? j.extend : '';
+                        disable = typeof j.disable === 'function' ? j.disable.call(table, row, j) : (j.disable ? j.disable : false);
+                        if (disable) {
+                            classname = classname + ' disabled';
+                        }
                         html.push('<a href="' + url + '" class="' + classname + '" ' + (confirm ? confirm + ' ' : '') + (refresh ? refresh + ' ' : '') + extend + ' title="' + title + '" data-table-id="' + (table ? table.attr("id") : '') + '" data-field-index="' + fieldIndex + '" data-row-index="' + index + '" data-button-index="' + i + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>');
                     }
                 });
diff --git a/public/assets/js/require-frontend.min.js b/public/assets/js/require-frontend.min.js
index bb508dd..8806977 100644
--- a/public/assets/js/require-frontend.min.js
+++ b/public/assets/js/require-frontend.min.js
@@ -860,7 +860,8 @@ define('fast',['jquery', 'bootstrap', 'toastr', 'layer', 'lang'], function ($, u
                         if ($(this).hasClass("disabled") || $(this).parent().hasClass("disabled")) {
                             return;
                         }
-                        $(".btn:eq(" + $(this).index() + ")", layerfooter).trigger("click");
+                        var index = footer.find('.btn').index(this);
+                        $(".btn:eq(" + index + ")", layerfooter).trigger("click");
                     });
 
                     var titHeight = layero.find('.layui-layer-title').outerHeight() || 0;
diff --git a/public/assets/js/require-table.js b/public/assets/js/require-table.js
index 45a75ba..93cd0c4 100644
--- a/public/assets/js/require-table.js
+++ b/public/assets/js/require-table.js
@@ -541,7 +541,7 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
                 type = typeof type === 'undefined' ? 'buttons' : type;
                 var options = table ? table.bootstrapTable('getOptions') : {};
                 var html = [];
-                var hidden, visible, url, classname, icon, text, title, refresh, confirm, extend, click;
+                var hidden, visible, disable, url, classname, icon, text, title, refresh, confirm, extend, click;
                 var fieldIndex = column.fieldIndex;
 
                 $.each(buttons, function (i, j) {
@@ -572,6 +572,10 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
                         refresh = j.refresh ? 'data-refresh="' + j.refresh + '"' : '';
                         confirm = j.confirm ? 'data-confirm="' + j.confirm + '"' : '';
                         extend = j.extend ? j.extend : '';
+                        disable = typeof j.disable === 'function' ? j.disable.call(table, row, j) : (j.disable ? j.disable : false);
+                        if (disable) {
+                            classname = classname + ' disabled';
+                        }
                         html.push('<a href="' + url + '" class="' + classname + '" ' + (confirm ? confirm + ' ' : '') + (refresh ? refresh + ' ' : '') + extend + ' title="' + title + '" data-table-id="' + (table ? table.attr("id") : '') + '" data-field-index="' + fieldIndex + '" data-row-index="' + index + '" data-button-index="' + i + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>');
                     }
                 });
--
libgit2 0.24.0