From 0946433c826daab41146c212331b48f5ebf997b5 Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Sun, 9 Oct 2005 01:03:49 +0000 Subject: [PATCH] * Added a message-final that can be used to leave a message when handin is done. * A little more pleasant error messages on submission errors. svn: r1026 --- collects/handin-client/client-gui.ss | 6 +++++- collects/handin-client/client.ss | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/collects/handin-client/client-gui.ss b/collects/handin-client/client-gui.ss index f078600e6d..07a738d190 100644 --- a/collects/handin-client/client-gui.ss +++ b/collects/handin-client/client-gui.ss @@ -93,23 +93,27 @@ [parent button-panel])) (define (submit-file) + (define final-message "Handin successful.") (submit-assignment connection (send username get-value) (send passwd get-value) (send assignment get-string (send assignment get-selection)) content + ;; on-commit (lambda () (semaphore-wait commit-lock) (send status set-label "Comitting...") (set! committing? #t) (semaphore-post commit-lock)) + ;; message/message-final/message-box handlers (lambda (msg) (send status set-label msg)) + (lambda (msg) (set! final-message msg)) (lambda (msg styles) (message-box "Handin" msg this styles))) (queue-callback (lambda () (when abort-commit-dialog (send abort-commit-dialog show #f)) - (send status set-label "Handin successful.") + (send status set-label final-message) (set! committing? #f) (done-interface)))) (define (retrieve-file) diff --git a/collects/handin-client/client.ss b/collects/handin-client/client.ss index 705b934d4d..a522d90d74 100644 --- a/collects/handin-client/client.ss +++ b/collects/handin-client/client.ss @@ -64,12 +64,13 @@ v))) (define (submit-assignment h username passwd assignment content - on-commit message message-box) + on-commit message message-final message-box) (let ([r (handin-r h)] [w (handin-w h)]) (define (read/message) (let ([v (read r)]) (case v [(message) (message (read r)) (read/message)] + [(message-final) (message-final (read r)) (read/message)] [(message-box) (write+flush w (message-box (read r) (read r))) (read/message)] [else v]))) @@ -93,7 +94,7 @@ ;; the resulting value written back (let ([v (read/message)]) (unless (eq? 'confirm v) - (error 'handin-connect "submit error: ~a" v))) + (error (format "submit error: ~a" v)))) (on-commit) (write+flush w 'check) (wait-for-ok r "commit" read/message)