X-Git-Url: https://git.hcoop.net/clinton/lisp-on-lines.git/blobdiff_plain/ec4f5786bb3917169e036c2ddfcb0d24f22379f1..12dcf3d4b06fd83b8c62c01a93dc26f94dc922ee:/src/mewa/mewa.lisp diff --git a/src/mewa/mewa.lisp b/src/mewa/mewa.lisp index 01b3577..16a08e5 100644 --- a/src/mewa/mewa.lisp +++ b/src/mewa/mewa.lisp @@ -277,8 +277,6 @@ attributes is an alist keyed on the attribute nreeame." (defmacro call-presentation (object &rest args) `(present-object ,object :presentation (make-presentation ,object ,@args))) - - (defaction cancel-save-instance ((self mewa)) (cond ((slot-value (instance self) 'clsql-sys::view-database) @@ -295,6 +293,10 @@ attributes is an alist keyed on the attribute nreeame." (defaction ok ((self mewa) &optional arg) "Returns the component if it has not been modified. if it has been, prompt user to save or cancel" (declare (ignore arg)) + (ensure-instance-sync self) + (answer self)) + +(defaction ensure-instance-sync ((self mewa)) (when (modifiedp self) (let ((message (format nil "Record has been modified, Do you wish to save the changes?
~a" (print (modifications self))))) (case (call 'option-dialog @@ -304,8 +306,7 @@ attributes is an alist keyed on the attribute nreeame." (:cancel (cancel-save-instance self)) (:save - (save-instance self))))) - (answer self)) + (save-instance self))))))