add a log entry limit to the object page (Mantis#769)
authorDenis Ovsienko <denis@ovsienko.info>
Fri, 26 Apr 2019 03:54:00 +0000 (04:54 +0100)
committerDenis Ovsienko <denis@ovsienko.info>
Fri, 26 Apr 2019 03:54:00 +0000 (04:54 +0100)
* getConfigDefaults(): add OBJECTLOG_PREVIEW_ENTRIES
* install.php: idem
* upgrade.php: idem
* renderObject(): use the option to limit the amount of entries

ChangeLog
wwwroot/inc/dictionary.php
wwwroot/inc/install.php
wwwroot/inc/interface.php
wwwroot/inc/upgrade.php

index cde348b..0004e35 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,5 @@
 0.21.3
+       update: add a log entry limit to the object page (Mantis#769)
 0.21.2 2019-03-25
        update: enable CSS and JavaScript from external URLs (GH#231)
        update: 802.1Q: do permission check for changing native vlan while keeping the allowed vlans list unchanged
index c8658e4..f785f5e 100644 (file)
@@ -265,6 +265,7 @@ function getConfigDefaults()
                'NEAREST_RACKS_CHECKBOX' => 'yes',
                'SHOW_OBJECTTYPE' => 'yes',
                'IPV4_TREE_SHOW_UNALLOCATED' => 'yes',
+               'OBJECTLOG_PREVIEW_ENTRIES' => '5',
        );
 }
 
index 9ee5ef2..6f79d87 100644 (file)
@@ -2299,6 +2299,7 @@ WHERE O.objtype_id = 1562";
 ('REVERSED_RACKS_LISTSRC', 'false', 'string', 'yes', 'no', 'no', 'List of racks with reversed (top to bottom) units order'),
 ('NEAREST_RACKS_CHECKBOX', 'yes', 'string', 'yes', 'no', 'yes', 'Enable nearest racks in port list filter by default'),
 ('SHOW_OBJECTTYPE', 'yes', 'string', 'no', 'no', 'yes', 'Show object type column on depot page'),
+('OBJECTLOG_PREVIEW_ENTRIES','5','uint','no','no','yes','Object log preview maximum entries (0 disables the preview)'),
 ('DB_VERSION','${db_version}','string','no','yes','no','Database version.')";
 
                $query[] = "INSERT INTO `Script` VALUES ('RackCode','allow {\$userid_1}')";
index 5b9263b..fb73511 100644 (file)
@@ -1474,13 +1474,22 @@ function renderObject ($object_id)
                finishPortlet ();
        }
 
-       $logrecords = getLogRecordsForObject ($_REQUEST['object_id']);
-       if (count ($logrecords))
-       {
-               startPortlet ('log records');
+       $logrecords = getLogRecordsForObject ($object_id);
+       $lr_nrows = count ($logrecords);
+       $lr_confmax = getConfigVar ('OBJECTLOG_PREVIEW_ENTRIES');
+       $lr_max = array_key_exists ('ope', $_REQUEST) ? genericAssertion ('ope', 'unsigned') : $lr_confmax;
+       if ($lr_nrows > 0 && $lr_max > 0)
+       {
+               $title = 'log records';
+               if ($lr_max < $lr_nrows)
+                       $title .= sprintf (' (last %u, <a href="%s">show all</a>)', $lr_max, buildRedirectURL (NULL, NULL, array ('ope' => $lr_nrows)));
+               elseif ($lr_confmax > 0 && $lr_confmax < $lr_nrows)
+                       $title .= sprintf (' (all, <a href="%s">show last %u</a>)', buildRedirectURL(), $lr_confmax);
+
+               startPortlet ($title);
                echo "<table cellspacing=0 cellpadding=5 align=center class=widetable width='100%'>";
                $order = 'odd';
-               foreach ($logrecords as $row)
+               foreach (array_slice ($logrecords, 0, $lr_max) as $row)
                {
                        echo "<tr class=row_${order} valign=top>";
                        echo '<td class=tdleft>' . $row['date'] . '<br>' . $row['user'] . '</td>';
index 588a38f..d4dc1a9 100644 (file)
@@ -1354,6 +1354,7 @@ INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdef
                        $query[] = "UPDATE Config SET varvalue = '0.21.2' WHERE varname = 'DB_VERSION'";
                        break;
                case '0.21.3':
+                       $query[] = "INSERT INTO Config VALUES ('OBJECTLOG_PREVIEW_ENTRIES','5','uint','no','no','yes','Object log preview maximum entries (0 disables the preview)')";
                        $query[] = "UPDATE Config SET varvalue = '0.21.3' WHERE varname = 'DB_VERSION'";
                        break;
                case 'dictionary':