msn-viewer/src/index.html

217 lines
11 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>🔥 MSN Viewer</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta charset="UTF-8" />
<link rel="stylesheet" href="./scss/index.scss" />
</head>
<body>
<div class="container-lg mx-auto">
<div id="loading" class="d-flex justify-content-center">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div id="fatal-error" class="alert alert-danger d-none">
<h4 id="error-heading" class="alert-heading">
<!-- heading here -->
</h4>
<span><!-- error message here --></span>
</div>
<div id="real-body" class="d-none">
<nav id="main-navbar" class="navbar px-0 sticky-top navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">
🔥 MSN Viewer
</a>
<button class="navbar-toggler" type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarNavAltMarkup"
aria-controls="navbarNavAltMarkup"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" data-bs-toggle="modal" data-bs-target="#help" href="#">Help</a>
</li>
<li class="nav-item">
<a class="nav-link" data-bs-toggle="modal" data-bs-target="#about" href="#">About</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="backup-info" class="mt-3">
<input class="form-control" id="backup-file" type="file" style="display: none;">
<!-- displayed once a file has been opened -->
<div id="file-loaded-controls" class="d-none">
<div class="input-group">
<button id="loaded-view-new-button" type="button" class="btn btn-primary">
<i class="bi bi-file-earmark-plus"></i> View New
</button>
<button type="button"
class="btn btn-primary dropdown-toggle dropdown-toggle-split"
data-bs-toggle="dropdown" aria-expanded="false">
<span class="visually-hidden">Toggle Dropdown</span>
</button>
<ul class="dropdown-menu">
<li>
<a id="loaded-load-previous-button" class="dropdown-item disabled" href="#">
<i class="text-start bi bi-files"></i> Load Previous
</a>
</li>
</ul>
<input id="currently-viewing" type="text" class="form-control bg-transparent" disabled>
</div>
</div>
<!-- displayed initially -->
<div id="no-file-loaded-controls" class="d-grid gap-2 text-center d-lg-block col-8 mx-auto">
<button id="unloaded-view-new-button" type="button" class="btn btn-primary btn-lg">
<span class="float-start">
<i class="bi bi-file-earmark-plus"></i>
</span>
<span>View New</span>
</button>
<span class="d-none d-lg-inline fs-4">or...</span>
<button id="unloaded-load-previous-button" type="button"
class="btn btn-primary btn-lg disabled">
<span class="float-start">
<i class="text-start bi bi-files"></i>
</span>
<span>Load Previous</span>
</button>
</div>
</div>
<div id="backup-display" class="mt-3">
<div id="display-backup-error" class="alert alert-danger d-none">
<h4 id="error-heading" class="alert-heading">
<!-- heading here -->
</h4>
<span><!-- error message here --></span>
</div>
<div id="chat-display" class="application-ui table-responsive"></div>
</div>
</div>
</div>
<!-- modals -->
<div class="modal fade" id="previous-backups-modal" tabindex="-1">
<div class="modal-dialog modal-fullscreen-lg-down">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Previously Viewed</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div id="previous-backups-list" class="list-group">
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="help" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-fullscreen-lg-down">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Help</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<h2>🔥 The Basics</h2>
<p>
This application was created to view
1-on-1 chats from MSN Messenger XML
backups. It reads an XML backup file
chosen by the user, and displays it in an
easy-to-read format on the screen.
</p>
<p>
All processing happens locally on your
device. No data is uploaded or tracked.
<ul>
<li>You must have the XML backup
available on your device to view
it.</li>
<li>Long usernames are shortened.
Click or tap on such a username to
see a popup with the full
username. Click or tap again to
hide the popup.</li>
<li>When you have opened a backup for
viewing, you can easily re-open it
later by selecting "Load Previous".</li>
</ul>
</p>
<h2>🔥 Mobile Interface</h2>
<p>
The application supports both desktop and
mobile devices. On a small screen, the
rendered conversation has certain
information hidden to make reading
messages easier.
<ul>
<li>Tap on the <i class="bi
bi-clock"></i> clock to see the
date and time of the message.</li>
<li>Tap again to hide the popup.</li>
<li>Long chat messages are scrollable.
A small icon in the lower right
part of the message indicates
this.</li>
</ul>
</p>
</div>
</div>
</div>
</div>
<div class="modal fade" id="about" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-fullscreen-lg-down">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">About</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<h3>🔥 The Author</h3>
<p>
Written by <a target="_blank" href="https://git.agnos.is/projectmoon">project "🔥We got money to burn🔥" moon.</a>
</p>
<p class="fs-5">
<a target="_blank" href="https://github.com/ProjectMoon"><i class="bi bi-github"></i></a>&nbsp;
<a target="_blank" href="https://fosstodon.org/@projectmoon"><i class="bi bi-mastodon"></i></a>&nbsp;
<a target="_blank" href="mailto:projectmoon@agnos.is"><i class="bi bi-envelope-at-fill"></i></a>&nbsp;
</p>
<h3>🔥 Free, Libre, Open Source</h3>
<p>
Created as Free Software, licensed under
the <a target="_blank" href="https://www.gnu.org/licenses/agpl-3.0.en.html">GNU AGPLv3 License.</a>
You are free to study, modify, and
redistribute this application, provided
you extend those same freedoms to others.
</p>
<p><a target="_blank" href="https://git.agnos.is/projectmoon/msn-viewer">Source Code</a></p>
</div>
</div>
</div>
</div>
<script type="module" src="ts/index.tsx"></script>
</body>
</html>