r4276 formatPortLink: moved from interfaces.php to functions.php
[racktables] / wwwroot / inc / interface.php
index 43275df4bab280b28855b5873e56895a74a431b0..4b2a9a26423c007f04cb1cc30f8ea602e19d8b9b 100644 (file)
@@ -837,8 +837,8 @@ function getSelect ($optionList, $select_attrs = array(), $selected_id = NULL)
                return '(none)';
        if (count ($optionList) == 1)
        {
-               $value = current (array_keys ($optionList));
-               return "<input type=hidden name=${select_attrs['name']} id=${select_attrs['name']} value=${value}>" . current ($optionList);
+               foreach ($optionList as $key => $value) { break; }
+               return "<input type=hidden name=${select_attrs['name']} id=${select_attrs['name']} value=${key}>" . $value;
        }
        if (!array_key_exists ('id', $select_attrs))
                $select_attrs['id'] = $select_attrs['name'];
@@ -1801,7 +1801,6 @@ function showMessageOrError ()
                                100 => array ('code' => 'error', 'format' => '%s'),
                                102 => array ('code' => 'error', 'format' => "Error creating user account '%s'"),
                                104 => array ('code' => 'error', 'format' => "failed updating record '%s'"),
-                               105 => array ('code' => 'error', 'format' => 'default VLAN cannot be changed'),
                                107 => array ('code' => 'error', 'format' => 'Assertion failed: %s'),
                                108 => array ('code' => 'error', 'format' => 'Database error: %s'),
                                109 => array ('code' => 'error', 'format' => 'failed updating a record'),
@@ -2254,7 +2253,7 @@ function renderHistory ($object_type, $object_id)
                                "from RackObjectHistory inner join Dictionary on objtype_id = dict_key join Chapter on Dictionary.chapter_id = Chapter.id " .
                                "where Chapter.name = 'RackObjectType' and RackObjectHistory.id=? order by ctime";
                        $header = '<tr><th>change time</th><th>author</th><th>common name</th><th>visible label</th><th>asset no</th><th>has problems?</th><th>object type</th><th>comment</th></tr>';
-                       $extra = 8;
+                       $extra = 7;
                        break;
                default:
                        throw new InvalidArgException ('object_type', $object_type);
