Show
Ignore:
Timestamp:
11/05/08 21:57:21 (5 years ago)
Author:
Theo Schlossnagle <jesus@omniti.com>
git-committer:
Theo Schlossnagle <jesus@omniti.com> 1225922241 +0000
git-parent:

[d4547fc2ca717194bd02bda7276a0efa26d120d0]

git-author:
Theo Schlossnagle <jesus@omniti.com> 1225922241 +0000
Message:

fix up worksheet support, refs #22

Files:

Legend:

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

    re13244c r171b238  
    44RewriteRule ^json/ds/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ datapoint_browse_json.php?l1=$1&l2=$2&l3=$3&l4=$4&l5=$5 [PT,QSA] 
    55RewriteRule ^json/worksheet/info/([^/]*)$ worksheet_info.php?id=$1 [PT,QSA] 
     6RewriteRule ^json/worksheet/store$ worksheet_store.php [PT,QSA] 
     7RewriteRule ^json/worksheet/search$ worksheet_search_json.php [PT,QSA] 
    68RewriteRule ^json/graph/info/([^/]*)$ graph_info.php?id=$1 [PT,QSA] 
    79RewriteRule ^json/graph/store$ graph_store.php [PT,QSA] 
  • ui/web/htdocs/css/style.css

    r5f3334e r171b238  
    680680padding:0 0.5em; 
    681681} 
    682 #worksheetlist { 
     682.worksheetlist { 
    683683height:450px; 
    684684overflow:auto; 
    685685} 
    686 #worksheetlist ul a { 
     686.worksheetlist p.paginate { 
     687text-align:right; 
     688
     689.worksheetlist span.searchselect { 
     690border:1px solid #CCCCCC; 
     691display:inline; 
     692margin:0 4px; 
     693padding:0 4px; 
     694
     695.worksheetlist { 
     696overflow:auto; 
     697
     698.worksheetlist ul { 
    687699list-style-image:none; 
    688700list-style-position:outside; 
    689701list-style-type:none; 
    690702} 
    691 #worksheetlist ul li { 
     703.worksheetlist ul a { 
     704list-style-image:none; 
     705list-style-position:outside; 
     706list-style-type:none; 
     707
     708.worksheetlist ul li { 
    692709display:block; 
    693710margin-bottom:4px; 
    694711padding:2px 0; 
    695712} 
    696 #worksheetlist ul li a { 
     713.worksheetlist ul li a { 
    697714background:transparent url(../images/icon-worksheet.png) no-repeat scroll 0 1px; 
    698715padding-left:15px; 
    699716} 
    700 #worksheetlist ul li.selected { 
     717.worksheetlist ul li.selected { 
    701718background:#E6E4E5 none repeat scroll 0 0; 
    702719display:block; 
     720} 
     721.worksheetlist ul li ul li { 
     722border-left:1px solid #C0BBBD; 
     723color:#82787B; 
     724display:inline; 
     725font-size:10px; 
     726margin-bottom:6px; 
     727padding:0 5px; 
     728} 
     729.worksheetlist ul li ul li.xx { 
     730border-left:medium none; 
     731color:#82787B; 
     732display:inline; 
     733font-size:10px; 
     734padding-left:15px; 
     735} 
     736.worksheetlist ul li ul li a em { 
     737color:#82787B; 
     738padding-left:3px; 
     739} 
     740.worksheetlist ul li ul li a.viewws { 
     741background:transparent url(../images/icon-viewws.png) no-repeat scroll 0 0; 
     742display:inline; 
     743font-size:10px; 
     744padding-left:20px; 
    703745} 
    704746ul#worksheet-graphs { 
     
    710752list-style-type:none; 
    711753margin:1.5em 1em 0 0; 
     754} 
     755span.rememberWorksheet { 
     756border:1px solid #DDDDDD; 
     757display:none; 
     758float:right; 
     759margin-left:4px; 
     760padding:0 4px; 
     761} 
     762span.blankWorksheet { 
     763border:1px solid #DDDDDD; 
     764float:right; 
     765margin-left:4px; 
     766padding:0 4px; 
    712767} 
    713768span.rememberGraph { 
  • ui/web/htdocs/graph_panel.inc

    r7f943cb r171b238  
    2929           if(d.error) $("#gtool-error").html(d.error).fadeIn('fast'); 
    3030           else $("#gtool-error").fadeOut('fast'); 
    31            if(graphinfo.id && graphinfo.saved != true) { 
     31           if(graphinfo.id && graphinfo.saved != true && 
     32              $(".rememberGraph:visible").length == 0) { 
    3233             $(".rememberGraph").html('"Remember" this graph.').fadeIn('slow'); 
    3334             $(".rememberGraph").click(function() { 
  • ui/web/htdocs/js/recon.js

    r974e5c4 r171b238  
    158158                         graphs_for_edit, graph_search_summary); 
    159159} 
     160function perform_ws_search_edit(params) { 
     161  perform_generic_search('json/worksheet/search', params, 
     162                         perform_ws_search_edit, 
     163                         ws_for_edit, ws_search_summary); 
     164} 
    160165function perform_datapoint_search_add(params) { 
    161166  perform_generic_search('json/datapoint/search', params, 
    162167                         perform_datapoint_search_add, 
    163168                         datapoints_for_graph, datapoint_search_summary); 
     169} 
     170function ws_search_summary(r) { 
     171  return r.count + ' worksheet' + (r.count == 1 ? '' : 's' ) + ' found for \'' + htmlentities(r.query) + '\''; 
    164172} 
    165173function graph_search_summary(r) { 
     
    254262  li.append($('<a/>').html(g.title)).append(ul); 
    255263} 
     264function ws_for_edit(li, ws, params) { 
     265  var add = $('<a href="#"/>'); 
     266  add.html('View').addClass('addtows'); 
     267  add.click( 
     268    (function(sheetid) { 
     269        return function() { 
     270          load_worksheet(sheetid); 
     271          return false; 
     272        } 
     273     })(ws.sheetid) 
     274  ); 
     275  var ul = $('<ul/>'); 
     276  ul.append($('<li/>').html(ws.last_update)); 
     277  ul.append($('<li/>').append(add)); 
     278  li.append($('<a/>').html(ws.title)).append(ul); 
     279} 
    256280function graphs_for_worksheet(li, g, params) { 
    257281  var add = $('<a href="#"/>'); 
  • ui/web/htdocs/worksheet_info.php

    r6cbb5ff r171b238  
    66 
    77try { 
    8   $results = $db->getWorksheetByID($GET['sheetid']); 
     8  $results = $db->getWorksheetByID($_GET['id']); 
    99  print json_encode($results); 
    1010} 
  • ui/web/htdocs/worksheet_panel.inc

    r974e5c4 r171b238  
    55<!-- 
    66var ws_displayinfo = { start : 14*86400, cnt: '100', end: '' }; 
     7var wsinfo = {}; 
     8function update_current_worksheet(f) { 
     9  var str = JSON.stringify(wsinfo); 
     10  $.post("json/worksheet/store", 
     11         {'json':str}, 
     12         function(d) { 
     13           wsinfo.id = d.id; 
     14           if(d.error) $("#ws-tool-error").html(d.error).fadeIn('fast'); 
     15           else $("#ws-tool-error").fadeOut('fast'); 
     16           if(wsinfo.id && wsinfo.title && wsinfo.saved != true && 
     17              $(".rememberWorksheet:visible").length == 0) { 
     18             $(".rememberWorksheet").html('"Remember" this worksheet.').fadeIn('slow'); 
     19             $(".rememberWorksheet").click(function() { 
     20               wsinfo.saved = true; 
     21               update_current_worksheet(function(r) { 
     22                 if(r.error) wsinfo.saved = false; 
     23                 else $(".rememberWorksheet").html('Remebered').fadeOut('slow'); 
     24               }); 
     25             }); 
     26           } 
     27           if(f) f(d); 
     28         }, 'json'); 
     29} 
     30 
    731function process_worksheet_json(r) { 
    8   console.log(r.graphs.length); 
     32  wsinfo.id = r.sheetid; 
     33  wsinfo.title = r.title; 
    934  var ul = $("ul#worksheet-graphs"); 
    10   $("h2.worksheetTitle").html(r.title); 
     35  $("h2#worksheetTitle").html(r.title); 
    1136  ul.empty(); 
    1237  for(var i = 0; i < r.graphs.length; i++) { 
    13     r.graphs[i].start = ws_displayinfo.start; 
    14     r.graphs[i].end = ws_displayinfo.end; 
    15     r.graphs[i].cnt = ws_displayinfo.cnt; 
    16     var o = $('<div></div>').ReconGraph( r.graphs[i] ); 
     38    var g = {}; 
     39    g.graphid = r.graphs[i]; 
     40    g.start = ws_displayinfo.start; 
     41    g.end = ws_displayinfo.end; 
     42    g.cnt = ws_displayinfo.cnt; 
     43    var o = $('<div></div>').ReconGraph(g); 
    1744    ul.append($('<li/>').append(o)); 
    1845    o.ReconGraphRefresh(); 
     
    3057  o.ReconGraphRefresh(); 
    3158  ul.sortable("refresh"); 
     59  if(!wsinfo.graphs) wsinfo.graphs = new Array(); 
     60alert('pushing ' + graphid); 
     61  wsinfo.graphs.push(graphid); 
     62  update_current_worksheet(); 
    3263} 
    3364function refresh_worksheet() { 
     
    4273--> 
    4374</script> 
    44 <h2 class="worksheetTitle">Worksheet Title</h2> 
     75<span class="rememberWorksheet"></span> 
     76<span class="blankWorksheet">New Blank</span> 
     77<h2 id="worksheetTitle">Worksheet Title</h2> 
    4578<p/> 
    4679<!-- date range box --> 
     
    5487                           }; 
    5588        var state = false; 
     89        $("h2#worksheetTitle").editable(function(value, settings) { 
     90          wsinfo.title = value; 
     91          update_current_worksheet(); 
     92          return(value); 
     93        }, { }); 
    5694        $("#ws_datetool .btn-slide").click(function(){ 
    5795                $("#ws_widgetCalendar").stop().animate({ 
     
    101139                stop: 
    102140                  function (e,ui) { 
    103                     var ol = new Array(); 
     141                    wsinfo.graphs = new Array(); 
    104142                    ui.item.parent().find("> li > div").each( 
    105                       function(i) { ol.push($(this).attr("id")); } 
     143                      function(i) { wsinfo.graphs.push($(this).attr("id")); } 
    106144                    ); 
    107                     // Store new worksheet order here 
    108                     console.log(ol); 
     145                    update_current_worksheet(); 
    109146                  } 
    110147              }); 
  • ui/web/lib/Reconnoiter_DB.php

    r9748163 r171b238  
    126126                 'offset' => $offset, count => $r['count'], 'results' => $a); 
    127127  } 
     128  function get_worksheets($searchstring, $offset, $limit) { 
     129    return $this->run_tsearch($searchstring, 
     130      "select count(*) as count 
     131         from prism.saved_worksheets, 
     132              (select ? ::text as query) q 
     133        where saved = true and 
     134           ((ts_search_all @@ to_tsquery(query) or query = '') 
     135            or sheetid in (select sheetid 
     136                            from prism.saved_worksheets_dep wd 
     137                            join prism.saved_graphs g 
     138                           using (graphid) 
     139                            join prism.saved_graphs_dep gd 
     140                           using (graphid) 
     141                            join stratcon.metric_name_summary s 
     142                           using (sid,metric_name,metric_type) 
     143                           where g.ts_search_all @@ to_tsquery(query) 
     144                              or s.ts_search_all @@ to_tsquery(query)))", 
     145      "select sheetid, title, 
     146              to_char(last_update, 'YYYY/mm/dd') as last_update 
     147         from prism.saved_worksheets, 
     148              (select ? ::text as query) q 
     149        where saved = true and 
     150           ((ts_search_all @@ to_tsquery(query) or query = '') 
     151            or sheetid in (select sheetid 
     152                            from prism.saved_worksheets_dep wd 
     153                            join prism.saved_graphs g 
     154                           using (graphid) 
     155                            join prism.saved_graphs_dep gd 
     156                           using (graphid) 
     157                            join stratcon.metric_name_summary s 
     158                           using (sid,metric_name,metric_type) 
     159                           where g.ts_search_all @@ to_tsquery(query) 
     160                              or s.ts_search_all @@ to_tsquery(query))) 
     161     order by last_update desc", 
     162      $offset, $limit); 
     163  } 
    128164  function get_graphs($searchstring, $offset, $limit) { 
    129165    return $this->run_tsearch($searchstring, 
     
    304340  } 
    305341  function getWorksheetByID($id) { 
    306     $sth = $this->db->prepare("select * 
    307                                  from prism.saved_worksheets 
    308                                  join prism.saved_worksheets_dep 
     342    $sth = $this->db->prepare("select w.sheetid, w.title, wd.graphid 
     343                                 from prism.saved_worksheets as w 
     344                            left join prism.saved_worksheets_dep as wd 
    309345                                using (sheetid) 
    310                                 where sheetid=?"); 
     346                                where sheetid=? 
     347                             order by ordering asc"); 
    311348    $sth->execute(array($id)); 
    312349    $a = array(); 
    313     while($row = $sth->fetch()) { 
    314       $a[] = $row; 
     350    $row = $sth->fetch(); 
     351    $a['sheetid'] = $row['sheetid']; 
     352    $a['title'] = $row['title']; 
     353    $a['graphs'] = array(); 
     354    if($row && $row['graphid']) $a['graphs'][] = $row['graphid']; 
     355    while($row = $sth->fetch()) { 
     356      $a['graphs'][] = $row['graphid']; 
    315357    } 
    316358    return $a; 
     
    333375        $sth = $this->db->prepare("delete from prism.saved_worksheets_dep 
    334376                                    where sheetid=?"); 
    335         $sth->execute(array($ws['id'])); 
     377        $sth->execute(array($id)); 
    336378      } 
    337379      else { 
     
    356398      throw(new Exception('DB: ' . $e->getMessage())); 
    357399    } 
     400    return $id; 
    358401  } 
    359402  function getGraphByID($id) {