SLB: display triplet config using ajax
authorAlexey Andriyanov <alan@al-an.info>
Tue, 4 Jun 2013 18:13:11 +0000 (22:13 +0400)
committerAlexey Andriyanov <alan@al-an.info>
Tue, 4 Jun 2013 18:13:11 +0000 (22:13 +0400)
renderSLBTriplets2: inject config preview button
getTripletConfigAJAX: format ajax response
slb_config_preview: js preview button handler

wwwroot/inc/navigation.php
wwwroot/inc/slb2-interface.php
wwwroot/js/slb_editor.js

index d57be4f2bd6d1c504cf701b325a85a88b2982351..68ec2e74ab0848acf32cbc24d851627cae398393 100644 (file)
@@ -799,5 +799,6 @@ $ajaxhandler['upd-reservation-port'] = 'updatePortRsvAJAX';
 $ajaxhandler['upd-reservation-cable'] = 'updateCableIdAJAX';
 $ajaxhandler['net-usage'] = 'getNetUsageAJAX';
 $ajaxhandler['get-slb-form'] = 'renderSLBFormAJAX';
+$ajaxhandler['triplet-preview'] = 'getTripletConfigAJAX';
 
 ?>
index b32f4f84851d40e7ffe5f79c4f056f52b71337a1..a61848eca4be69ec73fed5d6fbcfd02f3741d66d 100644 (file)
@@ -240,7 +240,7 @@ function renderSLBTriplets2 ($cell, $editable = FALSE, $hl_ip = NULL)
        if (count ($triplets))
        {
                startPortlet ('VS group instances (' . count ($triplets) . ')');
-               echo "<table cellspacing=0 cellpadding=5 align=center class=widetable><tr>";
+               echo "<table cellspacing=0 cellpadding=5 align=center class=widetable><tr><th></th>";
                foreach ($headers as $realm => $header)
                        if ($realm != $cell['realm'])
                                echo "<th>$header</th>";
@@ -249,13 +249,12 @@ function renderSLBTriplets2 ($cell, $editable = FALSE, $hl_ip = NULL)
                echo "</tr>";
        }
 
+       addJS ('js/slb_editor.js');
+       addJS ('js/jquery.thumbhover.js');
+
        $class = 'slb-checks';
        if ($editable)
-       {
-               addJS ('js/jquery.thumbhover.js');
-               addJS ('js/slb_editor.js');
                $class .= ' editable';
-       }
 
        // render table rows
        global $nextorder;
@@ -265,6 +264,7 @@ function renderSLBTriplets2 ($cell, $editable = FALSE, $hl_ip = NULL)
                $vs_cell = spotEntity ('ipvs', $slb['vs_id']);
                amplifyCell ($vs_cell);
                echo "<tr valign=top class='row_${order} triplet-row'>";
+               echo '<td><a href="#" onclick="' . "slb_config_preview(event, ${slb['object_id']}, ${slb['vs_id']}, ${slb['rspool_id']}); return false" . '">' . getImageHREF ('Zoom', 'config preview') . '</a></td>';
                foreach (array_keys ($headers) as $realm)
                {
                        if ($realm == $cell['realm'])
@@ -389,6 +389,19 @@ function renderSLBFormAJAX()
        echo '</form>';
 }
 
+function getTripletConfigAJAX()
+{
+       $tr_list = fetchTripletRows
+       (
+               array (
+                       'object_id' => assertUIntArg ('object_id'),
+                       'vs_id' => assertUIntArg ('vs_id'),
+                       'rspool_id' => assertUIntArg ('rspool_id'),
+               )
+       );
+       echo '<div class="slbconf" style="max-height: 500px; max-width: 600px; overflow: auto">' . htmlspecialchars (generateSLBConfig2 ($tr_list)) . '</div>';
+}
+
 function renderNewTripletForm ($realm1, $realm2)
 {
        function get_realm_data ($realm)
index a99cf1bdb7a107497a14fb99200b604498940e0b..55c04bd6939ecfd27cee601b53e47760190e3915 100644 (file)
@@ -48,3 +48,22 @@ $(document).ready (function () {
                return false;
        });
 });
+
+function slb_config_preview (e, object_id, vs_id, rspool_id) {
+       $.ajax ({
+               type: 'POST',
+               url: 'index.php',
+               data: {
+                       module: 'ajax',
+                       ac: 'triplet-preview',
+                       object_id: object_id,
+                       vs_id: vs_id,
+                       rspool_id: rspool_id
+               },
+               success: function (data) {
+                       var div = $('<div />').addClass('popup-box').appendTo('body');
+                       div.html(data);
+                       $(this).thumbPopup (div, { event: e });
+               }
+       });
+}