(defmacro call-presentation (object &rest args)
`(present-object ,object :presentation (make-presentation ,object ,@args)))
+
+(defcomponent about-dialog (option-dialog)
+ ((body :initarg :body)))
+
+(defmethod render-on ((res response) (self about-dialog))
+ (render-on res (slot-value self 'body))
+ (call-next-method))
+
(defaction cancel-save-instance ((self mewa))
(cond
((slot-value (instance self) 'clsql-sys::view-database)
(defaction ensure-instance-sync ((self mewa))
(when (modifiedp self)
(let ((message (format nil "Record has been modified, Do you wish to save the changes?<br/> ~a" (print (modifications self)))))
- (case (call 'option-dialog
+ (case (call 'about-dialog
+ :body (make-presentation (instance self)
+ :type :viewer)
:message message
:options '((:save . "Save changes to Database")
(:cancel . "Cancel all changes")))
(unless (equal new old )
(let ((self (ucw::parent slot)))
(setf (modifiedp self) instance
- (modifications self) (append (list (type-of new) (type-of old) (type-of value) slot instance )))))))
+ (modifications self) (append (list new old value slot instance) (modifications self)))))))
;; This software is Copyright (c) Drew Crampsie, 2004-2005.
(if (listp e) e (list e))))
(ucw::criteria self))))
-
(defmethod search-query ((self mewa:mewa-presentation-search))
(search-expr self (instance self)))
(setf (display-results-p self) t))
(defmethod render-on ((res response) (self mewa-presentation-search))
+ (<:as-html (search-query self))
(ucw::render-criteria res self)
(<ucw:input :type "submit" :value "Search" :action (ok self))
(when (display-results-p self)
(in-package :it.bese.ucw)
(defun multiple-value-funcall->list (function &rest args)
+ "The function to be called by m-v-bf"
(multiple-value-call #'list (apply function args)))
(defmacro multiple-value-bindf (vars form &body body)
+ "Like M-V-B, only it works in actions. form must be a function call"
`(destructuring-bind ,vars
(multiple-value-funcall->list #',(car form) ,@(cdr form))
,@body))
(linkedp :accessor linkedp :initarg :linkedp :initform t))
(:type-name relation))
-(defun get-fkey-data (instance slot-name)
- "ugly workaround b/c UCW does not like M-V-B"
- (multiple-value-bind (finstance foreign-slot-name)
- (meta-model:explode-foreign-key instance slot-name)
- (cons finstance foreign-slot-name)))
-
(defaction search-records ((slot mewa-relation-slot-presentation) instance)
(multiple-value-bindf (finstance foreign-slot-name)
(meta-model:explode-foreign-key instance (slot-name slot))