Selaa lähdekoodia

Merge branch 'uvis-dev'

tags/v1.0.0
Remco 9 vuotta sitten
vanhempi
commit
a0e17391a2
33 muutettua tiedostoa jossa 4262 lisäystä ja 689 poistoa
  1. +2
    -1
      Gruntfile.js
  2. +4
    -1
      bower.json
  3. +1
    -1
      transfersh-server/static/404.txt
  4. BIN
     
  5. BIN
     
  6. BIN
     
  7. BIN
     
  8. BIN
     
  9. BIN
     
  10. +150
    -68
      transfersh-server/static/index.html
  11. +3
    -3
      transfersh-server/static/scripts/main.js
  12. +1
    -1
      transfersh-server/static/styles/main.css
  13. +1
    -0
      transfersh-web/404.txt
  14. BIN
     
  15. BIN
     
  16. BIN
     
  17. BIN
     
  18. BIN
     
  19. BIN
     
  20. +154
    -71
      transfersh-web/index.html
  21. +78
    -26
      transfersh-web/scripts/main.js
  22. +1
    -1
      transfersh-web/styles/bootstrap.less
  23. +0
    -155
      transfersh-web/styles/dropzone.less
  24. +0
    -59
      transfersh-web/styles/home.less
  25. +0
    -0
      transfersh-web/styles/includes/contact.less
  26. +15
    -4
      transfersh-web/styles/includes/global.less
  27. +101
    -0
      transfersh-web/styles/includes/home.less
  28. +18
    -4
      transfersh-web/styles/includes/pages.less
  29. +50
    -0
      transfersh-web/styles/includes/reviews.less
  30. +0
    -0
      transfersh-web/styles/includes/transfersh-icons.less
  31. +3675
    -285
      transfersh-web/styles/main.css
  32. +1
    -1
      transfersh-web/styles/main.css.map
  33. +7
    -8
      transfersh-web/styles/main.less

+ 2
- 1
Gruntfile.js Näytä tiedosto

@@ -136,7 +136,7 @@ module.exports = function (grunt) {
}
},
useminPrepare: {
html: '<%= yeoman.app %>/index.html',
html: '<%= yeoman.app %>/*.html',
options: {
dest: '<%= yeoman.dist %>'
}
@@ -211,6 +211,7 @@ module.exports = function (grunt) {
'fonts/{,*/}*.*',
'.htaccess',
'index.txt',
'404.txt',
'images/{,*/}*.{webp,gif}'
]
}]


+ 4
- 1
bower.json Näytä tiedosto

@@ -17,6 +17,9 @@
"bootstrap": "~3.0.0",
"modernizr": "~2.6.2",
"uri.js": "~1.14.1",
"typed.js": "https://github.com/mattboldt/typed.js.git"
"typed.js": "https://github.com/mattboldt/typed.js.git",
"realistic-typewriter.js": "https://github.com/fardjad/realistic-typewriter.js.git",
"animate.less": "*",
"jquery-waypoints": "https://github.com/imakewebthings/jquery-waypoints.git#~2.0.5"
}
}

+ 1
- 1
transfersh-server/static/404.txt Näytä tiedosto

@@ -1 +1 @@
404. Not found







+ 150
- 68
transfersh-server/static/index.html Näytä tiedosto

@@ -16,20 +16,29 @@
<link rel="stylesheet" href="styles/main.css">

<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:100,200,300" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:300" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:300,400" rel="stylesheet" type="text/css">

<script src="scripts/vendor/modernizr.js"></script>
</head>

<body>

<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-40833733-1', 'transfer.sh');
ga('send', 'pageview');
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-40833733-1', 'transfer.sh');
ga('send', 'pageview');
</script>

<div id="navigation">
<div class="wrapper">
<h1>transfer.sh</h1>
@@ -42,22 +51,21 @@
</div>
</div>


<section id="home">
<div class="wrapper">
<h2>
Upload and share your files
</h2>
Easy file sharing from the command line
</h2>

<div class="row">
<div id="from-terminal" class="box">
<h3>Easy sharing from the command-line</h3>
<div class="row animated fadeInDown">
<div id="from-terminal" class="box col-md-6 col-xs-12">
<h3>Share from terminal</h3>
<div id="terminal">
<p style="white-space:pre"></p>
</div>
</div>
<div id="from-web" class="">
<h3>From web</h3>
<div id="from-web" class="col-md-6 col-xs-12">
<h3>Share from web</h3>

<div id="web">
<a class="browse" href="#">
@@ -69,8 +77,9 @@
<li>
</li>
</ul>
<div class="span8 all-files" style="margin: 0; opacity: 0">
download all files link <a class="download-zip" href="#">zip</a> <a class="download-tar" href="#">tar.gz</a>
<div class="all-files">
<h4>Download your files:</h4>
<a class="download-zip btn-cta" href="#">zip</a> <a class="download-tar btn-cta" href="#">tar.gz</a>
</div>
<div>
</div>
@@ -78,43 +87,45 @@
</div>

</div>
</div>
<div>
<br>
<br>
<a href="#features" class="btn-cta">learn more </a>
<br>
<br>
</div>
</div></section>

