diff options
| author | Yoni Rabkin <yoni@rabkins.net> | 2020-11-16 22:33:26 -0500 | 
|---|---|---|
| committer | Yoni Rabkin <yoni@rabkins.net> | 2020-11-16 22:33:26 -0500 | 
| commit | 237b11d4507ee8b1208cab40eddf9d2c6747a183 (patch) | |
| tree | 71cab23b44f4bf75dd3b61cf69fd20dfc3f162f1 | |
| parent | 0ee9eba3a41a1dfc5c79abf5df2439ba5e497030 (diff) | |
* rt-liberation-viewer.el: reorganize
| -rw-r--r-- | rt-liberation-viewer.el | 69 | 
1 files changed, 37 insertions, 32 deletions
diff --git a/rt-liberation-viewer.el b/rt-liberation-viewer.el index e3b6309..bc0e15d 100644 --- a/rt-liberation-viewer.el +++ b/rt-liberation-viewer.el @@ -36,37 +36,14 @@  				     "Type: " "Field: " "OldValue: "  				     "NewValue: " "Data: "  				     "Description: " "Created: " -				     "Creator: " "Attachments: ") t))) +				     "Creator: " "Attachments: ") +				   t)))      (list       (list (concat "^" header-regexp ".*$") 0  	   'font-lock-comment-face)))    "Expressions to font-lock for RT ticket viewer.") -(defun rt-liber-jump-to-latest-correspondence () -  "Move point to the newest correspondence section." -  (interactive) -  (let (latest-point) -    (save-excursion -      (goto-char (point-max)) -      (when (re-search-backward rt-liber-correspondence-regexp -				(point-min) t) -	(setq latest-point (point)))) -    (if latest-point -	(progn -	  (goto-char latest-point) -	  (rt-liber-next-section-in-viewer)) -      (message "no correspondence found")))) - -(defun rt-liber-viewer-visit-in-browser () -  "Visit this ticket in the RT Web interface." -  (interactive) -  (let ((id (rt-liber-ticket-id-only rt-liber-ticket-local))) -    (if id -	(browse-url -	 (concat rt-liber-base-url "Ticket/Display.html?id=" id)) -      (error "no ticket currently in view")))) -  (defun rt-liber-display-ticket-history (ticket-alist &optional assoc-browser)    "Display history for ticket. @@ -93,6 +70,34 @@ ASSOC-BROWSER if non-nil should be a ticket browser."  	(setq buffer-read-only t)))      (switch-to-buffer new-ticket-buffer))) + +;;; ------------------------------------------------------------------ +;;; viewer mode functions +;;; ------------------------------------------------------------------ +(defun rt-liber-jump-to-latest-correspondence () +  "Move point to the newest correspondence section." +  (interactive) +  (let (latest-point) +    (save-excursion +      (goto-char (point-max)) +      (when (re-search-backward rt-liber-correspondence-regexp +				(point-min) t) +	(setq latest-point (point)))) +    (if latest-point +	(progn +	  (goto-char latest-point) +	  (rt-liber-next-section-in-viewer)) +      (message "no correspondence found")))) + +(defun rt-liber-viewer-visit-in-browser () +  "Visit this ticket in the RT Web interface." +  (interactive) +  (let ((id (rt-liber-ticket-id-only rt-liber-ticket-local))) +    (if id +	(browse-url +	 (concat rt-liber-base-url "Ticket/Display.html?id=" id)) +      (error "no ticket currently in view")))) +  (defun rt-liber-viewer-mode-quit ()    "Bury the ticket viewer."    (interactive) @@ -129,6 +134,13 @@ ASSOC-BROWSER if non-nil should be a ticket browser."      (message "no previous section"))    (goto-char (point-at-bol))) +(defun rt-liber-refresh-ticket-history (&optional _ignore-auto _noconfirm) +  (interactive) +  (if rt-liber-ticket-local +      (rt-liber-display-ticket-history rt-liber-ticket-local +				       rt-liber-assoc-browser) +    (error "not viewing a ticket"))) +  (defconst rt-liber-viewer-mode-map    (let ((map (make-sparse-keymap)))      (define-key map (kbd "q") 'rt-liber-viewer-mode-quit) @@ -165,15 +177,8 @@ ASSOC-BROWSER if non-nil should be a ticket browser."      (rt-liber-jump-to-latest-correspondence))    (run-hooks 'rt-liber-viewer-hook)) -(defun rt-liber-refresh-ticket-history (&optional _ignore-auto _noconfirm) -  (interactive) -  (if rt-liber-ticket-local -      (rt-liber-display-ticket-history rt-liber-ticket-local -				       rt-liber-assoc-browser) -    (error "not viewing a ticket")))  ;; wrapper functions around specific functions provided by a backend -  (declare-function   rt-liber-gnus-compose-reply-to-requestor   "rt-liberation-gnus.el")  | 
