(* COCANWIKI - a wiki written in Objective CAML.
* Written by Richard W.M. Jones <rich@merjis.com>.
* Copyright (C) 2004 Merjis Ltd.
- * $Id: edit_image_form.ml,v 1.1 2004/11/01 17:05:14 rich Exp $
+ * $Id: edit_image_form.ml,v 1.3 2006/12/06 09:46:57 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
open Cocanwiki_template
open Cocanwiki_date
-let run r (q : cgi) (dbh : Dbi.connection) hostid _ _ =
- let template = get_template dbh hostid "edit_image_form.html" in
+let run r (q : cgi) dbh hostid _ _ =
+ let template = get_template r dbh hostid "edit_image_form.html" in
- let id = int_of_string (q#param "id") in
+ let id = Int32.of_string (q#param "id") in
- let sth = dbh#prepare_cached "select name, alt, coalesce (title, ''),
- coalesce (longdesc, ''),
- coalesce (class, ''),
- mime_type,
- coalesce (tn_width, 0),
- coalesce (tn_height, 0),
- upload_date
- from images
- where hostid = ? and id = ?" in
- sth#execute [`Int hostid; `Int id];
+ let rows = PGSQL(dbh)
+ "select name, alt, title,
+ longdesc,
+ class,
+ mime_type,
+ tn_width,
+ tn_height,
+ upload_date
+ from images
+ where hostid = $hostid and id = $id and name is not null" in
let name, alt, title, longdesc, clazz, mime_type, tn_width, tn_height,
upload_date =
- match sth#fetch1 () with
- [ `String name; `String alt; `String title; `String longdesc;
- `String clazz; `String mime_type; `Int tn_width; `Int tn_height;
- `Timestamp upload_date ] ->
- name, alt, title, longdesc, clazz, mime_type, tn_width, tn_height,
- upload_date
- | _ -> assert false in
+ match rows with
+ | [name, alt, title, longdesc, clazz, mime_type, tn_width, tn_height,
+ upload_date] ->
+ name, alt, title, longdesc, clazz, mime_type, tn_width, tn_height,
+ upload_date
+ | _ -> assert false in
- template#set "id" (string_of_int id);
+ let name = Option.get name in
+ let title = match title with None -> "" | Some s -> s in
+ let longdesc = match longdesc with None -> "" | Some s -> s in
+ let clazz = match clazz with None -> "" | Some s -> s in
+ let tn_width = match tn_width with None -> 0l | Some s -> s in
+ let tn_height = match tn_height with None -> 0l | Some s -> s in
+
+ template#set "id" (Int32.to_string id);
template#set "name" name;
template#set "alt" alt;
template#set "title" title;
template#set "longdesc" longdesc;
template#set "class" clazz;
template#set "mime_type" mime_type;
- template#set "tn_width" (string_of_int tn_width);
- template#set "tn_height" (string_of_int tn_height);
+ template#set "tn_width" (Int32.to_string tn_width);
+ template#set "tn_height" (Int32.to_string tn_height);
template#set "upload_date" (printable_date upload_date);
q#template template