mirror of
https://github.com/Tygs/0bin.git
synced 2023-08-10 21:13:00 +03:00
Added upload file button (HTML5)
This commit is contained in:
parent
e34e740808
commit
658149240e
@ -16,11 +16,7 @@ def setup_path():
|
||||
Add the project dir in the python path to the site to run with the
|
||||
source code beeing just copied/pasted and not installed.
|
||||
|
||||
Also try to import dependancies. If it fails, fallback on embeded libs.
|
||||
Add fallback on embeded libs to path.
|
||||
"""
|
||||
sys.path.insert(0, os.path.dirname(settings.ROOT_DIR))
|
||||
|
||||
try:
|
||||
import bottle
|
||||
except ImportError:
|
||||
sys.path.append(os.path.join(settings.ROOT_DIR, 'libs'))
|
@ -154,12 +154,14 @@ class Paste(object):
|
||||
self.expiration = self.expiration + '#%s' % datetime.now()
|
||||
|
||||
# write the paste
|
||||
try:
|
||||
with open(self.path, 'w') as f:
|
||||
f.write(unicode(self.expiration) + '\n')
|
||||
f.write(self.content + '\n')
|
||||
if self.comments:
|
||||
f.write(comments)
|
||||
|
||||
except Exception as e:
|
||||
import ipdb; ipdb.set_trace()
|
||||
return self
|
||||
|
||||
|
||||
|
@ -9,7 +9,6 @@ text-shadow: 0 1px 0 rgba(255, 255, 255, .1), 0 0 30px rgba(255, 255, 255, .125)
|
||||
-webkit-transition: all .2s linear;
|
||||
-moz-transition: all .2s linear;
|
||||
transition: all .2s linear;
|
||||
|
||||
}
|
||||
|
||||
.brand span {
|
||||
@ -34,15 +33,6 @@ body {
|
||||
padding: 9px 0;
|
||||
}
|
||||
|
||||
.btn-group {
|
||||
float:left;
|
||||
}
|
||||
|
||||
.paste-option {
|
||||
float:right;
|
||||
}
|
||||
|
||||
|
||||
select {
|
||||
width: 135px;
|
||||
}
|
||||
@ -61,7 +51,7 @@ ul, ol {
|
||||
}
|
||||
|
||||
li {
|
||||
margin-left: -4px;
|
||||
margin-left: -9px;
|
||||
}
|
||||
|
||||
|
||||
@ -73,24 +63,169 @@ p {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.items {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.nav-list {
|
||||
padding-right: 0px !important;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.form-options li{
|
||||
blockquote {
|
||||
width: 630px;
|
||||
float: left;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
h4 p {
|
||||
float: left;
|
||||
font-size: 80px;
|
||||
text-shadow: 1px 3px 1px #DDD, 0 0 4px #333;
|
||||
-webkit-transition: all 0.2s linear;
|
||||
-moz-transition: all .2s linear;
|
||||
transition: all .2s linear;
|
||||
margin-right: 7px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
h4#pixels-total {
|
||||
position: relative;
|
||||
width: 166px;
|
||||
float: right;
|
||||
margin: 8px 0 0 0;
|
||||
padding: 0 0 0 54px;
|
||||
font-size: 1.1em;
|
||||
line-height: 1.4;
|
||||
font-weight: normal;
|
||||
color: #777;
|
||||
-webkit-border-top-right-radius: 6px;
|
||||
-webkit-border-top-left-radius: 20px;
|
||||
-moz-border-top-right-radius: 6px;
|
||||
-moz-border-top-left-radius: 20px;
|
||||
border-top-right-radius: 6px;
|
||||
border-top-left-radius: 20px;
|
||||
}
|
||||
|
||||
.greetings {
|
||||
clear: both;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Home */
|
||||
|
||||
.btn-group {
|
||||
float:left;
|
||||
}
|
||||
|
||||
.file-upload {
|
||||
float: left;
|
||||
margin: 22px 0px 0px 21px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
input.btn-upload {
|
||||
position: relative;
|
||||
left: -6px;
|
||||
width: 100px;
|
||||
z-index: 1;
|
||||
margin-top: -13px;
|
||||
}
|
||||
|
||||
input.hide-upload {
|
||||
position: relative;
|
||||
left: -110px;
|
||||
-moz-opacity: 0;
|
||||
filter: alpha(opacity: 0);
|
||||
opacity: 0 ;
|
||||
z-index: 2;
|
||||
width: 100px;
|
||||
margin-top: -20px;
|
||||
cursor: pointer;
|
||||
cursor: hand;
|
||||
height: 49px;
|
||||
}
|
||||
|
||||
/* Paste Page */
|
||||
|
||||
.items {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#paste-content {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
#copy-success,
|
||||
#short-url-success,
|
||||
.submit-form {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.paste-option {
|
||||
float:right;
|
||||
}
|
||||
|
||||
a#clip-button.hover{
|
||||
cursor:pointer;
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
li.L0, li.L1, li.L2, li.L3, li.L4,
|
||||
li.L5, li.L6, li.L7, li.L8, li.L9
|
||||
{
|
||||
list-style-type: decimal;
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
.prettyprint.linenums {
|
||||
-webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
|
||||
-moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
|
||||
box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
|
||||
}
|
||||
|
||||
/* Specify class=linenums on a pre to get line numbering */
|
||||
ol.linenums {
|
||||
margin: 0 0 0 55px; /* IE indents via margin-left */
|
||||
}
|
||||
ol.linenums li {
|
||||
color: #bebec5;
|
||||
line-height: 18px;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
}
|
||||
|
||||
.prettyprint {
|
||||
padding: 8px;
|
||||
background-color: #f7f7f9;
|
||||
border: 1px solid #e1e1e8;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, serif;
|
||||
line-height: 21px;
|
||||
font-size: 12px;
|
||||
|
||||
}
|
||||
|
||||
.kwd {
|
||||
color: #66F;
|
||||
}
|
||||
|
||||
.pun, .opn, .clo {
|
||||
color: #0A0;
|
||||
}
|
||||
|
||||
.lit {
|
||||
color: #933;
|
||||
}
|
||||
|
||||
.com {
|
||||
color: #C0C;
|
||||
}
|
||||
|
||||
|
||||
/* Common css */
|
||||
|
||||
form {
|
||||
padding-bottom:3em !important;
|
||||
padding-right: 17px;
|
||||
}
|
||||
|
||||
form textarea {
|
||||
overflow-y:auto;
|
||||
@ -100,10 +235,6 @@ button.btn, input[type="submit"].btn {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.submit-form {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.well {
|
||||
padding-bottom: 40px;
|
||||
padding-right: 17px;
|
||||
@ -120,48 +251,9 @@ button.btn, input[type="submit"].btn {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
form {
|
||||
padding-bottom:3em !important;
|
||||
padding-right: 17px;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
position:relative;
|
||||
top:-4px;
|
||||
}
|
||||
|
||||
|
||||
pre {
|
||||
padding:1em 20px !important;
|
||||
}
|
||||
|
||||
.linenums {
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
|
||||
ol.linenums li {
|
||||
line-height:14px;
|
||||
}
|
||||
|
||||
ol.linenums span:first-child {
|
||||
border-left: solid 1px #999;
|
||||
padding-left:1em;
|
||||
}
|
||||
|
||||
li.L0, li.L1, li.L2, li.L3, li.L4,
|
||||
li.L5, li.L6, li.L7, li.L8, li.L9
|
||||
{
|
||||
list-style-type: decimal;
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
a#clip-button.hover{
|
||||
cursor:pointer;
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
#copy-success, #short-url-success {
|
||||
display:none;
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,6 @@ sjcl.random.startCollectors();
|
||||
$.ajaxSetup({ cache: true });
|
||||
|
||||
|
||||
|
||||
zerobin = {
|
||||
encrypt: function(key, content) {
|
||||
content = sjcl.codec.base64.fromBits(sjcl.codec.utf8String.toBits(content));
|
||||
@ -234,6 +233,38 @@ $('.btn-clone').click(function(e){
|
||||
|
||||
});
|
||||
|
||||
|
||||
/* Upload file using HTML5 File API */
|
||||
|
||||
if (window.File && window.FileReader && window.FileList && window.Blob) {
|
||||
$('.file-upload').show();
|
||||
}
|
||||
|
||||
var file_upload = function(file) {
|
||||
var reader = new FileReader();
|
||||
reader.onload = function(event) {
|
||||
var content = event.target.result;
|
||||
$('#content').val(content);
|
||||
$('#content').trigger('change');
|
||||
};
|
||||
|
||||
reader.readAsText(file[0]);
|
||||
}
|
||||
|
||||
try {
|
||||
$('#file-upload').change(function() {
|
||||
file_upload(this.files);
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
alert(e);
|
||||
}
|
||||
|
||||
$('#file-upload').mouseover(function(){
|
||||
$(this).css( 'cursor', 'pointer' );
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
@ -75,12 +75,17 @@
|
||||
<p>«Few persons can be made to believe that it is not quite an easy thing to invent a method of secret writing which shall baffle investigation. Yet it may be roundly asserted that human ingenuity cannot concoct a cipher which human ingenuity cannot resolve...»</p>
|
||||
<small>Edgar Allan Poe</small>
|
||||
</blockquote>
|
||||
|
||||
<h4 id="pixels-total" >
|
||||
<p>ø</p>
|
||||
<strong>41,017,923,819</strong> pastes øbinned
|
||||
</h4>
|
||||
|
||||
</br>
|
||||
<p>
|
||||
<p class="greetings span12">
|
||||
Based on an original idea from
|
||||
<a href="http://sebsauvage.net/paste/">sebsauvage.net</a>
|
||||
</p>
|
||||
|
||||
</footer>
|
||||
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
<p class="file-upload">
|
||||
<input type="button" class="btn btn-upload" value="Upload File">
|
||||
<input type="file" class="hide-upload" id="file-upload" >
|
||||
</p>
|
||||
|
||||
<form class="well" method="post" action="/paste/create">
|
||||
<p class="paste-option">
|
||||
<label for="expiration" >Expiration:</label>
|
||||
|
@ -21,12 +21,11 @@
|
||||
|
||||
<div class="well paste-form">
|
||||
<form action="/" method="get" accept-charset="utf-8">
|
||||
<p>
|
||||
<p class="lnk-option">
|
||||
<a id="clip-button">Copy To Clipboard</a>
|
||||
|
|
||||
<a id="short-url" href=""
|
||||
target="_blank">Get short url</a>
|
||||
|
||||
<span class="paste-option btn-group top">
|
||||
<button class="btn btn-clone"><i class="icon-camera"></i> Clone</button>
|
||||
<button class="btn">New Paste</button>
|
||||
|
Loading…
Reference in New Issue
Block a user