freechat/freechat-client/pages/index.html

103 lines
4.6 KiB
HTML

<!-- Keep in mind basically all the major components of the app are held together here -->
<!-- The reason for this is because ~~~~~ I'm actually just lazy -->
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
<!-- required bs for bootstrap -->
<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.css"/>
<link rel="stylesheet" href="css/style.css"/>
<title>Freechat</title>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand">
<img src="../assets/logo.png" width="30" height="30" class="d-inline-block align-top" loading="lazy">
Freechat
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-opts" aria-controls="navbar-opts" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbar-opts">
<ul class="navbar-nav mr-auto" style="display: inline-block;">
<button class="btn btn-outline-secondary btn-nav-settings me-2" type="button" id="settings-btn">Settings</button>
<button class="btn btn-outline-secondary btn-nav-settings" type="button" id="join-btn" data-toggle="modal", data-target="#joinform">Join</button>
</ul>
<!-- SERVER LIST -->
<ul class="navbav-nav mr-auto", id="server-list" style="display: inline-block;"></ul>
</div>
</nav>
<div class="wrapper" id="content-container">
<nav id="channels-container">
<div class="channels-list-header"><h3>server name here</h3></div>
<ul class="list-unstyled components">
<li> <a href="#" class="btn btn-link">channel-name-here</a> </li>
<li> <a href="#" class="btn btn-link">channel-name-here</a> </li>
<li> <a href="#" class="btn btn-link">channel-name-here</a> </li>
<li> <a href="#" class="btn btn-link">channel-name-here</a> </li>
<li> <a href="#" class="btn btn-link">channel-name-here</a> </li>
</ul>
</nav>
<!-- Sample data so we know what things should look like -->
<div class="container scroller" id="messages-container" style="max-width: 100%;">
<div class="channel-list-header"><h4>#Channel name here</h4></div>
<div class="channel-list-header"><p>Channel description here</p></div>
<ul class="list-unstyled components" id="messages-list">
<li id="m-123"> <p class="message"> <a href="#" class="btn btn-link author-name">resident tweeker</a> some bs content </p> </li>
</ul>
<div class="container" id="send-container">
<form class="form-inline">
<div class="form-group">
<input type="text" class="form-control" id="message-box" placehold="Message">
<button class="btn btn-primary" type="button">Send</button>
</div>
</form>
</div>
</div>
<!-- Message box -->
</div>
<div id="joinform" class="modal fade" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content join-style">
<div class="modal-header"> <h5 class="modal-title">Paste an invite link below</h5> </div>
<div class="modal-body">
<form>
<input type="text" class="form-text join-form-label" id="invite-link-text">
<label for="submit-invite-link" class="form-label">Example: sample-domain.io/invite/42069</label>
<label for="submit-invite-link" class="form-label">Degen note: Freechat ONLY does HTTPS, so the prefix isn't needed. If anyone says otherwise they're full of shit</label>
<button class="btn btn-outline-success" type="button" id="invite-link-button">Join</button>
</form>
</div>
</div>
</div>
</div>
</body>
<!-- JQuery doesn't load so our squishy boi of the the collapsable menu literally doesn't work-->
<script type="text/javascript" src="../node_modules/jquery/dist/jquery.min.js"></script>
<script>window.jQuery = window.$ = require('jquery')</script>
<script type="text/javascript" src="../node_modules/popper.js/dist/umd/popper.js"></script>
<script type="text/javascript" src="../node_modules/popper.js/dist/umd/popper-utils.js"></script>
<script type="text/javascript" src="../node_modules/bootstrap/dist/js/bootstrap.bundle.js"></script>
<script>
const { ipcRenderer } = require('electron')
const config = ipcRenderer.sendSync('config-request', 'benis')
// only put things like the server list up if theres anythng to put in there
if(config['servers']) {
let parent = document.getElementById('server-list')
for(const server of config['servers']) {
let node = document.createElement('button')
node.classList.add('btn', 'btn-outline-secondary', 'btn-nav-settings')
node.type = 'button'
node.textContent = server['name']
node.id = server['ip'] || server['url'] // perfer the ip to avoid dns
parent.appendChild(node)
}
}
</script>
</html>