summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Gehad elrobey <gehadelrobey@gmail.com>2014-07-27 21:38:50 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-08-04 10:03:09 -0700
commit4d6ff4c8d1836361900a257f25ce83d8e639745b (patch)
treeeb0018f97cb78979df78e385beb114f33f1f41bf
parent979ea564a058254205c2ec9594294f35658c65f0 (diff)
downloadsubsurface-4d6ff4c8d1836361900a257f25ce83d8e639745b.tar.gz
HTML: add weight systems to the dive equipments section.
Add weights systems to the dive equipment list. 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>
-rw-r--r--save-html.c22
-rw-r--r--theme/list_lib.js28
2 files changed, 50 insertions, 0 deletions
diff --git a/save-html.c b/save-html.c
index f777de05d..652ffb411 100644
--- a/save-html.c
+++ b/save-html.c
@@ -44,6 +44,27 @@ void put_HTML_bookmarks(struct membuffer *b, struct dive *dive)
put_string(b, "],");
}
+static void put_weightsystem_HTML(struct membuffer *b, struct dive *dive)
+{
+ int i, nr;
+
+ nr = nr_weightsystems(dive);
+
+ put_string(b, "\"Weights\":[");
+
+ for (i = 0; i < nr; i++) {
+ weightsystem_t *ws = dive->weightsystem + i;
+ int grams = ws->weight.grams;
+ const char *description = ws->description;
+
+ put_string(b, "{");
+ put_format(b, "\"weight\":\"%d\",", grams);
+ write_attribute(b, "description", description);
+ put_string(b, "},");
+ }
+ put_string(b, "],");
+}
+
static void put_cylinder_HTML(struct membuffer *b, struct dive *dive)
{
int i, nr;
@@ -199,6 +220,7 @@ void write_one_dive(struct membuffer *b, struct dive *dive, const char *photos_d
put_HTML_notes(b, dive, "\"notes\":\"", "\",");
if (!list_only) {
put_cylinder_HTML(b, dive);
+ put_weightsystem_HTML(b, dive);
put_HTML_samples(b, dive);
put_HTML_bookmarks(b, dive);
write_dive_status(b, dive);
diff --git a/theme/list_lib.js b/theme/list_lib.js
index 094cc266a..88a621028 100644
--- a/theme/list_lib.js
+++ b/theme/list_lib.js
@@ -736,6 +736,28 @@ function lastNonZero()
}
/**
+*Return the HTML string for a dive weight entry in the table.
+*/
+function get_weight_HTML(weight)
+{
+ return '<tr><td class="Cyl">' + gram_to_km(weight.weight) + ' kg ' + '</td><td class="Cyl">' + weight.description + '</td></tr>';
+}
+
+/**
+*Return HTML table of weights of a dive.
+*/
+function get_weights_HTML(dive)
+{
+ var result = "";
+ result += '<table><tr><td class="words">Weight</td><td class="words">Type</td></tr>';
+ for (var i in dive.Weights) {
+ result += get_weight_HTML(dive.Weights[i]);
+ }
+ result += '</table>';
+ return result;
+}
+
+/**
*Return the HTML string for a dive cylinder entry in the table.
*/
function get_cylinder_HTML(cylinder)
@@ -890,6 +912,11 @@ function mm_to_meter(mm)
return mm / (1000);
}
+function gram_to_km(gram)
+{
+ return gram / 1000;
+}
+
function ml_to_litre(ml)
{
return ml / (1000);
@@ -1067,6 +1094,7 @@ function showDiveDetails(dive)
//draw the canvas and initialize the view
document.getElementById("diveinfo").innerHTML = get_dive_HTML(items[dive_id]);
document.getElementById("dive_equipments").innerHTML = get_cylinders_HTML(items[dive_id]);
+ document.getElementById("dive_equipments").innerHTML += get_weights_HTML(items[dive_id]);
document.getElementById("bookmarks").innerHTML = get_bookmarks_HTML(items[dive_id]);
document.getElementById("divestats").innerHTML = get_status_HTML(items[dive_id]);
document.getElementById("slider").innerHTML = get_dive_photos(items[dive_id]);