summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rt-liberation-org.el59
1 files changed, 59 insertions, 0 deletions
diff --git a/rt-liberation-org.el b/rt-liberation-org.el
new file mode 100644
index 0000000..74530b1
--- /dev/null
+++ b/rt-liberation-org.el
@@ -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 <hi@ypei.me>
+;; Maintainer: Yoni Rabkin <yrk@gnu.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.
+
+;;; History:
+;;
+;; Started near the end of 2008.
+(require 'org)
+
+(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)
+ (cond
+ ((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))
+
+;;; _
+(provide 'rt-liberation-org)
+;;; rt-liberation-org.el ends here