ソースを参照

Merge branch 'master' of github.com:transloadit/uppy

Ifedapo Olarewaju 6 年 前
コミット
9d019cc31c

+ 1 - 0
CHANGELOG.md

@@ -73,6 +73,7 @@ PRs are welcome! Please do open an issue to discuss first if it's a big feature,
 - [ ] test: Add a prepublish test that checks if `npm pack` is not massive
 - [ ] test: Add a prepublish test that checks if `npm pack` is not massive
 - [ ] Add release documentation. eg: test on transloadit website, check examples on the uppy.io website
 - [ ] Add release documentation. eg: test on transloadit website, check examples on the uppy.io website
 - [ ] dashboard: add image cropping, study https://github.com/MattKetmo/darkroomjs/, https://github.com/fengyuanchen/cropperjs #151
 - [ ] dashboard: add image cropping, study https://github.com/MattKetmo/darkroomjs/, https://github.com/fengyuanchen/cropperjs #151
+- [ ] webcam: Pick format based on `restrictions.allowedFileTypes`, eg. use PNG for snapshot instead of JPG if `allowedFileTypes: ['.png']` is set
 
 
 ## 1.0 Goals
 ## 1.0 Goals
 
 

+ 3 - 3
README.md

@@ -11,16 +11,16 @@ Uppy is a sleek, modular JavaScript file uploader that integrates seamlessly wit
 - **Preview** and edit metadata with a nice interface;
 - **Preview** and edit metadata with a nice interface;
 - **Upload** to the final destination, optionally process/encode
 - **Upload** to the final destination, optionally process/encode
 
 
