Bind email addresses in pgp keychain to autocomplete

This commit is contained in:
Tankred Hase 2014-09-15 19:06:31 +02:00
parent 400a90f88e
commit a600aaea87
2 changed files with 36 additions and 15 deletions

View File

@ -63,6 +63,7 @@ define(function(require) {
$scope.body = '';
$scope.ciphertextPreview = '';
$scope.attachments = [];
$scope.addressBookCache = undefined;
}
function reportBug() {
@ -409,16 +410,36 @@ define(function(require) {
return classes;
};
$scope.lookupAddressBook = function(/*query*/) {
$scope.lookupAddressBook = function(query) {
var deferred = $q.defer();
deferred.resolve([
{ address: 'john@doe.com' },
{ address: 'jane@doe.com' },
{ address: 'john.doe@example.com' },
{ address: 'jane.doe@example.com' },
{ address: 'max.mustermann@example.com' },
]);
if (!$scope.addressBookCache) {
// populate address book cache
keychainDao.listLocalPublicKeys(function(err, keys) {
if (err) {
$scope.onError(err);
return;
}
$scope.addressBookCache = keys.map(function(key) {
return {
address: key.userId
};
});
filter();
});
} else {
filter();
}
// query address book cache
function filter() {
var addresses = $scope.addressBookCache.filter(function(i) {
return i.address.indexOf(query) !== -1;
});
deferred.resolve(addresses);
}
return deferred.promise;
};

View File

@ -17,7 +17,7 @@
tag-style="tagStyle" display-property="address" on-tag-added="verify($tag)"
allowed-tags-pattern='^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$'
placeholder="add recipient">
<auto-complete source="lookupAddressBook($query)"></auto-complete>
<auto-complete source="lookupAddressBook($query)" min-length="1"></auto-complete>
</tags-input>
</p>
<p ng-show="showCC === true"
@ -28,7 +28,7 @@
tag-style="tagStyle" display-property="address" on-tag-added="verify($tag)"
allowed-tags-pattern='^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$'
placeholder="add cc">
<auto-complete source="lookupAddressBook($query)"></auto-complete>
<auto-complete source="lookupAddressBook($query)" min-length="1"></auto-complete>
</tags-input>
</p>
<p ng-show="showBCC === true"
@ -39,7 +39,7 @@
tag-style="tagStyle" display-property="address" on-tag-added="verify($tag)"
allowed-tags-pattern='^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$'
placeholder="add bcc">
<auto-complete source="lookupAddressBook($query)"></auto-complete>
<auto-complete source="lookupAddressBook($query)" min-length="1"></auto-complete>
</tags-input>
</p>
</div><!--/.mail-addresses-->