@@ -3185,11 +3184,11 @@ function renderEmptyIPv6 ($ip, $hl_ip)
 function renderSeparator ($first, $after, $hl_ip)
 {
        $self = __FUNCTION__;
-       if (strcmp ($first, $after) >= 0)
+       if (strcmp ($first->getBin(), $after->getBin()) >= 0)
                return;
        if ($first->next() == $after)
                renderEmptyIPv6 ($first, $hl_ip);
-       elseif (isset ($hl_ip) && strcmp ($hl_ip, $first) >= 0 && strcmp ($hl_ip, $after) < 0)
+       elseif (isset ($hl_ip) && strcmp ($hl_ip->getBin(), $first->getBin()) >= 0 && strcmp ($hl_ip->getBin(), $after->getBin()) < 0)
        { // $hl_ip is inside the range $first - ($after-1)
                $self ($first, $hl_ip, $hl_ip);
                renderEmptyIPv6 ($hl_ip, $hl_ip);
@@ -3204,7 +3203,7 @@ function getPageNumOfIPv6 ($list, $ip, $maxperpage)
 {
        if (intval ($maxperpage) <= 0 || count ($list) <= $maxperpage)
                return 0;
-       $bin_ip = (string)$ip;
+       $bin_ip = $ip->getBin();
        $keys = array_keys ($list);
        for ($i = 1; $i <= count ($keys); $i++)
                if (strcmp ($keys[$i-1], $bin_ip) >= 0)
@@ -3780,10 +3779,12 @@ function renderSearchResults ($terms, $summary)
                echo "<center><h2>Nothing found for '${terms}'</h2></center>";
        elseif ($nhits == 1)
        {
-               $realm = key ($summary);
-               $record = current ($summary);
-               if (is_array ($record))
-                       $record = current ($record);
+               foreach ($summary as $realm => $record)
+               {
+                       if (is_array ($record))
+                               $record = array_shift ($record);
+                       break;
+               }
                switch ($realm)
                {
                        case 'ipv4addressbydq':
@@ -3819,7 +3820,10 @@ function renderSearchResults ($terms, $summary)
                                break;
                        case 'object':
                                if (isset ($record['by_port']) and 1 == count ($record['by_port']))
-                                       $hl = '&hl_port_id=' . key ($record['by_port']);
+                               {
+                                       $found_ports_ids = array_keys ($record['by_port']);
+                                       $hl = '&hl_port_id=' . $found_ports_ids[0];
+                               }
                                else
                                        $hl = '';
                                echo "<script language='Javascript'>document.location='index.php?page=object&object_id=${record['id']}${hl}';//</script>";
@@ -4653,12 +4657,14 @@ function printImageHREF ($tag, $title = '', $do_input = FALSE, $tabindex = 0)
        echo getImageHREF ($tag, $title, $do_input, $tabindex);
 }
 
+// this would be better called mkIMG(), make "IMG" HTML element
 function getImageHREF ($tag, $title = '', $do_input = FALSE, $tabindex = 0)
 {
        global $image;
        if (!isset ($image[$tag]))
                $tag = 'error';
        $img = $image[$tag];
+       $img['path'] = TSURI ($img['path']);
        if ($do_input == TRUE)
                return
                        "<input type=image name=submit class=icon " .
@@ -4823,7 +4829,7 @@ function render8021QReport ()
                if (--$header_delay <= 0)
                {
                        echo $header;
-                       $header_delay = 50;
+                       $header_delay = 25;
                }
                echo '<tr><th class=tdright>' . $vlan_id . '</th>';
                foreach (array_keys ($domains) as $domain_id)
@@ -6037,7 +6043,7 @@ function renderTagRowForEditor ($taginfo, $level = 0)
        }
        echo "</td>\n<td>";
        printOpFormIntro ('updateTag', array ('tag_id' => $taginfo['id']));
-       echo "<input type=text name=tag_name ";
+       echo "<input type=text size=48 name=tag_name ";
        echo "value='${taginfo['tag']}'></td><td><select name=parent_id>";
        echo "<option value=0>-- NONE --</option>\n";
        foreach ($taglist as $tlinfo)
@@ -6073,7 +6079,7 @@ function renderTagTreeEditor ()
                printOpFormIntro ('createTag');
                echo "<tr><td align=left style='padding-left: 16px;'>";
                printImageHREF ('create', 'Create tag', TRUE);
-               echo '</td><td><input type=text name=tag_name tabindex=100></td><td><select name=parent_id tabindex=101>';
+               echo '</td><td><input type=text size=48 name=tag_name tabindex=100></td><td><select name=parent_id tabindex=101>';
                echo "<option value=0>-- NONE --</option>\n";
                foreach ($taglist as $taginfo)
                        echo "<option value=${taginfo['id']}>${taginfo['tag']}</option>";
@@ -6444,13 +6450,12 @@ function renderRackCodeEditor ()
 {
        addJS ('js/codepress/codepress.js');
        addJS (<<<ENDJAVASCRIPT
-var prevCode = '';
 function verify()
 {
        $.ajax({
                type: "POST",
                url: "ajax.php",
-               data: "ac=verifyCode&code="+RCTA.getCode(),
+               data: {'ac': 'verifyCode', 'code': RCTA.getCode()},
                success: function (data)
                {
                        arr = data.split("\\n");
@@ -6466,19 +6471,14 @@ function verify()
                                $("#ShowMessage")[0].innerHTML = arr[1];
                                $("#ShowMessage")[0].className = "msg_warning";
                        }
-                       prevCode = RCTA.getCode();
                }
        });
 }
 
 $(document).ready(function() {
-       if (prevCode != RCTA.getCode())
-       {
-               prevCode = RCTA.getCode();
-               $("#SaveChanges")[0].disabled = "disabled";
-               $("#ShowMessage")[0].innerHTML = "";
-               $("#ShowMessage")[0].className = "";
-       }
+       $("#SaveChanges")[0].disabled = "disabled";
+       $("#ShowMessage")[0].innerHTML = "";
+       $("#ShowMessage")[0].className = "";
 });
 ENDJAVASCRIPT
        , TRUE);
@@ -6716,6 +6716,12 @@ function renderFileProperties ($file_id)
        echo htmlspecialchars ($file['name']) . "'></td></tr>\n";
        echo "<tr><th class=tdright>Comment:</th><td class=tdleft><textarea tabindex=103 name=file_comment rows=10 cols=80>\n";
        echo htmlspecialchars ($file['comment']) . "</textarea></td></tr>\n";
+       echo "<tr><th class=tdright>Actions:</th><td class=tdleft>";
+       echo "<a href='".
+               makeHrefProcess (array ('op'=>'deleteFile', 'page'=>'files', 'tab'=>'manage', 'file_id'=>$file_id)).
+               "' onclick=\"javascript:return confirm('Are you sure you want to delete the file?')\">" .
+               getImageHREF ('destroy', 'Delete file') . "</a>";
+       echo '</td></tr>';
        echo "<tr><th class=submit colspan=2>";
        printImageHREF ('SAVE', 'Save changes', TRUE, 102);
        echo '</th></tr></form></table>';
@@ -7878,7 +7884,7 @@ function renderVLANDomainListEditor ()
                echo '<tr><td>';
                printImageHREF ('create', 'create domain', TRUE, 104);
                echo '</td><td>';
-               echo '<input type=text name=vdom_descr tabindex=102>';
+               echo '<input type=text size=48 name=vdom_descr tabindex=102>';
                echo '</td><td>';
                printImageHREF ('create', 'create domain', TRUE, 103);
                echo '</td></tr></form>';
@@ -7900,7 +7906,7 @@ function renderVLANDomainListEditor ()
                        printImageHREF ('destroy', 'delete domain');
                        echo '</a>';
                }
-               echo '</td><td><input name=vdom_descr type=text value="';
+               echo '</td><td><input name=vdom_descr type=text size=48 value="';
                echo niftyString ($dominfo['description'], 0) . '">';
                echo '</td><td>';
                printImageHREF ('save', 'update description', TRUE);
@@ -8135,7 +8141,7 @@ function renderObject8021QPorts ($object_id)
                }
                $ancor = '';
                $tdclass = '';
-               if ($hl_port_name == $port_name)
+               if (isset ($hl_port_name) and $hl_port_name == $port_name)
                {
                        $tdclass .= 'class="border_highlight"';
                        $ancor = "name='port-$hl_port_id'";
@@ -8458,10 +8464,18 @@ function renderVLANInfo ($vlan_ck)
                {
                        usort_portlist ($portlist);
                        echo "<tr class=row_${order} valign=top><td>";
-                       renderCell (spotEntity ('object', $switch_id));
+                       $object = spotEntity ('object', $switch_id);
+                       renderCell ($object);
                        echo '</td><td class=tdleft><ul>';
                        foreach ($portlist as $port_name)
-                               echo "<li>${port_name}</li>";
+                       {
+                               echo '<li>';
+                               if ($portinfo = getPortinfoByName ($object, $port_name))
+                                       echo formatPortLink ($object['id'], NULL, $portinfo['id'], $portinfo['name']);
+                               else
+                                       echo $port_name;
+                               echo '</li>';
+                       }
                        echo '</ul></td></tr>';
                        $order = $nextorder[$order];
                }
@@ -8818,7 +8832,7 @@ END
 
                $ancor = '';
                $td_class = '';
-               if (isset ($hl_port_id) && $hl_port_name == $port_name)
+               if (isset ($hl_port_name) and $hl_port_name == $port_name)
                {
                        $ancor = "name='port-$hl_port_id'";
                        $td_class = ' border_highlight';
@@ -8870,7 +8884,7 @@ function renderVSTListEditor()
                printOpFormIntro ('add');
                echo '<tr>';
                echo '<td>' . getImageHREF ('create', 'create template', TRUE, 104) . '</td>';
-               echo '<td><input type=text name=vst_descr tabindex=101></td>';
+               echo '<td><input type=text size=48 name=vst_descr tabindex=101></td>';
                echo '<td>' . getImageHREF ('create', 'create template', TRUE, 103) . '</td>';
                echo '</tr></form>';
        }
@@ -8890,7 +8904,7 @@ function renderVSTListEditor()
                        echo getImageHREF ('destroy', 'delete template') . '</a>';
                }
                echo '</td>';
-               echo '<td><input name=vst_descr type=text value="' . niftyString ($vst_info['description'], 0) . '"></td>';
+               echo '<td><input name=vst_descr type=text size=48 value="' . niftyString ($vst_info['description'], 0) . '"></td>';
                echo '<td>' . getImageHREF ('save', 'update template', TRUE) . '</td>';
                echo '</tr></form>';
        }
@@ -9012,10 +9026,11 @@ function renderVSTRulesEditor ($vst_id)
                finishPortlet();
 }
 