-<img src="https://github.com/transloadit/uppy/raw/master/assets/uppy-demo-2.gif">
+<img src="https://github.com/transloadit/uppy/raw/master/assets/uppy-demo-oct-2018.gif">
 
 
 **[Read the docs](https://uppy.io/docs)** | **[Try Uppy](https://uppy.io/examples/dashboard/)**
 **[Read the docs](https://uppy.io/docs)** | **[Try Uppy](https://uppy.io/examples/dashboard/)**
 
 
+<a href="https://transloadit.com" target="_blank"><img width="185" src="https://github.com/transloadit/uppy/raw/master/assets/developed-by-transloadit.png"></a>
+
 Uppy is being developed by the folks at [Transloadit](https://transloadit.com), a versatile file encoding service.
 Uppy is being developed by the folks at [Transloadit](https://transloadit.com), a versatile file encoding service.
 
 
 ## Example
 ## Example
 
 
-<img width="700" alt="Uppy UI Demo: modal dialog with a few selected files and an upload button" src="https://github.com/transloadit/uppy/raw/master/uppy-screenshot.jpg">
-
 Code used in the above example:
 Code used in the above example:
 
 
 ```js
 ```js

BIN
assets/developed-by-transloadit.png


BIN
assets/uppy-demo-oct-2018.gif


BIN
assets/uppy-demo-oct-2018.mov


BIN
assets/uppy-demo-oct-2018.mov-palette.png


BIN
assets/uppy-demo-oct-2018.mp4


BIN
assets/uppy-demo2.mov-palette.png


+ 2 - 2
bin/to-gif.sh

@@ -12,7 +12,7 @@ __root="$(cd "$(dirname "${__dir}")" && pwd)"
 
 
 width=600
 width=600
 speed=0.7
 speed=0.7
-input="${__root}/assets/uppy-demo2.mov"
+input="${__root}/assets/uppy-demo-oct-2018.mov"
 base="$(basename "${input}")"
 base="$(basename "${input}")"
 output="${__root}/assets/${base}.gif"
 output="${__root}/assets/${base}.gif"
 
 
@@ -29,4 +29,4 @@ ffmpeg \
   "${output}"
   "${output}"
 
 
 du -hs "${output}"
 du -hs "${output}"
-open -a 'Google Chrome' "${output}"
+open -a 'Google Chrome' "${output}"

+ 3 - 3
website/_config.yml

@@ -13,12 +13,12 @@ logo_large: /images/logos/uppy-dog-full.svg
 logo_medium: /images/logos/uppy-dog-head-arrow.svg
 logo_medium: /images/logos/uppy-dog-head-arrow.svg
 logo_icon: /images/logos/uppy-dog-head-arrow.png
 logo_icon: /images/logos/uppy-dog-head-arrow.png
 description: >
 description: >
-    Sleek, modular file uploader that integrates seamlessly with any framework.
-    It fetches files from local disk, Google Drive, Dropbox, Instagram, remote URLs, cameras and other exciting locations, and then uploads them to the final destination.
+    Sleek, modular file uploader that integrates seamlessly with any website or app.
+    It fetches files from local disk, Google Drive, Dropbox, Instagram, remote URLs, cameras etc, and then uploads them to the final destination.
     It’s fast, easy to use and let's you worry about more important problems than building a file uploader.
     It’s fast, easy to use and let's you worry about more important problems than building a file uploader.
 descriptionWho: >
 descriptionWho: >
   Uppy is brought to you by the people
   Uppy is brought to you by the people
-  behind <a href="https://transloadit.com">Transloadit</a> and as such will have first class support
+  behind <a href="https://transloadit.com">Transloadit</a>, and as such will have first class support
   for adding their uploading and encoding backend, but this is opt-in,
   for adding their uploading and encoding backend, but this is opt-in,
   and you can just as easily roll your own.
   and you can just as easily roll your own.
 author: Transloadit
 author: Transloadit

+ 2 - 2
website/src/_data/design_goals.yml

@@ -1,12 +1,12 @@
  - "Lightweight / easy on dependencies"
  - "Lightweight / easy on dependencies"
+ - "Small core, modular architecture. Everything is a plugin"
  - "ES6, with transpiled ES5 versions available"
  - "ES6, with transpiled ES5 versions available"
  - "Usable as a bundle straight from a CDN, as well as a module to import"
  - "Usable as a bundle straight from a CDN, as well as a module to import"
  - "Resumable file uploads via the open tus standard"
  - "Resumable file uploads via the open tus standard"
  - "Robust: retries for all-the-things, avoid showing ‘weird errors’"
  - "Robust: retries for all-the-things, avoid showing ‘weird errors’"
  - "Themable UI with a beautiful default"
  - "Themable UI with a beautiful default"
  - "i18n support: Easily switch languages or supply your own copy"
  - "i18n support: Easily switch languages or supply your own copy"
- - "Compatible with React (Native)"
+ - "Compatible with React (Native) (work on React Native in progress)"
  - "Works great on mobile"
  - "Works great on mobile"
- - "Small core, modular architecture. Everything is a plugin"
  - "Works great with Transloadit. Works great without"
  - "Works great with Transloadit. Works great without"
  - "Offering sugared shortcuts for novice users (presets)"
  - "Offering sugared shortcuts for novice users (presets)"

+ 9 - 1
website/src/api-usage-example.js

@@ -1,9 +1,17 @@
 import Uppy from '@uppy/core'
 import Uppy from '@uppy/core'
 import Dashboard from '@uppy/dashboard'
 import Dashboard from '@uppy/dashboard'
+import Instagram from '@uppy/instagram'
 import Tus from '@uppy/tus'
 import Tus from '@uppy/tus'
 
 
 Uppy()
 Uppy()
-  .use(Dashboard, { trigger: '#select-files' })
+  .use(Dashboard, {
+    trigger: '#select-files',
+    showProgressDetails: true
+  })
+  .use(Instagram, {
+    target: Dashboard,
+    serverUrl: 'https://companion.uppy.io'
+  })
   .use(Tus, { endpoint: 'https://master.tus.io/files/' })
   .use(Tus, { endpoint: 'https://master.tus.io/files/' })
   .on('complete', (result) => {
   .on('complete', (result) => {
     console.log('Upload result:', result)
     console.log('Upload result:', result)

+ 1 - 1
website/src/frontpage-code-sample.ejs

@@ -6,7 +6,7 @@ You can `npm run web:update:frontpage:code:sample` to render this code snippet a
 save it as a layout partial
 save it as a layout partial
 -->
 -->
 {% codeblock lang:bash %}
 {% codeblock lang:bash %}
-$ npm install uppy
+$ npm install @uppy/core @uppy/dashboard @uppy/instagram @uppy/tus 
 {% endcodeblock %}
 {% endcodeblock %}
 
 
 {% include_code lang:js ../api-usage-example.js %}
 {% include_code lang:js ../api-usage-example.js %}

BIN
website/src/images/uppy-demo-oct-2018.mp4


+ 22 - 14
website/themes/uppy/layout/index.ejs

@@ -24,8 +24,8 @@
   <div class="IndexExample-block">
   <div class="IndexExample-block">
     <video class="IndexExample-video"
     <video class="IndexExample-video"
            autoplay loop muted playsinline>
            autoplay loop muted playsinline>
-      <source src="/images/uppy-demo-2.mp4" type="video/mp4">
-      Your browser does not support the video tag, you can <a href="/images/blog/0.25/link-drop-demo.mp4">download the video</a> to watch it.
+      <source src="/images/uppy-demo-oct-2018.mp4" type="video/mp4">
+      Your browser does not support the video tag, you can <a href="/images/uppy-demo-oct-2018.mp4">download the video</a> to watch it.
     </video>
     </video>
     <form id="upload-form">
     <form id="upload-form">
       <input type="file">
       <input type="file">
@@ -42,8 +42,8 @@
 
 
 <section class="IndexAbout">
 <section class="IndexAbout">
   <div class="IndexAbout-item">
   <div class="IndexAbout-item">
-    <img class="IndexAbout-icon" src="/images/traffic-light.svg">
-    <h2 class="IndexSection-title">Work in progress</h2>
+    <!-- <img class="IndexAbout-icon" src="/images/traffic-light.svg"> -->
+    <h2 class="IndexSection-title">What is Uppy</h2>
     <p><%- config.description %></p>
     <p><%- config.description %></p>
   </div>
   </div>
   <div class="IndexAbout-item">
   <div class="IndexAbout-item">
@@ -86,18 +86,26 @@
 
 
 <script>
 <script>
   var TUS_ENDPOINT = 'https://master.tus.io/files/'
   var TUS_ENDPOINT = 'https://master.tus.io/files/'
+  var COMPANION_ENDPOINT = 'http://localhost:3020'
+  if (location.hostname === 'uppy.io') {
+    COMPANION_ENDPOINT = '//companion.uppy.io'
+  }
 
 
   var uppy = Uppy.Core({ debug: true, autoProceed: false })
   var uppy = Uppy.Core({ debug: true, autoProceed: false })
-  .use(Uppy.Dashboard, {
-    trigger: '#select-files',
-    target: '#upload-form',
-    replaceTargetContent: true,
-    metaFields: [
-      { id: 'license', name: 'License', placeholder: 'specify license' },
-      { id: 'caption', name: 'Caption', placeholder: 'describe what the image is about' }
-    ]
-  })
-  .use(Uppy.Tus, { endpoint: TUS_ENDPOINT})
+    .use(Uppy.Dashboard, {
+      trigger: '#select-files',
+      target: '#upload-form',
+      replaceTargetContent: true,
+      metaFields: [
+        { id: 'license', name: 'License', placeholder: 'specify license' },
+        { id: 'caption', name: 'Caption', placeholder: 'describe what the image is about' }
+      ]
+    })
+    .use(Uppy.GoogleDrive, { target: Uppy.Dashboard, serverUrl: COMPANION_ENDPOINT })
+    .use(Uppy.Instagram, { target: Uppy.Dashboard, serverUrl: COMPANION_ENDPOINT })
+    .use(Uppy.Webcam, { target: Uppy.Dashboard })
+    .use(Uppy.Url, { target: Uppy.Dashboard, serverUrl: COMPANION_ENDPOINT })
+    .use(Uppy.Tus, { endpoint: TUS_ENDPOINT})
 
 
   uppy.on('success', (files) => {
   uppy.on('success', (files) => {
     console.log(`Upload complete! We’ve uploaded these files: ${files}`)
     console.log(`Upload complete! We’ve uploaded these files: ${files}`)

+ 10 - 2
website/themes/uppy/layout/partials/frontpage-code-sample.html

@@ -2,14 +2,22 @@
 You can `npm run web:update:frontpage:code:sample` to render this code snippet and
 You can `npm run web:update:frontpage:code:sample` to render this code snippet and
 save it as a layout partial
 save it as a layout partial
 -->
 -->
-<figure class="highlight bash"><table><tr><td class="code"><pre>$ npm install uppy</pre></td></tr></table></figure>
+<figure class="highlight bash"><table><tr><td class="code"><pre>$ <span class="token function">npm</span> <span class="token function">install</span> @uppy/core @uppy/dashboard @uppy/instagram @uppy/tus </pre></td></tr></table></figure>
 
 
 <figure class="highlight js"><table><tr><td class="code"><pre><span class="token keyword">import</span> Uppy <span class="token keyword">from</span> <span class="token string">'@uppy/core'</span>
 <figure class="highlight js"><table><tr><td class="code"><pre><span class="token keyword">import</span> Uppy <span class="token keyword">from</span> <span class="token string">'@uppy/core'</span>
 <span class="token keyword">import</span> Dashboard <span class="token keyword">from</span> <span class="token string">'@uppy/dashboard'</span>
 <span class="token keyword">import</span> Dashboard <span class="token keyword">from</span> <span class="token string">'@uppy/dashboard'</span>
+<span class="token keyword">import</span> Instagram <span class="token keyword">from</span> <span class="token string">'@uppy/instagram'</span>
 <span class="token keyword">import</span> Tus <span class="token keyword">from</span> <span class="token string">'@uppy/tus'</span>
 <span class="token keyword">import</span> Tus <span class="token keyword">from</span> <span class="token string">'@uppy/tus'</span>
 
 
 <span class="token function">Uppy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
 <span class="token function">Uppy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
-  <span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Dashboard<span class="token punctuation">,</span> <span class="token punctuation">{</span> trigger<span class="token punctuation">:</span> <span class="token string">'#select-files'</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
+  <span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Dashboard<span class="token punctuation">,</span> <span class="token punctuation">{</span>
+    trigger<span class="token punctuation">:</span> <span class="token string">'#select-files'</span><span class="token punctuation">,</span>
+    showProgressDetails<span class="token punctuation">:</span> <span class="token boolean">true</span>
+  <span class="token punctuation">}</span><span class="token punctuation">)</span>
+  <span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Instagram<span class="token punctuation">,</span> <span class="token punctuation">{</span>
+    target<span class="token punctuation">:</span> Dashboard<span class="token punctuation">,</span>
+    serverUrl<span class="token punctuation">:</span> <span class="token string">'https://companion.uppy.io'</span>
+  <span class="token punctuation">}</span><span class="token punctuation">)</span>
   <span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Tus<span class="token punctuation">,</span> <span class="token punctuation">{</span> endpoint<span class="token punctuation">:</span> <span class="token string">'https://master.tus.io/files/'</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
   <span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Tus<span class="token punctuation">,</span> <span class="token punctuation">{</span> endpoint<span class="token punctuation">:</span> <span class="token string">'https://master.tus.io/files/'</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
   <span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'complete'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span>result<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
   <span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'complete'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span>result<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
     console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'Upload result:'</span><span class="token punctuation">,</span> result<span class="token punctuation">)</span>
     console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'Upload result:'</span><span class="token punctuation">,</span> result<span class="token punctuation">)</span>

+ 2 - 2
website/themes/uppy/source/css/_index.scss

@@ -118,7 +118,7 @@
 
 
 .IndexAbout-item:first-child {
 .IndexAbout-item:first-child {
   @media #{$screen-medium} {
   @media #{$screen-medium} {
-    padding-left: 130px;
+    // padding-left: 130px;
 
 
     .IndexAbout-icon {
     .IndexAbout-icon {
       top: 20px;
       top: 20px;
@@ -285,7 +285,7 @@
 
 
 .IndexDesignGoals {
 .IndexDesignGoals {
   padding: 4em 1em;
   padding: 4em 1em;
-  background-color: $color-primary;
+  background-color: darken($color-primary, 15%);
   color: $color-white;
   color: $color-white;
   overflow: hidden;
   overflow: hidden;