mirror of
https://github.com/thelounge/thelounge
synced 2024-11-23 12:33:07 +00:00
ddaf7ff300
This was heavily inspired by https://github.com/maxpoulin64/lounge/commit/a877e46. Clearly not a definitive solution but a good start to have and to improve upon.
392 lines
15 KiB
HTML
392 lines
15 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, user-scalable=no">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
|
<meta name="mobile-web-app-capable" content="yes">
|
|
<meta name="referrer" content="no-referrer">
|
|
<meta name="theme-color" content="#455164">
|
|
|
|
<title>The Lounge</title>
|
|
|
|
<link rel="stylesheet" href="css/bootstrap.css">
|
|
<link rel="stylesheet" href="css/style.css">
|
|
<link id="theme" rel="stylesheet" href="<%= theme %>">
|
|
<style id="user-specified-css"></style>
|
|
|
|
<link rel="shortcut icon" href="img/favicon.png" data-other="img/favicon-notification.png" data-toggled="false" id="favicon">
|
|
<link rel="apple-touch-icon" sizes="120x120" href="img/apple-touch-icon-120x120.png">
|
|
<link rel="manifest" href="manifest.json">
|
|
|
|
</head>
|
|
<body class="signed-out <%= public ? "public" : "" %>">
|
|
|
|
<div id="wrap">
|
|
<div id="viewport">
|
|
<aside id="sidebar">
|
|
<div class="networks"></div>
|
|
<div class="empty">
|
|
You're not connected to any networks yet.
|
|
</div>
|
|
</aside>
|
|
<footer id="footer">
|
|
<span class="tooltipped tooltipped-n" aria-label="Sign in"><button class="icon sign-in" data-target="#sign-in" aria-label="Sign in"></button></span>
|
|
<span class="tooltipped tooltipped-n" aria-label="Connect to network"><button class="icon connect" data-target="#connect" aria-label="Connect to network"></button></span>
|
|
<span class="tooltipped tooltipped-n" aria-label="Client settings"><button class="icon settings" data-target="#settings" aria-label="Client settings"></button></span>
|
|
<span class="tooltipped tooltipped-n" aria-label="Sign out"><button class="icon sign-out" id="sign-out" aria-label="Sign out"></button></span>
|
|
</footer>
|
|
<div id="main">
|
|
<div id="windows">
|
|
<div id="loading" class="window active">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-xs-12">
|
|
<h1 class="title">The Lounge is loading…</h1>
|
|
</div>
|
|
<div class="col-xs-12">
|
|
<p id="loading-page-message">Loading the app… <a href="http://enable-javascript.com/" target="_blank">Make sure to have JavaScript enabled.</a></p>
|
|
<p id="loading-slow">This is taking longer than it should, there might be connectivity issues.</p>
|
|
<script async src="js/loading-slow-alert.js"></script>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="chat-container" class="window">
|
|
<div id="chat"></div>
|
|
<form id="form" method="post" action="">
|
|
<div class="input">
|
|
<span id="nick">
|
|
<span id="nick-value" spellcheck="false"></span><!-- Comments here remove spaces between elements
|
|
--><span id="set-nick-tooltip" class="tooltipped tooltipped-e" aria-label="Change nick"><button id="set-nick" type="button" aria-label="Change nick"></button></span><!--
|
|
--><span id="cancel-nick-tooltip" class="tooltipped tooltipped-e" aria-label="Cancel"><button id="cancel-nick" type="button" aria-label="Cancel"></button></span><!--
|
|
--><span id="save-nick-tooltip" class="tooltipped tooltipped-e" aria-label="Save"><button id="submit-nick" type="button" aria-label="Save"></button></span>
|
|
</span>
|
|
<textarea id="input" class="mousetrap"></textarea>
|
|
<span id="cycle-nicks-tooltip" class="tooltipped tooltipped-w" aria-label="Cycle through nicks">
|
|
<button id="cycle-nicks" type="button" aria-label="Cycle through nicks"></button>
|
|
</span>
|
|
<span id="submit-tooltip" class="tooltipped tooltipped-w" aria-label="Send message">
|
|
<button id="submit" type="submit" aria-label="Send message"></button>
|
|
</span>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div id="sign-in" class="window">
|
|
<form class="container" method="post" action="">
|
|
<div class="row">
|
|
<div class="col-xs-12">
|
|
<h1 class="title">Sign in to The Lounge</h1>
|
|
</div>
|
|
<div class="col-xs-12">
|
|
<label>
|
|
Username
|
|
<input class="input" name="user">
|
|
</label>
|
|
</div>
|
|
<div class="col-xs-12">
|
|
<label class="port">
|
|
Password
|
|
<input class="input" type="password" name="password">
|
|
</label>
|
|
</div>
|
|
<div class="col-xs-12">
|
|
<label class="remember">
|
|
<input type="checkbox" name="remember" id="sign-in-remember" checked>
|
|
Stay signed in
|
|
</label>
|
|
</div>
|
|
<div class="col-xs-12 error" style="display: none;">
|
|
Authentication failed.
|
|
</div>
|
|
<div class="col-xs-12">
|
|
<button type="submit" class="btn">
|
|
Sign in
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div id="connect" class="window">
|
|
<div class="header">
|
|
<button class="lt" aria-label="Toggle channel list"></button>
|
|
</div>
|
|
<form class="container" method="post" action="">
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<h1 class="title">
|
|
<%= public ? "The Lounge - " : "" %>
|
|
Connect
|
|
<%= !displayNetwork && lockNetwork ? "to " + defaults.name : "" %>
|
|
</h1>
|
|
</div>
|
|
<div <%= typeof(displayNetwork) !== "undefined" && !displayNetwork ? 'style="display: none;"' : ''%>>
|
|
<div class="col-sm-12">
|
|
<h2>Network settings</h2>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<label for="connect:name">Name</label>
|
|
</div>
|
|
<div class="col-sm-9">
|
|
<input class="input" id="connect:name" name="name" value="<%= defaults.name %>">
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<label for="connect:host">Server</label>
|
|
</div>
|
|
<div class="col-sm-6 col-xs-8">
|
|
<input class="input" id="connect:host" name="host" value="<%= defaults.host %>" aria-label="Server address" <%= typeof(lockNetwork) !== "undefined" && lockNetwork ? "disabled" : "" %>>
|
|
</div>
|
|
<div class="col-sm-3 col-xs-4">
|
|
<div class="port">
|
|
<input class="input" type="number" min="1" max="65535" name="port" value="<%= defaults.port %>" aria-label="Server port" <%= typeof(lockNetwork) !== "undefined" && lockNetwork ? "disabled" : "" %>>
|
|
</div>
|
|
</div>
|
|
<div class="clearfix"></div>
|
|
<div class="col-sm-3">
|
|
<label for="connect:password">Password</label>
|
|
</div>
|
|
<div class="col-sm-9">
|
|
<input class="input" id="connect:password" type="password" name="password" value="<%= defaults.password %>">
|
|
</div>
|
|
<div class="col-sm-9 col-sm-offset-3">
|
|
<label class="tls">
|
|
<input type="checkbox" name="tls" <%= defaults.tls ? "checked" : "" %> <%= typeof(lockNetwork) !== "undefined" && lockNetwork ? "disabled" : "" %>>
|
|
Enable TLS/SSL
|
|
</label>
|
|
</div>
|
|
<div class="clearfix"></div>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<h2>User preferences</h2>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<label for="connect:nick">Nick</label>
|
|
</div>
|
|
<div class="col-sm-9">
|
|
<input class="input nick" id="connect:nick" name="nick" value="<%= defaults.nick %>">
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<label for="connect:username">Username</label>
|
|
</div>
|
|
<div class="col-sm-9">
|
|
<input class="input username" id="connect:username" name="username" value="<%= defaults.username %>">
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<label for="connect:realname">Real name</label>
|
|
</div>
|
|
<div class="col-sm-9">
|
|
<input class="input" id="connect:realname" name="realname" value="<%= defaults.realname %>">
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<label for="connect:channels">Channels</label>
|
|
</div>
|
|
<div class="col-sm-9">
|
|
<input class="input" id="connect:channels" name="join" value="<%= defaults.join %>">
|
|
</div>
|
|
<div class="col-sm-9 col-sm-offset-3">
|
|
<button type="submit" class="btn">Connect</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div id="settings" class="window">
|
|
<div class="header">
|
|
<button class="lt" aria-label="Toggle channel list"></button>
|
|
</div>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<h1 class="title">Settings</h1>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<h2>Messages</h2>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<label class="opt">
|
|
<input type="checkbox" name="join">
|
|
Show joins
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<label class="opt">
|
|
<input type="checkbox" name="motd">
|
|
Show <abbr title="Message Of The Day">MOTD</abbr>
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<label class="opt">
|
|
<input type="checkbox" name="part">
|
|
Show parts
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<label class="opt">
|
|
<input type="checkbox" name="nick">
|
|
Show nick changes
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<label class="opt">
|
|
<input type="checkbox" name="mode">
|
|
Show mode
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<label class="opt">
|
|
<input type="checkbox" name="quit">
|
|
Show quits
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<h2>Visual Aids</h2>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<label class="opt">
|
|
<input type="checkbox" name="coloredNicks">
|
|
Enable colored nicknames
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<h2>Theme</h2>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<label for="theme-select" class="sr-only">Theme</label>
|
|
<select id="theme-select" name="theme" class="input">
|
|
<% themes.forEach(function(themeName) { %>
|
|
<option value="<%= themeName %>">
|
|
<%= themeName.charAt(0).toUpperCase() + themeName.slice(1) %>
|
|
</option>
|
|
<% }) %>
|
|
</select>
|
|
</div>
|
|
<% if (typeof prefetch === "undefined" || prefetch !== false) { %>
|
|
<div class="col-sm-12">
|
|
<h2>Links and URLs</h2>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<label class="opt">
|
|
<input type="checkbox" name="thumbnails">
|
|
Auto-expand thumbnails
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<label class="opt">
|
|
<input type="checkbox" name="links">
|
|
Auto-expand links
|
|
</label>
|
|
</div>
|
|
<% } %>
|
|
<div class="col-sm-12">
|
|
<h2>Notifications</h2>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<label class="opt">
|
|
<input id="desktopNotifications" type="checkbox" name="desktopNotifications">
|
|
Enable desktop notifications<br>
|
|
<div class="error" id="warnUnsupportedDesktopNotifications">
|
|
<strong>Warning</strong>:
|
|
Desktop notifications are not supported by your browser.
|
|
</div>
|
|
<div class="error" id="warnBlockedDesktopNotifications">
|
|
<strong>Warning</strong>:
|
|
Desktop notifications are blocked by your browser.
|
|
</div>
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<label class="opt">
|
|
<input type="checkbox" name="notification">
|
|
Enable notification sound
|
|
</label>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<div class="opt">
|
|
<button id="play">Play sound</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-sm-12">
|
|
<label class="opt">
|
|
<input type="checkbox" name="notifyAllMessages">
|
|
Enable notification for all messages
|
|
</label>
|
|
</div>
|
|
|
|
<div class="col-sm-12">
|
|
<label class="opt">
|
|
<label for="highlights" class="sr-only">Custom highlights (comma-separated keywords)</label>
|
|
<input type="text" id="highlights" name="highlights" class="input" placeholder="Custom highlights (comma-separated keywords)">
|
|
</label>
|
|
</div>
|
|
|
|
<% if (!public && !ldap.enable) { %>
|
|
<div id="change-password">
|
|
<form action="" method="post">
|
|
<div class="col-sm-12">
|
|
<h2>Change password</h2>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<label for="old_password_input" class="sr-only">Enter current password</label>
|
|
<input type="password" id="old_password_input" name="old_password" class="input" placeholder="Enter current password">
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<label for="new_password_input" class="sr-only">Enter desired new password</label>
|
|
<input type="password" id="new_password_input" name="new_password" class="input" placeholder="Enter desired new password">
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<label for="verify_password_input" class="sr-only">Repeat new password</label>
|
|
<input type="password" id="verify_password_input" name="verify_password" class="input" placeholder="Repeat new password">
|
|
</div>
|
|
<div class="col-sm-12 feedback"></div>
|
|
<div class="col-sm-12">
|
|
<button type="submit" class="btn">Change password</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<% } %>
|
|
<div class="col-sm-12">
|
|
<h2>Custom Stylesheet</h2>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<textarea class="input" name="userStyles" id="user-specified-css-input" placeholder="You can override any style with CSS here"></textarea>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<h2>About The Lounge</h2>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<p class="about">
|
|
<% if (gitCommit) { %>
|
|
The Lounge is running from source
|
|
(<a href="https://github.com/thelounge/lounge/tree/<%= gitCommit %>" target="_blank"><code><%= gitCommit %></code></a>).<br>
|
|
<% } else { %>
|
|
The Lounge is in version <strong><%= version %></strong>
|
|
(<a href="https://github.com/thelounge/lounge/releases/tag/v<%= version %>" target="_blank">See release notes</a>).<br>
|
|
<% } %>
|
|
|
|
<a href="https://thelounge.github.io/" target="_blank">Website</a><br>
|
|
<a href="https://thelounge.github.io/docs/" target="_blank">Documentation</a><br>
|
|
<a href="https://github.com/thelounge/lounge/issues/new" target="_blank">Report a bug</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="context-menu-container">
|
|
<ul id="context-menu"></ul>
|
|
</div>
|
|
|
|
<script src="socket.io/socket.io.js"></script>
|
|
<script src="js/libs.min.js"></script>
|
|
<script src="js/lounge.templates.js"></script>
|
|
<script src="js/lounge.js"></script>
|
|
|
|
</body>
|
|
</html>
|