<section id="features">
<div class="wrapper">
<div class="wrapper container">
<div class="row">
<div class="col-md-3 col-xs-3">
<div class="col-md-3 col-xs-6">
<i class="icon-terminal"></i>
<h3>Made for us with shell</h3>
<h3>Made for use with shell</h3>
</div>
<div class="col-md-3 col-xs-3">
<div class="col-md-3 col-xs-6">
<i class="icon-link"></i>
<h3>Share files just with a URL</h3>
<h3>Share files with a URL</h3>
</div>
<div class="col-md-3 col-xs-3">
<div class="col-md-3 col-xs-6">
<i class="icon-database"></i>
<h3>Upload up to 5 GB</h3>
</div>
<div class="col-md-3 col-xs-3">
<div class="col-md-3 col-xs-6">
<i class="icon-clock"></i>
<h3>Files are stored for 14 days</h3>
<h3>Files stored for 14 days</h3>
</div>
</div>
<div class="row">
<div class="col-md-offset-3 col-md-3 col-xs-3">
<div class="col-md-offset-3 col-md-3 col-xs-6">
<i class="icon-tag"></i>
<h3>For free</h3>

</div>
<div class="col-md-3 col-xs-3">
<div class="col-md-3 col-xs-6">
<i class="icon-lock"></i>

<h3>Encrypt your files</h3>

</div>

</div>
</div>
</section>
@@ -124,8 +135,8 @@
<section id="samples">
<div class="wrapper">
<h2>
Sample use cases
</h2>
Sample use cases
</h2>
<div class="row">
<div class="col-md-6">
<h3>Uploading</h3>
@@ -136,40 +147,101 @@
</div>
<div class="col-md-6">
<h3>Make an alias</h3>
<h4>Create an alias, and add it to .bashrc for faster use</h4>
<code>$ transfer() {
# write to output to tmpfile because of progress bar
tmpfile=$( mktemp -t transfer )
curl --progress-bar --upload-file $1 https://transfer.sh/$(basename $1) >> $tmpfile;
cat $tmpfile;
rm -f $tmpfile;
}

alias transfer=transfer</code>
<h4>Now you can just use <strong>transfer</strong> command</h4>

<h4>Create an alias, and add it to .bashrc for faster use</h4>
<code>$ transfer() { # write to output to tmpfile because of progress bar tmpfile=$( mktemp -t transfer ) curl --progress-bar --upload-file $1 https://transfer.sh/$(basename $1) >> $tmpfile; cat $tmpfile; rm -f $tmpfile; } alias transfer=transfer</code>
<h4>Now you can just use
<strong>transfer</strong>command</h4>
<code>$transfer hello.txt</code>


</div>
</div>


<a class="btn-cta" data-target="#coll" data-toggle="collapse">More examples</a>
<div class="collapse" id="coll">
<div class="row">
<div class="col-md-6">
<h3>Transfer multiple files</h3>
<h4>Upload multiple files at once
</h4>
<code>$ curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/</code>

<h4>Combining downloads as zip or tar archive</h4>
<code>$ curl https://transfer.sh/(15HKz/hello.txt,15HKz/hello.txt).tar.gz</code>
<br>

<code>$ curl https://transfer.sh/(15HKz/hello.txt,15HKz/hello.txt).zip</code>


</div>
<div class="col-md-6">
<h3>Encrypt your files before the transfer</h3>
<h4>You can encrypt files using gpg. The following command will encrypt the data before it leaves your server using the password you enter and upload it to transfer.sh.</h4>
<h4></h4>
<code>$ cat /tmp/hello.txt|gpg -ac -o-|curl -X PUT --upload-file "-" https://transfer.sh/test.txt</code>
<h4>Encrypt and upload</h4>
<code>$ curl https://transfer.sh/1lDau/test.txt|gpg -o- > /tmp/hello.txt</code>
</div>
</div>

</div>
</div>
</section>

<section id="reviews">
<div class="wrapper">
<div class="row">

<div class="col-md-8 col-md-offset-2 col-xs-12">
<blockquote class="twitter-tweet tweet-xl" lang="en">
<img class="twitter-profile" src="images/reviews/lars.jpg" alt="">
<p>transfer.sh is my latest fav service! Try simple command-line and web file sharing! <a href="https://t.co/FSrsb1JKJd">https://t.co/FSrsb1JKJd</a>&#10;Thanks <a href="https://twitter.com/dutchcoders">@dutchcoders</a> !</p> <a href="https://twitter.com/arvestad/status/519507976491499521">&mdash; Lars Arvestad (@arvestad)</a>
</blockquote>
</div>
</div>

<div class="row">
<div class="col-md-6">
<h3>Transfer multiple files</h3>
<h4>Upload multiple files at once
</h4>
<code>$ curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/</code>
<h4>Combining downloads as zip or tar archive</h4>
<code>$ curl https://transfer.sh/(15HKz/hello.txt,15HKz/hello.txt).tar.gz</code>
<br>
<code>$ curl https://transfer.sh/(15HKz/hello.txt,15HKz/hello.txt).zip</code>
<div class="col-md-6 col-xs-12">
<blockquote class="twitter-tweet" lang="en">
<img class="twitter-profile" src="images/reviews/kareem.jpg" alt="">
<p><a href="https://twitter.com/dutchcoders">@dutchcoders</a> love transfer.sh! any change we can *pay* for a self-hosted version?</p><a href="https://twitter.com/kareemk/status/517029789191118849">&mdash; Kareem Kouddous (@kareemk) </a>
</blockquote>

</div>
<div class="col-md-6">
<h3>Encrypt your files before the transfer</h3>
<h4>You can encrypt files using gpg. The following command will encrypt the data before it leaves your server using the password you enter and upload it to transfer.sh.</h4>
<h4></h4>
<code>$ cat /tmp/hello.txt|gpg -ac -o-|curl -X PUT --upload-file "-" https://transfer.sh/test.txt</code>
<h4>Encrypt and upload</h4>
<code>$ curl https://transfer.sh/1lDau/test.txt|gpg -o- > /tmp/hello.txt</code>
<div class="col-md-6 col-xs-12">
<blockquote class="twitter-tweet" lang="en">
<img class="twitter-profile" src="images/reviews/pg.jpeg" alt="">
<p><a href="http://t.co/JomAmqWYEB">http://t.co/JomAmqWYEB</a> by <a href="https://twitter.com/dutchcoders">@dutchcoders</a> is pure awesomeness! any chance of source on github? :-)</p><a href="https://twitter.com/drakpz/status/517008058841829376">&mdash; PJ Spagnolatti (@drakpz)</a>
</blockquote>

</div>
</div>

<div class="row">

<div class="col-md-6 col-xs-12">
<blockquote class="twitter-tweet" lang="en">
<img class="twitter-profile" src="images/reviews/jacob.jpg" alt="">
<p>Love transfer.sh! Will be using it from now on! Thanks for the amazing service we can use from the CLI <a href="https://twitter.com/dutchcoders">@dutchcoders</a>
</p><a href="https://twitter.com/jacoblindgren11/status/516975006501203968">&mdash; Jacob Lindgren (@jacoblindgren11) </a>
</blockquote>

</div>
<div class="col-md-6 col-xs-12">
<blockquote class="twitter-tweet" lang="en">
<img class="twitter-profile" src="images/reviews/dave.jpg" alt="">
<p><a href="https://twitter.com/dutchcoders">@dutchcoders</a> Thanks for transfer.sh. Just used it for a production purpose for a customer. So great, so easy, so https. :)</p>
<a href="https://twitter.com/FloifyDave/status/517383101425516544">
&mdash; Dave Sims (@FloifyDave)</a>
</blockquote>

