diff options
author | Gehad elrobey <gehadelrobey@gmail.com> | 2014-06-26 16:43:57 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-06-30 07:56:47 -0700 |
commit | 023187a73ebb219e0b31ee6afb821e902de012a7 (patch) | |
tree | 23cbf4c25deeec93825957656d5f4d4bc819bd26 /theme/list_lib.js | |
parent | ac46158d653f970db3efb9c772367b81094c24db (diff) | |
download | subsurface-023187a73ebb219e0b31ee6afb821e902de012a7.tar.gz |
HTML: Use jqplot to draw profile.
Use jqplot to draw dive profile, Depth and pressure curves. add the
library Javascript files under the theme directory and editing the
exporter. Load them to the HTML template dynamically with
synchronization as they are dependant on each other.
Also Adding min version of JQuery that is needed by the library.
Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'theme/list_lib.js')
-rw-r--r-- | theme/list_lib.js | 100 |
1 files changed, 85 insertions, 15 deletions
diff --git a/theme/list_lib.js b/theme/list_lib.js index fa595d8da..fb77535aa 100644 --- a/theme/list_lib.js +++ b/theme/list_lib.js @@ -869,25 +869,87 @@ function get_dive_HTML(dive) '</td></tr></table><div style="margin:10px;"><p class="words">Notes: </p>' + dive.notes + '</div>'; }; +var ZERO_C_IN_MKELVIN = 273150; + +function mkelvin_to_C(mkelvin) +{ + return (mkelvin - ZERO_C_IN_MKELVIN) / 1000.0; +} + +function mbar_to_bar(mbar){ + return mbar/1000; +} + +function mm_to_meter(mm){ + return mm/(1000); +} + +var plot1; + /** *Main canvas draw function *this calls the axis and grid initialization functions. */ -function canvas_draw() -{ - var c = document.getElementById("profileCanvas"); - c.width = window.innerWidth; - c.height = window.innerHeight; - canvas_showGrid(); - canvas_showAxisInfo(); - var ctx = c.getContext("2d"); - ctx.lineWidth = 4 //variable width - //draw starting line, draw all samples then draw the final line. - canvas_drawline(ctx, [0,0], points[0]); - for (var i = 1; i < points.length; i++) { - canvas_drawline(ctx, points[i - 1], points[i]); +function canvas_draw(){ + document.getElementById("chart1").innerHTML=""; + var d1 = new Array(); + var d2 = new Array(); + for (var i =0; i< items[dive_id].samples.length;i++){ + d1.push([items[dive_id].samples[i][0]/60,-1*mm_to_meter(items[dive_id].samples[i][1])]); + if (items[dive_id].samples[i][2]!=0) { + d2.push([items[dive_id].samples[i][0]/60,mbar_to_bar(items[dive_id].samples[i][2])]); + } + } + plot1 = $.jqplot('chart1', [d1,d2], { + grid: { + drawBorder: true, + shadow: false, + background: 'rgba(0,0,0,0)' + }, + highlighter: { show: true }, + seriesDefaults: { + shadowAlpha: 0.1, + shadowDepth: 2, + fillToZero: true + }, + series: [{ + color: 'rgba(35,58,58,.6)', + negativeColor: 'rgba(35,58,58,.6)', + showMarker: true, + showLine: true, + fill: true, + yaxis:'yaxis', + },{ + color: 'rgba(44, 190, 160, 0.7)', + showMarker: false, + rendererOptions: { + smooth: true, + }, + yaxis:'y2axis', + },], + axes: { + xaxis: { + pad: 1.0, + tickRenderer: $.jqplot.CanvasAxisTickRenderer , + tickOptions: { + showGridline: false, + formatString:'%i min', + angle: -30 + } + }, + yaxis: { + max: 0, + tickRenderer: $.jqplot.CanvasAxisTickRenderer , + tickOptions:{ formatString:'%.2f'}, + pad: 2.05 + }, + y2axis: { + tickRenderer: $.jqplot.CanvasAxisTickRenderer , + tickOptions:{ formatString:'%ibar'}, + pad: 3.05 + }, } - canvas_drawline(ctx, points[points.length - 1], [MAX_WIDTH,0]); + }); } /** @@ -906,14 +968,21 @@ function showDiveDetails(dive) MAX_WIDTH = items[dive_id].duration; //draw the canvas and initialize the view - canvas_draw(); document.getElementById("diveinfo").innerHTML = get_dive_HTML(items[dive_id]); document.getElementById("dive_equipments").innerHTML = get_cylinders_HTML(items[dive_id]); document.getElementById("bookmarks").innerHTML=get_bookmarks_HTML(items[dive_id]); + setDiveTitle(items[dive_id]); //hide the list of dives and show the canvas. document.getElementById("diveListPanel").style.display = 'none'; document.getElementById("divePanel").style.display = 'block'; + canvas_draw(); +} + +function setDiveTitle(dive){ + document.getElementById("dive_no").innerHTML="Dive No. "+(settings.subsurfaceNumbers === '0'? + dive.number : dive.subsurface_number); + document.getElementById("dive_location").innerHTML=dive.location; } /** @@ -924,6 +993,7 @@ function unshowDiveDetails(dive) { start = dive_id; viewInPage(); + plot1 = null; document.getElementById("diveListPanel").style.display = 'block'; document.getElementById("divePanel").style.display = 'none'; } |