I attached two patches with some fixes to the dive profile view. additionally, I am still can't view the thumbnails when I add photos to dives, I think I am doing something wrong when adding photos. does any type of export save Images?
Also there is a patch that Rick has sent 5 days ago which is not applied till now, should I forward it? On Fri, Jul 4, 2014 at 1:40 PM, Miika Turkia <[email protected]> wrote: > About the patches... > > Why the commented lines below? > > + for (var i = 0; i < items[dive_id].events.length; i++) { > + //var x = get_sample(items[dive_id].events[i].time); > + d3.push([ > + items[dive_id].events[i].time / 60, > + 0, > + //-1 * mm_to_meter(items[dive_id].samples[x][1]) > + ]); > + } > > Why not just name the variables to tell the meaning? > > - var d1 = new Array(); > - var d2 = new Array(); > - var d3 = new Array(); > - var d4 = new Array(); > - var last = 0 ; > + var d1 = new Array(); //depth > + var d2 = new Array(); //pressure > + var d3 = new Array(); //events > + var d4 = new Array(); //temperature > > I am sending all that I think are pending from you right now. I just > skipped the "0001 HTML: use Right/Left arrows to switch between dives", as > it seemed to already be included in master. > > miika >
From b760d0dfe378c427abd0805a0c12cf535085fc96 Mon Sep 17 00:00:00 2001 From: Gehad elrobey <[email protected]> Date: Tue, 8 Jul 2014 17:59:56 +0200 Subject: [PATCH 2/3] HTML: add empty values of pressure cylinders when the dive cylinder (start pressure or end pressure) is not set enter the values of the pressure in the first and the last samples instead. Sometimes the last sample is zero this must be replaced by the non-zero sample. Signed-off-by: Gehad elrobey <[email protected]> --- theme/list_lib.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/theme/list_lib.js b/theme/list_lib.js index 628491a..398b3f5 100644 --- a/theme/list_lib.js +++ b/theme/list_lib.js @@ -669,13 +669,32 @@ var points; //reference to the samples array of the shown dive. var ZERO_C_IN_MKELVIN = 273150; var plot1; +function lastNonZero() +{ + for(var i = items[dive_id].samples.length-1; i >= 0; i--){ + if(items[dive_id].samples[i][2] != 0) + return items[dive_id].samples[i][2]; + } +} + /** *Return the HTML string for a dive cylinder entry in the table. */ function get_cylinder_HTML(cylinder) { - return '<tr><td class="Cyl">' + cylinder.Type + '</td><td class="Cyl">' + cylinder.Size + '</td><td class="Cyl">' + cylinder.WPressure + '</td>' + - '<td class="Cyl">' + cylinder.SPressure + '</td><td class="Cyl">' + cylinder.EPressure + '</td><td class="Cyl">' + cylinder.O2 + '</td></tr>'; + var cSPressure = cylinder.SPressure; + var cEPressure = cylinder.EPressure; + + if (cSPressure === "--") { + cSPressure = mbar_to_bar(items[dive_id].samples[0][2])+" bar"; + } + + if (cEPressure === "--") { + var nonZeroCEPressure = lastNonZero(); + cEPressure = mbar_to_bar(nonZeroCEPressure)+" bar"; + } + + return '<tr><td class="Cyl">' + cylinder.Type + '</td><td class="Cyl">' + cylinder.Size + '</td><td class="Cyl">' + cylinder.WPressure + '</td>' + '<td class="Cyl">' + cSPressure + '</td><td class="Cyl">' + cEPressure + '</td><td class="Cyl">' + cylinder.O2 + '</td></tr>'; } /** @@ -705,6 +724,7 @@ function get_bookmark_HTML(event) */ function get_bookmarks_HTML(dive) { + if (dive.events <= 0) return ""; var result = ""; result += '<h2 class="det_hed">Events</h2><table><tr><td class="words">Name</td><td class="words">Time</td></tr>'; for (var i in dive.events) { -- 1.9.1
From b5ba16b882c9b29a171f990c2b2539e4cf5082c1 Mon Sep 17 00:00:00 2001 From: Gehad elrobey <[email protected]> Date: Mon, 7 Jul 2014 14:01:36 +0200 Subject: [PATCH 1/3] HTML: fix profile labels Fix labels view in dive profile. add Jqplot css file to the exports. The css files fix the view and enahnce the plot. Signed-off-by: Gehad elrobey <[email protected]> --- qt-ui/divelogexportdialog.cpp | 1 + theme/dive_export.html | 6 + theme/jquery.jqplot.css | 259 ++++++++++++++++++++++++++++++++++++++++++ theme/list_lib.js | 32 +++--- 4 files changed, 282 insertions(+), 16 deletions(-) create mode 100644 theme/jquery.jqplot.css diff --git a/qt-ui/divelogexportdialog.cpp b/qt-ui/divelogexportdialog.cpp index f2ff0d1..3b6fb6a 100644 --- a/qt-ui/divelogexportdialog.cpp +++ b/qt-ui/divelogexportdialog.cpp @@ -103,6 +103,7 @@ void DiveLogExportDialog::exportHtmlInit(const QString &filename) copy_and_overwrite(searchPath + "jqplot.canvasAxisTickRenderer.min.js", exportFiles + "jqplot.canvasAxisTickRenderer.min.js"); copy_and_overwrite(searchPath + "jqplot.canvasTextRenderer.min.js", exportFiles + "jqplot.canvasTextRenderer.min.js"); copy_and_overwrite(searchPath + "jquery.min.js", exportFiles + "jquery.min.js"); + copy_and_overwrite(searchPath + "jquery.jqplot.css", exportFiles + "jquery.jqplot.css"); copy_and_overwrite(searchPath + (ui->themeSelection->currentText() == "Light" ? "light.css" : "sand.css"), exportFiles + "theme.css"); } diff --git a/theme/dive_export.html b/theme/dive_export.html index e1d89f4..ec08e86 100644 --- a/theme/dive_export.html +++ b/theme/dive_export.html @@ -24,6 +24,12 @@ function load_scripts() fileref.setAttribute("href", location.pathname + "_files/theme.css"); document.getElementsByTagName("head")[0].appendChild(fileref); + fileref=document.createElement("link"); + fileref.setAttribute("rel", "stylesheet"); + fileref.setAttribute("type", "text/css"); + fileref.setAttribute("href", location.pathname + "_files/jquery.jqplot.css"); + document.getElementsByTagName("head")[0].appendChild(fileref); + fileref=document.createElement('script'); fileref.setAttribute("src", location.pathname + "_files/file.json"); document.getElementsByTagName("head")[0].appendChild(fileref); diff --git a/theme/jquery.jqplot.css b/theme/jquery.jqplot.css new file mode 100644 index 0000000..d30bafb --- /dev/null +++ b/theme/jquery.jqplot.css @@ -0,0 +1,259 @@ +/*rules for the plot target div. These will be cascaded down to all plot elements according to css rules*/ +.jqplot-target { + position: relative; + color: #666666; + font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; + font-size: 1em; +/* height: 300px; + width: 400px;*/ +} + +/*rules applied to all axes*/ +.jqplot-axis { + font-size: 0.75em; +} + +.jqplot-xaxis { + margin-top: 10px; +} + +.jqplot-x2axis { + margin-bottom: 10px; +} + +.jqplot-yaxis { + margin-right: 10px; +} + +.jqplot-y2axis, .jqplot-y3axis, .jqplot-y4axis, .jqplot-y5axis, .jqplot-y6axis, .jqplot-y7axis, .jqplot-y8axis, .jqplot-y9axis, .jqplot-yMidAxis { + margin-left: 10px; + margin-right: 10px; +} + +/*rules applied to all axis tick divs*/ +.jqplot-axis-tick, .jqplot-xaxis-tick, .jqplot-yaxis-tick, .jqplot-x2axis-tick, .jqplot-y2axis-tick, .jqplot-y3axis-tick, .jqplot-y4axis-tick, .jqplot-y5axis-tick, .jqplot-y6axis-tick, .jqplot-y7axis-tick, .jqplot-y8axis-tick, .jqplot-y9axis-tick, .jqplot-yMidAxis-tick { + position: absolute; + white-space: pre; +} + + +.jqplot-xaxis-tick { + top: 0px; + /* initial position untill tick is drawn in proper place */ + left: 15px; +/* padding-top: 10px;*/ + vertical-align: top; +} + +.jqplot-x2axis-tick { + bottom: 0px; + /* initial position untill tick is drawn in proper place */ + left: 15px; +/* padding-bottom: 10px;*/ + vertical-align: bottom; +} + +.jqplot-yaxis-tick { + right: 0px; + /* initial position untill tick is drawn in proper place */ + top: 15px; +/* padding-right: 10px;*/ + text-align: right; +} + +.jqplot-yaxis-tick.jqplot-breakTick { + right: -20px; + margin-right: 0px; + padding:1px 5px 1px 5px; +/* background-color: white;*/ + z-index: 2; + font-size: 1.5em; +} + +.jqplot-y2axis-tick, .jqplot-y3axis-tick, .jqplot-y4axis-tick, .jqplot-y5axis-tick, .jqplot-y6axis-tick, .jqplot-y7axis-tick, .jqplot-y8axis-tick, .jqplot-y9axis-tick { + left: 0px; + /* initial position untill tick is drawn in proper place */ + top: 15px; +/* padding-left: 10px;*/ +/* padding-right: 15px;*/ + text-align: left; +} + +.jqplot-yMidAxis-tick { + text-align: center; + white-space: nowrap; +} + +.jqplot-xaxis-label { + margin-top: 10px; + font-size: 11pt; + position: absolute; +} + +.jqplot-x2axis-label { + margin-bottom: 10px; + font-size: 11pt; + position: absolute; +} + +.jqplot-yaxis-label { + margin-right: 10px; +/* text-align: center;*/ + font-size: 11pt; + position: absolute; +} + +.jqplot-yMidAxis-label { + font-size: 11pt; + position: absolute; +} + +.jqplot-y2axis-label, .jqplot-y3axis-label, .jqplot-y4axis-label, .jqplot-y5axis-label, .jqplot-y6axis-label, .jqplot-y7axis-label, .jqplot-y8axis-label, .jqplot-y9axis-label { +/* text-align: center;*/ + font-size: 11pt; + margin-left: 10px; + position: absolute; +} + +.jqplot-meterGauge-tick { + font-size: 0.75em; + color: #999999; +} + +.jqplot-meterGauge-label { + font-size: 1em; + color: #999999; +} + +table.jqplot-table-legend { + margin-top: 12px; + margin-bottom: 12px; + margin-left: 12px; + margin-right: 12px; +} + +table.jqplot-table-legend, table.jqplot-cursor-legend { + background-color: rgba(255,255,255,0.6); + border: 1px solid #cccccc; + position: absolute; + font-size: 0.75em; +} + +td.jqplot-table-legend { + vertical-align:middle; +} + +/* +These rules could be used instead of assigning +element styles and relying on js object properties. +*/ + +/* +td.jqplot-table-legend-swatch { + padding-top: 0.5em; + text-align: center; +} + +tr.jqplot-table-legend:first td.jqplot-table-legend-swatch { + padding-top: 0px; +} +*/ + +td.jqplot-seriesToggle:hover, td.jqplot-seriesToggle:active { + cursor: pointer; +} + +.jqplot-table-legend .jqplot-series-hidden { + text-decoration: line-through; +} + +div.jqplot-table-legend-swatch-outline { + border: 1px solid #cccccc; + padding:1px; +} + +div.jqplot-table-legend-swatch { + width:0px; + height:0px; + border-top-width: 5px; + border-bottom-width: 5px; + border-left-width: 6px; + border-right-width: 6px; + border-top-style: solid; + border-bottom-style: solid; + border-left-style: solid; + border-right-style: solid; +} + +.jqplot-title { + top: 0px; + left: 0px; + padding-bottom: 0.5em; + font-size: 1.2em; +} + +table.jqplot-cursor-tooltip { + border: 1px solid #cccccc; + font-size: 0.75em; +} + + +.jqplot-cursor-tooltip { + border: 1px solid #cccccc; + font-size: 0.75em; + white-space: nowrap; + background: rgba(208,208,208,0.5); + padding: 1px; +} + +.jqplot-highlighter-tooltip, .jqplot-canvasOverlay-tooltip { + border: 1px solid #cccccc; + font-size: 0.75em; + white-space: nowrap; + background: rgba(208,208,208,0.5); + padding: 1px; +} + +.jqplot-point-label { + font-size: 0.75em; + z-index: 2; +} + +td.jqplot-cursor-legend-swatch { + vertical-align: middle; + text-align: center; +} + +div.jqplot-cursor-legend-swatch { + width: 1.2em; + height: 0.7em; +} + +.jqplot-error { +/* Styles added to the plot target container when there is an error go here.*/ + text-align: center; +} + +.jqplot-error-message { +/* Styling of the custom error message div goes here.*/ + position: relative; + top: 46%; + display: inline-block; +} + +div.jqplot-bubble-label { + font-size: 0.8em; +/* background: rgba(90%, 90%, 90%, 0.15);*/ + padding-left: 2px; + padding-right: 2px; + color: rgb(20%, 20%, 20%); +} + +div.jqplot-bubble-label.jqplot-bubble-label-highlight { + background: rgba(90%, 90%, 90%, 0.7); +} + +div.jqplot-noData-container { + text-align: center; + background-color: rgba(96%, 96%, 96%, 0.3); +} diff --git a/theme/list_lib.js b/theme/list_lib.js index 718ea4c..628491a 100644 --- a/theme/list_lib.js +++ b/theme/list_lib.js @@ -768,31 +768,31 @@ function int_to_time(n) function canvas_draw() { document.getElementById("chart1").innerHTML = ""; - var d1 = new Array(); //depth - var d2 = new Array(); //pressure - var d3 = new Array(); //events - var d4 = new Array(); //temperature + var depthData = new Array(); + var pressureData = new Array(); + var eventsData = new Array(); + var temperatureData = new Array(); var last = 0; for (var i = 0; i < items[dive_id].samples.length; i++) { - d1.push([ + depthData.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([ + pressureData.push([ items[dive_id].samples[i][0] / 60, mbar_to_bar(items[dive_id].samples[i][2]) ]); } if (items[dive_id].samples[i][3] != 0) { - d4.push([ + temperatureData.push([ items[dive_id].samples[i][0] / 60, mkelvin_to_C(items[dive_id].samples[i][3]), ]); last = items[dive_id].samples[i][3]; } else { if (last != 0) { - d4.push([ + temperatureData.push([ items[dive_id].samples[i][0] / 60, mkelvin_to_C(last), ]); @@ -800,16 +800,16 @@ function canvas_draw() } } for (var i = 0; i < items[dive_id].events.length; i++) { - d3.push([ + eventsData.push([ items[dive_id].events[i].time / 60, 0, ]); } plot1 = $.jqplot('chart1', [ - d1, - d2, - d3, - d4, + depthData, + pressureData, + eventsData, + temperatureData, ], { grid : { @@ -866,9 +866,9 @@ function canvas_draw() tickRenderer : $.jqplot.CanvasAxisTickRenderer, tickOptions : { showGridline : false, - formatString : '%i min', - angle : -30 - } + formatString : '%i', + }, + label:'Time (min)' }, yaxis : { max : 0, -- 1.9.1
_______________________________________________ subsurface mailing list [email protected] http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface
