Browse Source

Mooay 2022 Update – The Tag Update | Revision B (2022-05b)

This PR adds some API Fixes and one UI Fix (improvement)
Niklas Meyer 3 years ago
parent
commit
9a812edee4

+ 5 - 1
data/web/css/build/008-mailcow.css

@@ -232,6 +232,9 @@ table.footable>tbody>tr.footable-empty>td {
   font-style:italic;
   font-style:italic;
   font-size: 1rem;
   font-size: 1rem;
 }
 }
+table>tbody>tr>td>span.footable-toggle {
+  opacity: 0.75;
+}
 .navbar-nav > li {
 .navbar-nav > li {
   font-size: 1rem !important;
   font-size: 1rem !important;
 }
 }
@@ -292,4 +295,5 @@ code {
   padding: 0 5px 0 5px;
   padding: 0 5px 0 5px;
   align-items: center;
   align-items: center;
   display: inline-flex;
   display: inline-flex;
-}
+}
+

+ 7 - 2
data/web/inc/functions.mailbox.inc.php

@@ -568,6 +568,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
           ));
           ));
           // save tags
           // save tags
           foreach($tags as $index => $tag){
           foreach($tags as $index => $tag){
+            if (empty($tag)) continue;
             if ($index > $GLOBALS['TAGGING_LIMIT']) {
             if ($index > $GLOBALS['TAGGING_LIMIT']) {
               $_SESSION['return'][] = array(
               $_SESSION['return'][] = array(
                 'type' => 'warning',
                 'type' => 'warning',
@@ -1124,6 +1125,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
           ));
           ));
           // save tags
           // save tags
           foreach($tags as $index => $tag){
           foreach($tags as $index => $tag){
+            if (empty($tag)) continue;
             if ($index > $GLOBALS['TAGGING_LIMIT']) {
             if ($index > $GLOBALS['TAGGING_LIMIT']) {
               $_SESSION['return'][] = array(
               $_SESSION['return'][] = array(
                 'type' => 'warning',
                 'type' => 'warning',
@@ -2201,8 +2203,9 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
                 ':gal' => $gal,
                 ':gal' => $gal,
                 ':domain' => $domain
                 ':domain' => $domain
               ));
               ));
-              // save tags, tag_name is unique
+              // save tags
               foreach($tags as $index => $tag){
               foreach($tags as $index => $tag){
+                if (empty($tag)) continue;
                 if ($index > $GLOBALS['TAGGING_LIMIT']) {
                 if ($index > $GLOBALS['TAGGING_LIMIT']) {
                   $_SESSION['return'][] = array(
                   $_SESSION['return'][] = array(
                     'type' => 'warning',
                     'type' => 'warning',
@@ -2368,8 +2371,9 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
                 ':description' => $description,
                 ':description' => $description,
                 ':domain' => $domain
                 ':domain' => $domain
               ));
               ));
-              // save tags, tag_name is unique
+              // save tags
               foreach($tags as $index => $tag){
               foreach($tags as $index => $tag){
+                if (empty($tag)) continue;
                 if ($index > $GLOBALS['TAGGING_LIMIT']) {
                 if ($index > $GLOBALS['TAGGING_LIMIT']) {
                   $_SESSION['return'][] = array(
                   $_SESSION['return'][] = array(
                     'type' => 'warning',
                     'type' => 'warning',
@@ -2712,6 +2716,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
             ));
             ));
             // save tags
             // save tags
             foreach($tags as $index => $tag){
             foreach($tags as $index => $tag){
+              if (empty($tag)) continue;
               if ($index > $GLOBALS['TAGGING_LIMIT']) {
               if ($index > $GLOBALS['TAGGING_LIMIT']) {
                 $_SESSION['return'][] = array(
                 $_SESSION['return'][] = array(
                   'type' => 'warning',
                   'type' => 'warning',

+ 1 - 0
data/web/js/build/014-mailcow.js

@@ -290,6 +290,7 @@ $(document).ready(function() {
     var tagValuesElem = $(tagboxElem).find(".tag-values")[0];
     var tagValuesElem = $(tagboxElem).find(".tag-values")[0];
 
 
     var tag = escapeHtml($(tagInputElem).val());
     var tag = escapeHtml($(tagInputElem).val());
+    if (!tag) return;
     var value_tags = [];
     var value_tags = [];
     try {
     try {
       value_tags = JSON.parse($(tagValuesElem).val());
       value_tags = JSON.parse($(tagValuesElem).val());

+ 11 - 6
data/web/json_api.php

@@ -989,14 +989,19 @@ if (isset($_GET['query'])) {
                 if (isset($_GET['tags']) && $_GET['tags'] != '') 
                 if (isset($_GET['tags']) && $_GET['tags'] != '') 
                   $tags = explode(',', $_GET['tags']);
                   $tags = explode(',', $_GET['tags']);
 
 
-                $mailboxes = mailbox('get', 'mailboxes', $object, $tags);
-                if (!empty($mailboxes)) {
-                  foreach ($mailboxes as $mailbox) {
-                    if ($details = mailbox('get', 'mailbox_details', $mailbox)) $data[] = $details;
-                    else continue;
+                if ($tags === null) {
+                  $data = mailbox('get', 'mailbox_details', $object);
+                  process_get_return($data);
+                } else {
+                  $mailboxes = mailbox('get', 'mailboxes', $object, $tags);
+                  if (is_array($mailboxes)) {
+                    foreach ($mailboxes as $mailbox) {
+                      if ($details = mailbox('get', 'mailbox_details', $mailbox)) 
+                        $data[] = $details;
+                    }
                   }
                   }
+                  process_get_return($data, false);
                 }
                 }
-                process_get_return($data);
               break;
               break;
             }
             }
           break;
           break;