summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rt-liberation.el80
1 files changed, 40 insertions, 40 deletions
diff --git a/rt-liberation.el b/rt-liberation.el
index 38761da..73a6c0a 100644
--- a/rt-liberation.el
+++ b/rt-liberation.el
@@ -269,39 +269,40 @@ This variable is made buffer local for the ticket history")
;;; --------------------------------------------------------
;;; TicketSQL compiler
;;; --------------------------------------------------------
-(defun rt-liber-bool-p (sym)
- "Return t if SYM is a boolean operator, otherwise nil."
- (member sym '(and or)))
-(defun rt-liber-attrib-p (sym)
- "Return t if SYM is a ticket attribute, otherwise nil."
- (member sym '(id owner status subject content queue lastupdatedby
- email-address)))
-(defun rt-liber-time-p (sym)
- "Return t if SYM is a temporal attribute, otherwise nil."
- (member sym '(created lastupdated resolved)))
-(defun rt-liber-negation-p (sym)
- (member sym '(not)))
-
-(defun rt-liber-reduce (op seq)
- "Reduce-OP with SEQ to a string of \"s0 op s1 op s2..\"."
- (if seq
- (cl-reduce
- #'(lambda (a b)
- (format "%s %s %s" a op b))
- seq)
- ""))
-
-(defun rt-liber-make-interval (pred before after)
- "Return a formatted TicketSQL interval.
+(eval-and-compile ;; for use in macro `rt-liber-compile-query'
+ (defun rt-liber-bool-p (sym)
+ "Return t if SYM is a boolean operator, otherwise nil."
+ (member sym '(and or)))
+ (defun rt-liber-attrib-p (sym)
+ "Return t if SYM is a ticket attribute, otherwise nil."
+ (member sym '(id owner status subject content queue lastupdatedby
+ email-address)))
+ (defun rt-liber-time-p (sym)
+ "Return t if SYM is a temporal attribute, otherwise nil."
+ (member sym '(created lastupdated resolved)))
+ (defun rt-liber-negation-p (sym)
+ (member sym '(not)))
+
+ (defun rt-liber-reduce (op seq)
+ "Reduce-OP with SEQ to a string of \"s0 op s1 op s2..\"."
+ (if seq
+ (cl-reduce
+ #'(lambda (a b)
+ (format "%s %s %s" a op b))
+ seq)
+ ""))
+
+ (defun rt-liber-make-interval (pred before after)
+ "Return a formatted TicketSQL interval.
PRED temporal attribute predicate.
BEFORE date before predicate.
AFTER date after predicate."
- (when (string= before "") (setq before nil))
- (when (string= after "") (setq after nil))
- (concat
- (if before (format "%s < '%s'" pred before) "")
- (if (and before after) (format " AND ") "")
- (if after (format "%s > '%s'" pred after) "")))
+ (when (string= before "") (setq before nil))
+ (when (string= after "") (setq after nil))
+ (concat
+ (if before (format "%s < '%s'" pred before) "")
+ (if (and before after) (format " AND ") "")
+ (if after (format "%s > '%s'" pred after) ""))))
(defmacro rt-liber-compile-query (query &optional n)
"Compile sexp-based QUERY into TicketSQL."
@@ -493,15 +494,6 @@ AFTER date after predicate."
(error "null field symbol"))
(cdr (assoc field-symbol rt-liber-field-dictionary)))
-(defun rt-liber-display-ticket (ticket-number)
- "Display ticket with TICKET-NUMBER."
- (interactive "nticket number: ")
- (let ((ticket-id (number-to-string ticket-number)))
- (rt-liber-browse-query
- (rt-liber-compile-query
- (id ticket-id))
- (concat "#" ticket-id))))
-
;;; --------------------------------------------------------
;;; Ticket browser
@@ -1449,7 +1441,6 @@ ASSOC-BROWSER if non-nil should be a ticket browser."
(desc (alist-get 'Description section))
(oldvalue (alist-get 'OldValue section))
(newvalue (alist-get 'NewValue section))
- (field (alist-get 'Field section))
(s-content (rt-liber-viewer2-format-content
(alist-get 'Content section))))
(when (not (or (string= type "CommentEmailRecord")
@@ -1623,6 +1614,15 @@ ASSOC-BROWSER if non-nil should be a ticket browser."
(lambda (&optional _noconfirm) 'slow))
(run-hooks 'rt-liber-viewer-hook))
+(defun rt-liber-display-ticket (ticket-number)
+ "Display ticket with TICKET-NUMBER."
+ (interactive "nticket number: ")
+ (let ((ticket-id (number-to-string ticket-number)))
+ (rt-liber-browse-query
+ (rt-liber-compile-query
+ (id ticket-id))
+ (concat "#" ticket-id))))
+
(provide 'rt-liberation)