11 changed files with 706 additions and 41 deletions
@ -0,0 +1,126 @@
|
||||
<div class="chat_modal_wrap"> |
||||
|
||||
<div class="tg_page_head tg_modal_head"> |
||||
<div class="navbar navbar-static-top navbar-inverse"> |
||||
<div class="container"> |
||||
|
||||
<div class="navbar-toggle-wrap dropdown" ng-if="chatFull.chat._ != 'chatForbidden' && !chatFull.chat.left"> |
||||
<a class="dropdown-toggle navbar-toggle"> |
||||
<span class="icon-bar"></span> |
||||
<span class="icon-bar"></span> |
||||
<span class="icon-bar"></span> |
||||
</a> |
||||
<ul class="dropdown-menu"> |
||||
<li ng-if="chatFull.thumb.location"> |
||||
<a ng-click="deletePhoto()">Delete photo</a> |
||||
</li> |
||||
<li> |
||||
<a ng-click="editTitle()">Edit group</a> |
||||
</li> |
||||
<li> |
||||
<a ng-click="leaveGroup()">Leave group</a> |
||||
</li> |
||||
<li> |
||||
<a ng-click="flushHistory()">Delete chat</a> |
||||
</li> |
||||
</ul> |
||||
</div> |
||||
|
||||
<div class="navbar-header"> |
||||
|
||||
<ul class="nav navbar-nav navbar-quick-nav"> |
||||
<li> |
||||
<a ng-click="$close()" class="navbar-quick-media-back"> |
||||
<i class="icon icon-back"></i> |
||||
<div class="navbar-quick-back-title"> |
||||
<h4>Group info</h4> |
||||
</div> |
||||
</a> |
||||
</li> |
||||
</ul> |
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="modal-body mobile_modal_body"> |
||||
|
||||
<div class="mobile_user_modal_photo_profile_wrap"> |
||||
|
||||
<img |
||||
class="mobile_user_modal_image mobile_chat_modal_image" |
||||
my-load-thumb |
||||
watch="true" |
||||
thumb="chatFull.thumb" |
||||
/> |
||||
|
||||
<div class="mobile_user_modal_info_wrap clearfix"> |
||||
<h4 class="mobile_user_modal_header" ng-bind-html="chatFull.chat.rTitle"></h4> |
||||
<p class="mobile_user_modal_status" ng-if="chatFull.chat.participants_count > 0"> |
||||
<ng-pluralize count="chatFull.chat.participants_count" |
||||
when="{'0': 'No members', 'one': '1 member', 'other': '{} members'}"> |
||||
</ng-pluralize> |
||||
</p> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
<div class="mobile_modal_action_wrap" ng-if="!chatFull.chat.left && chatFull.participants.participants.length"> |
||||
<a class="mobile_modal_action" ng-click="inviteToGroup()">Add member</a> |
||||
</div> |
||||
<div class="mobile_modal_action_wrap" ng-if="chatFull.chat._ != 'chatForbidden' && chatFull.chat.left"> |
||||
<a class="mobile_modal_action" ng-click="returnToGroup()">Return to group</a> |
||||
</div> |
||||
<div class="mobile_modal_action_wrap" ng-if="chatFull.chat._ == 'chatForbidden'"> |
||||
<a class="mobile_modal_action" ng-click="flushHistory()">Return to group</a> |
||||
</div> |
||||
<div class="mobile_modal_action_wrap" ng-if="chatFull.chat._ != 'chatForbidden' && !chatFull.chat.left && !photo.updating"> |
||||
<span class="mobile_modal_action mobile_modal_upload_action"> |
||||
<input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" /> |
||||
Update photo |
||||
</span> |
||||
</div> |
||||
<div class="mobile_modal_action_wrap" ng-if="photo.updating"> |
||||
<span class="mobile_modal_action"> |
||||
Updating<span my-loading-dots></span> |
||||
</span> |
||||
</div> |
||||
|
||||
<div class="mobile_modal_action_wrap"> |
||||
<a class="mobile_modal_action tg_checkbox clearfix" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? 'tg_checkbox_on' : ''"> |
||||
<span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span> |
||||
<span class="tg_checkbox_label">Notifications</span> |
||||
</a> |
||||
</div> |
||||
|
||||
<div class="mobile_modal_section"> |
||||
<h4 class="mobile_modal_section_header">Members</h4> |
||||
<div class="mobile_modal_section_body"> |
||||
|
||||
<div class="chat_modal_members_list"> |
||||
|
||||
<div class="chat_modal_participant_wrap clearfix" ng-repeat="participant in chatFull.participants.participants | orderBy:'-user.sortStatus'"> |
||||
<a ng-if="participant.canKick" ng-click="kickFromGroup(participant.user_id)" class="chat_modal_participant_kick pull-right">Kick</a> |
||||
|
||||
<a class="chat_modal_participant_photo pull-left" my-user-photolink="participant.user_id" img-class="chat_modal_participant_photo" status="true"></a> |
||||
|
||||
<div class="chat_modal_participant_name"> |
||||
<a my-user-link="participant.user_id"></a> |
||||
</div> |
||||
<div class="chat_modal_participant_status" my-user-status="::participant.user_id"></div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
<div class="chat_modal_members_forbidden" ng-if="chatFull.chat._ == 'chatForbidden' || chatFull.chat.left"> |
||||
Group members list is unavailable. |
||||
</div> |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
</div> |
@ -0,0 +1,94 @@
|
||||
<div class="contacts_modal_wrap"> |
||||
|
||||
<div class="tg_page_head tg_modal_head"> |
||||
<div class="navbar navbar-static-top navbar-inverse"> |
||||
<div class="container"> |
||||
|
||||
<div class="navbar-header"> |
||||
|
||||
<ul class="nav navbar-nav navbar-quick-nav"> |
||||
<li class="navbar-quick-right" ng-if="!action || action == 'edit'" ng-switch="action"> |
||||
<a ng-switch-when="edit" ng-click="toggleEdit(false)"> |
||||
Cancel |
||||
</a> |
||||
<a ng-switch-default ng-click="toggleEdit(true)"> |
||||
Edit |
||||
</a> |
||||
</li> |
||||
<li> |
||||
<a ng-click="$dismiss()" class="navbar-quick-media-back"> |
||||
<i class="icon icon-back"></i> |
||||
<div class="navbar-quick-back-title"> |
||||
<h4 ng-switch="action"> |
||||
<div ng-switch-when="new_group" ng-switch="selectedCount > 0"> |
||||
<span ng-switch-when="true"> |
||||
<ng-pluralize count="selectedCount" when="{'one': '1 participant', 'other': '{} participants'}"> |
||||
</ng-pluralize> |
||||
</span> |
||||
<span ng-switch-default>New Group</span> |
||||
</div> |
||||
<span ng-switch-default>Contacts</span> |
||||
</h4> |
||||
</div> |
||||
</a> |
||||
</li> |
||||
</ul> |
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="modal-body mobile_modal_body"> |
||||
|
||||
<div class="contacts_modal_search"> |
||||
<input class="form-control contacts_modal_search_field no_outline" my-focused type="search" placeholder="Search" ng-model="search.query"/> |
||||
<a class="contacts_modal_search_clear" ng-click="search.query = ''" ng-show="search.query.length"></a> |
||||
</div> |
||||
|
||||
|
||||
<div my-contacts-list class="contacts_modal_col"> |
||||
|
||||
<div class="contacts_wrap nano" my-infinite-scroller> |
||||
<div class="contacts_scrollable_wrap nano-content"> |
||||
|
||||
<ul class="contacts_modal_members_list nav nav-pills nav-stacked"> |
||||
|
||||
<li class="contacts_modal_contact_wrap clearfix" ng-repeat="contact in contacts | orderBy:'user.sortName' | limitTo: slice.limit track by contact.userID" ng-class="{active: selectedContacts[contact.userID], disabled: disabledContacts[contact.userID]}"> |
||||
<a class="contacts_modal_contact" ng-click="contactSelect(contact.userID)"> |
||||
|
||||
<i ng-if="multiSelect" class="icon icon-contact-tick"></i> |
||||
|
||||
<div class="contacts_modal_contact_photo pull-left" my-user-photolink="contact.userID" status="true" img-class="contacts_modal_contact_photo"></div> |
||||
<div class="contacts_modal_contact_name" ng-bind-html="contact.user.rFullName"></div> |
||||
<div class="contacts_modal_contact_status" my-user-status="::contact.userID"></div> |
||||
|
||||
</a> |
||||
</li> |
||||
|
||||
</ul> |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
<div class="modal-footer contacts_modal_panel" ng-switch="action"> |
||||
<button ng-switch-when="new_group" class="btn btn-primary" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" type="submit"> |
||||
Next |
||||
</button> |
||||
<button ng-switch-when="select" class="btn btn-primary" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" type="submit"> |
||||
Next |
||||
</button> |
||||
<button ng-switch-when="edit" class="btn btn-danger" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="deleteSelected()"> |
||||
Delete <strong ng-bind="selectedCount"></strong> |
||||
</button> |
||||
<button ng-switch-default class="btn btn-link" ng-click="importContact()"> |
||||
New contact |
||||
</button> |
||||
</div> |
||||
|
||||
</div> |
@ -0,0 +1,76 @@
|
||||
<div class="peer_select_modal_wrap"> |
||||
|
||||
<div class="tg_page_head tg_modal_head"> |
||||
<div class="navbar navbar-static-top navbar-inverse"> |
||||
<div class="container"> |
||||
|
||||
<a class="navbar-search-wrap" ng-click="toggleSearch()"> |
||||
<i class="icon-search"></i> |
||||
</a> |
||||
|
||||
<div class="navbar-header"> |
||||
|
||||
<ul class="nav navbar-nav navbar-quick-nav"> |
||||
<li> |
||||
<a ng-click="$dismiss()" class="navbar-quick-media-back"> |
||||
<i class="icon icon-back"></i> |
||||
<div class="navbar-quick-back-title"> |
||||
<h4>Select conversation</h4> |
||||
</div> |
||||
</a> |
||||
</li> |
||||
</ul> |
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="modal-body mobile_modal_body"> |
||||
|
||||
<div class="im_dialogs_modal_col_wrap" ng-controller="AppImDialogsController" my-dialogs> |
||||
<div class="im_dialogs_panel"> |
||||
<div class="im_dialogs_search"> |
||||
<input my-focused class="form-control im_dialogs_search_field" type="search" placeholder="Search" ng-model="search.query"/> |
||||
<a class="im_dialogs_search_clear" ng-click="search.query = ''" ng-show="search.query.length"></a> |
||||
</div> |
||||
</div> |
||||
<div my-dialogs-list modal="true" class="im_dialogs_modal_col"> |
||||
<div class="im_dialogs_wrap nano"> |
||||
<div class="im_dialogs_scrollable_wrap nano-content"> |
||||
<ul class="nav nav-pills nav-stacked"> |
||||
<li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID"></li> |
||||
</ul> |
||||
<div class="im_dialogs_contacts_wrap" ng-show="contacts.length > 0"> |
||||
<h5>Contacts</h5> |
||||
<ul class="nav nav-pills nav-stacked"> |
||||
<li class="im_dialog_wrap" ng-repeat="contact in contacts | orderBy:'user.sortName' track by contact.userID" ng-class="{active: curDialog.peerID == contact.userID}"> |
||||
<a class="im_dialog" ng-click="dialogSelect(contact.peerString)"> |
||||
<div class="im_dialog_photo pull-left"> |
||||
<img |
||||
class="im_dialog_photo" |
||||
my-load-thumb |
||||
thumb="contact.userPhoto" |
||||
/> |
||||
</div> |
||||
<div class="im_dialog_message_wrap"> |
||||
<div class="im_dialog_peer"> |
||||
<span class="im_dialog_user" ng-bind-html="contact.user.rFullName"></span> |
||||
</div> |
||||
<div class="im_dialog_message"> |
||||
<span class="im_dialog_message_text" my-user-status="::contact.userID"></span> |
||||
</div> |
||||
</div> |
||||
</a> |
||||
</li> |
||||
</ul> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
</div> |
@ -0,0 +1,115 @@
|
||||
<div class="settings_modal_wrap modal_content_wrap"> |
||||
|
||||
<div class="tg_page_head tg_modal_head"> |
||||
<div class="navbar navbar-static-top navbar-inverse"> |
||||
<div class="container"> |
||||
|
||||
<div class="navbar-toggle-wrap dropdown"> |
||||
<a class="dropdown-toggle navbar-toggle"> |
||||
<span class="icon-bar"></span> |
||||
<span class="icon-bar"></span> |
||||
<span class="icon-bar"></span> |
||||
</a> |
||||
<ul class="dropdown-menu"> |
||||
<li ng-if="photo.location"> |
||||
<a ng-click="deletePhoto()">Delete profile photo</a> |
||||
</li> |
||||
<li> |
||||
<a ng-click="editProfile()">Edit profile</a> |
||||
</li> |
||||
<li> |
||||
<a ng-click="terminateSessions()">Terminate all sessions</a> |
||||
</li> |
||||
</ul> |
||||
</div> |
||||
|
||||
<div class="navbar-header"> |
||||
|
||||
<ul class="nav navbar-nav navbar-quick-nav"> |
||||
<li> |
||||
<a ng-click="$close()" class="navbar-quick-media-back"> |
||||
<i class="icon icon-back"></i> |
||||
<div class="navbar-quick-back-title"> |
||||
<h4>Settings</h4> |
||||
</div> |
||||
</a> |
||||
</li> |
||||
</ul> |
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="modal-body mobile_modal_body"> |
||||
|
||||
<div class="mobile_user_modal_photo_profile_wrap"> |
||||
|
||||
<a href="" ng-click="openPhoto(photo.id, -profile.id)" class="mobile_user_modal_image_wrap pull-left" ng-class="{disabled: !photo.id}"> |
||||
<img |
||||
class="mobile_user_modal_image" |
||||
my-load-thumb |
||||
watch="true" |
||||
thumb="photo" |
||||
/> |
||||
</a> |
||||
|
||||
<div class="mobile_user_modal_info_wrap clearfix"> |
||||
<h4 class="mobile_user_modal_header" ng-bind-html="profile.rFullName"></h4> |
||||
<p class="mobile_user_modal_status" my-user-status="::profile.id"></p> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
<div class="mobile_modal_action_wrap" ng-switch="photo.updating"> |
||||
<span ng-switch-when="true" class="mobile_modal_action"> |
||||
Updating<span my-loading-dots></span> |
||||
</span> |
||||
<span ng-switch-default class="mobile_modal_action mobile_modal_upload_action"> |
||||
<input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" /> |
||||
Set profile photo |
||||
</span> |
||||
</div> |
||||
|
||||
<div class="mobile_modal_action_wrap"> |
||||
<a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleDesktop()" ng-class="notify.desktop ? 'tg_checkbox_on' : ''"> |
||||
<span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span> |
||||
<span class="tg_checkbox_label">Notification alerts</span> |
||||
</a> |
||||
</div> |
||||
|
||||
<div class="mobile_modal_action_wrap"> |
||||
<a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleSound()" ng-class="notify.volume ? 'tg_checkbox_on' : ''"> |
||||
<span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span> |
||||
<span class="tg_checkbox_label">Sounds</span> |
||||
</a> |
||||
</div> |
||||
|
||||
<div class="mobile_modal_action_wrap"> |
||||
<a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleCtrlEnter(send.enter == 1 ? 0 : 1)" ng-class="send.enter == 1 ? 'tg_checkbox_on' : ''"> |
||||
<span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span> |
||||
<span class="tg_checkbox_label">Send on Enter</span> |
||||
</a> |
||||
</div> |
||||
|
||||
<div class="mobile_modal_section" ng-if="profile.phone"> |
||||
<h4 class="mobile_modal_section_header">Phone</h4> |
||||
<div class="mobile_modal_section_value" ng-bind="profile.phone | phoneNumber"></div> |
||||
</div> |
||||
|
||||
<div class="mobile_modal_section"> |
||||
<h4 class="mobile_modal_section_header">About</h4> |
||||
<div class="mobile_modal_section_body settings_about_section_body clearfix"> |
||||
<div class="settings_external_services pull-right"> |
||||
<a href="https://github.com/zhukov/webogram" target="_blank" title="Source code on GitHub" class="settings_external_service"><i class="icon icon-github"></i></a> |
||||
<a href="https://twitter.com/telegram_web" target="_blank" title="Follow us on Twitter!" class="settings_external_service"><i class="icon icon-twitter"></i></a> |
||||
</div> |
||||
<p> |
||||
<a ng-click="openChangelog()">Recent updates (ver. <span ng-bind="version"></span>)</a> |
||||
</p> |
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
</div> |
@ -0,0 +1,89 @@
|
||||
<div class="mobile_user_modal_wrap"> |
||||
|
||||
<div class="tg_page_head tg_modal_head"> |
||||
<div class="navbar navbar-static-top navbar-inverse"> |
||||
<div class="container"> |
||||
|
||||
<div class="navbar-toggle-wrap dropdown"> |
||||
<a class="dropdown-toggle navbar-toggle"> |
||||
<span class="icon-bar"></span> |
||||
<span class="icon-bar"></span> |
||||
<span class="icon-bar"></span> |
||||
</a> |
||||
<ul class="dropdown-menu"> |
||||
<li ng-if="user._ == 'userContact'"> |
||||
<a ng-click="importContact(true)">Edit contact</a> |
||||
</li> |
||||
<li ng-if="user._ == 'userContact'"> |
||||
<a ng-click="deleteContact()">Delete contact</a> |
||||
</li> |
||||
<li ng-if="user.phone.length > 0 && user._ != 'userContact'"> |
||||
<a ng-click="importContact()">Add to contacts</a> |
||||
</li> |
||||
<li> |
||||
<a ng-click="flushHistory()">Delete chat</a> |
||||
</li> |
||||
</ul> |
||||
</div> |
||||
|
||||
<div class="navbar-header"> |
||||
|
||||
<ul class="nav navbar-nav navbar-quick-nav"> |
||||
<li> |
||||
<a ng-click="$close()" class="navbar-quick-media-back"> |
||||
<i class="icon icon-back"></i> |
||||
<div class="navbar-quick-back-title"> |
||||
<h4>Contact info</h4> |
||||
</div> |
||||
</a> |
||||
</li> |
||||
</ul> |
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="modal-body mobile_modal_body"> |
||||
|
||||
<div class="mobile_user_modal_photo_profile_wrap"> |
||||
|
||||
<a href="" ng-click="openPhoto(userPhoto.id, -user.id)" class="mobile_user_modal_image_wrap pull-left" ng-class="{disabled: !userPhoto.id}"> |
||||
<img |
||||
class="mobile_user_modal_image" |
||||
my-load-thumb |
||||
thumb="userPhoto" |
||||
/> |
||||
</a> |
||||
|
||||
<div class="mobile_user_modal_info_wrap clearfix"> |
||||
<h4 class="mobile_user_modal_header" ng-bind="user | userName"></h4> |
||||
<p class="mobile_user_modal_status" ng-if="user.status" my-user-status="::user.id"></p> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
<div class="mobile_modal_action_wrap"> |
||||
<a class="mobile_modal_action" ng-click="goToHistory()">Send message</a> |
||||
</div> |
||||
|
||||
<div ng-if="user.phone.length > 0" class="mobile_modal_action_wrap"> |
||||
<a class="mobile_modal_action" ng-click="shareContact()">Share contact</a> |
||||
</div> |
||||
|
||||
<div class="mobile_modal_action_wrap"> |
||||
<a class="mobile_modal_action tg_checkbox clearfix" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? 'tg_checkbox_on' : ''"> |
||||
<span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span> |
||||
<span class="tg_checkbox_label">Notifications</span> |
||||
</a> |
||||
</div> |
||||
|
||||
<div class="mobile_modal_section"> |
||||
<h4 class="mobile_modal_section_header">Phone</h4> |
||||
<div class="mobile_modal_section_value" ng-bind="user.phone | phoneNumber"></div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
</div> |
Loading…
Reference in new issue