bcms_kcfinder 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (381) hide show
  1. data/COPYRIGHT.txt +23 -0
  2. data/GPL.txt +674 -0
  3. data/Gemfile +5 -0
  4. data/LICENSE.txt +165 -0
  5. data/app/assets/javascripts/bcms_kcfinder/application.js +20 -0
  6. data/app/assets/javascripts/bcms_kcfinder/browse.js +32 -0
  7. data/app/assets/javascripts/bcms_kcfinder/config.js +2 -0
  8. data/app/assets/javascripts/bcms_kcfinder/enable_kcfinder.js +10 -0
  9. data/app/assets/javascripts/bcms_kcfinder/files.js +613 -0
  10. data/app/assets/stylesheets/bcms_kcfinder/application.css +14 -0
  11. data/app/assets/stylesheets/bcms_kcfinder/browse.css +235 -0
  12. data/app/controllers/bcms_kcfinder/application_controller.rb +4 -0
  13. data/app/controllers/bcms_kcfinder/browse_controller.rb +121 -0
  14. data/app/helpers/bcms_kcfinder/application_helper.rb +4 -0
  15. data/app/helpers/bcms_kcfinder/browse_helper.rb +4 -0
  16. data/app/views/bcms_kcfinder/browse/index.html.erb +83 -0
  17. data/app/views/bcms_kcfinder/init.json +226 -0
  18. data/app/views/layouts/bcms_kcfinder/application.html.erb +45 -0
  19. data/config/routes.rb +7 -0
  20. data/lib/bcms_kcfinder.rb +4 -0
  21. data/lib/bcms_kcfinder/engine.rb +73 -0
  22. data/lib/bcms_kcfinder/version.rb +3 -0
  23. data/lib/generators/bcms_kcfinder/install/USAGE +3 -0
  24. data/lib/generators/bcms_kcfinder/install/install_generator.rb +23 -0
  25. data/lib/tasks/bcms_kcfinder_tasks.rake +4 -0
  26. data/lib/tasks/module_tasks.rake +10 -0
  27. data/test/bcms_kcfinder_test.rb +7 -0
  28. data/test/functional/bcms_kcfinder/browse_controller_test.rb +11 -0
  29. data/test/integration/navigation_test.rb +10 -0
  30. data/test/test_helper.rb +15 -0
  31. data/test/unit/helpers/bcms_kcfinder/browse_helper_test.rb +6 -0
  32. data/vendor/assets/javascript/kcfinder/doc/Changelog +141 -0
  33. data/vendor/assets/javascript/kcfinder/doc/LICENSE.GPL +340 -0
  34. data/vendor/assets/javascript/kcfinder/doc/LICENSE.LGPL +167 -0
  35. data/vendor/assets/javascript/kcfinder/doc/README +78 -0
  36. data/vendor/assets/javascript/kcfinder/js/browser/0bject.js +22 -0
  37. data/vendor/assets/javascript/kcfinder/js/browser/clipboard.js +297 -0
  38. data/vendor/assets/javascript/kcfinder/js/browser/dropUpload.js +229 -0
  39. data/vendor/assets/javascript/kcfinder/js/browser/folders.js +368 -0
  40. data/vendor/assets/javascript/kcfinder/js/browser/init.js +186 -0
  41. data/vendor/assets/javascript/kcfinder/js/browser/joiner.php +35 -0
  42. data/vendor/assets/javascript/kcfinder/js/browser/misc.js +383 -0
  43. data/vendor/assets/javascript/kcfinder/js/browser/settings.js +101 -0
  44. data/vendor/assets/javascript/kcfinder/js/browser/toolbar.js +328 -0
  45. data/vendor/assets/javascript/kcfinder/js/helper.js +412 -0
  46. data/vendor/assets/javascript/kcfinder/js/jquery.drag.js +6 -0
  47. data/vendor/assets/javascript/kcfinder/js/jquery.js +18 -0
  48. data/vendor/assets/javascript/kcfinder/js/jquery.rightClick.js +16 -0
  49. data/vendor/assets/javascript/kcfinder/themes/dark/about.txt +15 -0
  50. data/vendor/assets/javascript/kcfinder/themes/dark/img/bg_transparent.png +0 -0
  51. data/vendor/assets/javascript/kcfinder/themes/dark/img/cross.png +0 -0
  52. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/avi.png +0 -0
  53. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/bat.png +0 -0
  54. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/bmp.png +0 -0
  55. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/bz2.png +0 -0
  56. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/ccd.png +0 -0
  57. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/cgi.png +0 -0
  58. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/com.png +0 -0
  59. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/csh.png +0 -0
  60. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/cue.png +0 -0
  61. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/deb.png +0 -0
  62. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/dll.png +0 -0
  63. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/doc.png +0 -0
  64. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/docx.png +0 -0
  65. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/exe.png +0 -0
  66. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/fla.png +0 -0
  67. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/flv.png +0 -0
  68. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/fon.png +0 -0
  69. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/gif.png +0 -0
  70. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/gz.png +0 -0
  71. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/htm.png +0 -0
  72. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/html.png +0 -0
  73. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/ini.png +0 -0
  74. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/iso.png +0 -0
  75. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/jar.png +0 -0
  76. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/java.png +0 -0
  77. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/jpeg.png +0 -0
  78. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/jpg.png +0 -0
  79. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/js.png +0 -0
  80. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/mds.png +0 -0
  81. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/mdx.png +0 -0
  82. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/mid.png +0 -0
  83. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/midi.png +0 -0
  84. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/mkv.png +0 -0
  85. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/mov.png +0 -0
  86. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/mp3.png +0 -0
  87. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/mpeg.png +0 -0
  88. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/mpg.png +0 -0
  89. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/nfo.png +0 -0
  90. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/nrg.png +0 -0
  91. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/ogg.png +0 -0
  92. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/pdf.png +0 -0
  93. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/php.png +0 -0
  94. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/phps.png +0 -0
  95. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/pl.png +0 -0
  96. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/pm.png +0 -0
  97. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/png.png +0 -0
  98. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/ppt.png +0 -0
  99. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/pptx.png +0 -0
  100. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/qt.png +0 -0
  101. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/rpm.png +0 -0
  102. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/rtf.png +0 -0
  103. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/sh.png +0 -0
  104. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/srt.png +0 -0
  105. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/sub.png +0 -0
  106. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/swf.png +0 -0
  107. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/tgz.png +0 -0
  108. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/tif.png +0 -0
  109. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/tiff.png +0 -0
  110. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/torrent.png +0 -0
  111. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/ttf.png +0 -0
  112. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/txt.png +0 -0
  113. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/wav.png +0 -0
  114. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/wma.png +0 -0
  115. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/xls.png +0 -0
  116. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/xlsx.png +0 -0
  117. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/big/zip.png +0 -0
  118. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/avi.png +0 -0
  119. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/bat.png +0 -0
  120. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/bmp.png +0 -0
  121. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/bz2.png +0 -0
  122. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/ccd.png +0 -0
  123. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/cgi.png +0 -0
  124. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/com.png +0 -0
  125. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/csh.png +0 -0
  126. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/cue.png +0 -0
  127. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/deb.png +0 -0
  128. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/dll.png +0 -0
  129. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/doc.png +0 -0
  130. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/docx.png +0 -0
  131. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/exe.png +0 -0
  132. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/fla.png +0 -0
  133. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/flv.png +0 -0
  134. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/fon.png +0 -0
  135. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/gif.png +0 -0
  136. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/gz.png +0 -0
  137. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/htm.png +0 -0
  138. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/html.png +0 -0
  139. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/ini.png +0 -0
  140. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/iso.png +0 -0
  141. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/jar.png +0 -0
  142. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/java.png +0 -0
  143. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/jpeg.png +0 -0
  144. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/jpg.png +0 -0
  145. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/js.png +0 -0
  146. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/mds.png +0 -0
  147. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/mdx.png +0 -0
  148. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/mid.png +0 -0
  149. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/midi.png +0 -0
  150. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/mkv.png +0 -0
  151. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/mov.png +0 -0
  152. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/mp3.png +0 -0
  153. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/mpeg.png +0 -0
  154. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/mpg.png +0 -0
  155. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/nfo.png +0 -0
  156. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/nrg.png +0 -0
  157. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/ogg.png +0 -0
  158. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/pdf.png +0 -0
  159. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/php.png +0 -0
  160. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/phps.png +0 -0
  161. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/pl.png +0 -0
  162. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/pm.png +0 -0
  163. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/png.png +0 -0
  164. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/ppt.png +0 -0
  165. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/pptx.png +0 -0
  166. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/qt.png +0 -0
  167. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/rpm.png +0 -0
  168. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/rtf.png +0 -0
  169. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/sh.png +0 -0
  170. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/srt.png +0 -0
  171. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/sub.png +0 -0
  172. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/swf.png +0 -0
  173. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/tgz.png +0 -0
  174. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/tif.png +0 -0
  175. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/tiff.png +0 -0
  176. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/torrent.png +0 -0
  177. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/ttf.png +0 -0
  178. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/txt.png +0 -0
  179. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/wav.png +0 -0
  180. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/wma.png +0 -0
  181. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/xls.png +0 -0
  182. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/xlsx.png +0 -0
  183. data/vendor/assets/javascript/kcfinder/themes/dark/img/files/small/zip.png +0 -0
  184. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/about.png +0 -0
  185. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/clipboard-add.png +0 -0
  186. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/clipboard-clear.png +0 -0
  187. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/clipboard.png +0 -0
  188. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/close-clicked.png +0 -0
  189. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/close-hover.png +0 -0
  190. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/close.png +0 -0
  191. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/copy.png +0 -0
  192. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/delete.png +0 -0
  193. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/download.png +0 -0
  194. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/folder-new.png +0 -0
  195. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/maximize.png +0 -0
  196. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/move.png +0 -0
  197. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/refresh.png +0 -0
  198. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/rename.png +0 -0
  199. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/select.png +0 -0
  200. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/settings.png +0 -0
  201. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/upload.png +0 -0
  202. data/vendor/assets/javascript/kcfinder/themes/dark/img/icons/view.png +0 -0
  203. data/vendor/assets/javascript/kcfinder/themes/dark/img/kcf_logo.png +0 -0
  204. data/vendor/assets/javascript/kcfinder/themes/dark/img/loading.gif +0 -0
  205. data/vendor/assets/javascript/kcfinder/themes/dark/img/question.png +0 -0
  206. data/vendor/assets/javascript/kcfinder/themes/dark/img/tree/denied.png +0 -0
  207. data/vendor/assets/javascript/kcfinder/themes/dark/img/tree/folder.png +0 -0
  208. data/vendor/assets/javascript/kcfinder/themes/dark/img/tree/folder_current.png +0 -0
  209. data/vendor/assets/javascript/kcfinder/themes/dark/img/tree/minus.png +0 -0
  210. data/vendor/assets/javascript/kcfinder/themes/dark/img/tree/plus.png +0 -0
  211. data/vendor/assets/javascript/kcfinder/themes/dark/init.js +4 -0
  212. data/vendor/assets/javascript/kcfinder/themes/dark/style.css +560 -0
  213. data/vendor/assets/javascript/kcfinder/themes/oxygen/about.txt +11 -0
  214. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/alert.png +0 -0
  215. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/bg_transparent.png +0 -0
  216. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/confirm.png +0 -0
  217. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/avi.png +0 -0
  218. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/bat.png +0 -0
  219. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/bmp.png +0 -0
  220. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/bz2.png +0 -0
  221. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/ccd.png +0 -0
  222. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/cgi.png +0 -0
  223. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/com.png +0 -0
  224. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/csh.png +0 -0
  225. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/cue.png +0 -0
  226. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/deb.png +0 -0
  227. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/dll.png +0 -0
  228. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/doc.png +0 -0
  229. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/docx.png +0 -0
  230. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/exe.png +0 -0
  231. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/fla.png +0 -0
  232. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/flv.png +0 -0
  233. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/fon.png +0 -0
  234. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/gif.png +0 -0
  235. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/gz.png +0 -0
  236. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/htm.png +0 -0
  237. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/html.png +0 -0
  238. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/ini.png +0 -0
  239. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/iso.png +0 -0
  240. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/jar.png +0 -0
  241. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/java.png +0 -0
  242. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/jpeg.png +0 -0
  243. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/jpg.png +0 -0
  244. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/js.png +0 -0
  245. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/mds.png +0 -0
  246. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/mdx.png +0 -0
  247. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/mid.png +0 -0
  248. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/midi.png +0 -0
  249. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/mkv.png +0 -0
  250. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/mov.png +0 -0
  251. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/mp3.png +0 -0
  252. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/mpeg.png +0 -0
  253. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/mpg.png +0 -0
  254. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/nfo.png +0 -0
  255. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/nrg.png +0 -0
  256. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/ogg.png +0 -0
  257. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/pdf.png +0 -0
  258. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/php.png +0 -0
  259. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/phps.png +0 -0
  260. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/pl.png +0 -0
  261. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/pm.png +0 -0
  262. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/png.png +0 -0
  263. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/ppt.png +0 -0
  264. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/pptx.png +0 -0
  265. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/psd.png +0 -0
  266. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/qt.png +0 -0
  267. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/rar.png +0 -0
  268. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/rpm.png +0 -0
  269. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/rtf.png +0 -0
  270. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/sh.png +0 -0
  271. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/srt.png +0 -0
  272. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/sub.png +0 -0
  273. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/swf.png +0 -0
  274. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/tgz.png +0 -0
  275. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/tif.png +0 -0
  276. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/tiff.png +0 -0
  277. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/torrent.png +0 -0
  278. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/ttf.png +0 -0
  279. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/txt.png +0 -0
  280. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/wav.png +0 -0
  281. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/wma.png +0 -0
  282. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/xls.png +0 -0
  283. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/xlsx.png +0 -0
  284. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/big/zip.png +0 -0
  285. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/avi.png +0 -0
  286. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/bat.png +0 -0
  287. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/bmp.png +0 -0
  288. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/bz2.png +0 -0
  289. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/ccd.png +0 -0
  290. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/cgi.png +0 -0
  291. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/com.png +0 -0
  292. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/csh.png +0 -0
  293. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/cue.png +0 -0
  294. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/deb.png +0 -0
  295. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/dll.png +0 -0
  296. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/doc.png +0 -0
  297. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/docx.png +0 -0
  298. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/exe.png +0 -0
  299. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/fla.png +0 -0
  300. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/flv.png +0 -0
  301. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/fon.png +0 -0
  302. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/gif.png +0 -0
  303. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/gz.png +0 -0
  304. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/htm.png +0 -0
  305. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/html.png +0 -0
  306. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/ini.png +0 -0
  307. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/iso.png +0 -0
  308. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/jar.png +0 -0
  309. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/java.png +0 -0
  310. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/jpeg.png +0 -0
  311. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/jpg.png +0 -0
  312. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/js.png +0 -0
  313. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/mds.png +0 -0
  314. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/mdx.png +0 -0
  315. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/mid.png +0 -0
  316. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/midi.png +0 -0
  317. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/mkv.png +0 -0
  318. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/mov.png +0 -0
  319. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/mp3.png +0 -0
  320. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/mpeg.png +0 -0
  321. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/mpg.png +0 -0
  322. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/nfo.png +0 -0
  323. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/nrg.png +0 -0
  324. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/ogg.png +0 -0
  325. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/pdf.png +0 -0
  326. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/php.png +0 -0
  327. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/phps.png +0 -0
  328. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/pl.png +0 -0
  329. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/pm.png +0 -0
  330. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/png.png +0 -0
  331. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/ppt.png +0 -0
  332. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/pptx.png +0 -0
  333. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/psd.png +0 -0
  334. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/qt.png +0 -0
  335. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/rar.png +0 -0
  336. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/rpm.png +0 -0
  337. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/rtf.png +0 -0
  338. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/sh.png +0 -0
  339. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/srt.png +0 -0
  340. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/sub.png +0 -0
  341. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/swf.png +0 -0
  342. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/tgz.png +0 -0
  343. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/tif.png +0 -0
  344. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/tiff.png +0 -0
  345. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/torrent.png +0 -0
  346. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/ttf.png +0 -0
  347. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/txt.png +0 -0
  348. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/wav.png +0 -0
  349. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/wma.png +0 -0
  350. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/xls.png +0 -0
  351. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/xlsx.png +0 -0
  352. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/files/small/zip.png +0 -0
  353. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/about.png +0 -0
  354. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/clipboard-add.png +0 -0
  355. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/clipboard-clear.png +0 -0
  356. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/clipboard.png +0 -0
  357. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/close-clicked.png +0 -0
  358. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/close-hover.png +0 -0
  359. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/close.png +0 -0
  360. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/copy.png +0 -0
  361. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/delete.png +0 -0
  362. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/download.png +0 -0
  363. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/folder-new.png +0 -0
  364. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/maximize.png +0 -0
  365. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/move.png +0 -0
  366. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/refresh.png +0 -0
  367. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/rename.png +0 -0
  368. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/select.png +0 -0
  369. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/settings.png +0 -0
  370. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/upload.png +0 -0
  371. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/icons/view.png +0 -0
  372. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/kcf_logo.png +0 -0
  373. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/loading.gif +0 -0
  374. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/tree/denied.png +0 -0
  375. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/tree/folder.png +0 -0
  376. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/tree/folder_current.png +0 -0
  377. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/tree/minus.png +0 -0
  378. data/vendor/assets/javascript/kcfinder/themes/oxygen/img/tree/plus.png +0 -0
  379. data/vendor/assets/javascript/kcfinder/themes/oxygen/init.js +4 -0
  380. data/vendor/assets/javascript/kcfinder/themes/oxygen/style.css +566 -0
  381. metadata +453 -0
