185 lines
8.2 KiB
HTML
185 lines
8.2 KiB
HTML
{{define "file_viewer"}}
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>{{.Title}}</title>
|
|
<meta charset="UTF-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
{{template "user_style" .}}
|
|
<link rel="shortcut icon" href="/res/img/tray32.png"/>
|
|
<link rel="icon" sizes="180x180" href="/res/img/pixeldrain.png"/>
|
|
<link rel="icon" sizes="256x256" href="/res/img/pixeldrain_big.png"/>
|
|
<meta name="theme-color" content="#75AD38"/>
|
|
|
|
<style>
|
|
{{template `viewer.css`}}
|
|
{{template `layout.css`}}
|
|
</style>
|
|
|
|
{{.OGData}}
|
|
</head>
|
|
|
|
<body>
|
|
<div id="file_viewer" class="file_viewer">
|
|
<div id="file_viewer_headerbar" class="highlight_1 file_viewer_headerbar">
|
|
<button id="button_toggle_toolbar" class="button_toggle_toolbar" onClick="Toolbar.toggle();">☰</button>
|
|
<a href="/" id="button_home" class="button button_home">
|
|
<img src="{{template `pixeldrain_icon.png`}}"
|
|
alt="Back to the Home page"
|
|
style="height: 1.5em; margin: -0.2em; margin-right: 0.2em;"/>
|
|
</a>
|
|
<div id="file_viewer_headerbar_title" class="file_viewer_headerbar_title">
|
|
<div id="file_viewer_list_title"></div>
|
|
<div id="file_viewer_file_title">{{.Title}}</div>
|
|
</div>
|
|
<div id="list_navigator_buttons" class="button_group list_navigator_buttons"></div>
|
|
<button id="button_close_file_viewer" class="button_close_file_viewer button_red" onClick="window.close();">🞫</button>
|
|
</div>
|
|
<div id="list_navigator" class="list_navigator"></div>
|
|
<div id="file_viewer_window" class="file_viewer_window">
|
|
<div id="toolbar" class="file_viewer_toolbar">
|
|
<!-- Ugly workaround to get rid of the scrollbar in non-webkit browsers -->
|
|
<div>
|
|
<div>
|
|
<div id="stat_views_label" class="toolbar_label">Views</div>
|
|
<div id="stat_views" style="text-align: center;">N/A</div>
|
|
<div id="stat_downloads_label" class="toolbar_label">Downloads</div>
|
|
<div id="stat_downloads" style="text-align: center;">N/A</div>
|
|
|
|
<button id="btnDownload" class="toolbar_button button_full_width" onClick="Toolbar.download();">
|
|
<img src="{{template `floppy_small.png`}}" alt="Download this file"/>
|
|
<span>Download</span>
|
|
</button>
|
|
<button id="btnCopy" class="toolbar_button button_full_width" onClick="Toolbar.copyUrl();">
|
|
<img src="{{template `clipboard_small.png`}}" alt="Copy file URL to clipboard"/>
|
|
<span><u>C</u>opy Link</span>
|
|
</button>
|
|
<button id="btnShare" class="toolbar_button button_full_width" onClick="Sharebar.toggle();">
|
|
<img src="{{template `share_small.png`}}" alt="Share this file on social media"/>
|
|
<span>Share</span>
|
|
</button>
|
|
<button id="btnDetails" class="toolbar_button button_full_width" onClick="DetailsWindow.toggle();">
|
|
<img src="{{template `info_small.png`}}" alt="Help"/>
|
|
<span>Deta<u>i</u>ls</span>
|
|
</button>
|
|
{{template "advertisement" .}}
|
|
|
|
<!-- This frame will load the download URL when a download button is pressed -->
|
|
<iframe id="download_frame" style="display: none; width: 1px; height: 1px;"></iframe>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="sharebar" class="file_viewer_sharebar">
|
|
Share on:<br/>
|
|
<button class="sharebar-button button_full_width" onClick="window.open('mailto:please@set.address?subject=File%20on%20PixelDrain&body=' + window.location.href);">
|
|
<img src="{{template `social_email.png`}}" alt="Share on E-Mail" style="width:40px; height: 40px;"/>
|
|
<br/>E-Mail
|
|
</button>
|
|
<button class="sharebar-button button_full_width" onclick="window.open('https://www.reddit.com/submit?url=' + window.location.href);">
|
|
<img src="{{template `social_reddit.png`}}" alt="Share on Reddit" style="width:40px; height: 40px;"/>
|
|
<br/>Reddit
|
|
</button>
|
|
<button class="sharebar-button button_full_width" onClick="window.open('https://twitter.com/share?url=' + window.location.href);">
|
|
<img src="{{template `social_twitter.png`}}" alt="Share on Twitter" style="width:40px; height: 40px;"/>
|
|
<br/>Twitter
|
|
</button>
|
|
<button class="sharebar-button button_full_width" onClick="window.open('http://www.facebook.com/sharer.php?u=' + window.location.href);">
|
|
<img src="{{template `social_facebook.png`}}" alt="Share on Facebook" style="width:40px; height: 40px;"/>
|
|
<br/>Facebook
|
|
</button>
|
|
<button class="sharebar-button button_full_width" onClick="window.open('http://www.tumblr.com/share/link?url=' + window.location.href);">
|
|
<img src="{{template `social_tumblr.png`}}" alt="Share on Tumblr" style="width:40px; height: 40px;"/>
|
|
<br/>Tumblr
|
|
</button>
|
|
<button class="sharebar-button button_full_width" onClick="window.open('https://voat.co/submit?linkpost=true&url=' + window.location.href);">
|
|
<img src="{{template `social_voat.png`}}" alt="Share on Voat" style="width:40px; height: 40px;"/>
|
|
<br/>Voat
|
|
</button>
|
|
</div>
|
|
|
|
<div id="filepreview" class="file_viewer_file_preview">
|
|
<!-- <img src="{{template `loadthink.gif`}}" style="margin-top: 20%; width: 200px; height: 200px;" /> -->
|
|
<div class="image" style="margin-top: 20%; width: 100px; height: 100px;">{{template "spinner.svg"}}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="details_popup" class="popup details_popup">
|
|
<div id="details_popup_title" class="highlight_1">
|
|
File Info
|
|
<button style="position: absolute; top: 3px; right: 3px;" class="button_red" onclick="DetailsWindow.toggle();">🞫</button>
|
|
</div>
|
|
<div class="content_area">
|
|
<span id="info_file_details"></span>
|
|
<span id="info_about">
|
|
<h3>Downloads and views</h3>
|
|
<div id="chart_container" class="chart-container" style="position: relative; width: 100%; height: auto;">
|
|
<canvas id="bandwidth_chart"></canvas>
|
|
</div>
|
|
<p style="text-align: center">
|
|
Chart rendered by the amazing <a href="https://www.chartjs.org/" target="_blank">Chart.js</a>.
|
|
</p>
|
|
|
|
<h3>About</h3>
|
|
Pixeldrain is a file sharing platform.
|
|
<a href="/" target="_blank">Visit the home page for more information.</a>
|
|
|
|
<h3>Keyboard Controls</h3>
|
|
<table>
|
|
<tr><td colspan="2">File Shortcuts</td></tr>
|
|
<tr><td>c</td><td> = Copy URL of this page</td></tr>
|
|
<tr><td>i</td><td> = Toggle details window (this window) (<b><u>i</u></b>nfo)</td></tr>
|
|
<tr><td>s</td><td> = Download the file you are currently viewing (<b><u>s</u></b>ave)</td></tr>
|
|
<tr><td>q</td><td> = Close the window (<b><u>q</u></b>uit)</td></tr>
|
|
<tr><td colspan="2">List Shortcuts</td></tr>
|
|
<tr><td>a or ←</td><td> = View previous item in list</td></tr>
|
|
<tr><td>d or →</td><td> = View next item in list</td></tr>
|
|
<tr><td>r</td><td> = Toggle shuffle (<b><u>r</u></b>andom)</td></tr>
|
|
<tr><td>SHIFT + s</td><td> = Download all the files in the list as a zip archive</td></tr>
|
|
</table>
|
|
|
|
<h3>Credits</h3>
|
|
All server side code written by
|
|
<a target="_blank" href="https://fornaxian.com/">Fornax (me)</a>.
|
|
<br/>
|
|
<br/>
|
|
Code syntax highlighting is by
|
|
<a target="_blank" href="https://github.com/google/code-prettify">Google Code-prettify</a>.
|
|
<br/>
|
|
<br/>
|
|
Thanks to the Mozilla team for their wonderful PDF viewer
|
|
<a target="_blank" href="https://github.com/mozilla/pdf.js">pdf.js</a>.
|
|
<br/>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div id="captcha_popup" class="popup captcha_popup">
|
|
<div id="captcha_popup_title" class="highlight_headerbar"></div>
|
|
<div id="captcha_popup_content" class="content_area"></div>
|
|
<br/>
|
|
<div id="captcha_popup_captcha" style="text-align: center;"></div>
|
|
</div>
|
|
|
|
<script src="/res/script/Chart.min.js"></script>
|
|
<script src="/res/script/jquery.js"></script>
|
|
<script type="text/javascript">
|
|
var apiEndpoint = '{{.APIEndpoint}}';
|
|
var captchaKey = '{{.Other.CaptchaKey}}';
|
|
|
|
{{template `Toolbar.js`}}
|
|
{{template `Viewer.js`}}
|
|
{{template `ListNavigator.js`}}
|
|
|
|
// This info gets filled in on the server side to prevent having to make an API call right after the page loads.
|
|
// Just to slice another few milliseconds from the load time :)
|
|
window.addEventListener("load", function(){
|
|
Viewer.init('{{.Other.Type}}', {{.Other.APIResponse}});
|
|
});
|
|
</script>
|
|
|
|
{{template "analytics"}}
|
|
</body>
|
|
</html>
|
|
{{end}}
|