commit a28638b

default  ·  2025-04-13 12:39:46 +0000 UTC
parent 848bd3e
More timezone work.
1 files changed,  +28, -0
M html.c
M html.c
+28, -0
 1@@ -1318,6 +1318,27 @@ xs_html *html_top_controls(snac *user)
 2                     xs_html_attr("value", lang)));
 3     }
 4 
 5+    /* timezone */
 6+    xs_html *tz_select = xs_html_tag("select",
 7+        xs_html_attr("name", "tz"));
 8+
 9+    xs *tzs = xs_tz_list();
10+    const char *tz;
11+
12+    xs_list_foreach(tzs, tz) {
13+        if (strcmp(tz, user->tz) == 0)
14+            xs_html_add(tz_select,
15+                xs_html_tag("option",
16+                xs_html_text(tz),
17+                xs_html_attr("value", tz),
18+                xs_html_attr("selected", "selected")));
19+        else
20+            xs_html_add(tz_select,
21+                xs_html_tag("option",
22+                xs_html_text(tz),
23+                xs_html_attr("value", tz)));
24+    }
25+
26     xs *user_setup_action = xs_fmt("%s/admin/user-setup", user->actor);
27 
28     xs_html_add(top_controls,
29@@ -1513,6 +1534,11 @@ xs_html *html_top_controls(snac *user)
30                     xs_html_sctag("br", NULL),
31                     lang_select),
32 
33+                xs_html_tag("p",
34+                    xs_html_text(L("Time zone:")),
35+                    xs_html_sctag("br", NULL),
36+                    tz_select),
37+
38                 xs_html_tag("p",
39                     xs_html_text(L("New password:")),
40                     xs_html_sctag("br", NULL),
41@@ -4755,6 +4781,8 @@ int html_post_handler(const xs_dict *req, const char *q_path,
42             snac.config = xs_dict_set(snac.config, "show_contact_metrics", xs_stock(XSTYPE_FALSE));
43         if ((v = xs_dict_get(p_vars, "web_ui_lang")) != NULL)
44             snac.config = xs_dict_set(snac.config, "lang", v);
45+        if ((v = xs_dict_get(p_vars, "tz")) != NULL)
46+            snac.config = xs_dict_set(snac.config, "tz", v);
47 
48         snac.config = xs_dict_set(snac.config, "latitude", xs_dict_get_def(p_vars, "latitude", ""));
49         snac.config = xs_dict_set(snac.config, "longitude", xs_dict_get_def(p_vars, "longitude", ""));