@@ -0,0 +1,229 @@
1
+
2
+ /** This file is part of KCFinder project
3
+ *
4
+ * @desc Upload files using drag and drop
5
+ * @package KCFinder
6
+ * @version 2.51
7
+ * @author Forum user (updated by Pavel Tzonkov)
8
+ * @copyright 2010, 2011 KCFinder Project
9
+ * @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2
10
+ * @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2
11
+ * @link http://kcfinder.sunhater.com
12
+ */
13
+
14
+ browser.initDropUpload = function() {
15
+ if ((typeof(XMLHttpRequest) == 'undefined') ||
16
+ (typeof(document.addEventListener) == 'undefined') ||
17
+ (typeof(File) == 'undefined') ||
18
+ (typeof(FileReader) == 'undefined')
19
+ )
20
+ return;
21
+
22
+ if (!XMLHttpRequest.prototype.sendAsBinary) {
23
+ XMLHttpRequest.prototype.sendAsBinary = function(datastr) {
24
+ var ords = Array.prototype.map.call(datastr, function(x) {
25
+ return x.charCodeAt(0) & 0xff;
26
+ });
27
+ var ui8a = new Uint8Array(ords);
28
+ this.send(ui8a.buffer);
29
+ }
30
+ }
31
+
32
+ var uploadQueue = [],
33
+ uploadInProgress = false,
34
+ filesCount = 0,
35
+ errors = [],
36
+ files = $('#files'),
37
+ folders = $('div.folder > a'),
38
+ boundary = '------multipartdropuploadboundary' + (new Date).getTime(),
39
+ currentFile,
40
+
41
+ filesDragOver = function(e) {
42
+ if (e.preventDefault) e.preventDefault();
43
+ $('#files').addClass('drag');
44
+ return false;
45
+ },
46
+
47
+ filesDragEnter = function(e) {
48
+ if (e.preventDefault) e.preventDefault();
49
+ return false;
50
+ },
51
+
52
+ filesDragLeave = function(e) {
53
+ if (e.preventDefault) e.preventDefault();
54
+ $('#files').removeClass('drag');
55
+ return false;
56
+ },
57
+
58
+ filesDrop = function(e) {
59
+ if (e.preventDefault) e.preventDefault();
60
+ if (e.stopPropagation) e.stopPropagation();
61
+ $('#files').removeClass('drag');
62
+ if (!$('#folders span.current').first().parent().data('writable')) {
63
+ browser.alert("Cannot write to upload folder.");
64
+ return false;
65
+ }
66
+ filesCount += e.dataTransfer.files.length
67
+ for (var i = 0; i < e.dataTransfer.files.length; i++) {
68
+ var file = e.dataTransfer.files[i];
69
+ file.thisTargetDir = browser.dir;
70
+ uploadQueue.push(file);
71
+ }
72
+ processUploadQueue();
73
+ return false;
74
+ },
75
+
76
+ folderDrag = function(e) {
77
+ if (e.preventDefault) e.preventDefault();
78
+ return false;
79
+ },
80
+
81
+ folderDrop = function(e, dir) {
82
+ if (e.preventDefault) e.preventDefault();
83
+ if (e.stopPropagation) e.stopPropagation();
84
+ if (!$(dir).data('writable')) {
85
+ browser.alert("Cannot write to upload folder.");
86
+ return false;
87
+ }
88
+ filesCount += e.dataTransfer.files.length
89
+ for (var i = 0; i < e.dataTransfer.files.length; i++) {
90
+ var file = e.dataTransfer.files[i];
91
+ file.thisTargetDir = $(dir).data('path');
92
+ uploadQueue.push(file);
93
+ }
94
+ processUploadQueue();
95
+ return false;
96
+ };
97
+
98
+ files.get(0).removeEventListener('dragover', filesDragOver, false);
99
+ files.get(0).removeEventListener('dragenter', filesDragEnter, false);
100
+ files.get(0).removeEventListener('dragleave', filesDragLeave, false);
101
+ files.get(0).removeEventListener('drop', filesDrop, false);
102
+
103
+ files.get(0).addEventListener('dragover', filesDragOver, false);
104
+ files.get(0).addEventListener('dragenter', filesDragEnter, false);
105
+ files.get(0).addEventListener('dragleave', filesDragLeave, false);
106
+ files.get(0).addEventListener('drop', filesDrop, false);
107
+
108
+ folders.each(function() {
109
+ var folder = this,
110
+
111
+ dragOver = function(e) {
112
+ $(folder).children('span.folder').addClass('context');
113
+ return folderDrag(e);
114
+ },
115
+
116
+ dragLeave = function(e) {
117
+ $(folder).children('span.folder').removeClass('context');
118
+ return folderDrag(e);
119
+ },
120
+
121
+ drop = function(e) {
122
+ $(folder).children('span.folder').removeClass('context');
123
+ return folderDrop(e, folder);
124
+ };
125
+
126
+ this.removeEventListener('dragover', dragOver, false);
127
+ this.removeEventListener('dragenter', folderDrag, false);
128
+ this.removeEventListener('dragleave', dragLeave, false);
129
+ this.removeEventListener('drop', drop, false);
130
+
131
+ this.addEventListener('dragover', dragOver, false);
132
+ this.addEventListener('dragenter', folderDrag, false);
133
+ this.addEventListener('dragleave', dragLeave, false);
134
+ this.addEventListener('drop', drop, false);
135
+ });
136
+
137
+ function updateProgress(evt) {
138
+ var progress = evt.lengthComputable
139
+ ? Math.round((evt.loaded * 100) / evt.total) + '%'
140
+ : Math.round(evt.loaded / 1024) + " KB";
141
+ $('#loading').html(browser.label("Uploading file {number} of {count}... {progress}", {
142
+ number: filesCount - uploadQueue.length,
143
+ count: filesCount,
144
+ progress: progress
145
+ }));
146
+ }
147
+
148
+ function processUploadQueue() {
149
+ if (uploadInProgress)
150
+ return false;
151
+
152
+ if (uploadQueue && uploadQueue.length) {
153
+ var file = uploadQueue.shift();
154
+ currentFile = file;
155
+ $('#loading').html(browser.label("Uploading file {number} of {count}... {progress}", {
156
+ number: filesCount - uploadQueue.length,
157
+ count: filesCount,
158
+ progress: ""
159
+ }));
160
+ $('#loading').css('display', 'inline');
161
+
162
+ var reader = new FileReader();
163
+ reader.thisFileName = file.name;
164
+ reader.thisFileType = file.type;
165
+ reader.thisFileSize = file.size;
166
+ reader.thisTargetDir = file.thisTargetDir;
167
+
168
+ reader.onload = function(evt) {
169
+ uploadInProgress = true;
170
+
171
+ var postbody = '--' + boundary + '\r\nContent-Disposition: form-data; name="upload[]"';
172
+ if (evt.target.thisFileName)
173
+ postbody += '; filename="' + _.utf8encode(evt.target.thisFileName) + '"';
174
+ postbody += '\r\n';
175
+ if (evt.target.thisFileSize)
176
+ postbody += 'Content-Length: ' + evt.target.thisFileSize + '\r\n';
177
+ postbody += 'Content-Type: ' + evt.target.thisFileType + '\r\n\r\n' + evt.target.result + '\r\n--' + boundary + '\r\nContent-Disposition: form-data; name="dir"\r\n\r\n' + _.utf8encode(evt.target.thisTargetDir) + '\r\n--' + boundary + '\r\n--' + boundary + '--\r\n';
178
+
179
+ var xhr = new XMLHttpRequest();
180
+ xhr.thisFileName = evt.target.thisFileName;
181
+
182
+ if (xhr.upload) {
183
+ xhr.upload.thisFileName = evt.target.thisFileName;
184
+ xhr.upload.addEventListener("progress", updateProgress, false);
185
+ }
186
+ xhr.open('POST', browser.baseGetData('upload'), true);
187
+ xhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary=' + boundary);
188
+ xhr.setRequestHeader('Content-Length', postbody.length);
189
+
190
+ xhr.onload = function(e) {
191
+ $('#loading').css('display', 'none');
192
+ if (browser.dir == reader.thisTargetDir)
193
+ browser.fadeFiles();
194
+ uploadInProgress = false;
195
+ processUploadQueue();
196
+ if (xhr.responseText.substr(0, 1) != '/')
197
+ errors[errors.length] = xhr.responseText;
198
+ }
199
+
200
+ xhr.sendAsBinary(postbody);
201
+ };
202
+
203
+ reader.onerror = function(evt) {
204
+ $('#loading').css('display', 'none');
205
+ uploadInProgress = false;
206
+ processUploadQueue();
207
+ errors[errors.length] = browser.label("Failed to upload {filename}!", {
208
+ filename: evt.target.thisFileName
209
+ });
210
+ };
211
+
212
+ reader.readAsBinaryString(file);
213
+
214
+ } else {
215
+ filesCount = 0;
216
+ var loop = setInterval(function() {
217
+ if (uploadInProgress) return;
218
+ clearInterval(loop);
219
+ if (currentFile.thisTargetDir == browser.dir)
220
+ browser.refresh();
221
+ boundary = '------multipartdropuploadboundary' + (new Date).getTime();
222
+ if (errors.length) {
223
+ browser.alert(errors.join('\n'));
224
+ errors = [];
225
+ }
226
+ }, 333);
227
+ }
228
+ }
229
+ };
@@ -0,0 +1,368 @@
1
+
2
+ /** This file is part of KCFinder project
3
+ *
4
+ * @desc Folder related functionality
5
+ * @package KCFinder
6
+ * @version 2.51
7
+ * @author Pavel Tzonkov <pavelc@users.sourceforge.net>
8
+ * @copyright 2010, 2011 KCFinder Project
9
+ * @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2
10
+ * @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2
11
+ * @link http://kcfinder.sunhater.com
12
+ */
13
+
14
+ browser.initFolders = function() {
15
+ $('#folders').scroll(function() {
16
+ browser.hideDialog();
17
+ });
18
+ $('div.folder > a').unbind();
19
+ $('div.folder > a').bind('click', function() {
20
+ browser.hideDialog();
21
+ return false;
22
+ });
23
+ $('div.folder > a > span.brace').unbind();
24
+ $('div.folder > a > span.brace').click(function() {
25
+ if ($(this).hasClass('opened') || $(this).hasClass('closed'))
26
+ browser.expandDir($(this).parent());
27
+ });
28
+ $('div.folder > a > span.folder').unbind();
29
+ $('div.folder > a > span.folder').click(function() {
30
+ browser.changeDir($(this).parent());
31
+ });
32
+ $('div.folder > a > span.folder').rightClick(function(e) {
33
+ _.unselect();
34
+ browser.menuDir($(this).parent(), e);
35
+ });
36
+
37
+ if ($.browser.msie && $.browser.version &&
38
+ (parseInt($.browser.version.substr(0, 1)) < 8)
39
+ ) {
40
+ var fls = $('div.folder').get();
41
+ var body = $('body').get(0);
42
+ var div;
43
+ $.each(fls, function(i, folder) {
44
+ div = document.createElement('div');
45
+ div.style.display = 'inline';
46
+ div.style.margin = div.style.border = div.style.padding = '0';
47
+ div.innerHTML='<table style="border-collapse:collapse;border:0;margin:0;width:0"><tr><td nowrap="nowrap" style="white-space:nowrap;padding:0;border:0">' + $(folder).html() + "</td></tr></table>";
48
+ body.appendChild(div);
49
+ $(folder).css('width', $(div).innerWidth() + 'px');
50
+ body.removeChild(div);
51
+ });
52
+ }
53
+ };
54
+
55
+ browser.setTreeData = function(data, path) {
56
+ if (!path)
57
+ path = '';
58
+ else if (path.length && (path.substr(path.length - 1, 1) != '/'))
59
+ path += '/';
60
+ path += data.name;
61
+ var selector = '#folders a[href="kcdir:/' + _.escapeDirs(path) + '"]';
62
+ $(selector).data({
63
+ name: data.name,
64
+ path: path,
65
+ readable: data.readable,
66
+ writable: data.writable,
67
+ removable: data.removable,
68
+ hasDirs: data.hasDirs
69
+ });
70
+ $(selector + ' span.folder').addClass(data.current ? 'current' : 'regular');
71
+ if (data.dirs && data.dirs.length) {
72
+ $(selector + ' span.brace').addClass('opened');
73
+ $.each(data.dirs, function(i, cdir) {
74
+ browser.setTreeData(cdir, path + '/');
75
+ });
76
+ } else if (data.hasDirs)
77
+ $(selector + ' span.brace').addClass('closed');
78
+ };
79
+
80
+ browser.buildTree = function(root, path) {
81
+ if (!path) path = "";
82
+ path += root.name;
83
+ var html = '<div class="folder"><a href="kcdir:/' + _.escapeDirs(path) + '"><span class="brace">&nbsp;</span><span class="folder">' + _.htmlData(root.name) + '</span></a>';
84
+ if (root.dirs) {
85
+ html += '<div class="folders">';
86
+ for (var i = 0; i < root.dirs.length; i++) {
87
+ cdir = root.dirs[i];
88
+ html += browser.buildTree(cdir, path + '/');
89
+ }
90
+ html += '</div>';
91
+ }
92
+ html += '</div>';
93
+ return html;
94
+ };
95
+
96
+ browser.expandDir = function(dir) {
97
+ var path = dir.data('path');
98
+ if (dir.children('.brace').hasClass('opened')) {
99
+ dir.parent().children('.folders').hide(500, function() {
100
+ if (path == browser.dir.substr(0, path.length))
101
+ browser.changeDir(dir);
102
+ });
103
+ dir.children('.brace').removeClass('opened');
104
+ dir.children('.brace').addClass('closed');
105
+ } else {
106
+ if (dir.parent().children('.folders').get(0)) {
107
+ dir.parent().children('.folders').show(500);
108
+ dir.children('.brace').removeClass('closed');
109
+ dir.children('.brace').addClass('opened');
110
+ } else if (!$('#loadingDirs').get(0)) {
111
+ dir.parent().append('<div id="loadingDirs">' + this.label("Loading folders...") + '</div>');
112
+ $('#loadingDirs').css('display', 'none');
113
+ $('#loadingDirs').show(200, function() {
114
+ $.ajax({
115
+ type: 'POST',
116
+ dataType: 'json',
117
+ url: browser.baseGetData('expand'),
118
+ data: {dir:path},
119
+ async: false,
120
+ success: function(data) {
121
+ $('#loadingDirs').hide(200, function() {
122
+ $('#loadingDirs').detach();
123
+ });
124
+ if (browser.check4errors(data))
125
+ return;
126
+
127
+ var html = '';
128
+ $.each(data.dirs, function(i, cdir) {
129
+ html += '<div class="folder"><a href="kcdir:/' + _.escapeDirs(path + '/' + cdir.name) + '"><span class="brace">&nbsp;</span><span class="folder">' + _.htmlData(cdir.name) + '</span></a></div>';
130
+ });
131
+ if (html.length) {
132
+ dir.parent().append('<div class="folders">' + html + '</div>');
133
+ var folders = $(dir.parent().children('.folders').first());
134
+ folders.css('display', 'none');
135
+ $(folders).show(500);
136
+ $.each(data.dirs, function(i, cdir) {
137
+ browser.setTreeData(cdir, path);
138
+ });
139
+ }
140
+ if (data.dirs.length) {
141
+ dir.children('.brace').removeClass('closed');
142
+ dir.children('.brace').addClass('opened');
143
+ } else {
144
+ dir.children('.brace').removeClass('opened');
145
+ dir.children('.brace').removeClass('closed');
146
+ }
147
+ browser.initFolders();
148
+ browser.initDropUpload();
149
+ },
150
+ error: function() {
151
+ $('#loadingDirs').detach();
152
+ browser.alert(browser.label("Unknown error."));
153
+ }
154
+ });
155
+ });
156
+ }
157
+ }
158
+ };
159
+
160
+ browser.changeDir = function(dir) {
161
+ if (dir.children('span.folder').hasClass('regular')) {
162
+ $('div.folder > a > span.folder').removeClass('current');
163
+ $('div.folder > a > span.folder').removeClass('regular');
164
+ $('div.folder > a > span.folder').addClass('regular');
165
+ dir.children('span.folder').removeClass('regular');
166
+ dir.children('span.folder').addClass('current');
167
+ $('#files').html(browser.label("Loading files..."));
168
+ $.ajax({
169
+ type: 'POST',
170
+ dataType: 'json',
171
+ url: browser.baseGetData('chDir'),
172
+ data: {dir:dir.data('path')},
173
+ async: false,
174
+ success: function(data) {
175
+ if (browser.check4errors(data))
176
+ return;
177
+ browser.files = data.files;
178
+ browser.orderFiles();
179
+ browser.dir = dir.data('path');
180
+ browser.dirWritable = data.dirWritable;
181
+ var title = "KCFinder: /" + browser.dir;
182
+ document.title = title;
183
+ if (browser.opener.TinyMCE)
184
+ tinyMCEPopup.editor.windowManager.setTitle(window, title);
185
+ browser.statusDir();
186
+ },
187
+ error: function() {
188
+ $('#files').html(browser.label("Unknown error."));
189
+ }
190
+ });
191
+ }
192
+ };
193
+
194
+ browser.statusDir = function() {
195
+ for (var i = 0, size = 0; i < this.files.length; i++)
196
+ size += parseInt(this.files[i].size);
197
+ size = this.humanSize(size);
198
+ $('#fileinfo').html(this.files.length + ' ' + this.label("files") + ' (' + size + ')');
199
+ };
200
+
201
+ browser.menuDir = function(dir, e) {
202
+ var data = dir.data();
203
+ var html = '<div class="menu">';
204
+ if (this.clipboard && this.clipboard.length) {
205
+ if (this.access.files.copy)
206
+ html += '<a href="kcact:cpcbd"' + (!data.writable ? ' class="denied"' : '') + '>' +
207
+ this.label("Copy {count} files", {count: this.clipboard.length}) + '</a>';
208
+ if (this.access.files.move)
209
+ html += '<a href="kcact:mvcbd"' + (!data.writable ? ' class="denied"' : '') + '>' +
210
+ this.label("Move {count} files", {count: this.clipboard.length}) + '</a>';
211
+ if (this.access.files.copy || this.access.files.move)
212
+ html += '<div class="delimiter"></div>';
213
+ }
214
+ html +=
215
+ '<a href="kcact:refresh">' + this.label("Refresh") + '</a>';
216
+ if (this.support.zip) html+=
217
+ '<div class="delimiter"></div>' +
218
+ '<a href="kcact:download">' + this.label("Download") + '</a>';
219
+ if (this.access.dirs.create || this.access.dirs.rename || this.access.dirs['delete'])
220
+ html += '<div class="delimiter"></div>';
221
+ if (this.access.dirs.create)
222
+ html += '<a href="kcact:mkdir"' + (!data.writable ? ' class="denied"' : '') + '>' +
223
+ this.label("New Subfolder...") + '</a>';
224
+ if (this.access.dirs.rename)
225
+ html += '<a href="kcact:mvdir"' + (!data.removable ? ' class="denied"' : '') + '>' +
226
+ this.label("Rename...") + '</a>';
227
+ if (this.access.dirs['delete'])
228
+ html += '<a href="kcact:rmdir"' + (!data.removable ? ' class="denied"' : '') + '>' +
229
+ this.label("Delete") + '</a>';
230
+ html += '</div>';
231
+
232
+ $('#dialog').html(html);
233
+ this.showMenu(e);
234
+ $('div.folder > a > span.folder').removeClass('context');
235
+ if (dir.children('span.folder').hasClass('regular'))
236
+ dir.children('span.folder').addClass('context');
237
+
238
+ if (this.clipboard && this.clipboard.length && data.writable) {
239
+
240
+ $('.menu a[href="kcact:cpcbd"]').click(function() {
241
+ browser.hideDialog();
242
+ browser.copyClipboard(data.path);
243
+ return false;
244
+ });
245
+
246
+ $('.menu a[href="kcact:mvcbd"]').click(function() {
247
+ browser.hideDialog();
248
+ browser.moveClipboard(data.path);
249
+ return false;
250
+ });
251
+ }
252
+
253
+ $('.menu a[href="kcact:refresh"]').click(function() {
254
+ browser.hideDialog();
255
+ browser.refreshDir(dir);
256
+ return false;
257
+ });
258
+
259
+ $('.menu a[href="kcact:download"]').click(function() {
260
+ browser.hideDialog();
261
+ browser.post(browser.baseGetData('downloadDir'), {dir:data.path});
262
+ return false;
263
+ });
264
+
265
+ $('.menu a[href="kcact:mkdir"]').click(function(e) {
266
+ if (!data.writable) return false;
267
+ browser.hideDialog();
268
+ browser.fileNameDialog(
269
+ e, {dir: data.path},
270
+ 'newDir', '', browser.baseGetData('newDir'), {
271
+ title: "New folder name:",
272
+ errEmpty: "Please enter new folder name.",
273
+ errSlash: "Unallowable characters in folder name.",
274
+ errDot: "Folder name shouldn't begins with '.'"
275
+ }, function() {
276
+ browser.refreshDir(dir);
277
+ browser.initDropUpload();
278
+ if (!data.hasDirs) {
279
+ dir.data('hasDirs', true);
280
+ dir.children('span.brace').addClass('closed');
281
+ }
282
+ }
283
+ );
284
+ return false;
285
+ });
286
+
287
+ $('.menu a[href="kcact:mvdir"]').click(function(e) {
288
+ if (!data.removable) return false;
289
+ browser.hideDialog();
290
+ browser.fileNameDialog(
291
+ e, {dir: data.path},
292
+ 'newName', data.name, browser.baseGetData('renameDir'), {
293
+ title: "New folder name:",
294
+ errEmpty: "Please enter new folder name.",
295
+ errSlash: "Unallowable characters in folder name.",
296
+ errDot: "Folder name shouldn't begins with '.'"
297
+ }, function(dt) {
298
+ if (!dt.name) {
299
+ browser.alert(browser.label("Unknown error."));
300
+ return;
301
+ }
302
+ var currentDir = (data.path == browser.dir);
303
+ dir.children('span.folder').html(_.htmlData(dt.name));
304
+ dir.data('name', dt.name);
305
+ dir.data('path', _.dirname(data.path) + '/' + dt.name);
306
+ if (currentDir)
307
+ browser.dir = dir.data('path');
308
+ browser.initDropUpload();
309
+ },
310
+ true
311
+ );
312
+ return false;
313
+ });
314
+
315
+ $('.menu a[href="kcact:rmdir"]').click(function() {
316
+ if (!data.removable) return false;
317
+ browser.hideDialog();
318
+ browser.confirm(
319
+ "Are you sure you want to delete this folder and all its content?",
320
+ function(callBack) {
321
+ $.ajax({
322
+ type: 'POST',
323
+ dataType: 'json',
324
+ url: browser.baseGetData('deleteDir'),
325
+ data: {dir: data.path},
326
+ async: false,
327
+ success: function(data) {
328
+ if (callBack) callBack();
329
+ if (browser.check4errors(data))
330
+ return;
331
+ dir.parent().hide(500, function() {
332
+ var folders = dir.parent().parent();
333
+ var pDir = folders.parent().children('a').first();
334
+ dir.parent().detach();
335
+ if (!folders.children('div.folder').get(0)) {
336
+ pDir.children('span.brace').first().removeClass('opened');
337
+ pDir.children('span.brace').first().removeClass('closed');
338
+ pDir.parent().children('.folders').detach();
339
+ pDir.data('hasDirs', false);
340
+ }
341
+ if (pDir.data('path') == browser.dir.substr(0, pDir.data('path').length))
342
+ browser.changeDir(pDir);
343
+ browser.initDropUpload();
344
+ });
345
+ },
346
+ error: function() {
347
+ if (callBack) callBack();
348
+ browser.alert(browser.label("Unknown error."));
349
+ }
350
+ });
351
+ }
352
+ );
353
+ return false;
354
+ });
355
+ };
356
+
357
+ browser.refreshDir = function(dir) {
358
+ var path = dir.data('path');
359
+ if (dir.children('.brace').hasClass('opened') || dir.children('.brace').hasClass('closed')) {
360
+ dir.children('.brace').removeClass('opened');
361
+ dir.children('.brace').addClass('closed');
362
+ }
363
+ dir.parent().children('.folders').first().detach();
364
+ if (path == browser.dir.substr(0, path.length))
365
+ browser.changeDir(dir);
366
+ browser.expandDir(dir);
367
+ return true;
368
+ };