Fixed to match ChriS's API changes to mod_caml.
[cocanwiki.git] / scripts / admin / create_host.ml
index 62c55af..5ba2ea0 100644 (file)
@@ -1,7 +1,22 @@
-(* COCANWIKI scripts.
+(* COCANWIKI - a wiki written in Objective CAML.
  * Written by Richard W.M. Jones <rich@merjis.com>.
  * Copyright (C) 2004 Merjis Ltd.
- * $Id: create_host.ml,v 1.1 2004/09/07 10:14:10 rich Exp $
+ * $Id: create_host.ml,v 1.9 2005/03/31 14:24:04 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
  *
  * NB. Because there might not be any hosts existing when this Wiki
  * is created, this is not a normal Cocanwiki.register_script script.
@@ -13,7 +28,8 @@ open Registry
 open Cgi
 open Printf
 
-open Merjisforwiki
+open Cocanwiki_strings
+open Cocanwiki_create_host
 
 let split_re = Pcre.regexp "[\\s,;]+"
 
@@ -47,35 +63,22 @@ let run r =
     let hostnames = List.map check_hostname hostnames in
     let hostnames = List.filter ((<>) "") hostnames in
 
-    (* Update the database. *)
-    let sth = dbh#prepare_cached
-               "set constraints \"hosts_hostname_cn\" deferred" in
-    sth#execute [];
-    let sth = dbh#prepare_cached "insert into hosts (canonical_hostname)
-                                  values (?)" in
-    sth#execute [`String canonical_hostname];
-
-    let hostid = sth#serial "hosts_id_seq" in
-
-    let sth = dbh#prepare_cached "insert into hostnames (hostid, name)
-                                  values (?, ?)" in
-    sth#execute [`Int hostid; `String canonical_hostname];
-    List.iter (fun name ->
-                sth#execute [`Int hostid; `String name]) hostnames;
+    let template =
+      if q#param_true "template" then int_of_string (q#param "template")
+      else 0 in
 
-    let sth = dbh#prepare_cached "insert into pages (hostid, url, title,
-                                    description) values (?, 'index', ?, ?)" in
-    sth#execute [`Int hostid; `String title; `String title];
+    let hostid = create_host dbh canonical_hostname hostnames template title
+                  "Administrator" "123456" true None in
 
     (* Commit to the database. *)
     dbh#commit ();
 
     (* Print confirmation page. *)
     let buttons = [
-      { StdPages.label = "OK";
-       StdPages.link = "/_bin/admin/host.cmo";
-       StdPages.method_ = None;
-       StdPages.params = [ "hostid", string_of_int hostid ] }
+      { Template.StdPages.label = "OK";
+       Template.StdPages.link = "/_bin/admin/host.cmo";
+       Template.StdPages.method_ = None;
+       Template.StdPages.params = [ "hostid", string_of_int hostid ] }
     ] in
 
     Cocanwiki_ok.ok ~title:"Wiki created" ~buttons