Changeset 43db6fd05a8814ba23c94d2dcc0388ca23393e10

Show
Ignore:
Timestamp:
06/08/09 22:41:28 (9 years ago)
Author:
Umar Farooq <umar@omniti.com>
git-committer:
Umar Farooq <umar@omniti.com> 1244500888 +0000
git-parent:

[4fd2f1f5cb3d57993fc34dc8d6e742d38454609f]

git-author:
Umar Farooq <umar@omniti.com> 1244500888 +0000
Message:

combinations of sids now used to make graphs from templates...still needs styling fixes and saving, tracking genesis of graphs

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ui/web/htdocs/css/style.css

    ra3e35d2 r43db6fd  
    591591padding-left:75px; 
    592592} 
     593 
     594ul li .sidvarspan { 
     595background: none; 
     596} 
     597 
    593598div.tooltip { 
    594599    padding:10px; 
  • ui/web/htdocs/template_browse_json.php

    rb76d645 r43db6fd  
    5252 
    5353else if($want == 'targetname') {          
     54     $sidvars = array(); 
     55     $textvars = array(); 
     56 
     57     $vs = $template->variables(); 
     58     foreach($vs as $v => $d) { 
     59       if(isset($d['SID'])) { 
     60         $sidvars[] = $v;                  
     61        } 
     62        else if(isset($d['TEXT'])) { 
     63          $textvars[] = $v; 
     64        } 
     65      } 
    5466 
    5567         $target_sid_map = array(); 
     
    6375            } 
    6476         } 
    65           
    66          foreach ($target_sid_map as $target_name => $sid_list) { 
    67             $params = array(); 
    68             $params['thetemplate'] = $templateid; 
    69             $sidlist = implode(",", $sid_list); 
    70             $params['targetname'] = $sidlist; 
    71             $params['num_sids'] = $template->num_sids; 
    72             $jitem = array ('id' => $target_name, 
     77         foreach ($sidvars as $sv) { 
     78                 $sidtext = "<span class='sidvarspan'>$sv</span>"; 
     79                 $jitem = array ('id' => 'sidvar', 
     80                           'text' => $sidtext, 
     81                           'hasChildren' => false, 
     82                           'classes' => 'sidvar', 
     83                           'params' => array(), 
     84                           ); 
     85                 $bag[] = $jitem; 
     86                  
     87                 foreach ($target_sid_map as $target_name => $sid_list) { 
     88                    $params = array(); 
     89                    $params['thetemplate'] = $templateid; 
     90                    $sidlist = implode(",", $sid_list); 
     91                    $params['targetname'] = $sidlist; 
     92                    $params['num_sids'] = $template->num_sids; 
     93                    $params['thetarget'] = $target_name; 
     94                    $params['sidvarlist'] = implode(",", $sidvars); 
     95                    $params['textvarlist'] = implode(",", $textvars); 
     96 
     97                    $jitem = array ('id' => $target_name, 
    7398                           'text' => $target_name, 
    7499                           'hasChildren' => true, 
    75                            'classes' => $want, 
     100                           'classes' => $sv,    
    76101                           'params' => $params 
    77102                           ); 
    78             $bag[] = $jitem; 
    79          } 
    80 
    81 else if($want == 'sid') { 
    82      $thetemplateid = $_REQUEST['thetemplate']; 
    83      $num_sids = $_REQUEST['num_sids']; 
    84  
    85      $sid_list = explode (",", $_REQUEST[$l2]); 
    86      $ctext = "<form id='template-graph' name='template-graph' action=''>";      
    87      $ctext.= "<select multiple='multiple' name='sid_select' size='5' id='sid_select' >"; 
    88      $snames = $db->make_names_for_template($sid_list); 
    89  
    90      foreach ($snames as $tuple) { 
    91         $ctext.="<option value='".$tuple['sid']."'> ".$tuple['option']."</option><br />"; 
    92      } 
    93      $ctext.="</select><br>Select ".$num_sids." from above.";      
    94      $ctext .= "<br>Graph Title:"; 
    95      $ctext.="<input type='text' size='15' name='graph_name' id='graph_name'><br>"; 
    96      $ctext.="<span class='CreateGraphButton'>"; 
     103                    $bag[] = $jitem; 
     104                 } 
     105         } 
     106 
     107         foreach($textvars as $tv) { 
     108           $params = array(); 
     109           $ctext = "<br>".$tv.":"; 
     110           $ctext.="<input type='text' size='15' name='".$tv."' id='textvar'><br>"; 
     111           $jitem = array ('id' => '', 
     112                           'text' => $ctext, 
     113                           'hasChildren' => false, 
     114                           'classes' => $tv, 
     115                           'params' => array(), 
     116                           ); 
     117           $bag[] = $jitem; 
     118         } 
     119 
     120     $ctext ="<span class='CreateGraphButton'>"; 
    97121     $link=<<<LINK 
    98 <a href="javascript:CreateGraphFromTemplate('$thetemplateid', '$num_sids')"> 
     122<a href="javascript:CreateGraphFromTemplate('$templateid')"> 
    99123LINK; 
    100124     $ctext.=$link; 
    101      $ctext.="<b>Create Graph</b></a></span></form>"; 
     125     $ctext.="<b>Create Graph</b></a></span>"; 
    102126     $ctext.="<span class='CreateGraph'></span>"; 
    103127     $ctext.= <<<JS 
    104128<script type='text/javascript'> 
    105129 
    106 function CreateGraphFromTemplate(templateid, num_sids){ 
    107  
    108 var graph_name = $("#graph_name").val(); 
     130function CreateGraphFromTemplate(templateid){ 
     131 
    109132var sids = []; 
    110  
    111 $("#sid_select :selected").each(function(i, selected){ 
     133var textvals = ""; 
     134var sidvals = ""; 
     135 
     136textvars = []; 
     137sidvars =[]; 
     138 
     139$("#textvar").each ( function (i) { 
     140        textvals+=  "&"+$(this).attr('name')+"="+$(this).val(); 
     141        textvars[i] = $(this).attr('name'); 
     142}); 
     143 
     144 
     145$(".sidvar").each(function(i) { 
     146    sidvars[i] = $(this).text(); 
     147}); 
     148 
     149var sidvar_sid_map = Array(); 
     150//this code to determine the sidvar is kind of hacky... 
     151$(".sid_select :selected").each(function(i, selected) { 
     152         target_id = $(selected).attr("class"); 
     153         sidvarclass = $(selected).parents(".collapsable:eq(0)").find("span").attr("class"); 
     154         if(sidvar_sid_map[sidvarclass] == undefined) sidvar_sid_map[sidvarclass] = Array(); 
    112155         sids[i] = $(selected).val(); 
     156         sidvar_sid_map[sidvarclass].push($(selected).val()); 
    113157}); 
    114158 
    115 if(sids.length==num_sids){ 
    116         var dataString = 'templateid='+templateid+'&graph_name='+graph_name+'&sids='+sids; 
    117  
     159for (i=0; i<sidvars.length; i++){ 
     160        sidvals+="&"+sidvars[i]+"="+sidvar_sid_map[sidvars[i]].join(","); 
     161
     162 
     163//if we have selected atleast one sid 
     164if(sids.length > 0){ 
     165        var dataString = 'templateid='+templateid+'&textvars='+textvars.join(',')+'&sidvars='+sidvars.join(',')+textvals+sidvals; 
     166        console.log("the datastring = ", dataString); 
    118167        $.ajax({ 
    119168                type: "POST", 
     
    126175} 
    127176else { 
    128      modal_warning("Graph creation error", "You did not select the correct number of metrics!"); 
     177     modal_warning("Graph creation error", "You need to select atleast one sid!"); 
    129178} 
    130179} 
     
    132181</script> 
    133182JS; 
     183$jitem = array ('id' => '', 
     184                           'text' => $ctext, 
     185                           'hasChildren' => false, 
     186                           'classes' => $tv, 
     187                           'params' => array(), 
     188                           ); 
     189$bag[] = $jitem; 
     190 
     191 
     192} 
     193 
     194else if($want == 'sid') { 
     195     $thetemplateid = $_REQUEST['thetemplate']; 
     196     $num_sids = $_REQUEST['num_sids']; 
     197     
     198     $sid_list = explode (",", $_REQUEST[$l2]); 
     199     $thetarget =  $_REQUEST['thetarget']; 
     200      
     201     $ctext = "<select multiple='multiple' name='sid_select' size='5' id='sid_select' class='sid_select'>"; 
     202     $snames = $db->make_names_for_template($sid_list); 
     203      
     204     $i=0; 
     205     foreach ($snames as $tuple) { 
     206        $ctext.="<option value='".$tuple['sid']."' class='".$thetarget."'> ".$tuple['option']."</option><br />"; 
     207     } 
    134208 
    135209     $jitem = array ('id' => '', 
  • ui/web/htdocs/template_graph.php

    r86bd53e r43db6fd  
    33require_once 'Reconnoiter_GraphTemplate.php'; 
    44 
    5 $db = Reconnoiter_DB::getDB()
     5$templateid = $_POST['templateid']
    66 
    7 $templateid = $_POST['templateid']; 
    8 $graph_name = $_POST['graph_name']; 
    9 $sid_list = explode(", ", $_POST['sids']); 
     7$sid_vars = explode(",", $_POST['sidvars']); 
     8$text_vars = explode(",", $_POST['textvars']); 
    109 
    11 $template = new Reconnoiter_GraphTemplate($templateid); 
     10$rparams = array(); 
     11$var_vals = array(); 
    1212 
    13 $rparams = array('SwitchName' => $graph_name); 
     13foreach ($text_vars as $tv) { 
     14  $rparams[$tv] = $_POST[$tv]; 
     15
    1416 
    15 $i = 1; 
     17foreach ($sid_vars as $sv) { 
     18  $var_vals[] = explode(",", $_POST[$sv]); 
     19
    1620 
    17 foreach ($sid_list as $sid){ 
    18    $sname = ($i==1) ? "SwitchPort": "SwitchPort".$i; 
    19    $rparams[$sname] = $sid; 
    20    $i++; 
    21 
    22 $graph_json = $template->newGraph($rparams); 
     21//this number is used so we dont end up trying to create multiple graphs with the same title             
     22$graph_num = 1; 
     23    
     24function createGraphsFromCombos($combo, $var_vals, $i, $sid_vars, $rparams, $templateid, $graph_num) 
     25    { 
     26         
     27        if ($i >= count($var_vals)){ 
     28            $vals_combo = explode(",", $combo); 
     29            for ($j=0; $j<count($vals_combo); $j++) { 
     30               $rparams[$sid_vars[$j]] = $vals_combo[$j]; 
     31            } 
     32            $template = new Reconnoiter_GraphTemplate($templateid); 
     33            $db = Reconnoiter_DB::getDB(); 
     34            $graph_json = $template->newGraph($rparams); 
     35            $graph_json = stripslashes($graph_json); 
     36            $graph_json = json_decode($graph_json, true); 
     37            $graph_json['title'] = $graph_json['title'].$graph_num; 
     38            $graph_id = $db->saveGraph($graph_json); 
     39            $graph_json['id'] = $graph_id; 
     40            $graph_id = $db->saveGraph($graph_json); 
     41        } 
     42        else 
     43        { 
     44            foreach ($var_vals[$i] as $vval){ 
     45                $graph_num++; 
     46                createGraphsFromCombos(($combo) ? "$combo,$vval" : $vval, $var_vals, $i + 1, $sid_vars, $rparams, $templateid, $graph_num); 
     47           } 
     48        } 
     49    } 
    2350 
    24 $graph_json = stripslashes($graph_json); 
    25 $graph_json = json_decode($graph_json, true); 
    26 $graph_id = $db->saveGraph($graph_json); 
    27  
    28 $graph_json['id'] = $graph_id; 
    29 $graph_id = $db->saveGraph($graph_json); 
     51createGraphsFromCombos('', $var_vals, 0, $sid_vars, $rparams, $templateid, $graph_num); 
    3052 
    3153?> 
     54