2013-12-07 05:50:19 +08:00
|
|
|
<div class="popups">
|
2013-12-29 20:15:03 +08:00
|
|
|
<div class="modal hide b-contacts-content" data-bind="modal: modalVisibility">
|
2013-12-07 05:50:19 +08:00
|
|
|
<div class="modal-header b-header-toolbar g-ui-user-select-none">
|
|
|
|
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
2014-01-15 04:02:30 +08:00
|
|
|
<div class="btn-toolbar">
|
|
|
|
|
|
|
|
<div class="btn-group">
|
|
|
|
<a class="btn button-create-contact" data-bind="command: newCommand">
|
|
|
|
<i class="icon-plus"></i>
|
|
|
|
|
|
|
|
<span class="i18n" data-i18n-text="CONTACTS/BUTTON_ADD_CONTACT"></span>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="btn-group">
|
|
|
|
<a class="btn dropdown-toggle buttonMore" data-toggle="dropdown">
|
|
|
|
<i data-bind="css: {'icon-list': !contacts.importing(), 'icon-spinner animated': contacts.importing()}"></i>
|
|
|
|
</a>
|
|
|
|
<ul class="dropdown-menu g-ui-menu">
|
|
|
|
<li class="e-item">
|
|
|
|
<a class="e-link" data-bind="initDom: importUploaderButton">
|
|
|
|
<i class="icon-list-add"></i>
|
|
|
|
|
|
|
|
<span class="i18n" data-i18n-text="CONTACTS/BUTTON_IMPORT"></span>
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="btn-group">
|
|
|
|
<a class="btn btn-success button-new-message" data-bind="command: newMessageCommand">
|
|
|
|
<i class="icon-mail icon-white"></i>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="btn-group">
|
|
|
|
<a class="btn btn-danger button-delete" data-bind="command: deleteCommand">
|
|
|
|
<i class="icon-trash icon-white"></i>
|
|
|
|
<span data-bind="text: 1 < contactsCheckedOrSelected().length ? ' (' + contactsCheckedOrSelected().length + ')' : ''"></span>
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-12-07 05:50:19 +08:00
|
|
|
</div>
|
|
|
|
<div class="modal-body" style="position: relative">
|
|
|
|
<div class="b-list-toopbar">
|
2014-02-01 04:31:55 +08:00
|
|
|
<input class="i18n span3 e-search" type="text" placeholder="Search" data-i18n-placeholder="CONTACTS/SEARCH_INPUT_PLACEHOLDER" data-bind="value: search" />
|
2013-12-07 05:50:19 +08:00
|
|
|
</div>
|
|
|
|
<div class="b-list-content g-ui-user-select-none" data-bind="nano: true, css: {'hideContactListCheckbox': !useCheckboxesInList()}">
|
|
|
|
<div class="content g-scrollbox">
|
|
|
|
<div class="content-wrapper">
|
|
|
|
<div class="listClear" data-bind="visible: viewClearSearch() && '' !== search()">
|
|
|
|
<span class="g-ui-link i18n" data-i18n-text="CONTACTS/CLEAR_SEARCH" data-bind="command: clearCommand"></span>
|
|
|
|
</div>
|
|
|
|
<div class="listEmptyList" data-bind="visible: 0 === contacts().length && '' === search() && !contacts.loading()">
|
|
|
|
<span class="i18n" data-i18n-text="CONTACTS/EMPTY_LIST"></span>
|
|
|
|
</div>
|
|
|
|
<div class="listEmptyListLoading" data-bind="visible: 0 === contacts().length && '' === search() && contacts.loading()">
|
|
|
|
<span class="i18n" data-i18n-text="CONTACTS/LIST_LOADING"></span><span class="textLoadingAnimationD1">.</span><span class="textLoadingAnimationD2">.</span><span class="textLoadingAnimationD3">.</span>
|
|
|
|
</div>
|
|
|
|
<div class="listEmptySearchList" data-bind="visible: 0 === contacts().length && '' !== search() && !contacts.loading()">
|
|
|
|
<span class="i18n" data-i18n-text="CONTACTS/EMPTY_SEARCH"></span>
|
|
|
|
</div>
|
2014-01-15 04:02:30 +08:00
|
|
|
<div class="e-contact-foreach g-ui-user-select-none" data-bind="foreach: contacts, visible: 0 < contacts().length">
|
2013-12-07 05:50:19 +08:00
|
|
|
<div class="e-contact-item g-ui-user-select-none" data-bind="css: lineAsCcc()">
|
|
|
|
<div class="sidebarParent">
|
|
|
|
|
|
|
|
</div>
|
|
|
|
<div class="delimiter"></div>
|
|
|
|
<div class="wrapper">
|
|
|
|
<div class="checkedParent">
|
|
|
|
<i class="checkboxItem" data-bind="css: checked() || selected() ? 'checkboxMessage icon-checkbox-checked' : 'checkboxMessage icon-checkbox-unchecked'"></i>
|
|
|
|
</div>
|
2013-12-19 00:05:30 +08:00
|
|
|
<div class="shareParent actionHandle">
|
|
|
|
<i class="icon-share"></i>
|
|
|
|
</div>
|
2013-12-07 05:50:19 +08:00
|
|
|
<div class="nameParent actionHandle">
|
|
|
|
<span class="listName" data-bind="text: display"></span>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-12-08 07:58:33 +08:00
|
|
|
<div class="b-list-footer-toopbar">
|
|
|
|
<div class="pull-right footer-pager">
|
|
|
|
<!-- ko template: { name: 'Pagenator', data: contactsPagenator } --><!-- /ko -->
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-12-19 00:05:30 +08:00
|
|
|
<div class="b-view-content" data-bind="nano: true, css: {'read-only': viewReadOnly}">
|
2013-12-07 05:50:19 +08:00
|
|
|
<div class="content g-scrollbox">
|
|
|
|
<div class="content-wrapper">
|
|
|
|
<div class="b-contact-view-desc" data-bind="visible: emptySelection">
|
|
|
|
<span class="i18n" data-i18n-text="CONTACTS/CONTACT_VIEW_DESC"></span>
|
|
|
|
</div>
|
|
|
|
<div data-bind="visible: !emptySelection()">
|
|
|
|
<div class="form-horizontal top-part">
|
2013-12-19 08:53:42 +08:00
|
|
|
<div class="control-group" data-bind="visible: !viewReadOnly() || 0 < viewPropertiesEmailsNonEmpty().length">
|
2013-12-15 19:02:50 +08:00
|
|
|
<label class="control-label remove-padding-top fix-width">
|
2013-12-23 08:06:48 +08:00
|
|
|
<i class="icon-user iconsize24"></i>
|
2013-12-07 05:50:19 +08:00
|
|
|
</label>
|
2013-12-15 19:02:50 +08:00
|
|
|
<div class="controls fix-width" data-bind="foreach: viewPropertiesNames">
|
2013-12-07 05:50:19 +08:00
|
|
|
<div class="property-line">
|
2013-12-19 00:05:30 +08:00
|
|
|
<span class="contactValueStatic" data-bind="text: value" />
|
2013-12-19 08:53:42 +08:00
|
|
|
<input type="text" class="contactValueInput" placeholder="" data-bind="value: value, hasFocus: focused, valueUpdate: 'keyup', attr: {'placeholder': placeholderValue}" />
|
2013-12-07 05:50:19 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-12-19 00:05:30 +08:00
|
|
|
<div class="control-group" data-bind="visible: !viewReadOnly() || 0 < viewPropertiesEmails().length">
|
2013-12-15 19:02:50 +08:00
|
|
|
<label class="control-label remove-padding-top fix-width">
|
|
|
|
<i class="icon-at iconsize24" data-placement="left" data-bind="tooltip: 'CONTACTS/LABEL_EMAIL'"></i>
|
2013-12-07 05:50:19 +08:00
|
|
|
</label>
|
2013-12-15 19:02:50 +08:00
|
|
|
<div class="controls fix-width">
|
2013-12-07 05:50:19 +08:00
|
|
|
<div data-bind="foreach: viewPropertiesEmails">
|
|
|
|
<div class="property-line">
|
2013-12-19 00:05:30 +08:00
|
|
|
<span class="contactValueStatic" data-bind="text: value" />
|
2013-12-07 05:50:19 +08:00
|
|
|
<input type="email" class="contactValueInput" data-bind="value: value, hasFocus: focused, valueUpdate: 'keyup'" />
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-12-19 00:05:30 +08:00
|
|
|
<a href="javascript:void(0);" class="g-ui-link add-link i18n" data-bind="visible: !viewReadOnly(), click: addNewEmail" data-i18n-text="CONTACTS/LINK_ADD_EMAIL"></a>
|
2013-12-07 05:50:19 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
2013-12-19 00:05:30 +08:00
|
|
|
<div class="control-group" data-bind="visible: !viewReadOnly() || 0 < viewPropertiesPhones().length">
|
2013-12-15 19:02:50 +08:00
|
|
|
<label class="control-label remove-padding-top fix-width">
|
|
|
|
<i class="icon-telephone iconsize24" data-placement="left" data-bind="tooltip: 'CONTACTS/LABEL_PHONE'"></i>
|
2013-12-07 05:50:19 +08:00
|
|
|
</label>
|
2013-12-15 19:02:50 +08:00
|
|
|
<div class="controls fix-width">
|
2013-12-07 05:50:19 +08:00
|
|
|
<div data-bind="foreach: viewPropertiesPhones">
|
|
|
|
<div class="property-line">
|
2013-12-19 00:05:30 +08:00
|
|
|
<span class="contactValueStatic" data-bind="text: value" />
|
2013-12-15 19:02:50 +08:00
|
|
|
<input type="text" class="contactValueInput" data-bind="value: value, hasFocus: focused, valueUpdate: 'keyup'" />
|
2013-12-07 05:50:19 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
2013-12-19 00:05:30 +08:00
|
|
|
<a href="javascript:void(0);" class="g-ui-link add-link i18n" data-bind="visible: !viewReadOnly(), click: addNewPhone" data-i18n-text="CONTACTS/LINK_ADD_PHONE"></a>
|
2013-12-07 05:50:19 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="control-group">
|
2013-12-15 19:02:50 +08:00
|
|
|
<div class="controls fix-width">
|
2013-12-07 05:50:19 +08:00
|
|
|
<br />
|
|
|
|
<br />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2013-12-19 08:53:42 +08:00
|
|
|
|
|
|
|
<div class="e-read-only-sign">
|
2013-12-19 00:05:30 +08:00
|
|
|
<i class="icon-lock iconsize24" data-placement="left" data-bind="tooltip: 'CONTACTS/LABEL_READ_ONLY'"></i>
|
|
|
|
</div>
|
|
|
|
|
2013-12-19 08:53:42 +08:00
|
|
|
<div class="e-share-sign" data-bind="visible: contactsSharingIsAllowed">
|
2013-12-19 00:05:30 +08:00
|
|
|
<div class="btn-group pull-right">
|
|
|
|
<a class="btn dropdown-toggle" data-placement="left" data-toggle="dropdown" data-bind="tooltip: 'CONTACTS/LABEL_SHARE'">
|
2013-12-19 08:53:42 +08:00
|
|
|
<i data-bind="css: shareIcon"></i>
|
2013-12-19 00:05:30 +08:00
|
|
|
|
|
|
|
<span class="caret"></span>
|
|
|
|
</a>
|
|
|
|
<ul class="dropdown-menu g-ui-menu">
|
2013-12-19 08:53:42 +08:00
|
|
|
<li class="e-item" data-bind="css: {'selected': shareToNone}">
|
|
|
|
<a class="e-link" data-bind="click: setShareToNone">
|
2013-12-19 00:05:30 +08:00
|
|
|
<i class="icon-none"></i>
|
|
|
|
|
|
|
|
<span class="i18n" data-i18n-text="CONTACTS/BUTTON_SHARE_NONE"></span>
|
|
|
|
</a>
|
|
|
|
</li>
|
2013-12-19 08:53:42 +08:00
|
|
|
<li class="e-item" data-bind="css: {'selected': shareToAll}">
|
|
|
|
<a class="e-link" data-bind="click: setShareToAll">
|
|
|
|
<i class="icon-earth"></i>
|
2013-12-19 00:05:30 +08:00
|
|
|
|
|
|
|
<span class="i18n" data-i18n-text="CONTACTS/BUTTON_SHARE_ALL"></span>
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2013-12-23 08:06:48 +08:00
|
|
|
<button class="btn button-save-contact" data-bind="command: saveCommand, css: {'dirty': watchDirty}">
|
2013-12-15 06:42:32 +08:00
|
|
|
<i data-bind="css: {'icon-ok': !viewSaving(), 'icon-spinner animated': viewSaving()}"></i>
|
2013-12-07 05:50:19 +08:00
|
|
|
|
|
|
|
<span class="i18n" data-i18n-text="CONTACTS/BUTTON_CREATE_CONTACT" data-bind="visible: '' === viewID()"></span>
|
|
|
|
<span class="i18n" data-i18n-text="CONTACTS/BUTTON_UPDATE_CONTACT" data-bind="visible: '' !== viewID()"></span>
|
2013-12-23 08:06:48 +08:00
|
|
|
</button>
|
2013-12-07 05:50:19 +08:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|