scratch

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 43  →  ?path2? @ 44
/text.html/text.html
@@ -0,0 +1,340 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="quick asset upload">
<meta name="author" content="Wizardry and Steamworks">
<link rel="icon" href="favicon.ico">
 
<title>Quickload</title>
<!-- Polyfill -->
<script src="js/polyfill/polyfill.min.js"></script>
 
<!-- Bootstrap core CSS -->
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet">
 
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<link href="css/bootstrap/ie10-viewport-bug-workaround.css" rel="stylesheet">
 
<!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE 9]><script src="js/bootstrap/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="js/bootstrap/ie-emulation-modes-warning.js"></script>
 
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="js/bootstrap/html5shiv.min.js"></script>
<script src="js/bootstrap/respond.min.js"></script>
<![endif]-->
<!-- Trumbowyg -->
<link href="css/trumbowyg/trumbowyg.min.css" rel="stylesheet">
<!-- Local style -->
<link href="css/text/style.css" rel="stylesheet">
</head>
 
<body>
 
<div class="container">
 
<!-- Main component for a primary marketing message or call to action -->
<div class="jumbotron">
<h1>Quickload</h1>
<p>Asset sharing platform.</p>
</div>
<ul class="nav nav-tabs">
<li><a href="index.html">Home</a></li>
<li><a href="files.html">Files</a></li>
<li class="active"><a href="#">Text</a></li>
</ul>
<div class="panel panel-default">
<div class="panel-heading">
<div class="form-group">
<div class="input-group">
<span class="input-group-btn">
<button id="save" class="btn btn-default" type="button" data-toggle="tooltip" data-placement="auto" title="Generate link.">
<i class="glyphicon glyphicon-share"></i>
</button>
</span>
<input id="URL" type="text" class="form-control" readonly>
<span class="input-group-btn">
<button id="copy-url" class="btn btn-default" type="button" data-clipboard-target="#URL" data-toggle="tooltip" data-placement="auto" title="Copy to clipboard."><i class="glyphicon glyphicon-paperclip"></i></button>
</span>
</div>
</div>
<form id="nick-form" role="form">
<div class="form-group has-feedback">
<div class="input-group">
<span class="input-group-btn">
<button id="go" class="btn btn-default" type="button" data-toggle="tooltip" data-placement="auto" title="Load document.">
<i class="glyphicon glyphicon-play"></i>
</button>
</span>
<span class="input-group-btn">
<button id="reset" class="btn btn-default" type="button" data-toggle="tooltip" data-placement="auto" title="Reset document.">
<i id="home-icon" class="glyphicon glyphicon-home"></i>
</button>
</span>
<input id="nick" type="text" class="form-control" pattern="^[A-Za-z0-9]{32}$" maxlength="32">
<span class="input-group-btn">
<button id="copy-nick" class="btn btn-default" type="button" data-clipboard-target="#nick" data-toggle="tooltip" data-placement="auto" title="Copy to clipboard."><i class="glyphicon glyphicon-paperclip"></i></button>
</span>
</div>
</div>
</form>
</div>
<div class="panel-body" id="editorpanel">
<div id="trumbowyg" style="display: none; font-family: monospace;">
</div>
</div>
</div>
 
</div> <!-- /container -->
<div id="footer">
<div class="container">
<p class="text-muted credit">Copyright <i class="glyphicon glyphicon-copyright-mark"></i> 2017 <a href="http://grimore.org">Wizardry and Steamworks</a>.</p>
</div>
</div>
 
