mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
HTML: Add export list only option
Exporting small dive list only or choose to export the dive list with all the dive details like the profile, Bookmarks, dive equipments and statistics. 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>
This commit is contained in:
parent
ccfdcca6e6
commit
e9c4259db4
5 changed files with 30 additions and 23 deletions
33
save-html.c
33
save-html.c
|
|
@ -132,7 +132,8 @@ void put_HTML_tags(struct membuffer *b, struct dive *dive, const char *pre, cons
|
|||
put_string(b, post);
|
||||
}
|
||||
|
||||
void write_one_dive(struct membuffer *b, struct dive *dive, int *dive_no)
|
||||
/* if exporting list_only mode, we neglect exporting the samples, bookmarks and cylinders */
|
||||
void write_one_dive(struct membuffer *b, struct dive *dive, int *dive_no, const bool list_only)
|
||||
{
|
||||
put_string(b, "{");
|
||||
put_format(b, "\"number\":%d,", *dive_no);
|
||||
|
|
@ -151,13 +152,15 @@ void write_one_dive(struct membuffer *b, struct dive *dive, int *dive_no)
|
|||
write_attribute(b, "suit", dive->suit);
|
||||
put_HTML_tags(b, dive, "\"tags\":", ",");
|
||||
put_HTML_notes(b, dive, "\"notes\":\"", "\",");
|
||||
put_cylinder_HTML(b, dive);
|
||||
put_HTML_samples(b, dive);
|
||||
if (!list_only) {
|
||||
put_cylinder_HTML(b, dive);
|
||||
put_HTML_samples(b, dive);
|
||||
}
|
||||
put_string(b, "},\n");
|
||||
(*dive_no)++;
|
||||
}
|
||||
|
||||
void write_no_trip(struct membuffer *b, int *dive_no)
|
||||
void write_no_trip(struct membuffer *b, int *dive_no, const bool list_only)
|
||||
{
|
||||
int i;
|
||||
struct dive *dive;
|
||||
|
|
@ -168,12 +171,12 @@ void write_no_trip(struct membuffer *b, int *dive_no)
|
|||
|
||||
for_each_dive (i, dive) {
|
||||
if (!dive->divetrip)
|
||||
write_one_dive(b, dive, dive_no);
|
||||
write_one_dive(b, dive, dive_no, list_only);
|
||||
}
|
||||
put_format(b, "]},\n\n");
|
||||
}
|
||||
|
||||
void write_trip(struct membuffer *b, dive_trip_t *trip, int *dive_no)
|
||||
void write_trip(struct membuffer *b, dive_trip_t *trip, int *dive_no, const bool list_only)
|
||||
{
|
||||
struct dive *dive;
|
||||
|
||||
|
|
@ -182,13 +185,13 @@ void write_trip(struct membuffer *b, dive_trip_t *trip, int *dive_no)
|
|||
put_format(b, "\"dives\":[");
|
||||
|
||||
for (dive = trip->dives; dive != NULL; dive = dive->next) {
|
||||
write_one_dive(b, dive, dive_no);
|
||||
write_one_dive(b, dive, dive_no, list_only);
|
||||
}
|
||||
|
||||
put_format(b, "]},\n\n");
|
||||
}
|
||||
|
||||
void write_trips(struct membuffer *b, bool selected_only)
|
||||
void write_trips(struct membuffer *b, bool selected_only, const bool list_only)
|
||||
{
|
||||
int i, dive_no = 0;
|
||||
struct dive *dive;
|
||||
|
|
@ -205,7 +208,7 @@ void write_trips(struct membuffer *b, bool selected_only)
|
|||
for_each_dive (i, dive) {
|
||||
if (!dive->selected)
|
||||
continue;
|
||||
write_one_dive(b, dive, &dive_no);
|
||||
write_one_dive(b, dive, &dive_no, list_only);
|
||||
}
|
||||
put_format(b, "]},\n\n");
|
||||
} else {
|
||||
|
|
@ -219,27 +222,27 @@ void write_trips(struct membuffer *b, bool selected_only)
|
|||
|
||||
/* We haven't seen this trip before - save it and all dives */
|
||||
trip->index = 1;
|
||||
write_trip(b, trip, &dive_no);
|
||||
write_trip(b, trip, &dive_no, list_only);
|
||||
}
|
||||
|
||||
/*Save all remaining trips into Others*/
|
||||
write_no_trip(b, &dive_no);
|
||||
write_no_trip(b, &dive_no, list_only);
|
||||
}
|
||||
}
|
||||
|
||||
void export_list(struct membuffer *b, bool selected_only)
|
||||
void export_list(struct membuffer *b, bool selected_only, const bool list_only)
|
||||
{
|
||||
put_string(b, "trips=[");
|
||||
write_trips(b, selected_only);
|
||||
write_trips(b, selected_only, list_only);
|
||||
put_string(b, "]");
|
||||
}
|
||||
|
||||
void export_HTML(const char *file_name, const bool selected_only)
|
||||
void export_HTML(const char *file_name, const bool selected_only, const bool list_only)
|
||||
{
|
||||
FILE *f;
|
||||
|
||||
struct membuffer buf = { 0 };
|
||||
export_list(&buf, selected_only);
|
||||
export_list(&buf, selected_only, list_only);
|
||||
|
||||
f = subsurface_fopen(file_name, "w+");
|
||||
if (!f)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue