Use sgSearch directive in addressbook module

pull/91/head
Francis Lachapelle 2015-03-18 14:19:17 -04:00
parent 44164c0f43
commit 01d4134a23
3 changed files with 14 additions and 43 deletions

View File

@ -194,7 +194,7 @@
dropdown-toggle="#addressbookProperties"
options="align:right"
ng-show="currentFolderIsConfigurable(folder)">
<i class="md-icon-settings"><!-- options --></i>
<i class="md-icon-more-vert"><!-- options --></i>
</a>
</span>
</md-item-content>
@ -207,7 +207,7 @@
<md-toolbar layout="column" layout-align="space-between start" class="md-tall toolbar-main">
<div class="md-toolbar-tools md-toolbar-tools-top" layout="row" layout-align="space-between start">
<div class="sg-toolbar-group-1" layout="row">
<md-button ng-click="toggleLeft()" class="md-hide-gt-md sg-button-navicon iconButton" aria-label="Toggle Menu">
<md-button ng-click="toggleLeft()" class="md-hide-gt-md sg-button-navicon iconButton" label:aria-label="Toggle Menu">
<span class="md-icon-menu"></span>
</md-button>
<div class="sg-date-group" layout="column" layout-align="space-between end">
@ -219,25 +219,26 @@
<p class="sg-md-display-3 sg-date-today">15</p>
</div>
<div class="sg-toolbar-group-2">
<md-button class="iconButton" aria-label="Search">
<md-button class="iconButton" label:aria-label="Search">
<i class="md-icon-search"><!--icon--></i>
</md-button>
</div>
</div>
<div class="md-toolbar-tools md-toolbar-tools-bottom" layout="row" layout-align="space-between center">
<div class="cols-6" layout="row" layout-align="space-between center" style="padding-right: 16px">
<div class="cols-6" layout="row" layout-align="space-between center" style="padding-right: 16px"
sg-search="addressbook.$filter(searchText, { search: searchField })">
<md-input-container class="sg-search-field-container">
<label style="color: white"><i class="md-icon-search"><!--icon--></i>Search</label>
<input name="folderSearch" type="search"
ng-model="search.filter" ng-keyup="doSearch($event)" style="color: white"/>
<label style="color: white"><i class="md-icon-search"><!--icon--></i><var:string label:value="Search"/></label>
<input name="folderSearch" type="search" style="color: white"/>
</md-input-container>
<div class="sg-toolbar-group">
<md-select class="sg-toolbar-sort md-contrast-light" label:placeholder="All"
ng-model="search.filter">
<md-option value="all">ALL</md-option>
<md-select class="sg-toolbar-sort md-contrast-light">
<md-option value="name_or_address"><var:string label:value="Name or Email"/></md-option>
<md-option value="category"><var:string label:value="Category"/></md-option>
<md-option value="organization"><var:string label:value="Organization"/></md-option>
</md-select>
<md-button class="iconButton" aria-label="New Contact" ui-sref="addressbook.new({addressbookId: addressbook.id, contactType: 'card'})"><i class="md-icon-create"><!--icon--></i></md-button>
<md-button class="iconButton" label:aria-label="New Contact" ui-sref="addressbook.new({addressbookId: addressbook.id, contactType: 'card'})"><i class="md-icon-create"><!--icon--></i></md-button>
</div>
</div>
<div class="spacer cols-8"><!-- spacer --></div>

View File

@ -175,9 +175,8 @@
sort: 'c_cn',
asc: 'true'
};
if (options && options.excludeLists) {
params.excludeLists = true;
}
if (options)
angular.extend(params, options);
return this.$id().then(function(addressbookId) {
var futureAddressBookData = AddressBook.$$resource.fetch(addressbookId, 'view', params);

View File

@ -93,14 +93,10 @@
$scope.addressbooks = stateAddressbooks;
$rootScope.addressbook = stateAddressbook;
// $scope objects
$scope.search = { status: null, filter: null, lastFilter: null };
// Adjust search status depending on addressbook type
currentAddressbook = _.find($scope.addressbooks, function(o) {
return o.id == $stateParams.addressbookId;
});
$scope.search.status = (currentAddressbook && currentAddressbook.isRemote)? 'remote-addressbook' : '';
// $scope functions
$scope.select = function(rowIndex) {
@ -243,31 +239,6 @@
}]
});
};
$scope.doSearch = function(keyEvent) {
if ($scope.search.filter != $scope.search.lastFilter) {
if ($scope.search.filter.length > 2) {
$rootScope.addressbook.$filter($scope.search.filter).then(function(data) {
if (data.length == 0)
$scope.search.status = 'no-result';
else
$scope.search.status = '';
});
}
else if ($scope.search.filter.length == 0) {
$rootScope.addressbook = AddressBook.$find($stateParams.addressbookId);
// Extend resulting model instance with parameters from addressbooks listing
var o = _.find($scope.addressbooks, function(o) {
return o.id == $stateParams.addressbookId;
});
$scope.search.status = (o.isRemote)? 'remote-addressbook' : '';
}
else {
$scope.search.status = 'min-char';
$rootScope.addressbook.cards = [];
}
}
$scope.search.lastFilter = $scope.search.filter;
};
/**
* subscribeToFolder - Callback of sgSubscribe directive