Change subject line so it shows the name of the site.
[cocanwiki.git] / scripts / edit_host_settings_form.ml
index ce92f53..6b8e73c 100644 (file)
@@ -1,7 +1,7 @@
 (* COCANWIKI - a wiki written in Objective CAML.
  * Written by Richard W.M. Jones <rich@merjis.com>.
  * Copyright (C) 2004 Merjis Ltd.
- * $Id: edit_host_settings_form.ml,v 1.3 2004/09/27 16:21:09 rich Exp $
+ * $Id: edit_host_settings_form.ml,v 1.7 2006/03/27 18:09:46 rich Exp $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,42 +27,47 @@ open Printf
 open Cocanwiki
 open Cocanwiki_template
 
-let run r (q : cgi) (dbh : Dbi.connection) hostid _ _ =
+let run r (q : cgi) dbh hostid _ _ =
   let template = get_template dbh hostid "edit_host_settings_form.html" in
 
   (* List of themes. *)
-  let sth = dbh#prepare_cached "select theme_css, name, description
-                                  from themes order by 2, 1" in
-  sth#execute [];
+  let rows =
+    PGSQL(dbh) "select theme_css, name, description
+                  from themes order by 2, 1" in
 
   let themes =
-    sth#map (function [`String theme_css; `String name; `String description] ->
-              theme_css, (name, description)
-              | _ -> assert false) in
+    List.map (fun (theme_css, name, description) ->
+               theme_css, (name, description)) rows in
 
   (* Get lots of host-specific stuff from the database. *)
-  let sth =
-    dbh#prepare_cached
+  let rows =
+    PGSQL(dbh)
       "select canonical_hostname, edit_anon, create_account_anon, theme_css,
-              feedback_email, mailing_list, search_box
-         from hosts where id = ?" in
-  sth#execute [`Int hostid];
+              feedback_email, mailing_list, search_box, navigation, view_anon,
+              brand, brand_tagline, brand_description
+         from hosts where id = $hostid" in
 
   let canonical_hostname, edit_anon, create_account_anon, theme_css,
-      feedback_email, mailing_list, search_box =
-    match sth#fetch1 () with
-       [ `String canonical_hostname;
-         `Bool edit_anon; `Bool create_account_anon;
-         (`String _ | `Null) as theme_css;
-         (`String _ | `Null) as feedback_email;
-         `Bool mailing_list; `Bool search_box ] ->
-         let theme_css =
-           match theme_css with `String s -> s | `Null -> "" in
-         let feedback_email =
-           match feedback_email with `String s -> s | `Null -> "" in
-         canonical_hostname, edit_anon, create_account_anon, theme_css,
-         feedback_email, mailing_list, search_box
-      | _ -> assert false in
+      feedback_email, mailing_list, search_box, navigation, view_anon,
+      brand, brand_tagline, brand_description =
+    match rows with
+    | [canonical_hostname, edit_anon, create_account_anon, theme_css,
+       feedback_email, mailing_list, search_box, navigation, view_anon,
+       brand, brand_tagline, brand_description] ->
+       let theme_css =
+         match theme_css with Some s -> s | None -> "" in
+       let feedback_email =
+         match feedback_email with Some s -> s | None -> "" in
+       let brand =
+         match brand with Some s -> s | None -> "" in
+       let brand_tagline =
+         match brand_tagline with Some s -> s | None -> "" in
+       let brand_description =
+         match brand_description with Some s -> s | None -> "" in
+       canonical_hostname, edit_anon, create_account_anon, theme_css,
+       feedback_email, mailing_list, search_box, navigation, view_anon,
+       brand, brand_tagline, brand_description
+    | _ -> assert false in
 
   template#set "canonical_hostname" canonical_hostname;
   template#conditional "edit_anon" edit_anon;
@@ -70,6 +75,11 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid _ _ =
   template#set "feedback_email" feedback_email;
   template#conditional "mailing_list" mailing_list;
   template#conditional "search_box" search_box;
+  template#conditional "navigation" navigation;
+  template#conditional "view_anon" view_anon;
+  template#set "brand" brand;
+  template#set "brand_tagline" brand_tagline;
+  template#set "brand_description" brand_description;
 
   (* Themes table. *)
   let table =