HCoop
/
bpt
/
portal.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Include Peer 1 contact info in contact report
[bpt/portal.git]
/
request.sml
diff --git
a/request.sml
b/request.sml
index
738c341
..
8e3dbc5
100644
(file)
--- a/
request.sml
+++ b/
request.sml
@@
-11,7
+11,8
@@
datatype status =
| INSTALLED
| REJECTED
| INSTALLED
| REJECTED
-type request = { id : int, usr : int, data : string, msg : string, status : status, stamp : C.timestamp }
+type request = { id : int, usr : int, data : string, msg : string, status : status,
+ stamp : C.timestamp, cstamp : C.timestamp option }
val statusFromInt =
fn 0 => NEW
val statusFromInt =
fn 0 => NEW
@@
-27,9
+28,10
@@
val statusToInt =
fun statusFromSql v = statusFromInt (C.intFromSql v)
fun statusToSql s = C.intToSql (statusToInt s)
fun statusFromSql v = statusFromInt (C.intFromSql v)
fun statusToSql s = C.intToSql (statusToInt s)
-fun mkRow [id, usr, data, msg, status, stamp] =
+fun mkRow [id, usr, data, msg, status, stamp
, cstamp
] =
{id = C.intFromSql id, usr = C.intFromSql usr, data = C.stringFromSql data,
{id = C.intFromSql id, usr = C.intFromSql usr, data = C.stringFromSql data,
- msg = C.stringFromSql msg, status = statusFromSql status, stamp = C.timestampFromSql stamp}
+ msg = C.stringFromSql msg, status = statusFromSql status, stamp = C.timestampFromSql stamp,
+ cstamp = if C.isNull cstamp then NONE else SOME (C.timestampFromSql cstamp)}
| mkRow r = rowError ("APT request", r)
fun add (usr, data, msg) =
| mkRow r = rowError ("APT request", r)
fun add (usr, data, msg) =
@@
-37,9
+39,9
@@
fun add (usr, data, msg) =
val db = getDb ()
val id = nextSeq (db, seq)
in
val db = getDb ()
val id = nextSeq (db, seq)
in
- C.dml db ($`INSERT INTO ^table (id, usr, data, msg, status, stamp)
+ C.dml db ($`INSERT INTO ^table (id, usr, data, msg, status, stamp
, cstamp
)
VALUES (^(C.intToSql id), ^(C.intToSql usr), ^(C.stringToSql data), ^(C.stringToSql msg),
VALUES (^(C.intToSql id), ^(C.intToSql usr), ^(C.stringToSql data), ^(C.stringToSql msg),
- 0, CURRENT_TIMESTAMP)`);
+ 0, CURRENT_TIMESTAMP
, NULL
)`);
id
end
id
end
@@
-47,6
+49,10
@@
fun modify (req : request) =
let
val db = getDb ()
in
let
val db = getDb ()
in
+ if #status req <> NEW then
+ ignore (C.dml db ($`UPDATE ^table SET cstamp = CURRENT_TIMESTAMP WHERE id = ^(C.intToSql (#id req))`))
+ else
+ ();
ignore (C.dml db ($`UPDATE ^table SET
usr = ^(C.intToSql (#usr req)), data = ^(C.stringToSql (#data req)),
msg = ^(C.stringToSql (#msg req)), status = ^(statusToSql (#status req))
ignore (C.dml db ($`UPDATE ^table SET
usr = ^(C.intToSql (#usr req)), data = ^(C.stringToSql (#data req)),
msg = ^(C.stringToSql (#msg req)), status = ^(statusToSql (#status req))
@@
-57,7
+63,7
@@
fun delete id =
ignore (C.dml (getDb ()) ($`DELETE FROM ^table WHERE id = ^(C.intToSql id)`))
fun lookup id =
ignore (C.dml (getDb ()) ($`DELETE FROM ^table WHERE id = ^(C.intToSql id)`))
fun lookup id =
- case C.oneOrNoRows (getDb ()) ($`SELECT id, usr, data, msg, status, stamp
+ case C.oneOrNoRows (getDb ()) ($`SELECT id, usr, data, msg, status, stamp
, cstamp
FROM ^table
WHERE id = ^(C.intToSql id)`) of
SOME row => mkRow row
FROM ^table
WHERE id = ^(C.intToSql id)`) of
SOME row => mkRow row
@@
-67,12
+73,12
@@
fun mkRow' (name :: rest) = (C.stringFromSql name, mkRow rest)
| mkRow' r = rowError ("Apt.request'", r)
fun list () =
| mkRow' r = rowError ("Apt.request'", r)
fun list () =
- C.map (getDb ()) mkRow' ($`SELECT name, ^table.id, usr, data, msg, status, stamp
+ C.map (getDb ()) mkRow' ($`SELECT name, ^table.id, usr, data, msg, status, stamp
, cstamp
FROM ^table JOIN WebUser ON usr = WebUser.id
ORDER BY stamp DESC`)
fun listOpen () =
FROM ^table JOIN WebUser ON usr = WebUser.id
ORDER BY stamp DESC`)
fun listOpen () =
- C.map (getDb ()) mkRow' ($`SELECT name, ^table.id, usr, data, msg, status, stamp
+ C.map (getDb ()) mkRow' ($`SELECT name, ^table.id, usr, data, msg, status, stamp
, cstamp
FROM ^table JOIN WebUser ON usr = WebUser.id
WHERE status = 0
ORDER BY stamp DESC`)
FROM ^table JOIN WebUser ON usr = WebUser.id
WHERE status = 0
ORDER BY stamp DESC`)
@@
-97,6
+103,7
@@
fun notify f req =
()
else
(Mail.mwrite (mail, name);
()
else
(Mail.mwrite (mail, name);
+ Mail.mwrite (mail, emailSuffix);
Mail.mwrite (mail, ","))
end
| doOne r = rowError (table ^ ".doOne", r)
Mail.mwrite (mail, ","))
end
| doOne r = rowError (table ^ ".doOne", r)