src/cm/media/js/lib/yui/yui_3.10.3/docs/uploader/uploader-multiple.html
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
<!DOCTYPE html>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
<html lang="en">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
<head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
    <meta charset="utf-8">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
    <title>Example: Simple Multiple Files Uploader with Progress Tracking</title>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic,700italic">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
    <link rel="stylesheet" href="../../build/cssgrids/cssgrids-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
    <link rel="stylesheet" href="../assets/css/main.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
    <link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
    <link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
    <script src="../../build/yui/yui-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
</head>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
<body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
<!--
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
<a href="https://github.com/yui/yui3"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
-->
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
<div id="doc">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    <div id="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        <h1><img src="http://yuilibrary.com/img/yui-logo.png"></h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
            <h1>Example: Simple Multiple Files Uploader with Progress Tracking</h1>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
    <div class="yui3-g">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
        <div class="yui3-u-3-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
            <div id="main">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
                <div class="content"><div class="intro">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
<p>In this example, the Uploader is used to send multiple images or videos to the server and monitor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
   their upload progress with individual counters.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
<p><strong>Please note:</strong> This example will not work when run from a local filesystem because of security restrictions in the transport protocols used. If you’d like to run this example locally, set up a local web server and launch it from there.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
<p><strong>Also note:</strong> The uploader is not supported on iOS devices (iPhone and iPad), because they lack file upload capability. This example provides a graceful degradation message for all such systems.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
<p><strong>Also note:</strong> The backend script used in these examples does not store any information it receives. Nevertheless, do not submit any sensitive or private data and keep
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
your tests to a few small files to avoid overloading the system.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
<div class="example yui3-skin-sam">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
    <style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
#filelist {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    margin-top: 15px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
#uploadFilesButtonContainer, #selectFilesButtonContainer, #overallProgress {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    display: inline-block;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
#overallProgress {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    float: right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
</style>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
<div id="uploaderContainer">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
    <div id="selectFilesButtonContainer">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    <div id="uploadFilesButtonContainer">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
      <button type="button" id="uploadFilesButton"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
              class="yui3-button" style="width:250px; height:35px;">Upload Files</button>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
    <div id="overallProgress">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
<div id="filelist">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
  <table id="filenames">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
    <thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
       <tr><th>File name</th><th>File size</th><th>Percent uploaded</th></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
       <tr id="nofiles">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
        <td colspan="3">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
            No files have been selected.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
        </td>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
       </tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
    </thead>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
    <tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
    </tbody>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
  </table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
