ced295a630
Getting up and running with IndexedDB was pretty easy, thanks to backbone. The tricky part was making reads and writes asynchronous. In that process I did some refactoring on Whisper.Threads, which has been renamed Conversations for consistency with the view names. This change also adds the unlimitedStorage permission.
166 lines
8.1 KiB
HTML
166 lines
8.1 KiB
HTML
<!DOCTYPE html>
|
|
<html class='no-js' lang='en'>
|
|
<head>
|
|
<meta charset='utf-8'>
|
|
<meta content='width=device-width, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0' name='viewport'>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<title>
|
|
Signal for Chrome
|
|
</title>
|
|
<meta name="description" content="">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link href='/favicon.ico' rel='shortcut icon'>
|
|
<link href="/stylesheets/normalize.css" rel="stylesheet" type="text/css" />
|
|
<link href="/stylesheets/manifest.css" rel="stylesheet" type="text/css" />
|
|
<link href="/components/bootstrap-tagsinput/dist/bootstrap-tagsinput.css" rel="stylesheet" type="text/css" />
|
|
<link href="/stylesheets/index.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body class='signal index' data-name="curve25519" data-tools="pnacl" data-configs="Debug Release" data-path="nacl/pnacl/{config}">
|
|
<div class='title-bar' id='header'>
|
|
<a href id='new-message'>New message</a>
|
|
<a href id='new-group'>New group</a>
|
|
</div>
|
|
<div class='notifications'>
|
|
<div class='notification info'>
|
|
</div>
|
|
</div>
|
|
<div id='gutter' class='gutter'>
|
|
<div class='search'>
|
|
<form>
|
|
<input name='contact_search' placeholder='Search' type='search'>
|
|
</form>
|
|
</div>
|
|
<div id='contacts'></div>
|
|
</div>
|
|
<script type='text/x-tmpl-mustache' id='conversation'>
|
|
<div class='discussion-container'></div>
|
|
<div class='send-message-area'>
|
|
<div class='message-composer'>
|
|
<form class='send'>
|
|
<input class='send-message' rows='6' type='textarea'>
|
|
<div class='attachments'>
|
|
<input type='file' name='files[]' multiple class='file-input'>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class='extension-details'>
|
|
<ul>
|
|
<li>Signal for Chrome</li>
|
|
<li><a href="https://github.com/whispersystems">Version 0.1</a></li>
|
|
<li>by <a href="http://whispersystems.org">Open Whisper Systems</a></li>
|
|
<li><a href="http://support.whispersystems.org/">Need Help?</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='message'>
|
|
<div class='sender'>{{ sender }}</div>
|
|
<img class='avatar' src='{{ contact_avatar }}'>
|
|
<div class='bubble bubble_context {{ bubble_class }}'>
|
|
<ul class='volley'>
|
|
<li class='message'>
|
|
{{ message }}
|
|
<span class='timestamp'>{{ timestamp }}</span>
|
|
</li>
|
|
</ul>
|
|
{{#attachments}}
|
|
<img src={{.}}>
|
|
{{/attachments}}
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='contact'>
|
|
<div class='avatar' style='background-image: url({{ contact_avatar }});'></div>
|
|
<div class='contact-details'>
|
|
<h3>
|
|
{{ contact_name }}
|
|
</h3>
|
|
<p class='last-message'>
|
|
{{ last_message }}
|
|
</p>
|
|
<span class='last-timestamp'>
|
|
{{ last_message_timestamp }}
|
|
</span>
|
|
</div>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='new-message-form'>
|
|
<form class='send message'>
|
|
<input type='text' name='number' class='number' placeholder='Phone number'>
|
|
<div class='send-message-area'>
|
|
<div class='message-composer'>
|
|
<input name='message' class='send-message' rows='6' type='textarea'>
|
|
<div class='attachments'>
|
|
<input type='file' name='files[]' multiple class='file-input'>
|
|
</div>
|
|
<input type='submit'>
|
|
</div>
|
|
<div class='extension-details'>
|
|
<ul>
|
|
<li>Signal for Chrome</li>
|
|
<li><a href="https://github.com/whispersystems">Version 0.1</a></li>
|
|
<li>by <a href="http://whispersystems.org">Open Whisper Systems</a></li>
|
|
<li><a href="http://support.whispersystems.org/">Need Help?</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</script>
|
|
<script type='text/x-tmpl-mustache' id='new-group-form'>
|
|
<form class='send group'>
|
|
<div><input name='name' class='name' placeholder='Group Name'></div>
|
|
<div><input name='numbers' class='numbers' data-role=tagsinput></div>
|
|
<div class='send-message-area'>
|
|
<div class='message-composer'>
|
|
<input class='send-message' rows='6' type='textarea'>
|
|
<div class='attachments'> Add Files </div>
|
|
<input type='submit'>
|
|
</div>
|
|
<div class='extension-details'>
|
|
<ul>
|
|
<li>Signal for Chrome</li>
|
|
<li><a href="https://github.com/whispersystems">Version 0.1</a></li>
|
|
<li>by <a href="http://whispersystems.org">Open Whisper Systems</a></li>
|
|
<li><a href="http://support.whispersystems.org/">Need Help?</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</script>
|
|
<script type="text/javascript" src="js/components.js"></script>
|
|
<script type="text/javascript" src="js/database.js"></script>
|
|
|
|
<script type="text/javascript" src="components/bootstrap-tagsinput/dist/bootstrap-tagsinput.js"></script>
|
|
|
|
<script type="text/javascript" src="js/protobufs.js"></script>
|
|
<script type="text/javascript" src="js/curve25519_compiled.js"></script>
|
|
<script type="text/javascript" src="js/nativeclient.js"></script>
|
|
<script type="text/javascript" src="js/helpers.js"></script>
|
|
<script type="text/javascript" src="js/storage.js"></script>
|
|
<script type="text/javascript" src="js/storage/devices.js"></script>
|
|
<script type="text/javascript" src="js/storage/groups.js"></script>
|
|
<script type="text/javascript" src="js/libphonenumber-util.js"></script>
|
|
|
|
<script type="text/javascript" src="js/webcrypto.js"></script>
|
|
<script type="text/javascript" src="js/crypto.js"></script>
|
|
<script type="text/javascript" src="js/protocol.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/api.js"></script>
|
|
<script type="text/javascript" src="js/sendmessage.js"></script>
|
|
|
|
<script type="text/javascript" src="js/chromium.js"></script>
|
|
<script type="text/javascript" src="js/views/notifications.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/message_view.js"></script>
|
|
<script type="text/javascript" src="js/views/message_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/conversation_view.js"></script>
|
|
<script type="text/javascript" src="js/views/new_conversation_view.js"></script>
|
|
<script type="text/javascript" src="js/views/new_group_view.js"></script>
|
|
<script type="text/javascript" src="js/index.js"></script>
|
|
<div id="listener"></div>
|
|
<div id="log"></div>
|
|
</body>
|
|
</html>
|