-function renderDeployQueue ($dqcode)
+function renderDeployQueue()
 {
        global $nextorder;
        $order = 'odd';
+       $dqcode = getBypassValue();
        $allq = get8021QDeployQueues();
        echo '<table cellspacing=0 cellpadding=5 align=center class=widetable>';
        echo '<tr><th>switch</th><th>age</th><th>';
@@ -9029,29 +9044,6 @@ function renderDeployQueue ($dqcode)
        echo '</table>';
 }
 
-// returns '<a...</a>' html string containing a link to specified port or object.
-// link title is "hostname portname" if both parts are defined
-function formatPortLink($host_id, $hostname, $port_id, $portname, $a_class = '')
-{
-       $href = 'index.php?page=object&object_id=' . urlencode($host_id);
-       $additional = '';
-       if (isset ($port_id))
-       {
-               $href .= '&hl_port_id=' . urlencode($port_id);
-               $additional = "name=\"port-$port_id\"";
-       }
-       if (! empty($a_class))
-               $additional .= (empty($additional) ? '' : ' '). "class='$a_class'";
-       
-       $text_items = array();
-       if (isset ($hostname))
-               $text_items[] = $hostname;
-       if (isset ($portname))
-               $text_items[] = $portname;
-               
-       return "<a $additional href=\"$href\">" . implode(' ', $text_items) . '</a>';
-}
-
 function renderDiscoveredNeighbors ($object_id)
 {
        global $tabno;