Jelajahi Sumber

Add confirmation to recalculate user post count

Visman 2 tahun lalu
induk
melakukan
95087b58e7
2 mengubah file dengan 21 tambahan dan 5 penghapusan
  1. 17 5
      app/Models/Pages/Admin/Users/View.php
  2. 4 0
      public/style/ForkBB/admin.css

+ 17 - 5
app/Models/Pages/Admin/Users/View.php

@@ -419,14 +419,20 @@ class View extends Users
         $v = $this->c->Validator->reset()
         ->addValidators([
         ])->addRules([
-            'token' => 'token:AdminUsersRecalculate',
+            'confirm' => 'checkbox',
+            'token'   => 'token:AdminUsersRecalculate',
         ])->addAliases([
         ])->addArguments([
         ])->addMessages([
         ]);
 
-        if (! $v->validation($_POST)) {
-            return $this->c->Message->message($this->c->Csrf->getError() ?? 'Bad token');
+        if (
+            ! $v->validation($_POST)
+            || '1' !== $v->confirm
+        ) {
+            return $this->c->Message->message(
+                '1' !== $v->confirm ? 'No confirm redirect' : ($this->c->Csrf->getError() ?? 'Bad token')
+            );
         }
 
         $this->c->users->updateCountPosts();
@@ -447,8 +453,14 @@ class View extends Users
             'sets'   => [
                 'recalculate' => [
                     'legend' => 'Number of users posts',
-                    'fields' => [],
-                ]
+                    'fields' => [
+                        'confirm' => [
+                            'type'    => 'checkbox',
+                            'label'   => 'Confirm action',
+                            'checked' => false,
+                        ],
+                    ],
+                ],
             ],
             'btns'   => [
                 'recalculate' => [

+ 4 - 0
public/style/ForkBB/admin.css

@@ -514,6 +514,10 @@
   color: #D8000C;
 }
 
+#fork-recalc #id-dl-confirm > dt {
+  display: none;
+}
+
 @media screen and (min-width: 36rem) {
   #forka .f-fs-result .f-field-result > dt,
   #forka .f-fs-result .f-field-result > dd {