a962d97bfb
This flow broke a bit with transition to modal debug log. Restructure such that the loading class can be applied to an appropriate element inside the modal. Ensure that the input elements are hidden when submit is clicked, the result elements are shown when the log upload is completed. // FREEBIE
400 lines
15 KiB
HTML
400 lines
15 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset='utf-8'>
|
|
<script type='text/x-tmpl-mustache' id='two-column'>
|
|
<div class='title-bar' id='header'>
|
|
<div class='global-menu menu'>
|
|
<button class='hamburger'></button>
|
|
<ul class='menu-list'>
|
|
<li><a class='settings'>{{ settings }}</a></li>
|
|
<li><a class='show-debug-log'>{{ submitDebugLog }}</a></li>
|
|
</ul>
|
|
</div>
|
|
<span class='socket-status' title='Restart Signal'></span>
|
|
<div class='tool-bar clearfix'>
|
|
<!-- <button class='show-new-conversation'></button> -->
|
|
<input type='search' class='search' placeholder='{{ searchForPeopleOrGroups }}'>
|
|
</div>
|
|
</div>
|
|
<div class='gutter'>
|
|
<div class='content'>
|
|
<div class='conversations scrollable inbox'></div>
|
|
<div class='conversations scrollable search-results hide'>
|
|
<div class='new-contact contact hide'></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class='conversation-stack'>
|
|
<div class='conversation placeholder'>
|
|
<h3>{{ welcomeToSignal }}</h3>
|
|
<p>{{ selectAContact }}</p>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='hint'>
|
|
<p> {{ content }}</p>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='conversation'>
|
|
<div class='panel'>
|
|
<div class='conversation-header'>
|
|
<div class='conversation-menu menu'>
|
|
<button class='drop-down'></button>
|
|
<ul class='menu-list'>
|
|
{{#group}}
|
|
<li><a class='view-members'>{{ view-members }}</a></li>
|
|
<!-- <li><a class='update-group'>Update group</a></li> -->
|
|
<!-- <li><a class='leave-group'>Leave group</a></li> -->
|
|
{{/group}}
|
|
{{^group}}
|
|
<li><a class='end-session'>{{ end-session }}</a></li>
|
|
<li><a class='verify-identity'>{{ verify-identity }}</a></li>
|
|
{{/group}}
|
|
<li><a class='destroy'>{{ destroy }}</a></li>
|
|
</ul>
|
|
</div>
|
|
{{> avatar }}
|
|
<span class='conversation-title'>
|
|
{{ title }}
|
|
{{ #number }}
|
|
<span class='conversation-number'>{{ number }}</span>
|
|
{{ /number }}
|
|
</span>
|
|
</div>
|
|
|
|
<div class='discussion-container'></div>
|
|
|
|
<div class='bottom-bar' id='footer'>
|
|
<form class='send'>
|
|
<div class='attachment-previews'></div>
|
|
<div class='choose-file'>
|
|
<div class='paperclip thumbnail'></div>
|
|
<input type='file' class='file-input'>
|
|
</div>
|
|
<textarea class='send-message' placeholder='{{ send-message }}' rows='1'></textarea>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='confirmation-dialog'>
|
|
<div class="content">
|
|
<div class='message'>{{ message }}</div>
|
|
<div class='buttons'>
|
|
<button class='cancel'>{{ cancel }}</button>
|
|
<button class='ok'>{{ ok }}</button>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='attachment-preview'>
|
|
<img src='{{ source }}' class='preview' />
|
|
<div class='close'>x</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='message'>
|
|
{{> avatar }}
|
|
<div class='bubble'>
|
|
<div class='sender'>{{ sender }}</div>
|
|
<div class='attachments'></div>
|
|
<p class='content'>{{ message }}</p>
|
|
<div class='meta'>
|
|
<span class='timestamp' data-timestamp={{ timestamp }}></span>
|
|
<span class='status hide'></span>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='new-group-update'>
|
|
<div class='conversation-header'>
|
|
<button class='back'></button>
|
|
<button class='send check'></button>
|
|
<span class='conversation-title'>Update group</span>
|
|
</div>
|
|
{{> group_info_input }}
|
|
<div class='container'>
|
|
<div class='scrollable'></div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='identicon-svg'>
|
|
<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>
|
|
<circle cx='50' cy='50' r='40' fill='{{ color }}' />
|
|
<text text-anchor='middle' fill='white' font-size='24px' x='50' y='50' baseline-shift='-8px'>
|
|
{{ content }}
|
|
</text>
|
|
</svg>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='avatar'>
|
|
<span class='avatar'
|
|
style='background-image: url("{{ avatar.url }}"); background-color: {{ avatar.color }}'>
|
|
{{ avatar.content }}
|
|
</span>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='contact_pill'>
|
|
<span>{{ name }}</span><span class='remove'>x</span>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='contact_name_and_number'>
|
|
<h3 class='name'> {{ title }} </h3>
|
|
<div class='number'>{{ number }}</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='contact'>
|
|
{{> avatar }}
|
|
<div class='contact-details'> {{> contact_name_and_number }} </div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='new-contact'>
|
|
{{> avatar }}
|
|
<div class='contact-details'>
|
|
{{> contact_name_and_number }}
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='conversation-preview'>
|
|
{{> avatar }}
|
|
<div class='contact-details'>
|
|
<span class='last-timestamp' data-timestamp={{ last_message_timestamp }}> </span>
|
|
{{> contact_name_and_number }}
|
|
{{ #unreadCount }}
|
|
<span class='unread-count'>{{ unreadCount }}</span>
|
|
{{ /unreadCount }}
|
|
<p class='last-message'> {{ last_message }} </p>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='phone-number'>
|
|
<div class='phone-input-form'>
|
|
<div class='number-container'>
|
|
<input type='tel' class='number' placeholder="Phone Number" />
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='file-size-modal'>
|
|
{{ file-size-warning }}
|
|
({{ limit }}{{ units }})
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='attachment-type-modal'>
|
|
Sorry, your attachment has a type, {{type}}, that is not currently supported.
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='message-detail'>
|
|
<div class='conversation-header'>
|
|
<button class='back'></button>
|
|
<span class='conversation-title'>{{ title }}</span>
|
|
</div>
|
|
<div class='container'>
|
|
{{ #hasRetry }}
|
|
<div class='hasRetry clearfix'>
|
|
<h3 class='retryMessage'>{{ failedToSend }}</h3>
|
|
<button class='retry'>{{ resend }}</button>
|
|
</div>
|
|
{{ /hasRetry }}
|
|
{{ #hasConflict }}
|
|
<div class='hasConflict clearfix'>
|
|
<div class='conflicts'>
|
|
</div>
|
|
</div>
|
|
{{ /hasConflict }}
|
|
<div class='message-container'></div>
|
|
<div class='info'>
|
|
<table>
|
|
{{ #errors }}
|
|
<tr>
|
|
<td class='label'>{{ errorLabel }}</td>
|
|
<td> <span class='error-message'>{{message}}</span> </td>
|
|
</tr>
|
|
{{ /errors }}
|
|
<tr>
|
|
<td class='label'>{{ sent }}</td>
|
|
<td> {{ sent_at }}</td>
|
|
</tr>
|
|
{{ #received_at }}
|
|
<tr>
|
|
<td class='label'>{{ received }}</td>
|
|
<td> {{ received_at }}</td>
|
|
</tr>
|
|
{{ /received_at }}
|
|
<tr> <td class='tofrom label'>{{tofrom}}</td> </tr>
|
|
</table>
|
|
<div class='contacts'>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='group-member-list'>
|
|
<div class='conversation-header'>
|
|
<button class='back'></button>
|
|
<span class='conversation-title'>{{ members }}</span>
|
|
</div>
|
|
<div class='container'>
|
|
<div class='scrollable'></div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='key-verification'>
|
|
<div class='conversation-header'>
|
|
<button class='back'></button>
|
|
<span class='conversation-title'>{{ verifyIdentity }}</span>
|
|
</div>
|
|
<div class='container'>
|
|
<p> {{theirIdentity}} </p>
|
|
{{ ^their_key }}
|
|
<div class='placeholder'>{{ their_key_unknown }}</div>
|
|
{{ /their_key }}
|
|
<div class='key'>
|
|
{{ #their_key }} <span>{{ . }}</span> {{ /their_key }}
|
|
</div>
|
|
<p> {{yourIdentity}} </p>
|
|
<div class='key'>
|
|
{{ #your_key }} <span>{{ . }}</span> {{ /your_key }}
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<!-- index -->
|
|
<script type='text/x-tmpl-mustache' id='group_info_input'>
|
|
<div class='group-info-input'>
|
|
<div class='group-avatar'>
|
|
<div class='choose-file attachment-previews thumbnail'>
|
|
{{> avatar }}
|
|
</div>
|
|
<input type='file' name='avatar' class='file-input'>
|
|
</div>
|
|
<input type='text' name='name' class='name' placeholder='Group Name' value='{{ name }}'>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='new-conversation'>
|
|
<div class='conversation-header'>
|
|
<button class='back'></button>
|
|
<button class='create check hide'></button>
|
|
<span class='conversation-title'>New Message</span>
|
|
</div>
|
|
{{> group_info_input }}
|
|
<div class='container'>
|
|
<div class='scrollable'>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='recipients-input'>
|
|
<div class='recipients-container'>
|
|
<span class='recipients'></span>
|
|
<input type='text' class='search' placeholder='{{ placeholder }}' />
|
|
</div>
|
|
<div class='results'>
|
|
<div class='new-contact contact hide'></div>
|
|
<div class='contacts'></div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='generic-error'>
|
|
<p>{{ message }}</p>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='contact-detail'>
|
|
<div class='clearfix'>
|
|
{{ #errors }}
|
|
<span class='error-icon'>
|
|
<span class='error-message'>{{message}}</span>
|
|
</span>
|
|
{{ /errors }}
|
|
{{> avatar }}
|
|
<span class='name'>{{ name }}
|
|
</span>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='key-conflict-dialogue'>
|
|
<div class='clearfix'>
|
|
<h3>{{ newIdentity }}</h3>
|
|
{{> avatar }}
|
|
<span class='name'>{{ name }}
|
|
<button class='conflict'><span>{{ verify }}</span></button>
|
|
<button class='cancel hide'><span>{{ cancel }}</span></button>
|
|
</span>
|
|
</div>
|
|
<div class='content hide'>
|
|
<p> {{ message }} </p>
|
|
<p> {{{ verifyContact }}} </p>
|
|
<p><button class='resolve'>{{ resolve }}</button></p>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='window-controls'>
|
|
<button class='minimize'>−</button>
|
|
<button class='close'>×</button>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='debug-log'>
|
|
<div class='content'>
|
|
<div>
|
|
<a class='x close'>×</a>
|
|
<h1> {{ title }} </h1>
|
|
<p> {{ debugLogExplanation }}</p>
|
|
</div>
|
|
<textarea rows='5'></textarea>
|
|
<div class='buttons'>
|
|
<button class='submit'>{{ submit }}</button>
|
|
<button class='close'>{{ cancel }}</button>
|
|
</div>
|
|
<div class='result'>
|
|
<a class='hide' target='_blank'></a>
|
|
<div class='hide'><button class='close'>{{ close }}</button></div>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='settings'>
|
|
<div class='content'>
|
|
<a class='x close'>×</a>
|
|
<h3>Notifications</h3>
|
|
<div>
|
|
<input type='radio' name='notifications' id='notification-setting-message' value='message'>
|
|
<label for='notification-setting-message'>{{ nameAndMessage }} </label>
|
|
</div>
|
|
<div>
|
|
<input type='radio' name='notifications' id='notification-setting-name' value='name'/>
|
|
<label for='notification-setting-name'>{{ nameOnly }} </label>
|
|
</div>
|
|
<div>
|
|
<input type='radio' name='notifications' id='notification-setting-count' value='count'/>
|
|
<label for='notification-setting-count'>{{ noNameOrMessage }} </label>
|
|
</div>
|
|
<div>
|
|
<input type='radio' name='notifications' id='notification-setting-off' value='off'/>
|
|
<label for='notification-setting-off'>{{ off }} </label>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<script type='text/javascript' src='js/components.js'></script>
|
|
<script type='text/javascript' src='js/database.js'></script>
|
|
<script type='text/javascript' src='js/debugLog.js'></script>
|
|
<script type='text/javascript' src='js/storage.js'></script>
|
|
<script type='text/javascript' src='js/axolotl_store.js'></script>
|
|
<script type='text/javascript' src='js/libtextsecure.js'></script>
|
|
|
|
<script type='text/javascript' src='js/notifications.js'></script>
|
|
<script type='text/javascript' src='js/libphonenumber-util.js'></script>
|
|
<script type='text/javascript' src='js/models/messages.js'></script>
|
|
<script type='text/javascript' src='js/models/conversations.js'></script>
|
|
|
|
<script type='text/javascript' src='js/chromium.js'></script>
|
|
<script type='text/javascript' src='js/conversation_controller.js'></script>
|
|
<script type='text/javascript' src='js/panel_controller.js'></script>
|
|
|
|
<script type='text/javascript' src='js/views/whisper_view.js'></script>
|
|
<script type='text/javascript' src='js/views/debug_log_view.js'></script>
|
|
<script type='text/javascript' src='js/views/toast_view.js'></script>
|
|
<script type='text/javascript' src='js/views/attachment_preview_view.js'></script>
|
|
<script type='text/javascript' src='js/views/file_input_view.js'></script>
|
|
<script type='text/javascript' src='js/views/list_view.js'></script>
|
|
<script type='text/javascript' src='js/views/conversation_list_item_view.js'></script>
|
|
<script type='text/javascript' src='js/views/conversation_list_view.js'></script>
|
|
<script type='text/javascript' src='js/views/contact_list_view.js'></script>
|
|
<script type='text/javascript' src='js/views/new_group_update_view.js'></script>
|
|
<script type='text/javascript' src='js/views/attachment_view.js'></script>
|
|
<script type='text/javascript' src='js/views/key_conflict_dialogue_view.js'></script>
|
|
<script type='text/javascript' src='js/views/error_view.js'></script>
|
|
<script type='text/javascript' src='js/views/timestamp_view.js'></script>
|
|
<script type='text/javascript' src='js/views/message_view.js'></script>
|
|
<script type='text/javascript' src='js/views/key_verification_view.js'></script>
|
|
<script type='text/javascript' src='js/views/message_detail_view.js'></script>
|
|
<script type='text/javascript' src='js/views/message_list_view.js'></script>
|
|
<script type='text/javascript' src='js/views/group_member_list_view.js'></script>
|
|
<script type='text/javascript' src='js/views/conversation_view.js'></script>
|
|
<script type='text/javascript' src='js/views/new_conversation_view.js'></script>
|
|
<script type='text/javascript' src='js/views/conversation_search_view.js'></script>
|
|
<script type='text/javascript' src='js/views/window_controls_view.js'></script>
|
|
<script type='text/javascript' src='js/views/hint_view.js'></script>
|
|
<script type='text/javascript' src='js/views/inbox_view.js'></script>
|
|
<script type='text/javascript' src='js/views/confirmation_dialog_view.js'></script>
|
|
<script type='text/javascript' src='js/views/identicon_svg_view.js'></script>
|
|
<script type='text/javascript' src='js/views/settings_view.js'></script>
|
|
|
|
<script type='text/javascript' src='js/background.js'></script>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
</html>
|