YUI({filter:"raw"}).use("uploader", function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
Y.one("#overallProgress").set("text", "Uploader type: " + Y.Uploader.TYPE);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
   if (Y.Uploader.TYPE != "none" && !Y.UA.ios) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
       var uploader = new Y.Uploader({width: "250px",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
                                      height: "35px",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
                                      multipleFiles: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
                                      swfURL: "../../build/uploader/assets/flashuploader.swf?t=" + Math.random(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
                                      uploadURL: "http://yuilibrary.com/sandbox/upload/",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
                                      simLimit: 2,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
                                      withCredentials: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
                                     });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
       var uploadDone = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
       uploader.render("#selectFilesButtonContainer");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
       uploader.after("fileselect", function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
          var fileList = event.fileList;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
          var fileTable = Y.one("#filenames tbody");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
          if (fileList.length > 0 && Y.one("#nofiles")) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
            Y.one("#nofiles").remove();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
          }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
          if (uploadDone) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
            uploadDone = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
            fileTable.setHTML("");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
          }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
          Y.each(fileList, function (fileInstance) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
              fileTable.append("<tr id='" + fileInstance.get("id") + "_row" + "'>" +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
                                    "<td class='filename'>" + fileInstance.get("name") + "</td>" +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
                                    "<td class='filesize'>" + fileInstance.get("size") + "</td>" +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
                                    "<td class='percentdone'>Hasn't started yet</td>");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
                             });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
       uploader.on("uploadprogress", function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
            var fileRow = Y.one("#" + event.file.get("id") + "_row");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
                fileRow.one(".percentdone").set("text", event.percentLoaded + "%");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
       uploader.on("uploadstart", function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
            uploader.set("enabled", false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
            Y.one("#uploadFilesButton").addClass("yui3-button-disabled");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
            Y.one("#uploadFilesButton").detach("click");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
       uploader.on("uploadcomplete", function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
            var fileRow = Y.one("#" + event.file.get("id") + "_row");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
                fileRow.one(".percentdone").set("text", "Finished!");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
       uploader.on("totaluploadprogress", function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
                Y.one("#overallProgress").setHTML("Total uploaded: <strong>" + event.percentLoaded + "%" + "</strong>");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
       uploader.on("alluploadscomplete", function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
                     uploader.set("enabled", true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
                     uploader.set("fileList", []);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
                     Y.one("#uploadFilesButton").removeClass("yui3-button-disabled");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
                     Y.one("#uploadFilesButton").on("click", function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
                          if (!uploadDone && uploader.get("fileList").length > 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
                             uploader.uploadAll();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
                          }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
                     });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
                     Y.one("#overallProgress").set("text", "Uploads complete!");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
                     uploadDone = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
       Y.one("#uploadFilesButton").on("click", function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
         if (!uploadDone && uploader.get("fileList").length > 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
            uploader.uploadAll();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
         }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
   }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
   else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
       Y.one("#uploaderContainer").set("text", "We are sorry, but to use the uploader, you either need a browser that support HTML5 or have the Flash player installed on your computer.");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
   }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
<h2>Setting up Uploader UI</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
<p>In this example, the UI for the Uploader consists of two buttons, a label field for displaying the uploader type and the overall upload progress, as well as a table for displaying  information about the upload process per file. We first create the markup for the UI:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
<pre class="code prettyprint">&lt;div id=&quot;uploaderContainer&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
   &lt;div id=&quot;selectFilesButtonContainer&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
   &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
   &lt;div id=&quot;uploadFilesButtonContainer&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
     &lt;button type=&quot;button&quot; id=&quot;uploadFilesButton&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
             class=&quot;yui3-button&quot; style=&quot;width:250px; height:35px;&quot;&gt;Upload Files&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
   &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
   &lt;div id=&quot;overallProgress&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
&lt;div id=&quot;filelist&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
  &lt;table id=&quot;filenames&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
    &lt;thead&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
       &lt;tr&gt;&lt;th&gt;File name&lt;&#x2F;th&gt;&lt;th&gt;File size&lt;&#x2F;th&gt;&lt;th&gt;Percent uploaded&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
       &lt;tr id=&quot;nofiles&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
        &lt;td colspan=&quot;3&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
            No files have been selected.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
        &lt;&#x2F;td&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
       &lt;&#x2F;tr&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
    &lt;&#x2F;thead&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
    &lt;tbody&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
    &lt;&#x2F;tbody&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
  &lt;&#x2F;table&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
&lt;&#x2F;div&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
<p>Next, we create, configure and render an instance of the Uploader. Note that we initially check that the <code>Y.Uploader.TYPE</code> property is
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
   not set to 'none' and that we are not trying to run the code on an iOS device (where file uploads are not allowed because of a closed file system).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
   Also note that we are setting a fixed width and height on the uploader, which is necessary in order for the Flash overlay to render correctly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
   in browsers where Flash is used:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
<pre class="code prettyprint">if (Y.Uploader.TYPE != &quot;none&quot; &amp;&amp; !Y.UA.ios) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
    var uploader = new Y.Uploader({width: &quot;250px&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
                                   height: &quot;35px&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
                                   multipleFiles: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
                                   swfURL: &quot;..&#x2F;..&#x2F;build&#x2F;uploader&#x2F;assets&#x2F;flashuploader.swf?t=&quot; + Math.random(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
                                   uploadURL: &quot;http:&#x2F;&#x2F;yuilibrary.com&#x2F;sandbox&#x2F;upload&#x2F;&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
                                   simLimit: 2,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
                                   withCredentials: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
                                  });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
    var uploadDone = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    uploader.render(&quot;#selectFilesButtonContainer&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
    ...</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
<h2>Adding Uploader Event Handlers</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
<p>We can now add handlers for various uploader events. The first handler is for the <code>fileselect</code> event. In it, we retrieve the list of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
   files selected by the user and populate the table with their names, sizes and a field for reporting the percentage uploaded for each
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
   file. The id of each row in the table is prefixed with the unique file id it is associated with, for easy reference later:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
<pre class="code prettyprint">uploader.after(&quot;fileselect&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
   var fileList = event.fileList;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
   var fileTable = Y.one(&quot;#filenames tbody&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
   if (fileList.length &gt; 0 &amp;&amp; Y.one(&quot;#nofiles&quot;)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
     Y.one(&quot;#nofiles&quot;).remove();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
   if (uploadDone) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
     uploadDone = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
     fileTable.setHTML(&quot;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
   }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
   Y.each(fileList, function (fileInstance) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
       fileTable.append(&quot;&lt;tr id=&#x27;&quot; + fileInstance.get(&quot;id&quot;) + &quot;_row&quot; + &quot;&#x27;&gt;&quot; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
                             &quot;&lt;td class=&#x27;filename&#x27;&gt;&quot; + fileInstance.get(&quot;name&quot;) + &quot;&lt;&#x2F;td&gt;&quot; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
                             &quot;&lt;td class=&#x27;filesize&#x27;&gt;&quot; + fileInstance.get(&quot;size&quot;) + &quot;&lt;&#x2F;td&gt;&quot; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
                             &quot;&lt;td class=&#x27;percentdone&#x27;&gt;Hasn&#x27;t started yet&lt;&#x2F;td&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
   });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
<p>For the <code>uploadprogress</code> event, we update the individual file row (using the unique file id prefix to reference each row) with the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
   <code>percentLoaded</code> property from the event payload.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
<pre class="code prettyprint">uploader.on(&quot;uploadprogress&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
     var fileRow = Y.one(&quot;#&quot; + event.file.get(&quot;id&quot;) + &quot;_row&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
         fileRow.one(&quot;.percentdone&quot;).set(&quot;text&quot;, event.percentLoaded + &quot;%&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
<p>When the upload starts, we disable the uploader and the <code>Upload Files</code> button until the upload process is complete:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
<pre class="code prettyprint">uploader.on(&quot;uploadstart&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
     uploader.set(&quot;enabled&quot;, false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
     Y.one(&quot;#uploadFilesButton&quot;).addClass(&quot;yui3-button-disabled&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
     Y.one(&quot;#uploadFilesButton&quot;).detach(&quot;click&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
<p>When each individual file upload completes, we update the table row corresponding with the file with the appropriate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
   message:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
<pre class="code prettyprint">uploader.on(&quot;uploadcomplete&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
     var fileRow = Y.one(&quot;#&quot; + event.file.get(&quot;id&quot;) + &quot;_row&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
         fileRow.one(&quot;.percentdone&quot;).set(&quot;text&quot;, &quot;Finished!&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
<p>On <code>totaluploadprogress</code> events, we report the overall upload progress in the top-right message container:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
<pre class="code prettyprint">uploader.on(&quot;totaluploadprogress&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
         Y.one(&quot;#overallProgress&quot;).setHTML(&quot;Total uploaded: &lt;strong&gt;&quot; + event.percentLoaded + &quot;%&quot; + &quot;&lt;&#x2F;strong&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
<p>We can listen for the <code>alluploadscomplete</code> event to find out when all uploads have completed, re-enable the uploader and report that information accordingly:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
<pre class="code prettyprint">uploader.on(&quot;alluploadscomplete&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
              uploader.set(&quot;enabled&quot;, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
              uploader.set(&quot;fileList&quot;, []);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
              Y.one(&quot;#uploadFilesButton&quot;).removeClass(&quot;yui3-button-disabled&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
              Y.one(&quot;#uploadFilesButton&quot;).on(&quot;click&quot;, function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
                 if (!uploadDone &amp;&amp; uploader.get(&quot;fileList&quot;).length &gt; 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
                    console.log(uploader.get(&quot;fileList&quot;).length);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
                    uploader.uploadAll();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
              });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
              Y.one(&quot;#overallProgress&quot;).set(&quot;text&quot;, &quot;Uploads complete!&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
              uploadDone = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
<p>Finally, we add the <code>click</code> event listener to the "Upload Files" button to start the file upload process:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
<pre class="code prettyprint">Y.one(&quot;#uploadFilesButton&quot;).on(&quot;click&quot;, function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
  if (!uploadDone &amp;&amp; uploader.get(&quot;fileList&quot;).length &gt; 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
     console.log(uploader.get(&quot;fileList&quot;).length);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
     uploader.uploadAll();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
  }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
});</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
<h2>Full Source Code For this Example</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
<pre class="code prettyprint">&lt;style&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
#filelist {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
    margin-top: 15px;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
#uploadFilesButtonContainer, #selectFilesButtonContainer, #overallProgress {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
    display: inline-block;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
#overallProgress {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
    float: right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
&lt;&#x2F;style&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
&lt;div id=&quot;uploaderContainer&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
    &lt;div id=&quot;selectFilesButtonContainer&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
    &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
    &lt;div id=&quot;uploadFilesButtonContainer&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
      &lt;button type=&quot;button&quot; id=&quot;uploadFilesButton&quot;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
              class=&quot;yui3-button&quot; style=&quot;width:250px; height:35px;&quot;&gt;Upload Files&lt;&#x2F;button&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
    &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
    &lt;div id=&quot;overallProgress&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
    &lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
&lt;div id=&quot;filelist&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
  &lt;table id=&quot;filenames&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
    &lt;thead&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
       &lt;tr&gt;&lt;th&gt;File name&lt;&#x2F;th&gt;&lt;th&gt;File size&lt;&#x2F;th&gt;&lt;th&gt;Percent uploaded&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
       &lt;tr id=&quot;nofiles&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
        &lt;td colspan=&quot;3&quot;&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
            No files have been selected.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
        &lt;&#x2F;td&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
       &lt;&#x2F;tr&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    &lt;&#x2F;thead&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
    &lt;tbody&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
    &lt;&#x2F;tbody&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
  &lt;&#x2F;table&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
&lt;&#x2F;div&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
&lt;script&gt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
YUI({filter:&quot;raw&quot;}).use(&quot;uploader&quot;, function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
Y.one(&quot;#overallProgress&quot;).set(&quot;text&quot;, &quot;Uploader type: &quot; + Y.Uploader.TYPE);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
   if (Y.Uploader.TYPE != &quot;none&quot; &amp;&amp; !Y.UA.ios) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
       var uploader = new Y.Uploader({width: &quot;250px&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
                                      height: &quot;35px&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
                                      multipleFiles: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
                                      swfURL: &quot;..&#x2F;..&#x2F;build&#x2F;uploader&#x2F;assets&#x2F;flashuploader.swf?t=&quot; + Math.random(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
                                      uploadURL: &quot;http:&#x2F;&#x2F;yuilibrary.com&#x2F;sandbox&#x2F;upload&#x2F;&quot;,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
                                      simLimit: 2,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
                                      withCredentials: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
                                     });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
       var uploadDone = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
       uploader.render(&quot;#selectFilesButtonContainer&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
       uploader.after(&quot;fileselect&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
          var fileList = event.fileList;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
          var fileTable = Y.one(&quot;#filenames tbody&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
          if (fileList.length &gt; 0 &amp;&amp; Y.one(&quot;#nofiles&quot;)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
            Y.one(&quot;#nofiles&quot;).remove();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
          }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
          if (uploadDone) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
            uploadDone = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
            fileTable.setHTML(&quot;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
          }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
          Y.each(fileList, function (fileInstance) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
              fileTable.append(&quot;&lt;tr id=&#x27;&quot; + fileInstance.get(&quot;id&quot;) + &quot;_row&quot; + &quot;&#x27;&gt;&quot; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
                                    &quot;&lt;td class=&#x27;filename&#x27;&gt;&quot; + fileInstance.get(&quot;name&quot;) + &quot;&lt;&#x2F;td&gt;&quot; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
                                    &quot;&lt;td class=&#x27;filesize&#x27;&gt;&quot; + fileInstance.get(&quot;size&quot;) + &quot;&lt;&#x2F;td&gt;&quot; +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
                                    &quot;&lt;td class=&#x27;percentdone&#x27;&gt;Hasn&#x27;t started yet&lt;&#x2F;td&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
                             });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
       uploader.on(&quot;uploadprogress&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
            var fileRow = Y.one(&quot;#&quot; + event.file.get(&quot;id&quot;) + &quot;_row&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
                fileRow.one(&quot;.percentdone&quot;).set(&quot;text&quot;, event.percentLoaded + &quot;%&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
       uploader.on(&quot;uploadstart&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
            uploader.set(&quot;enabled&quot;, false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
            Y.one(&quot;#uploadFilesButton&quot;).addClass(&quot;yui3-button-disabled&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
            Y.one(&quot;#uploadFilesButton&quot;).detach(&quot;click&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
       uploader.on(&quot;uploadcomplete&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
            var fileRow = Y.one(&quot;#&quot; + event.file.get(&quot;id&quot;) + &quot;_row&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
                fileRow.one(&quot;.percentdone&quot;).set(&quot;text&quot;, &quot;Finished!&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
       uploader.on(&quot;totaluploadprogress&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
                Y.one(&quot;#overallProgress&quot;).setHTML(&quot;Total uploaded: &lt;strong&gt;&quot; + event.percentLoaded + &quot;%&quot; + &quot;&lt;&#x2F;strong&gt;&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
       uploader.on(&quot;alluploadscomplete&quot;, function (event) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
                     uploader.set(&quot;enabled&quot;, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
                     uploader.set(&quot;fileList&quot;, []);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
                     Y.one(&quot;#uploadFilesButton&quot;).removeClass(&quot;yui3-button-disabled&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
                     Y.one(&quot;#uploadFilesButton&quot;).on(&quot;click&quot;, function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
                          if (!uploadDone &amp;&amp; uploader.get(&quot;fileList&quot;).length &gt; 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
                             uploader.uploadAll();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
                          }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
                     });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
                     Y.one(&quot;#overallProgress&quot;).set(&quot;text&quot;, &quot;Uploads complete!&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
                     uploadDone = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
       Y.one(&quot;#uploadFilesButton&quot;).on(&quot;click&quot;, function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
         if (!uploadDone &amp;&amp; uploader.get(&quot;fileList&quot;).length &gt; 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
            uploader.uploadAll();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
         }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
       });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
   }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
   else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
       Y.one(&quot;#uploaderContainer&quot;).set(&quot;text&quot;, &quot;We are sorry, but to use the uploader, you either need a browser that support HTML5 or have the Flash player installed on your computer.&quot;);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
   }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
&lt;&#x2F;script&gt;</pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
        <div class="yui3-u-1-4">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
            <div class="sidebar">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
                    <div class="sidebox">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
                        <div class="hd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
                            <h2 class="no-toc">Examples</h2>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
                        <div class="bd">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
                            <ul class="examples">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
                                        <li data-description="A simple multiple file uploader with progress tracking">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
                                            <a href="uploader-multiple.html">Simple Multiple Files Uploader with Progress Tracking</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
                                        <li data-description="A multiple file uploader with HTML5 Drag-and-Drop Support">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
                                            <a href="uploader-dd.html">Multiple Files Uploader with HTML5 Drag-and-Drop Support</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
                                        <li data-description="A multiple file uploader that submits additional POST vars with each file and receives data from the server">
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
                                            <a href="uploader-data.html">Multiple Files Uploader with POST Variables and Server Data Retrieval</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
                                        </li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
                                    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
                                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
                            </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
                        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
                    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
                
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
            </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
        </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
    </div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
</div>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
<script src="../assets/vendor/prettify/prettify-min.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
<script>prettyPrint();</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
<script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
YUI.Env.Tests = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
    examples: [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
    project: '../assets',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
    assets: '../assets/uploader',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
    name: 'uploader-multiple',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
    title: 'Simple Multiple Files Uploader with Progress Tracking',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
    newWindow: '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
    auto:  false 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
YUI.Env.Tests.examples.push('uploader-multiple');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
YUI.Env.Tests.examples.push('uploader-dd');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
YUI.Env.Tests.examples.push('uploader-data');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
</script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
<script src="../assets/yui/test-runner.js"></script>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
</body>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
</html>