/src/uploader/docs/partials/uploader-dd-source.mustache

https://bitbucket.org/Quartermain/yui3 · Mustache · 155 lines · 139 code · 16 blank · 0 comment · 10 complexity · 57777eb2e9e4b826e87a88de30e218a8 MD5 · raw file

  1. <style>
  2. #filelist {
  3. margin-top: 15px;
  4. }
  5. #uploadFilesButtonContainer, #selectFilesButtonContainer, #overallProgress {
  6. display: inline-block;
  7. }
  8. #overallProgress {
  9. float: right;
  10. }
  11. .yellowBackground {
  12. background: #F2E699;
  13. }
  14. </style>
  15. <div id="exampleContainer">
  16. <div id="uploaderContainer">
  17. <div id="selectFilesButtonContainer">
  18. </div>
  19. <div id="uploadFilesButtonContainer">
  20. <button type="button" id="uploadFilesButton"
  21. class="yui3-button" style="width:250px; height:35px;">Upload Files</button>
  22. </div>
  23. <div id="overallProgress">
  24. </div>
  25. </div>
  26. <div id="filelist">
  27. <table id="filenames">
  28. <thead>
  29. <tr><th>File name</th><th>File size</th><th>Percent uploaded</th></tr>
  30. <tr id="nofiles">
  31. <td colspan="3" id="ddmessage">
  32. <strong>No files selected.</strong>
  33. </td>
  34. </tr>
  35. </thead>
  36. <tbody>
  37. </tbody>
  38. </table>
  39. </div>
  40. </div>
  41. <script>
  42. YUI({filter:"raw"}).use("uploader", function(Y) {
  43. Y.one("#overallProgress").set("text", "Uploader type: " + Y.Uploader.TYPE);
  44. if (Y.Uploader.TYPE != "none" && !Y.UA.ios) {
  45. var uploader = new Y.Uploader({width: "250px",
  46. height: "35px",
  47. multipleFiles: true,
  48. swfURL: "{{yuiBuildUrl}}/uploader/assets/flashuploader.swf?t=" + Math.random(),
  49. uploadURL: "http://www.yswfblog.com/upload/simpleupload.php",
  50. simLimit: 2,
  51. withCredentials: false
  52. });
  53. var uploadDone = false;
  54. if (Y.Uploader.TYPE == "html5") {
  55. uploader.set("dragAndDropArea", "body");
  56. Y.one("#ddmessage").setHTML("<strong>Drag and drop files here.</strong>");
  57. uploader.on(["dragenter", "dragover"], function (event) {
  58. var ddmessage = Y.one("#ddmessage");
  59. if (ddmessage) {
  60. ddmessage.setHTML("<strong>Files detected, drop them here!</strong>");
  61. ddmessage.addClass("yellowBackground");
  62. }
  63. });
  64. uploader.on(["dragleave", "drop"], function (event) {
  65. var ddmessage = Y.one("#ddmessage");
  66. if (ddmessage) {
  67. ddmessage.setHTML("<strong>Drag and drop files here.</strong>");
  68. ddmessage.removeClass("yellowBackground");
  69. }
  70. });
  71. }
  72. uploader.render("#selectFilesButtonContainer");
  73. uploader.after("fileselect", function (event) {
  74. var fileList = event.fileList;
  75. var fileTable = Y.one("#filenames tbody");
  76. if (fileList.length > 0 && Y.one("#nofiles")) {
  77. Y.one("#nofiles").remove();
  78. }
  79. if (uploadDone) {
  80. uploadDone = false;
  81. fileTable.setHTML("");
  82. }
  83. Y.each(fileList, function (fileInstance) {
  84. fileTable.append("<tr id='" + fileInstance.get("id") + "_row" + "'>" +
  85. "<td class='filename'>" + fileInstance.get("name") + "</td>" +
  86. "<td class='filesize'>" + fileInstance.get("size") + "</td>" +
  87. "<td class='percentdone'>Hasn't started yet</td>");
  88. });
  89. });
  90. uploader.on("uploadprogress", function (event) {
  91. var fileRow = Y.one("#" + event.file.get("id") + "_row");
  92. fileRow.one(".percentdone").set("text", event.percentLoaded + "%");
  93. });
  94. uploader.on("uploadstart", function (event) {
  95. uploader.set("enabled", false);
  96. Y.one("#uploadFilesButton").addClass("yui3-button-disabled");
  97. Y.one("#uploadFilesButton").detach("click");
  98. });
  99. uploader.on("uploadcomplete", function (event) {
  100. var fileRow = Y.one("#" + event.file.get("id") + "_row");
  101. fileRow.one(".percentdone").set("text", "Finished!");
  102. });
  103. uploader.on("totaluploadprogress", function (event) {
  104. Y.one("#overallProgress").setHTML("Total uploaded: <strong>" +
  105. event.percentLoaded + "%" +
  106. "</strong>");
  107. });
  108. uploader.on("alluploadscomplete", function (event) {
  109. uploader.set("enabled", true);
  110. uploader.set("fileList", []);
  111. Y.one("#uploadFilesButton").removeClass("yui3-button-disabled");
  112. Y.one("#uploadFilesButton").on("click", function () {
  113. if (!uploadDone && uploader.get("fileList").length > 0) {
  114. uploader.uploadAll();
  115. }
  116. });
  117. Y.one("#overallProgress").set("text", "Uploads complete!");
  118. uploadDone = true;
  119. });
  120. Y.one("#uploadFilesButton").on("click", function () {
  121. if (!uploadDone && uploader.get("fileList").length > 0) {
  122. uploader.uploadAll();
  123. }
  124. });
  125. }
  126. else {
  127. 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.");
  128. }
  129. });
  130. </script>