1 <md-card ng-init="vm.onInit()">
3 class="md-table-toolbar md-default table-header"
4 ng-class="{{ 'vm.sectionColor' }} + '-bg'"
5 ng-disabled="vm.searchInProgress"
7 <div class="md-toolbar-tools" layout="row" layout-align="center center">
8 <span class="md-subhead" translate="APP.CONTACTS">Contacts</span>
10 on-search="vm.getContacts()"
15 display-on="vm.isSearchBarVisible"
16 ng-disabled="vm.query.search"
22 filters="vm.quickFilters"
24 search="vm.getContacts()"
25 ng-disabled="vm.query.search"
29 class="md-icon-button advanced-search"
30 ng-class="{ 'md-fab md-mini white-bg': vm.query.search }"
31 aria-label="Advanced search"
33 translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH"
34 ng-click="vm.openAdvancedSearch()"
37 md-font-icon="{{ vm.query.search ? 'icon-filter' : 'icon-filter-outline' }}"
38 ng-class="{ '{{ vm.sectionColor }}-fg blink': vm.query.search }"
40 <md-tooltip>{{'DASHBOARDS.ADVANCED_SEARCH' | translate}}</md-tooltip>
43 class="md-icon-button reload-list"
44 ng-click="vm.refreshContacts($event)"
47 translate-attr-label="APP.RELOAD"
49 <md-icon md-font-icon="icon-reload"></md-icon>
50 <md-tooltip>{{'DASHBOARDS.RELOAD' | translate}}</md-tooltip>
53 ng-if="vm.lists.rows && vm.lists.rows.length"
54 class="md-icon-button create-new"
55 ng-click="vm.openContact()"
56 aria-label="Add contact"
58 translate-attr-label="APP.ADD_CONTACT"
60 <md-icon md-font-icon="icon-plus"></md-icon>
66 <table md-table md-progress="vm.promise">
67 <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">
69 <th md-column md-order-by="id">{{'DASHBOARDS.ID' | translate}}</th>
70 <th md-column md-order-by="firstName">
71 {{'DASHBOARDS.FULLNAME' | translate}}
73 <th md-column md-order-by="phone">
74 {{'DASHBOARDS.PHONE' | translate}}
76 <th md-column md-order-by="mobile">
77 {{'DASHBOARDS.MOBILE' | translate}}
79 <th md-column md-order-by="fax">{{'DASHBOARDS.FAX' | translate}}</th>
80 <th md-column md-order-by="email">
81 {{'DASHBOARDS.EMAIL' | translate}}
83 <th md-column md-order-by="createdAt">
84 {{'APP.CREATED_AT' | translate}}
86 <th md-column md-order-by="ListId">{{'APP.LIST' | translate}}</th>
87 <th md-column>{{'DASHBOARDS.TAGS' | translate}}</th>
88 <th md-column width="10px"></th>
92 <tr md-row ng-hide="vm.contacts.rows.length">
93 <td md-cell colspan="10">
94 <div layout="row" layout-align="center center">
95 <span translate="APP.NO_AVAILABLE_INFO">No Available Info</span>
99 <tr md-row ng-repeat="contact in vm.contacts.rows">
100 <td ng-click="vm.openContact(contact.id)" md-cell class="id">
103 <td ng-click="vm.openContact(contact.id)" md-cell class="firstName">
104 {{contact.firstName}} {{contact.lastName}}
106 <td ng-click="vm.openContact(contact.id)" md-cell class="phone">
107 <!-- click to call directive -->
109 target="contact.phone"
110 prefix="vm.listsMap[contact.ListId].dialPrefix"
111 license="vm_home.license"
113 <!-- / click to call directive -->
115 <td ng-click="vm.openContact(contact.id)" md-cell class="mobile">
116 <!-- click to call directive -->
118 target="contact.mobile"
119 prefix="vm.listsMap[contact.ListId].dialPrefix"
120 license="vm_home.license"
122 <!-- / click to call directive -->
124 <td ng-click="vm.openContact(contact.id)" md-cell class="fax">
127 <td ng-click="vm.openContact(contact.id)" md-cell class="email">
130 <td ng-click="vm.openContact(contact.id)" md-cell class="createdAt">
131 {{contact.createdAt | formatdate}}
133 <td ng-click="vm.openContact(contact.id)" md-cell class="list">
134 {{vm.listsMap[contact.ListId].name}}
136 <td md-cell class="tag">
137 <div ng-if="contact.Tags.length">
139 ng-if="contact.Tags.length == 1"
141 layout-align="center center"
144 md-font-icon="icon-tag"
145 ng-style="{'color': contact.Tags[0].color }"
147 <span class="text-truncate">{{contact.Tags[0].name}}</span>
150 ng-if="contact.Tags.length > 1"
152 layout-align="center center"
154 <md-tooltip md-direction="left" layout="row">
155 <span ng-repeat="tag in contact.Tags"
156 >{{tag.name}}<span ng-if="!$last">, </span></span
159 <md-icon md-font-icon="icon-tag"></md-icon>
163 <td md-cell class="actions">
166 class="md-icon-button"
169 translate-attr-aria-label="APP.MORE"
170 ng-click="$mdMenu.open($event)"
172 <md-icon md-font-icon="icon-dots-vertical"></md-icon>
175 <md-menu-content width="3">
178 ng-click="vm.openContact(contact.id)"
186 ng-click="vm.mergeContact($event, contact)"
187 translate="DASHBOARDS.MERGE"
194 ng-click="vm.duplicateContact($event, contact)"
195 translate="DASHBOARDS.DUPLICATE"
206 </md-table-container>
209 md-limit="vm.query.limit"
210 md-limit-options="[10, 15, 20, 50, 100, 250]"
211 md-page="vm.query.page"
212 md-total="{{vm.contacts.count}}"
213 md-on-paginate="vm.getContacts"
215 ></md-table-pagination>