Răsfoiți Sursa

Add clean merge tags duplicate

stany.ferer 5 luni în urmă
părinte
comite
1b61986541

+ 15 - 0
core/class/tags.class.php

@@ -50,6 +50,21 @@ class tags
         }
     }
 
+    public static function cleanTagsDuplicate() {
+        db::query("DELETE dt1"
+            . " FROM documents_tags dt1"
+            . " JOIN documents_tags dt2"
+            . " ON dt1.id_tags = dt2.id_tags"
+            . " AND dt1.id_documents = dt2.id_documents"
+            . " AND dt1.id > dt2.id");
+        try {
+            db::execute();
+            return TRUE;
+        } catch (Exception $ex) {
+            return FALSE;
+        }      
+    }
+
     private static function insert(string $_tag, float $_idTag = 2) {
         db::query("INSERT INTO " . DB_T_TAGS . " (id_type, label) VALUES (:id_type, :label)");
         db::bind(':id_type', $_idTag);

+ 7 - 7
core/submit/cms.tag-merge.php

@@ -2,13 +2,13 @@
 
 if (core::ifPost("from")) {
 
-
-    tags::merge(core::getPost("idMaster"), core::getPost("idSalve"));
-    tags::cleanTags();
-
     $nameMaster = tags::getTag(core::getPost("idMaster"));
-    $nameSalve = tags::getTag(core::getPost("idSalve"));
+    $nameSlave = tags::getTag(core::getPost("idSlave"));
 
+    tags::merge(core::getPost("idMaster"), core::getPost("idSlave"));
+    tags::cleanTags();
+    tags::cleanTagsDuplicate();
+    
     json::create("documents");
     json::create("documents-limited");
 
@@ -17,10 +17,10 @@ if (core::ifPost("from")) {
         "idType" => historique::getIdRef("ACTION"),
         "idUser" => session::getId(),
         "idPage" => historique::getIdRef("/tags.html"),
-        "log" => "Merge du tag " . $nameSalve["label"] . " remplacé par " . $nameMaster["label"]
+        "log" => "Merge du tag " . $nameSlave["label"] . " remplacé par " . $nameMaster["label"]
     ));
 
-    alert::recSuccess("Merge du tag " . $nameSalve["label"] . " remplacé par " . $nameMaster["label"]);
+    alert::recSuccess("Merge du tag " . $nameSlave["label"] . " remplacé par " . $nameMaster["label"]);
 
     header("Location: /tags.html");
     exit();

+ 2 - 2
core/views/pages/cms.tags.php

@@ -38,7 +38,7 @@ $allTags = tags::getAll(2);
                     <td><input type=\"text\" class=\"form-control form-control-sm\" id=\"tags-" . $value["id"] . "\" value=\"" . $value["label"] . "\"></td>
                     <td>";
             echo "<button type=\"button\" class=\"btn btn-outline-primary btn-sm\" onclick=\"majTags(" . $value["id"] . ");\">Renommer</button> ";
-            echo "<button type=\"button\" class=\"btn btn-outline-primary btn-sm\" data-toggle=\"modal\" data-target=\"#mergeModal\" data-tag=\"" . $value["label"] . "\" data-id=\"" . $value["id"] . "\" onclick=\"buttonMergeTags(" . $value["id"] . ");\">Fusionner</button> ";
+            if(count($allTags) > 1) { echo "<button type=\"button\" class=\"btn btn-outline-primary btn-sm\" data-toggle=\"modal\" data-target=\"#mergeModal\" data-tag=\"" . $value["label"] . "\" data-id=\"" . $value["id"] . "\" onclick=\"buttonMergeTags(" . $value["id"] . ");\">Fusionner</button> "; }
             echo "</td>
                 </tr>";
         }
@@ -60,7 +60,7 @@ $allTags = tags::getAll(2);
                 </div>
                 <div class="modal-body">
                     <div class="input-group">
-                        <select id="menuTags" class="form-select" name="idSalve" required></select>
+                        <select id="menuTags" class="form-select" name="idSlave" required></select>
                         <button class="btn btn-outline-primary" type="submit" onclick="return confirm('Le tag sélectionné sera supprimé, vous êtes certain de vouloir continuer ?')">Valider</button>
                     </div>
                     <hr>

+ 9 - 2
maj/sql/maj.sql

@@ -1,4 +1,11 @@
 
-ALTER TABLE `documents` ADD `rapprochement` VARCHAR(255) NULL DEFAULT NULL AFTER `montant`; 
+ALTER TABLE `documents_tags` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`); 
 
-INSERT INTO `type_access` (`id`, `id_type`, `id_access`, `exception`) VALUES ('7#17', '7', '17', NULL); 
+ALTER TABLE `documents_files` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`); 
+
+DELETE dt1
+FROM documents_tags dt1
+JOIN documents_tags dt2
+  ON dt1.id_tags = dt2.id_tags
+ AND dt1.id_documents = dt2.id_documents
+ AND dt1.id > dt2.id;