</div>
</div>
</div>
@@ -177,7 +249,7 @@ alias transfer=transfer</code>

<section id="share">
<div class="wrapper">
<h2> Share the love </h2>
<h2>Share the love</h2>
<ul class="share-buttons">
<li>
<a href="https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Ftransfer.sh&t=" target="_blank" onclick="window.open('https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent(document.URL) + '&t=' + encodeURIComponent(document.URL)); return false"> <i class="icon-facebook"></i>
@@ -202,8 +274,8 @@ alias transfer=transfer</code>
<div class="wrapper">
<i class="icon-mail"></i>
<h2>
Any questions?
</h2>
Any questions?
</h2>
<a href="#" data-uv-trigger class="btn-cta">contact us</a>
</div>
</section>
@@ -219,17 +291,27 @@ alias transfer=transfer</code>
<a href="https://github.com/dutchcoders/transfer.sh/">
<img style="position: absolute; top: 0; right: 0; border: 0" src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png">
</a>

<script>
(function(){var uv=document.createElement('script');uv.type='text/javascript';uv.async=true;uv.src='//widget.uservoice.com/5rkATbLIm8ClJQeOirOhFg.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(uv,s)})()
(function() {
var uv = document.createElement('script');
uv.type = 'text/javascript';
uv.async = true;
uv.src = '//widget.uservoice.com/5rkATbLIm8ClJQeOirOhFg.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(uv, s)
})()
</script>

<!--[if lt IE 7]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->

<script>
(function (b, o, i, l, e, r) {
(function(b, o, i, l, e, r) {
b.GoogleAnalyticsObject = l;
b[l] || (b[l] =
function () {
function() {
(b[l].q = b[l].q || []).push(arguments)
});
b[l].l = +new Date;
@@ -238,8 +320,8 @@ alias transfer=transfer</code>
e.src = '//www.google-analytics.com/analytics.js';
r.parentNode.insertBefore(e, r)
}(window, document, 'script', 'ga'));
ga('create', 'UA-40833733-1', 'transfer.sh');
ga('send', 'pageview');
ga('create', 'UA-40833733-1', 'transfer.sh');
ga('send', 'pageview');
</script>

<script src="scripts/main.js"></script>


+ 3
- 3
transfersh-server/static/scripts/main.js
File diff suppressed because it is too large
Näytä tiedosto


+ 1
- 1
transfersh-server/static/styles/main.css
File diff suppressed because it is too large
Näytä tiedosto


+ 1
- 0
transfersh-web/404.txt Näytä tiedosto

@@ -0,0 +1 @@
404. Not found







+ 154
- 71
transfersh-web/index.html Näytä tiedosto

@@ -16,7 +16,7 @@
<link rel="stylesheet" href="styles/main.css">

<link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:100,200,300' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:300' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:300,400' rel='stylesheet' type='text/css'>

<!-- build:js scripts/vendor/modernizr.js -->
<script src="bower_components/modernizr/modernizr.js"></script>
@@ -24,14 +24,23 @@
</head>

<body>

<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-40833733-1', 'transfer.sh');
ga('send', 'pageview');
(function(i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function() {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-40833733-1', 'transfer.sh');
ga('send', 'pageview');
</script>

<div id="navigation">
<div class="wrapper">
<h1>transfer.sh</h1>
@@ -44,22 +53,21 @@
</div>
</div>


<section id="home">
<div class="wrapper">
<h2>
Upload and share your files
</h2>
Easy file sharing from the command line
</h2>

<div class="row">
<div id="from-terminal" class="box">
<h3>Easy sharing from the command-line</h3>
<div class="row animated fadeInDown">
<div id="from-terminal" class=" box col-md-6 col-xs-12">
<h3>Share from terminal</h3>
<div id="terminal">
<p style='white-space:pre'></p>
</div>
</div>
<div id="from-web" class="">
<h3>From web</h3>
<div id="from-web" class="col-md-6 col-xs-12">
<h3>Share from web</h3>

<div id="web">
<a class="browse" href="#">
@@ -71,8 +79,9 @@
<li>
</li>
</ul>
<div class='span8 all-files' style='margin: 0; opacity: 0;'>
download all files link <a class="download-zip" href="#">zip</a> <a class="download-tar" href="#">tar.gz</a>
<div class='all-files'>
<h4>Download your files:</h4>
<a class="download-zip btn-cta" href="#">zip</a> <a class="download-tar btn-cta" href="#">tar.gz</a>
</div>
<div>
</div>
@@ -80,43 +89,45 @@
</div>

</div>
</div>
<div>
<br>
<br>
<a href="#features" class="btn-cta">learn more</i> </a>
<br>
<br>
</div>
</section>

<section id="features">
<div class="wrapper">
<div class="wrapper container">
<div class="row">
<div class="col-md-3 col-xs-3">
<div class="col-md-3 col-xs-6">
<i class="icon-terminal"></i>
<h3>Made for us with shell</h3>
<h3>Made for use with shell</h3>
</div>
<div class="col-md-3 col-xs-3">
<div class="col-md-3 col-xs-6">
<i class="icon-link"></i>
<h3>Share files just with a URL</h3>
<h3>Share files with a URL</h3>
</div>
<div class="col-md-3 col-xs-3">
<div class="col-md-3 col-xs-6">
<i class="icon-database"></i>
<h3>Upload up to 5 GB</h3>
</div>
<div class="col-md-3 col-xs-3">
<div class="col-md-3 col-xs-6">
<i class="icon-clock"></i>
<h3>Files are stored for 14 days</h3>
<h3>Files stored for 14 days</h3>
</div>
</div>
<div class="row">
<div class="col-md-offset-3 col-md-3 col-xs-3">
<div class="col-md-offset-3 col-md-3 col-xs-6">
<i class="icon-tag"></i>
<h3>For free</h3>

</div>
<div class="col-md-3 col-xs-3">
<div class="col-md-3 col-xs-6">
<i class="icon-lock"></i>

<h3>Encrypt your files</h3>

</div>

</div>
</div>
</section>
@@ -126,52 +137,112 @@
<section id="samples">
<div class="wrapper">
<h2>
Sample use cases
</h2>
Sample use cases
</h2>
<div class="row">
<div class="col-md-6">
<div class="col-md-6 ">
<h3>Uploading</h3>
<h4>Uploading is easy using curl.</h4>
<code>$ curl --upload-file ./hello.txt https://transfer.sh/hello.txt</code>
<h4>Download the file.</h4>
<code>$ curl --upload-file ./hello.txt https://transfer.sh/hello.txt</code>
</div>
<div class="col-md-6">
<div class="col-md-6 ">
<h3>Make an alias</h3>
<h4>Create an alias, and add it to .bashrc for faster use</h4>
<code>$ transfer() {
# write to output to tmpfile because of progress bar
tmpfile=$( mktemp -t transfer )
curl --progress-bar --upload-file $1 https://transfer.sh/$(basename $1) >> $tmpfile;
cat $tmpfile;
rm -f $tmpfile;
}

alias transfer=transfer</code>
<h4>Now you can just use <strong>transfer</strong> command</h4>

<h4>Create an alias, and add it to .bashrc for faster use</h4>
<code>$ transfer() { # write to output to tmpfile because of progress bar tmpfile=$( mktemp -t transfer ) curl --progress-bar --upload-file $1 https://transfer.sh/$(basename $1) >> $tmpfile; cat $tmpfile; rm -f $tmpfile; } alias transfer=transfer</code>
<h4>Now you can just use
<strong>transfer</strong>command</h4>
<code>$transfer hello.txt</code>


</div>
</div>


<a class="btn-cta" data-target="#coll" data-toggle="collapse">More examples</a>

<div class="collapse " id="coll">
<div class="row">
<div class="col-md-6">
<h3>Transfer multiple files</h3>
<h4>Upload multiple files at once
</h4>
<code>$ curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/</code>

<h4>Combining downloads as zip or tar archive</h4>
<code>$ curl https://transfer.sh/(15HKz/hello.txt,15HKz/hello.txt).tar.gz</code>
<br>

<code>$ curl https://transfer.sh/(15HKz/hello.txt,15HKz/hello.txt).zip</code>


</div>
<div class="col-md-6">
<h3>Encrypt your files before the transfer</h3>
<h4>You can encrypt files using gpg. The following command will encrypt the data before it leaves your server using the password you enter and upload it to transfer.sh.</h4>
<h4></h4>
<code>$ cat /tmp/hello.txt|gpg -ac -o-|curl -X PUT --upload-file "-" https://transfer.sh/test.txt</code>
<h4>Encrypt and upload</h4>
<code>$ curl https://transfer.sh/1lDau/test.txt|gpg -o- > /tmp/hello.txt</code>
</div>
</div>

</div>
</div>
</section>

<section id="reviews">
<div class="wrapper">
<div class="row">

<div class="col-md-8 col-md-offset-2 col-xs-12">
<blockquote class="twitter-tweet tweet-xl" lang="en">
<img class="twitter-profile" src="images/reviews/dave.jpg" alt="">
<p><a href="https://twitter.com/dutchcoders">@dutchcoders</a> Thanks for transfer.sh. Just used it for a production purpose for a customer. So great, so easy, so https. :)</p>
<a href="https://twitter.com/FloifyDave/status/517383101425516544">
&mdash; Dave Sims (@FloifyDave)</a>
</blockquote>
</div>
</div>

<div class="row">



<div class="col-md-6 col-xs-12">

<blockquote class="twitter-tweet" lang="en">
<img class="twitter-profile" src="images/reviews/kareem.jpg" alt="">
<p><a href="https://twitter.com/dutchcoders">@dutchcoders</a> love transfer.sh! any change we can *pay* for a self-hosted version?</p><a href="https://twitter.com/kareemk/status/517029789191118849">&mdash; Kareem Kouddous (@kareemk) </a>
</blockquote>

</div>
<div class="col-md-6 col-xs-12">
<blockquote class="twitter-tweet" lang="en">
<img class="twitter-profile" src="images/reviews/pg.jpeg" alt="">
<p><a href="http://t.co/JomAmqWYEB">http://t.co/JomAmqWYEB</a> by <a href="https://twitter.com/dutchcoders">@dutchcoders</a> is pure awesomeness! any chance of source on github? :-)</p><a href="https://twitter.com/drakpz/status/517008058841829376">&mdash; PJ Spagnolatti (@drakpz)</a>
</blockquote>

</div>
</div>

<div class="row">
<div class="col-md-6">
<h3>Transfer multiple files</h3>
<h4>Upload multiple files at once
</h4>
<code>$ curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/</code>
<h4>Combining downloads as zip or tar archive</h4>
<code>$ curl https://transfer.sh/(15HKz/hello.txt,15HKz/hello.txt).tar.gz</code>
<br>
<code>$ curl https://transfer.sh/(15HKz/hello.txt,15HKz/hello.txt).zip</code>

<div class="col-md-6 col-xs-12">
<blockquote class="twitter-tweet" lang="en">
<img class="twitter-profile" src="images/reviews/jacob.jpg" alt="">
<p>Love transfer.sh! Will be using it from now on! Thanks for the amazing service we can use from the CLI <a href="https://twitter.com/dutchcoders">@dutchcoders</a>
</p><a href="https://twitter.com/jacoblindgren11/status/516975006501203968">&mdash; Jacob Lindgren (@jacoblindgren11) </a>
</blockquote>

</div>
<div class="col-md-6">
<h3>Encrypt your files before the transfer</h3>
<h4>You can encrypt files using gpg. The following command will encrypt the data before it leaves your server using the password you enter and upload it to transfer.sh.</h4>
<h4></h4>
<code>$ cat /tmp/hello.txt|gpg -ac -o-|curl -X PUT --upload-file "-" https://transfer.sh/test.txt</code>
<h4>Encrypt and upload</h4>
<code>$ curl https://transfer.sh/1lDau/test.txt|gpg -o- > /tmp/hello.txt</code>
<div class="col-md-6 col-xs-12">
<blockquote class="twitter-tweet" lang="en">
<img class="twitter-profile" src="images/reviews/lars.jpg" alt="">
<p>transfer.sh is my latest fav service! Try simple command-line and web file sharing! <a href="https://t.co/FSrsb1JKJd">https://t.co/FSrsb1JKJd</a>&#10;Thanks <a href="https://twitter.com/dutchcoders">@dutchcoders</a> !</p> <a href="https://twitter.com/arvestad/status/519507976491499521">&mdash; Lars Arvestad (@arvestad)</a>
</blockquote>
</div>
</div>
</div>
@@ -179,7 +250,7 @@ alias transfer=transfer</code>

<section id="share">
<div class="wrapper">
<h2> Share the love </h2>
<h2>Share the love</h2>
<ul class="share-buttons">
<li>
<a href="https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Ftransfer.sh&t=" target="_blank" onclick="window.open('https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent(document.URL) + '&t=' + encodeURIComponent(document.URL)); return false;"> <i class="icon-facebook"></i>
@@ -204,8 +275,8 @@ alias transfer=transfer</code>
<div class="wrapper">
<i class="icon-mail"></i>
<h2>
Any questions?
</h2>
Any questions?
</h2>
<a href="#" data-uv-trigger class="btn-cta">contact us</a>
</div>
</section>
@@ -221,17 +292,27 @@ alias transfer=transfer</code>
<a href="https://github.com/dutchcoders/transfer.sh/">
<img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png">
</a>

<script>
(function(){var uv=document.createElement('script');uv.type='text/javascript';uv.async=true;uv.src='//widget.uservoice.com/5rkATbLIm8ClJQeOirOhFg.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(uv,s)})()
(function() {
var uv = document.createElement('script');
uv.type = 'text/javascript';
uv.async = true;
uv.src = '//widget.uservoice.com/5rkATbLIm8ClJQeOirOhFg.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(uv, s)
})()
</script>

<!--[if lt IE 7]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->

<script>
(function (b, o, i, l, e, r) {
(function(b, o, i, l, e, r) {
b.GoogleAnalyticsObject = l;
b[l] || (b[l] =
function () {
function() {
(b[l].q = b[l].q || []).push(arguments)
});
b[l].l = +new Date;
@@ -240,17 +321,19 @@ alias transfer=transfer</code>
e.src = '//www.google-analytics.com/analytics.js';
r.parentNode.insertBefore(e, r)
}(window, document, 'script', 'ga'));
ga('create', 'UA-40833733-1', 'transfer.sh');
ga('send', 'pageview');
ga('create', 'UA-40833733-1', 'transfer.sh');
ga('send', 'pageview');
</script>

<!-- build:js scripts/main.js -->
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/typed.js/js/typed.js"></script>
<script src="bower_components/realistic-typewriter.js/build/typewriter-bundle.min.js"></script>
<script src="bower_components/uri.js/src/URI.min.js"></script>
<script src="bower_components/bootstrap/js/transition.js"></script>
<script src="bower_components/bootstrap/js/collapse.js"></script>
<script src="scripts/main.js"></script>
<!-- endbuild -->
</body>

</html>


+ 78
- 26
transfersh-web/scripts/main.js Näytä tiedosto

@@ -1,21 +1,56 @@
$(document).ready(function () {
$(document).ready(function() {

// Terminal typing animation
$("#from-terminal p").typed({
strings: ["curl --upload-file ./hello.txt https://transfer.sh/hello.txt\n######################################################\nhttps://transfer.sh/66nb8/hello.txt \n "],
typeSpeed: 0, // typing speed
backSpeed: 0, // backspacing speed
startDelay: 0, // time before typing starts
backDelay: 500, // pause before backspacing
loop: false, // loop on or off (true or false)
loopCount: false, // number of loops, false = infinite
showCursor: true,
attr: null, // attribute to type, null = text for everything except inputs, which default to placeholder
callback: function(){ } // call function after typing is done
});
/* $("#from-terminal p").typed({
strings: ["curl --upload-file ./hello.txt https://transfer.sh/hello.txt\n######################################################\nhttps://transfer.sh/66nb8/hello.txt \n "],
typeSpeed: 0, // typing speed
backSpeed: 0, // backspacing speed
startDelay: 0, // time before typing starts
backDelay: 500, // pause before backspacing
loop: false, // loop on or off (true or false)
loopCount: false, // number of loops, false = infinite
showCursor: true,
attr: null, // attribute to type, null = text for everything except inputs, which default to placeholder
callback: function(){ } // call function after typing is done
});
*/
var typewriter = require('typewriter');

var twSpan = document.getElementById('terminal');

var tw = typewriter(twSpan).withAccuracy(100)
.withMinimumSpeed(17)
.withMaximumSpeed(25)
.build();

tw.put('$ ')
.waitRange(500, 1000)
.type('curl --upload-file ./hello.txt https://transfer.sh/hello.txt')
.put('<br/>')
.put('https://transfer.sh/66nb8/hello.txt ')
.put('<br/>')
.put('$ ')
.waitRange(500, 1000)
.put('<br/>')
.put('$ ')
.waitRange(500, 1000)
.put('<br/>')
.put('$ ')
.waitRange(500, 1000)
.type('transfer hello.txt')
.put('<br/>')
.type('####################################################')
.put(' 100.0%')
.put('<br/>')
.put('https://transfer.sh/eibhM/hello.txt ')
.put('<br/>')
.put('$ ')
.waitRange(1000, 1500)
.put('<br/>')
.put('$ ')

// Smooth scrolling
$('a[href*=#]:not([href=#])').click(function () {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
@@ -28,28 +63,39 @@ $(document).ready(function () {
}
});


// function resizePages() {
// var h = $(window).height();
// var height = h < 600 ? 600 : h;
/* $('section').css('height',height);
$('#home').css('height',height*0.98);
}
resizePages();*/
});

(function () {
(function() {
var files = Array()

function upload(file) {

$('.browse').addClass('uploading');
var li = $('<li style="clear:both;"/>');

li.append($('<div><div class="progress active upload-progress" style="margin-bottom: 0;"><div class="progress-bar bar" style="width: 0%;"></div></div><p>Uploading... ' + file.name + '</p></div>'));
$(li).appendTo($('.queue'));

var xhr = new XMLHttpRequest();

xhr.upload.addEventListener("progress", function (e) {
xhr.upload.addEventListener("progress", function(e) {
var pc = parseInt((e.loaded / e.total * 100));
$('.upload-progress', $(li)).show();
$('.upload-progress .bar', $(li)).css('width', pc + "%");
}, false);

xhr.onreadystatechange = function (e) {
xhr.onreadystatechange = function(e) {
if (xhr.readyState == 4) {
$('.upload-progress', $(li)).hide();
$('#web').addClass('uploading');
// progress.className = (xhr.status == 200 ? "success" : "failure");
if (xhr.status == 200) {
$(li).html('<a target="_blank" href="' + xhr.responseText + '">' + xhr.responseText + '</a>');
@@ -63,7 +109,7 @@ $(document).ready(function () {
$(".download-zip").attr("href", URI("(" + files.join(",") + ").zip").absoluteTo(location.href).toString());
$(".download-tar").attr("href", URI("(" + files.join(",") + ").tar.gz").absoluteTo(location.href).toString());

$(".all-files").css("opacity", "1");
$(".all-files").addClass('show');

}

@@ -77,15 +123,21 @@ $(document).ready(function () {
xhr.send(file);
};

$(document).bind("dragenter", function (event) {
$(document).bind("dragenter", function(event) {

event.preventDefault();
}).bind("dragover", function (event) {
}).bind("dragover", function(event) {
event.preventDefault();
// show drop indicator
}).bind("dragleave", function (event) {}).bind("drop dragdrop", function (event) {
$('#web').addClass('dragged');
}).bind("dragleave", function(event) {
$('#web').removeClass('dragged');
console.log('asdasd');

}).bind("drop dragdrop", function(event) {
var files = event.originalEvent.target.files || event.originalEvent.dataTransfer.files;

$.each(files, function (index, file) {
$.each(files, function(index, file) {
console.debug(file);
upload(file);
});
@@ -94,15 +146,15 @@ $(document).ready(function () {
event.preventDefault();
});

$('a.browse').on('click', function (event) {
$('a.browse').on('click', function(event) {
$("input[type=file]").click();
return (false);
});



$('input[type=file]').on('change', function (event) {
$.each(this.files, function (index, file) {
$('input[type=file]').on('change', function(event) {
$.each(this.files, function(index, file) {
if (file instanceof Blob) {
upload(file);
}


+ 1
- 1
transfersh-web/styles/bootstrap.less Näytä tiedosto

@@ -16,7 +16,7 @@
//@import "../bower_components/bootstrap/less/buttons.less";

// Components
//@import "../bower_components/bootstrap/less/component-animations.less";
@import "../bower_components/bootstrap/less/component-animations.less";
//@import "../bower_components/bootstrap/less/glyphicons.less";
//@import "../bower_components/bootstrap/less/dropdowns.less";
//@import "../bower_components/bootstrap/less/button-groups.less";


+ 0
- 155
transfersh-web/styles/dropzone.less Näytä tiedosto

@@ -1,155 +0,0 @@
/* The MIT License */
.dropzone,
.dropzone *,
.dropzone-previews,
.dropzone-previews * {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.dropzone {
position: relative;
border: 1px solid rgba(0,0,0,0.08);
background: rgba(0,0,0,0.02);
padding: 1em;
}
.dropzone.dz-clickable {
cursor: pointer;
}
.dropzone.dz-clickable .dz-message,
.dropzone.dz-clickable .dz-message span {
cursor: pointer;
}
.dropzone.dz-clickable * {
cursor: default;
}
.dropzone .dz-message {
opacity: 1;
-ms-filter: none;
filter: none;
}
.dropzone.dz-drag-hover {
border-color: rgba(0,0,0,0.15);
background: rgba(0,0,0,0.04);
}
.dropzone.dz-started .dz-message {
display: none;
}
.dropzone .dz-preview,
.dropzone-previews .dz-preview {
background: rgba(255,255,255,0.8);
position: relative;
display: inline-block;
margin: 17px;
vertical-align: top;
border: 1px solid #acacac;
padding: 6px 6px 6px 6px;
}
.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail],
.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail] {
display: none;
}
.dropzone .dz-preview .dz-details,
.dropzone-previews .dz-preview .dz-details {
width: 50px;
height: 50px;
position: relative;
background: #ebebeb;
padding: 5px;
margin-bottom: 22px;
}
.dropzone .dz-preview .dz-details .dz-filename,
.dropzone-previews .dz-preview .dz-details .dz-filename {
overflow: hidden;
height: 100%;
}
.dropzone .dz-preview .dz-details img,
.dropzone-previews .dz-preview .dz-details img {
position: absolute;
top: 0;
left: 0;
width: 100px;
height: 100px;
}
.dropzone .dz-preview .dz-details .dz-size,
.dropzone-previews .dz-preview .dz-details .dz-size {
position: absolute;
bottom: -28px;
left: 3px;
height: 28px;
line-height: 28px;
}
.dropzone .dz-preview.dz-error .dz-error-mark,
.dropzone-previews .dz-preview.dz-error .dz-error-mark {
display: block;
}
.dropzone .dz-preview.dz-success .dz-success-mark,
.dropzone-previews .dz-preview.dz-success .dz-success-mark {
display: block;
}
.dropzone .dz-preview:hover .dz-details img,
.dropzone-previews .dz-preview:hover .dz-details img {
display: none;
}
.dropzone .dz-preview .dz-success-mark,
.dropzone-previews .dz-preview .dz-success-mark,
.dropzone .dz-preview .dz-error-mark,
.dropzone-previews .dz-preview .dz-error-mark {
display: none;
position: absolute;
width: 40px;
height: 40px;
font-size: 30px;
text-align: center;
right: -10px;
top: -10px;
}
.dropzone .dz-preview .dz-success-mark,
.dropzone-previews .dz-preview .dz-success-mark {
color: #8cc657;
}
.dropzone .dz-preview .dz-error-mark,
.dropzone-previews .dz-preview .dz-error-mark {
color: #ee162d;
}
.dropzone .dz-preview .dz-progress,
.dropzone-previews .dz-preview .dz-progress {
position: absolute;
top: 100px;
left: 6px;
right: 6px;
height: 6px;
background: #d7d7d7;
display: none;
}
.dropzone .dz-preview .dz-progress .dz-upload,
.dropzone-previews .dz-preview .dz-progress .dz-upload {
display: block;
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 0%;
background-color: #8cc657;
}
.dropzone .dz-preview.dz-processing .dz-progress,
.dropzone-previews .dz-preview.dz-processing .dz-progress {
display: block;
}
.dropzone .dz-preview .dz-error-message,
.dropzone-previews .dz-preview .dz-error-message {
display: none;
position: absolute;
top: -5px;
left: -20px;
background: rgba(245,245,245,0.8);
padding: 8px 10px;
color: #800;
min-width: 140px;
max-width: 500px;
z-index: 500;
}
/*.dropzone .dz-preview:hover.dz-error .dz-error-message,
.dropzone-previews .dz-preview:hover.dz-error .dz-error-message {
display: block;
}*/

+ 0
- 59
transfersh-web/styles/home.less Näytä tiedosto

@@ -1,59 +0,0 @@
#home {
text-align: center;
.btn-cta {
margin: 30px 0;
}
h2 {
font-size: 65px;
margin-top: -10px;
margin-bottom: 45px;
}
padding: 50px;
}

#from-terminal,
#from-web {
.make-md-column(6);
h3 {
font-size: 30px;
}
}

#web {
border: 1px dashed @blue;
padding-top: 10px;
i {
font-size: 160px;
color: @blue;

}
p.click {
margin-top: -66px;
font-size: 18px;
}
border-radius: 5px;
}

#web, #terminal {
min-height: 250px;
}

#terminal {
padding: 40px 20px;
text-align: left;
color: #fff;
background: @dark-blue;
background: url(../images/terminal.svg);
background-repeat: no-repeat;
background-size: 100% auto;
font-family: @font-family-mono;
font-size: 11px;

}

.progress {
max-width: 80%;
margin: 0 auto;
}

transfersh-web/styles/contact.less → transfersh-web/styles/includes/contact.less Näytä tiedosto


transfersh-web/styles/global.less → transfersh-web/styles/includes/global.less Näytä tiedosto

@@ -8,17 +8,28 @@

#navigation {
ul {
float: right;
list-style: none;
margin: 30px 0;
}
li {
display: inline-block;
padding: 0 10px;
}
h1 {
text-align: center;
font-family: @font-family-mono;
float:left;
margin-bottom: 15px;

}
@media (min-width: @screen-sm-min) {
ul {
float: right;
margin: 30px 0;
}
h1 {
float: left
}
}
a {
}
}

@@ -52,7 +63,7 @@ h2 {
}

section {
padding: 50px 0
// padding: 50px 0
}

img {

+ 101
- 0
transfersh-web/styles/includes/home.less Näytä tiedosto

@@ -0,0 +1,101 @@
#home {
text-align: center;

h2 {
font-size: 40px;
}

@media (min-width: @screen-sm-min) {
padding: 50px;
h2 {
font-size: 60px;
margin-top: -10px;
margin-bottom: 45px;
}
}

}

#from-terminal,
#from-web {
.make-md-column(6);
h3 {
font-size: 30px;
}
}

#web {
.transition(all @animation-duration ease);
border: 1px dashed @blue;
padding-top: 10px;
i {
font-size: 160px;
color: @blue;
}
p.click {
margin-top: -66px;
font-size: 18px;
}
border-radius: 5px;
.btn-cta {
padding: 5px 10px;
font-size: 14px;

}
}

#web, #terminal {
min-height: 150px;
@media (min-width: @screen-sm-min) {
min-height: 270px;
}
}

#web .uploading {

i {
.transition(font @animation-duration ease);
font-size: 40px;
}
p.click {
margin-top: -10px;
font-size: 14px;
}

}


.dragged {
background: @light-gray;
}


#terminal {
padding: 10px;
text-align: left;
color: #fff;
background: @dark-blue;
background: url(../images/terminal.svg);
background-repeat: no-repeat;
background-size: 100% auto;
font-family: @font-family-mono;
font-size: 11px;
@media (min-width: @screen-sm-min) {
padding: 30px 20px;
}
}

.progress {
max-width: 80%;
margin: 0 auto;
}

.all-files {
display: none;
}

.all-files .show {
display:block;
}

transfersh-web/styles/pages.less → transfersh-web/styles/includes/pages.less Näytä tiedosto

@@ -22,11 +22,25 @@
margin-top: 30px;
}
code {
display:block;
padding: 20px;
background: @light-gray;
display: block;
padding: 10px 20px;
background: @dark-blue;
font-family: @font-family-mono;
font-size: 12px;
border-radius: 5px;
color: #fff;
text-align: left;
font-weight: 400;
text-wrap:none;
}
padding: 50px 0;
text-align: center;
.btn-cta {
margin: 30px 0;
cursor: pointer;
}
h4 {
text-align: left;
}
}

@@ -77,7 +91,7 @@ footer {
#contact {
text-align: center;
i {
font-size: 60px;
font-size: 160px;
color: @blue;
}
padding:100px 0;

+ 50
- 0
transfersh-web/styles/includes/reviews.less Näytä tiedosto

@@ -0,0 +1,50 @@
#reviews {
background: @light-gray;
padding: 130px 0;
.twitter-profile {
float: left;
display: block;
height: 75px;
margin-right: 20px;
-webkit-border-radius: 10px;
margin: auto 15px auto 0;
}
}


blockquote.twitter-tweet {
display: inline-block;
font-size: 15px;
line-height: 20px;
margin: 10px 5px;
padding: 0 16px 16px 16px;

text-align: right;
border: 0;

}


blockquote.twitter-tweet p {
font-size: 17px;
font-weight: normal;
line-height: 20px;
text-align: left;
}
blockquote.twitter-tweet a {
color: inherit;
font-weight: normal;
text-decoration: none;
outline: 0 none;
}
blockquote.twitter-tweet a:hover,
blockquote.twitter-tweet a:focus {
text-decoration: underline;
}
blockquote.tweet-xl p {
font-size: 22px;
line-height: 25px;
}

transfersh-web/styles/transfersh-icons.less → transfersh-web/styles/includes/transfersh-icons.less Näytä tiedosto


+ 3675
- 285
transfersh-web/styles/main.css
File diff suppressed because it is too large
Näytä tiedosto


+ 1
- 1
transfersh-web/styles/main.css.map
File diff suppressed because it is too large
Näytä tiedosto


+ 7
- 8
transfersh-web/styles/main.less Näytä tiedosto

@@ -1,14 +1,13 @@
@import "bootstrap.less";

/*
@import "../bower_components/octicons/octicons/octicons.less";

@octicons-font-path: "../bower_components/octicons/octicons/";*/
@import "../bower_components/animate.less/animate.less";

@import "config";
@import "global";
@import "home";
@import "pages";
@import "dropzone";
@import "includes/global";
@import "includes/home";
@import "includes/pages";
@import "includes/reviews";
@import "includes/transfersh-icons";


@import "transfersh-icons";

Ladataan…
Peruuta
Tallenna