|author||Yuchen Pei <email@example.com>||2021-06-17 11:29:34 +1000|
|committer||Yuchen Pei <firstname.lastname@example.org>||2021-06-17 11:29:34 +1000|
Adding initial org integration rt-liberation-org.
- Adding org hyperlinks and support for following the link: rt:id:<id> opens ticket with ticket id <id> in rt-liberation-viewer-mode rt:query:<query string> opens query results in rt-liberation-browser-mode - Will add support for storing the link in a follow up commit
1 files changed, 59 insertions, 0 deletions
diff --git a/rt-liberation-org.el b/rt-liberation-org.el
new file mode 100644
@@ -0,0 +1,59 @@
+;;; rt-liberation-org.el --- Org integration for rt-liberation -*- lexical-binding: t; -*-
+;; Copyright (C) 2008-2021 Free Software Foundation, Inc.
+;; Author: Yuchen Pei <email@example.com>
+;; Maintainer: Yoni Rabkin <firstname.lastname@example.org>
+;; This file is a part of rt-liberation.
+;; This program is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as
+;; published by the Free Software Foundation; either version 3 of the
+;; License, or (at your option) any later version.
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+;; You should have received a copy of the GNU General Public
+;; License along with this program; if not, write to the Free
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+;; MA 02111-1307, USA.
+;;; Installation and Use:
+;; Detailed instructions for installation and use can be found in the
+;; rt-liberation manual, in the doc/ directory of the distribution.
+;; Started near the end of 2008.
+(defun rt-org-open (link)
+ "Open the rt LINK.
+ Open the rt ticket (for links starting with 'id:') or run
+ the query (for links starting with 'query:')."
+ (require 'rt-liberation)
+ ((string-match "^id:\\(.+\\)" link)
+ (let (
+ (ticket-alist (list (cons "id" (concat "ticket/" (match-string 1 link)))))
+ (rt-liber-viewer2-display-ticket-history ticket-alist (current-buffer))))
+ ((string-match "^query:\\(.+\\)" link)
+ (rt-liber-browse-query (match-string 1 link)))
+ (t (error "Unrecognized link type '%s'" link))))
+;; org-add-link-type is obsolete as of org-mode 9. Instead we will use the
+;; org-link-set-parameters method
+(if (fboundp 'org-link-set-parameters)
+ (org-link-set-parameters "rt"
+ :follow #'rt-org-open)
+ (org-add-link-type "rt" rt-org-open))
+;;; rt-liberation-org.el ends here