r2277 ability to manage rows from the Rackspace page in addition to the Dictionary
authorAaron Dummer <aaron@dummer.info>
Mon, 10 Nov 2008 18:30:37 +0000 (18:30 +0000)
committerAaron Dummer <aaron@dummer.info>
Mon, 10 Nov 2008 18:30:37 +0000 (18:30 +0000)
ChangeLog
inc/interface.php
inc/navigation.php
inc/ophandlers.php

index 5da0969..dfbf8a8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 0.17.0
        new feature: file attachments (by Aaron)
        update: display row name when listing objects. closes ticket 16 (by Aaron)
+       update: ability to manage rows from the Rackspace page in addition to the Dictionary
        bugfix: show error message if snmp module isn't loaded.  closes ticket 43 (by Aaron)
 0.16.4 2008-11-04
        bugfix: display VS/RS config block in RS pool view
index 3790b4a..5ea7bba 100644 (file)
@@ -233,6 +233,36 @@ function renderRackspace ()
        echo "</td></tr></table>\n";
 }
 
+function renderRackspaceRowEditor ()
+{
+       function printNewItemTR ()
+       {
+               printOpFormIntro ('addRow');
+               echo "<tr><td><input type=text name=name tabindex=100></td><td>";
+               printImageHREF ('create', 'Add new row', TRUE, 101);
+               echo "</td></tr></form>";
+       }
+       global $root, $pageno, $tabno;
+       startPortlet ('Rows');
+       showMessageOrError();
+       echo "<table border=0 cellspacing=0 cellpadding=5 align=center class=widetable>\n";
+       echo "<tr><th>Name</th></tr>\n";
+       if (getConfigVar ('ADDNEW_AT_TOP') == 'yes')
+               printNewItemTR();
+       $rackrowList = getRackspace ();
+       foreach ($rackrowList as $rackrow)
+       {
+               printOpFormIntro ('updateRow', array ('row_id' => $rackrow['row_id']));
+               echo "<tr><td><input type=text name=name value='${rackrow['row_name']}'></td><td>";
+               printImageHREF ('save', 'Save changes', TRUE);
+               echo "</td></form></tr>\n";
+       }
+       if (getConfigVar ('ADDNEW_AT_TOP') != 'yes')
+               printNewItemTR();
+       echo "</table><br>\n";
+       finishPortlet();
+}
+
 function renderRow ($row_id = 0)
 {
        if ($row_id == 0)
@@ -1353,6 +1383,8 @@ function printLog ($log)
                                71 => array ('code' => 'success', 'format' => 'File %s was linked successfully'),
                                72 => array ('code' => 'success', 'format' => 'File %s was unlinked successfully'),
                                73 => array ('code' => 'success', 'format' => 'File %s was deleted successfully'),
+                               74 => array ('code' => 'success', 'format' => 'Row %s was added successfully'),                         
+                               75 => array ('code' => 'success', 'format' => 'Row %s was updated successfully'),       
 
                                100 => array ('code' => 'error', 'format' => 'Generic error: %s'),
                                101 => array ('code' => 'error', 'format' => 'Port name cannot be empty'),
@@ -4051,27 +4083,6 @@ function renderUIResetForm()
        echo "</form>";
 }
 
-function renderFirstRowForm ()
-{
-       global $root;
-       echo "<form action='${root}process.php'>\n";
-       echo "<input type=hidden name=page value=dict>\n";
-       echo "<input type=hidden name=tab value=edit>\n";
-       echo "<input type=hidden name=op value=add>\n";
-       echo "<input type=hidden name=chapter_no value=3>\n";
-?>
-<p align=center>
-Your rackspace seems to be empty, and this form will create your first rack row,
-just fill in the name. All the subsequent rack rows will have to be added from the
-Dictionary edit page in Configuration section (you will be redirected right there).
-<br>
-<input type=text name=dict_value value='my server room'><br>
-<?php printImageHREF ('CREATE', 'Add record', TRUE); ?>
-</form>
-</p>
-<?php
-}
-
 function renderLVSConfig ($object_id = 0)
 {
        showMessageOrError();
index a30b81d..56c67f6 100644 (file)
@@ -20,13 +20,17 @@ $page['index']['handler'] = 'renderIndex';
 $page['rackspace']['title'] = 'Rackspace';
 $page['rackspace']['parent'] = 'index';
 $tab['rackspace']['default'] = 'Browse';
+$tab['rackspace']['edit'] = 'Manage rows';
 $tab['rackspace']['history'] = 'History';
-$tab['rackspace']['firstrow'] = 'Click me!';
-$trigger['rackspace']['firstrow'] = 'trigger_emptyRackspace';
 $tabhandler['rackspace']['default'] = 'renderRackspace';
+$tabhandler['rackspace']['edit'] = 'renderRackspaceRowEditor';
 $tabhandler['rackspace']['history'] = 'renderRackspaceHistory';
-$tabhandler['rackspace']['firstrow'] = 'renderFirstRowForm';
-$tabextraclass['rackspace']['firstrow'] = 'attn';
+$ophandler['rackspace']['edit']['addRow'] = 'addRow';
+$ophandler['rackspace']['edit']['updateRow'] = 'updateRow';
+$msgcode['rackspace']['edit']['addRow']['OK'] = 74;
+$msgcode['rackspace']['edit']['addRow']['ERR'] = 100;
+$msgcode['rackspace']['edit']['updateRow']['OK'] = 75;
+$msgcode['rackspace']['edit']['updateRow']['ERR'] = 100;
 
 $page['objects']['title'] = 'Objects';
 $page['objects']['parent'] = 'index';
index 2d7876f..a474742 100644 (file)
@@ -1349,6 +1349,27 @@ function submitSLBConfig ()
        return buildWideRedirectURL ($msglog);
 }
 
+function addRow ()
+{
+       assertStringArg ('name', __FUNCTION__);
+
+       if (commitSupplementDictionary (3, $_REQUEST['name']) === TRUE)
+               return buildRedirectURL ('OK', array ($_REQUEST['name']));
+       else
+               return buildRedirectURL ('ERR', array ($_REQUEST['name']));
+}
+
+function updateRow ()
+{
+       assertUIntArg ('row_id', __FUNCTION__);
+       assertStringArg ('name', __FUNCTION__);
+
+       if (TRUE === commitUpdateDictionary (3, $_REQUEST['row_id'], $_REQUEST['name']))
+               return buildRedirectURL ('OK', array ($_REQUEST['name']));
+       else
+               return buildRedirectURL ('ERR', array ($_REQUEST['name']));
+}
+
 function addRack ()
 {
        assertUIntArg ('row_id', __FUNCTION__);