From aaa50197ad95b7f5e3aca4293ec4f0201e0f30fc Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Mon, 24 Jul 2006 17:21:19 +0000 Subject: [PATCH] Fixed an HTML error --- init.sig | 7 ++++--- init.sml | 28 ++++++++++++++++++---------- issue.mlt | 2 +- money.sig | 2 ++ money.sml | 5 +++++ tables.sql | 7 ++++--- users.mlt | 2 +- util.sig | 1 + util.sml | 1 + 9 files changed, 37 insertions(+), 18 deletions(-) diff --git a/init.sig b/init.sig index 360b94e..2b1a936 100644 --- a/init.sig +++ b/init.sig @@ -11,7 +11,7 @@ signature INIT = sig val emailSuffix : string type user = {id : int, name : string, rname : string, bal : int, joined : C.timestamp, - app : int} + app : int, shares : int} val rowError : string * C.value list -> 'a @@ -30,10 +30,11 @@ signature INIT = sig val lookupUser : int -> user val listUsers : unit -> user list - val addUser : string * string * int * int -> int - (* Pass name, real name, and balance ID *) + val addUser : string * string * int * int * int -> int + (* Pass name, real name, balance ID, and share count *) val modUser : user -> unit val deleteUser : int -> string + val byPledge : unit -> user list val validUsername : string -> bool val userNameToId : string -> int option diff --git a/init.sml b/init.sml index 2507a45..78dd86f 100644 --- a/init.sml +++ b/init.sml @@ -11,7 +11,7 @@ fun conn () = C.conn dbstring val close = C.close type user = {id : int, name : string, rname : string, bal : int, joined : C.timestamp, - app : int} + app : int, shares : int} val db = ref (NONE : C.conn option) val user = ref (NONE : user option) @@ -26,10 +26,10 @@ fun rowError (tab, vs) = raise Fail ("Bad " ^ tab ^ "row: " ^ makeSet fromSql vs fun getDb () = valOf (!db) -fun mkUserRow [id, name, rname, bal, joined, app] = +fun mkUserRow [id, name, rname, bal, joined, app, shares] = {id = C.intFromSql id, name = C.stringFromSql name, rname = C.stringFromSql rname, bal = C.intFromSql bal, joined = C.timestampFromSql joined, - app = C.intFromSql app} + app = C.intFromSql app, shares = C.intFromSql shares} | mkUserRow row = rowError ("user", row) fun init () = @@ -43,7 +43,7 @@ fun init () = case Web.getCgi "REMOTE_USER" of NONE => raise Fail "Not logged in" | SOME name => - (case C.oneOrNoRows c ($`SELECT id, name, rname, bal, joined, app + (case C.oneOrNoRows c ($`SELECT id, name, rname, bal, joined, app, shares FROM WebUserActive WHERE name=^(C.stringToSql name)`) of NONE => raise Fail "User not found" @@ -84,12 +84,12 @@ fun getUserId () = #id (getUser ()) fun getUserName () = #name (getUser ()) fun lookupUser id = - mkUserRow (C.oneRow (getDb ()) ($`SELECT id, name, rname, bal, joined, app + mkUserRow (C.oneRow (getDb ()) ($`SELECT id, name, rname, bal, joined, app, shares FROM WebUser WHERE id = ^(C.intToSql id)`)) fun listUsers () = - C.map (getDb ()) mkUserRow ($`SELECT id, name, rname, bal, joined, app + C.map (getDb ()) mkUserRow ($`SELECT id, name, rname, bal, joined, app, shares FROM WebUser ORDER BY name`) @@ -98,13 +98,14 @@ fun nextSeq (db, seq) = [id] => C.intFromSql id | _ => raise Fail "Bad next sequence val" -fun addUser (name, rname, bal, app) = +fun addUser (name, rname, bal, app, shares) = let val db = getDb () val id = nextSeq (db, "WebUserSeq") in - C.dml db ($`INSERT INTO WebUser (id, name, rname, bal, joined, app) - VALUES (^(C.intToSql id), ^(C.stringToSql name), ^(C.stringToSql rname), ^(C.intToSql bal), CURRENT_TIMESTAMP, ^(C.intToSql app))`); + C.dml db ($`INSERT INTO WebUser (id, name, rname, bal, joined, app, shares) + VALUES (^(C.intToSql id), ^(C.stringToSql name), ^(C.stringToSql rname), ^(C.intToSql bal), + CURRENT_TIMESTAMP, ^(C.intToSql app), ^(C.intToSql shares))`); id end @@ -114,10 +115,17 @@ fun modUser (user : user) = in ignore (C.dml db ($`UPDATE WebUser SET name = ^(C.stringToSql (#name user)), rname = ^(C.stringToSql (#rname user)), - bal = ^(C.intToSql (#bal user)), app = ^(C.intToSql (#app user)) + bal = ^(C.intToSql (#bal user)), app = ^(C.intToSql (#app user)), + shares = ^(C.intToSql (#shares user)) WHERE id = ^(C.intToSql (#id user))`)) end +fun byPledge () = + C.map (getDb ()) mkUserRow ($`SELECT id, name, rname, bal, joined, app, shares + FROM WebUser + WHERE shares > 1 + ORDER BY shares DESC`) + fun deleteUser id = C.dml (getDb ()) ($`DELETE FROM WebUser WHERE id = ^(C.intToSql id)`) diff --git a/issue.mlt b/issue.mlt index da570bc..3a6cb1b 100644 --- a/issue.mlt +++ b/issue.mlt @@ -78,7 +78,7 @@ end %> <% foreach cat in Support.listCategories () do %> <% end %> - Title>: + Title: checked<% end %>> Only make this issue accessible to the admins for this support category. Status: