[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ebdb 9a2fd46 022/350: Merge branch 'master' into buff
From: |
Eric Abrahamsen |
Subject: |
[elpa] externals/ebdb 9a2fd46 022/350: Merge branch 'master' into buff |
Date: |
Mon, 14 Aug 2017 11:45:55 -0400 (EDT) |
branch: externals/ebdb
commit 9a2fd466d07498dcdb7a57ba4c391c5cc6483945
Merge: 22734d1 c4ea244
Author: Eric Abrahamsen <address@hidden>
Commit: Eric Abrahamsen <address@hidden>
Merge branch 'master' into buff
---
ebdb-com.el | 15 +++++++++++++--
ebdb.el | 37 +++++++++++++++++++++++++++++++++++++
2 files changed, 50 insertions(+), 2 deletions(-)
diff --git a/ebdb-com.el b/ebdb-com.el
index 698e517..d3ba499 100644
--- a/ebdb-com.el
+++ b/ebdb-com.el
@@ -147,6 +147,10 @@ Used by `ebdb-mouse-menu'."
"Face used for clickable links/URLs in field values."
:group 'ebdb-faces)
+(defface ebdb-field-hidden
+ '((t (:inherit font-lock-constant-face)))
+ "Face used for placeholder text for fields that aren't actually displayed.")
+
(defface ebdb-defunct
'((t (:inherit font-lock-comment-face)))
"Face used to display defunct roles and mails."
@@ -471,6 +475,14 @@ property is the field instance itself."
value))
(cl-defmethod ebdb-fmt-field ((_fmt ebdb-formatter-ebdb)
+ (field ebdb-field-obfuscated)
+ _style
+ (_record ebdb-record))
+ (let ((str "HIDDEN"))
+ (add-face-text-property 0 (length str) 'ebdb-field-hidden nil str)
+ str))
+
+(cl-defmethod ebdb-fmt-field ((_fmt ebdb-formatter-ebdb)
(field ebdb-field-mail)
_style
(_record ebdb-record))
@@ -1602,8 +1614,7 @@ is more than one), and prompt for the record class to
use."
(defun ebdb-create-record-extended ()
(interactive)
(let ((db
- (if (or (= 1 (length ebdb-db-list))
- (null arg))
+ (if (= 1 (length ebdb-db-list))
(car ebdb-db-list)
(ebdb-prompt-for-db)))
(record-class
diff --git a/ebdb.el b/ebdb.el
index e1d479d..b17ed11 100644
--- a/ebdb.el
+++ b/ebdb.el
@@ -823,6 +823,17 @@ process."
(ebdb-add-to-list label-var (slot-value field 'object-name))
(cl-call-next-method)))
+;;; The obfuscated field type. This is a little goofy, but might come
+;;; in handy.
+
+(defclass ebdb-field-obfuscated (ebdb-field)
+ nil
+ :abstract t
+ :documentation
+ "A field class mixin that prevents the contents from being
+ displayed in the *EBDB* buffer. Use for mildly sensitive
+ information.")
+
;;; User-defined fields. There are two kinds. The first is
;;; `ebdb-field-user', which provides no information about labels or
;;; slots, but simply gives us the right to live in the "fields" slot
@@ -1440,6 +1451,32 @@ override parsing."
(calendar-gregorian-from-absolute (slot-value ann 'date))
nil t))
+;;; Id field
+
+;; Used for recording an ID or tax id number. Ie, national
+;; identification numbers, SSNs, TINs, UTRs, and so on.
+
+(defvar ebdb-id-label-list '("SSN" "TIN" "ID" "UTR")
+ "List of known ID labels.")
+
+(defclass ebdb-field-id (ebdb-field-labeled ebdb-field-obfuscated
ebdb-field-user)
+ ((label-list :initform ebdb-id-label-list)
+ (id-number
+ :type string
+ :custom string
+ :initarg :id-number
+ :initform ""
+ :documentation "The ID number itself."))
+ :human-readable "id number")
+
+(cl-defmethod ebdb-read ((class (subclass ebdb-field-id)) &optional slots obj)
+ (let ((id-number (ebdb-read-string "ID number: "
+ (when obj (slot-value obj 'id-number)))))
+ (cl-call-next-method class (plist-put slots :id-number id-number) obj)))
+
+(cl-defmethod ebdb-string ((field ebdb-field-id))
+ (slot-value field 'id-number))
+
;;; Relationship field
;; This is a bit different from the organization role field, mostly
- [elpa] externals/ebdb 4ded2cb 007/350: Be more careful about text props in record headers, (continued)
- [elpa] externals/ebdb 4ded2cb 007/350: Be more careful about text props in record headers, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb e760dad 006/350: Fix quoting bug in ebdb-fmt-record-header, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb e0b4d17 016/350: Provide keybindings for clone-buffer and rename-buffer, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 696d6ba 018/350: Document buffer manipulation commands in the manual, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 4633492 023/350: Improve ebdb-field-user docstring, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb ece1a35 017/350: Stray "arg" arg left in create-record-extended, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb c4ea244 021/350: Add new ebdb-field-id field, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 5fe2bf6 020/350: Add ebdb-field-obfuscated abstract field class, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 4b8ce76 024/350: Move point to next record when adding a mark, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 20f1ea2 025/350: Add command to unmark all records, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 9a2fd46 022/350: Merge branch 'master' into buff,
Eric Abrahamsen <=
- [elpa] externals/ebdb 16cdf2c 028/350: Provide protection for relations to unloaded records, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 50f39b6 031/350: Forgot about rmail, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb b0778d6 033/350: Make ebdb-display-records non-interactive, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 1ee7829 012/350: Don't auto-save unsynced databases, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb ac0b822 010/350: Switch to using kbd macro in keymap def, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 9edb0c0 015/350: Sort out catch-all version of ebdb-make-buffer-name, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 74ed051 009/350: Better customization setup for record fields, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb c803f1c 004/350: Forgot extra argument to ebdb-delete-i18n, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 22734d1 019/350: Select newly-cloned buffers, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 94c7c6b 039/350: Provide ebdb-load guards in a few more places, Eric Abrahamsen, 2017/08/14