Midgard
596cd63fb5
Refactor MattermostClient, deduplicating code and making it remember its token. Make functions that ask for a Mattermost ID check that they get something of the correct form.
73 lines
2.6 KiB
HTML
73 lines
2.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width" />
|
|
<title>Feathermost</title>
|
|
<link rel="stylesheet" href="/assets/main.css"/>
|
|
</head>
|
|
<body>
|
|
<div id="noscript">
|
|
<p>This application cannot work without JavaScript, unfortunately. In order to proceed, please enable it for this website.</p>
|
|
<p>Feathermost is an alternative webclient for the Mattermost chat platform. It is not possible to provide a JavaScript-less experience without having to trust us with your user data.</p>
|
|
</div>
|
|
<script type="text/javascript">
|
|
document.body.innerHTML = "";
|
|
document.body.className = "yesscript";
|
|
</script>
|
|
|
|
<div class="sidebar">
|
|
<div class="sidebar-head">
|
|
<h1><img src="/assets/feathermost.svg" alt=""/> Feathermost</h1>
|
|
|
|
<div id="server_selection">
|
|
<ul id="server_selection_list"></ul>
|
|
<button id="server_selection_add">Add a server</button>
|
|
</div>
|
|
|
|
<form id="login" action="#">
|
|
<h2>Add a server</h2>
|
|
<div class="login-form">
|
|
<input type="text" id="login_server" placeholder="Server URL" value="http://localhost:8080" required/>
|
|
|
|
<input type="text" id="login_login_id" placeholder="Username or email" required/>
|
|
<input type="password" id="login_password" placeholder="Password" required/>
|
|
</div>
|
|
|
|
<input type="submit" id="login_button" value="Log in"/>
|
|
<input type="button" id="login_no_button" value="Cancel"/>
|
|
<div id="login_message"></div>
|
|
</form>
|
|
</div>
|
|
|
|
<ul id="channel_list"></ul>
|
|
</div>
|
|
|
|
<div class="main-area">
|
|
<div id="channel_header"></div>
|
|
|
|
<div id="channel_contents_wrapper">
|
|
<div class="centered" id="channel_contents">
|
|
|
|
<div style="text-align: center; width: 100%; height: 100%; display: flex;
|
|
align-items: center; justify-content: center; color: #aaa">
|
|
<div>← Select a channel in the sidebar to read it</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="centered compose-wrapper">
|
|
<textarea id="compose" disabled="disabled" oninput="" rows="1"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/javascript" src="/js/ajax.js"></script>
|
|
<script type="text/javascript" src="/js/util.js"></script>
|
|
<script type="text/javascript" src="/js/model/localstorage_credentials.js"></script>
|
|
<script type="text/javascript" src="/js/model/mm_client.js"></script>
|
|
<script type="text/javascript" src="/js/view/view.js"></script>
|
|
<script type="text/javascript" src="/js/controller/controller.js"></script>
|
|
<script type="text/javascript" src="/js/main.js"></script>
|
|
</body>
|
|
</html>
|