<script src="js/jquery/jquery.min.js"></script>
<script src="js/bootstrap/bootstrap.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="js/bootstrap/ie10-viewport-bug-workaround.js"></script>
<!-- Trumbowyg -->
<script src="js/trumbowyg/trumbowyg.min.js"></script>
<!-- Clipboard -->
<script src="js/clipboard/clipboard.min.js"></script>
<!-- Fingerprint 2 -->
<script src="js/fingerprintjs/fingerprint2.min.js"></script>
<!-- js-cookie -->
<script src="js/jscookie/js.cookie.js"></script>
<!-- Bootstrap Validator -->
<script src="js/validator/validator.min.js"></script>
<script>
$(document).ready(() => {
// Attach the form validator.
$('#nick-form').validator({
focus: false
});
// Enable the Clipboard button.
new Clipboard('#copy-url');
// Get the fingerprint.
new Fingerprint2().get((result, components) => {
// Set the nick as a cookie.
const fingerprint = result;
var nick = Cookies.get('nick');
if(!nick || nick.length !== 32) {
Cookies.set('nick', result, { path: '' });
nick = result;
}
else
result = nick;
// Set the nick.
$('#nick').val(result);
new Clipboard('#copy-nick');
if(fingerprint == nick)
$('#home-icon').addClass("text-success");
else
$('#home-icon').addClass("text-danger");
// Load the editor.
$('#trumbowyg').trumbowyg({
autogrow: true,
disabled: true
}).on('tbwchange', () => {
$('#editor').trumbowyg('disable');
$.post('share-text.php', {
data: $('#trumbowyg').trumbowyg('html'),
fingerprint: result,
action: 'SAVE'
}).done((data) => {
$('#trumbowyg').trumbowyg('enable');
}).fail(() => {
$('#trumbowyg').trumbowyg('enable');
});
});
// Retrieve the contents of the shared file.
$.post('share-text.php',
{
timestamp: window.performance.now(),
fingerprint: result,
action: 'LOAD'
}).done((data) => {;
$('#trumbowyg')
.trumbowyg('html', data);
$('#trumbowyg').trumbowyg('enable');
$('#trumbowyg').show();
}).fail(() => {
$('#trumbowyg').trumbowyg('enable');
$('#trumbowyg').show();
});
$('#save').click(() => {
$('#editor').trumbowyg('disable');
var formData = new FormData();
formData.append('file', new Blob(
[
$('#trumbowyg').trumbowyg('html')
]
),
'.html'
);
$.ajax({
url: 'upload-files.php',
type: 'POST',
data: formData,
// cache: false // FF
processData: false,
contentType: false
}).done((data) => {
$('#URL').val(data);
$('#trumbowyg').trumbowyg('enable');
}).fail(() => {
$('#trumbowyg').trumbowyg('enable');
});
});
// When the button is clicked, navigate to the fingerprint.
$('#go').click(() => {
nick = $('#nick').val();
if(!nick || nick.length != 32)
return;
Cookies.set('nick', nick, { path: '' });
result = nick;
// Retrieve the contents of the shared file.
$.post('share-text.php',
{
timestamp: window.performance.now(),
fingerprint: nick,
action: 'LOAD'
}).done((data) => {;
$('#trumbowyg')
.trumbowyg('html', data);
$('#trumbowyg').trumbowyg('enable');
$('#trumbowyg').show();
if(fingerprint == nick)
$('#home-icon').addClass("text-success").removeClass("text-danger");
else
$('#home-icon').addClass("text-danger").removeClass("text-success");
}).fail(() => {
$('#trumbowyg').trumbowyg('enable');
$('#trumbowyg').show();
});
});
// When the form is submitted, naigate to the fingerprint.
$('#nick-form').submit((e) => {
e.preventDefault();
nick = $('#nick').val();
if(!nick || nick.length != 32)
return;
Cookies.set('nick', nick, { path: '' });
result = nick;
// Retrieve the contents of the shared file.
$.post('share-text.php',
{
timestamp: window.performance.now(),
fingerprint: nick,
action: 'LOAD'
}).done((data) => {;
$('#trumbowyg')
.trumbowyg('html', data);
$('#trumbowyg').trumbowyg('enable');
$('#trumbowyg').show();
if(fingerprint == nick)
$('#home-icon').addClass("text-success").removeClass("text-danger");
else
$('#home-icon').addClass("text-danger").removeClass("text-success");
}).fail(() => {
$('#trumbowyg').trumbowyg('enable');
$('#trumbowyg').show();
});
});
// While the nick is changing, navigate to the changed fingerprint.
$("#nick").on('input', () => {
nick = $('#nick').val();
if(!nick || nick.length != 32)
return;
Cookies.set('nick', nick, { path: '' });
result = nick;
// Retrieve the contents of the shared file.
$.post('share-text.php',
{
timestamp: window.performance.now(),
fingerprint: nick,
action: 'LOAD'
}).done((data) => {;
$('#trumbowyg')
.trumbowyg('html', data);
$('#trumbowyg').trumbowyg('enable');
$('#trumbowyg').show();
if(fingerprint == nick)
$('#home-icon').addClass("text-success").removeClass("text-danger");
else
$('#home-icon').addClass("text-danger").removeClass("text-success");
}).fail(() => {
$('#trumbowyg').trumbowyg('enable');
$('#trumbowyg').show();
});
});
// When the reset button is pressed, navigate to the fingerprint.
$('#reset').click(() => {
Cookies.set('nick', fingerprint, { path: '' });
$('#nick').val(fingerprint);
result = fingerprint;
nick = fingerprint;
// Retrieve the contents of the shared file.
$.post('share-text.php',
{
timestamp: window.performance.now(),
fingerprint: fingerprint,
action: 'LOAD'
}).done((data) => {;
$('#trumbowyg')
.trumbowyg('html', data);
$('#trumbowyg').trumbowyg('enable');
$('#trumbowyg').show();
if(fingerprint == nick)
$('#home-icon').addClass("text-success").removeClass("text-danger");
else
$('#home-icon').addClass("text-danger").removeClass("text-success");
}).fail(() => {
$('#trumbowyg').trumbowyg('enable');
$('#trumbowyg').show();
});
});
});
});
</script>
</body>
</html>