drg_default_html_editor 0.5.1 → 0.5.50.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (495) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/img/arrows-active.png +0 -0
  3. data/app/assets/images/img/arrows-normal.png +0 -0
  4. data/app/assets/images/{elfinder → img}/crop.gif +0 -0
  5. data/app/assets/images/img/dialogs.png +0 -0
  6. data/app/assets/images/img/icons-big.png +0 -0
  7. data/app/assets/images/img/icons-small.png +0 -0
  8. data/app/assets/images/img/logo.png +0 -0
  9. data/app/assets/images/{elfinder → img}/progress.gif +0 -0
  10. data/app/assets/images/img/quicklook-bg.png +0 -0
  11. data/app/assets/images/img/quicklook-icons.png +0 -0
  12. data/app/assets/images/img/resize.png +0 -0
  13. data/app/assets/images/{elfinder → img}/spinner-mini.gif +0 -0
  14. data/app/assets/images/img/toolbar.png +0 -0
  15. data/app/assets/images/img/volume_icon_box.png +0 -0
  16. data/app/assets/images/img/volume_icon_dropbox.png +0 -0
  17. data/app/assets/images/img/volume_icon_ftp.png +0 -0
  18. data/app/assets/images/img/volume_icon_googledrive.png +0 -0
  19. data/app/assets/images/img/volume_icon_local.png +0 -0
  20. data/app/assets/images/img/volume_icon_onedrive.png +0 -0
  21. data/app/assets/images/img/volume_icon_sql.png +0 -0
  22. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/CHANGES.md +0 -0
  23. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/LICENSE.md +0 -0
  24. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/README.md +0 -0
  25. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/adapters/jquery.js +0 -0
  26. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/build-config.js +0 -0
  27. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/ckeditor.js +0 -0
  28. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/config.js +0 -0
  29. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/contents.css +0 -0
  30. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/af.js +0 -0
  31. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/ar.js +0 -0
  32. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/bg.js +0 -0
  33. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/bn.js +0 -0
  34. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/bs.js +0 -0
  35. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/ca.js +0 -0
  36. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/cs.js +0 -0
  37. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/cy.js +0 -0
  38. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/da.js +0 -0
  39. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/de.js +0 -0
  40. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/el.js +0 -0
  41. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/en-au.js +0 -0
  42. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/en-ca.js +0 -0
  43. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/en-gb.js +0 -0
  44. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/en.js +0 -0
  45. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/eo.js +0 -0
  46. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/es.js +0 -0
  47. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/et.js +0 -0
  48. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/eu.js +0 -0
  49. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/fa.js +0 -0
  50. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/fi.js +0 -0
  51. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/fo.js +0 -0
  52. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/fr-ca.js +0 -0
  53. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/fr.js +0 -0
  54. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/gl.js +0 -0
  55. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/gu.js +0 -0
  56. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/he.js +0 -0
  57. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/hi.js +0 -0
  58. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/hr.js +0 -0
  59. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/hu.js +0 -0
  60. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/id.js +0 -0
  61. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/is.js +0 -0
  62. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/it.js +0 -0
  63. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/ja.js +0 -0
  64. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/ka.js +0 -0
  65. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/km.js +0 -0
  66. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/ko.js +0 -0
  67. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/ku.js +0 -0
  68. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/lt.js +0 -0
  69. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/lv.js +0 -0
  70. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/mk.js +0 -0
  71. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/mn.js +0 -0
  72. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/ms.js +0 -0
  73. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/nb.js +0 -0
  74. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/nl.js +0 -0
  75. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/no.js +0 -0
  76. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/pl.js +0 -0
  77. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/pt-br.js +0 -0
  78. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/pt.js +0 -0
  79. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/ro.js +0 -0
  80. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/ru.js +0 -0
  81. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/si.js +0 -0
  82. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/sk.js +0 -0
  83. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/sl.js +0 -0
  84. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/sq.js +0 -0
  85. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/sr-latn.js +0 -0
  86. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/sr.js +0 -0
  87. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/sv.js +0 -0
  88. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/th.js +0 -0
  89. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/tr.js +0 -0
  90. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/tt.js +0 -0
  91. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/ug.js +0 -0
  92. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/uk.js +0 -0
  93. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/vi.js +0 -0
  94. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/zh-cn.js +0 -0
  95. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/lang/zh.js +0 -0
  96. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/a11yhelp.js +0 -0
  97. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +0 -0
  98. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ar.js +0 -0
  99. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/bg.js +0 -0
  100. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ca.js +0 -0
  101. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/cs.js +0 -0
  102. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/cy.js +0 -0
  103. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/da.js +0 -0
  104. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/de.js +0 -0
  105. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/el.js +0 -0
  106. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/en-gb.js +0 -0
  107. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/en.js +0 -0
  108. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/eo.js +0 -0
  109. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/es.js +0 -0
  110. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/et.js +0 -0
  111. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/fa.js +0 -0
  112. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/fi.js +0 -0
  113. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/fr-ca.js +0 -0
  114. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/fr.js +0 -0
  115. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/gl.js +0 -0
  116. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/gu.js +0 -0
  117. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/he.js +0 -0
  118. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/hi.js +0 -0
  119. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/hr.js +0 -0
  120. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/hu.js +0 -0
  121. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/id.js +0 -0
  122. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/it.js +0 -0
  123. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ja.js +0 -0
  124. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/km.js +0 -0
  125. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ko.js +0 -0
  126. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ku.js +0 -0
  127. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/lt.js +0 -0
  128. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/lv.js +0 -0
  129. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/mk.js +0 -0
  130. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/mn.js +0 -0
  131. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/nb.js +0 -0
  132. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/nl.js +0 -0
  133. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/no.js +0 -0
  134. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/pl.js +0 -0
  135. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/pt-br.js +0 -0
  136. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/pt.js +0 -0
  137. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ro.js +0 -0
  138. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ru.js +0 -0
  139. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/si.js +0 -0
  140. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sk.js +0 -0
  141. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sl.js +0 -0
  142. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sq.js +0 -0
  143. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sr-latn.js +0 -0
  144. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sr.js +0 -0
  145. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sv.js +0 -0
  146. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/th.js +0 -0
  147. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/tr.js +0 -0
  148. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/tt.js +0 -0
  149. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ug.js +0 -0
  150. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/uk.js +0 -0
  151. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/vi.js +0 -0
  152. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/zh-cn.js +0 -0
  153. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/zh.js +0 -0
  154. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/about/dialogs/about.js +0 -0
  155. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
  156. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/about/dialogs/logo_ckeditor.png +0 -0
  157. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/clipboard/dialogs/paste.js +0 -0
  158. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/colordialog/dialogs/colordialog.js +0 -0
  159. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/dialog/dialogDefinition.js +0 -0
  160. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/div/dialogs/div.js +0 -0
  161. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/find/dialogs/find.js +0 -0
  162. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/flash/dialogs/flash.js +0 -0
  163. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/flash/images/placeholder.png +0 -0
  164. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/forms/dialogs/button.js +0 -0
  165. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/forms/dialogs/checkbox.js +0 -0
  166. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/forms/dialogs/form.js +0 -0
  167. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/forms/dialogs/hiddenfield.js +0 -0
  168. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/forms/dialogs/radio.js +0 -0
  169. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/forms/dialogs/select.js +0 -0
  170. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/forms/dialogs/textarea.js +0 -0
  171. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/forms/dialogs/textfield.js +0 -0
  172. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/forms/images/hiddenfield.gif +0 -0
  173. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/icons.png +0 -0
  174. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/icons_hidpi.png +0 -0
  175. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/iframe/dialogs/iframe.js +0 -0
  176. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/iframe/images/placeholder.png +0 -0
  177. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/image/dialogs/image.js +0 -0
  178. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/image/images/noimage.png +0 -0
  179. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/link/dialogs/anchor.js +0 -0
  180. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/link/dialogs/link.js +0 -0
  181. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/link/images/anchor.png +0 -0
  182. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/link/images/hidpi/anchor.png +0 -0
  183. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/liststyle/dialogs/liststyle.js +0 -0
  184. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/magicline/images/hidpi/icon.png +0 -0
  185. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/magicline/images/icon.png +0 -0
  186. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/pagebreak/images/pagebreak.gif +0 -0
  187. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/pastefromword/filter/default.js +0 -0
  188. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/preview/preview.html +0 -0
  189. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/scayt/LICENSE.md +0 -0
  190. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/scayt/README.md +0 -0
  191. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/scayt/dialogs/options.js +0 -0
  192. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/scayt/dialogs/toolbar.css +0 -0
  193. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/showblocks/images/block_address.png +0 -0
  194. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/showblocks/images/block_blockquote.png +0 -0
  195. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/showblocks/images/block_div.png +0 -0
  196. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/showblocks/images/block_h1.png +0 -0
  197. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/showblocks/images/block_h2.png +0 -0
  198. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/showblocks/images/block_h3.png +0 -0
  199. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/showblocks/images/block_h4.png +0 -0
  200. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/showblocks/images/block_h5.png +0 -0
  201. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/showblocks/images/block_h6.png +0 -0
  202. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/showblocks/images/block_p.png +0 -0
  203. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/showblocks/images/block_pre.png +0 -0
  204. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/dialogs/smiley.js +0 -0
  205. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/angel_smile.gif +0 -0
  206. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/angel_smile.png +0 -0
  207. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/angry_smile.gif +0 -0
  208. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/angry_smile.png +0 -0
  209. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/broken_heart.gif +0 -0
  210. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/broken_heart.png +0 -0
  211. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/confused_smile.gif +0 -0
  212. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/confused_smile.png +0 -0
  213. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/cry_smile.gif +0 -0
  214. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/cry_smile.png +0 -0
  215. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/devil_smile.gif +0 -0
  216. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/devil_smile.png +0 -0
  217. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/embaressed_smile.gif +0 -0
  218. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/embarrassed_smile.gif +0 -0
  219. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/embarrassed_smile.png +0 -0
  220. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/envelope.gif +0 -0
  221. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/envelope.png +0 -0
  222. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/heart.gif +0 -0
  223. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/heart.png +0 -0
  224. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/kiss.gif +0 -0
  225. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/kiss.png +0 -0
  226. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/lightbulb.gif +0 -0
  227. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/lightbulb.png +0 -0
  228. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/omg_smile.gif +0 -0
  229. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/omg_smile.png +0 -0
  230. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/regular_smile.gif +0 -0
  231. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/regular_smile.png +0 -0
  232. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/sad_smile.gif +0 -0
  233. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/sad_smile.png +0 -0
  234. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/shades_smile.gif +0 -0
  235. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/shades_smile.png +0 -0
  236. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/teeth_smile.gif +0 -0
  237. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/teeth_smile.png +0 -0
  238. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/thumbs_down.gif +0 -0
  239. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/thumbs_down.png +0 -0
  240. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/thumbs_up.gif +0 -0
  241. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/thumbs_up.png +0 -0
  242. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/tongue_smile.gif +0 -0
  243. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/tongue_smile.png +0 -0
  244. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/tounge_smile.gif +0 -0
  245. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  246. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/whatchutalkingabout_smile.png +0 -0
  247. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/wink_smile.gif +0 -0
  248. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/smiley/images/wink_smile.png +0 -0
  249. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/_translationstatus.txt +0 -0
  250. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ar.js +0 -0
  251. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/bg.js +0 -0
  252. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ca.js +0 -0
  253. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/cs.js +0 -0
  254. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/cy.js +0 -0
  255. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/de.js +0 -0
  256. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/el.js +0 -0
  257. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/en-gb.js +0 -0
  258. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/en.js +0 -0
  259. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/eo.js +0 -0
  260. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/es.js +0 -0
  261. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/et.js +0 -0
  262. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/fa.js +0 -0
  263. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/fi.js +0 -0
  264. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/fr-ca.js +0 -0
  265. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/fr.js +0 -0
  266. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/gl.js +0 -0
  267. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/he.js +0 -0
  268. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/hr.js +0 -0
  269. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/hu.js +0 -0
  270. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/id.js +0 -0
  271. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/it.js +0 -0
  272. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ja.js +0 -0
  273. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/km.js +0 -0
  274. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ku.js +0 -0
  275. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/lv.js +0 -0
  276. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/nb.js +0 -0
  277. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/nl.js +0 -0
  278. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/no.js +0 -0
  279. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/pl.js +0 -0
  280. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/pt-br.js +0 -0
  281. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/pt.js +0 -0
  282. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ru.js +0 -0
  283. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/si.js +0 -0
  284. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/sk.js +0 -0
  285. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/sl.js +0 -0
  286. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/sq.js +0 -0
  287. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/sv.js +0 -0
  288. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/th.js +0 -0
  289. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/tr.js +0 -0
  290. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/tt.js +0 -0
  291. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ug.js +0 -0
  292. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/uk.js +0 -0
  293. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/vi.js +0 -0
  294. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/zh-cn.js +0 -0
  295. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/zh.js +0 -0
  296. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/specialchar/dialogs/specialchar.js +0 -0
  297. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/table/dialogs/table.js +0 -0
  298. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/tabletools/dialogs/tableCell.js +0 -0
  299. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/templates/dialogs/templates.css +0 -0
  300. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/templates/dialogs/templates.js +0 -0
  301. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/templates/templates/default.js +0 -0
  302. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/templates/templates/images/template1.gif +0 -0
  303. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/templates/templates/images/template2.gif +0 -0
  304. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/templates/templates/images/template3.gif +0 -0
  305. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/wsc/LICENSE.md +0 -0
  306. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/wsc/README.md +0 -0
  307. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/wsc/dialogs/ciframe.html +0 -0
  308. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/wsc/dialogs/tmpFrameset.html +0 -0
  309. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/wsc/dialogs/wsc.css +0 -0
  310. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/wsc/dialogs/wsc.js +0 -0
  311. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/plugins/wsc/dialogs/wsc_ie.js +0 -0
  312. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/ajax.html +0 -0
  313. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/api.html +0 -0
  314. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/appendto.html +0 -0
  315. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/assets/inlineall/logo.png +0 -0
  316. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/assets/outputxhtml/outputxhtml.css +0 -0
  317. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/assets/posteddata.php +0 -0
  318. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/assets/sample.jpg +0 -0
  319. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/assets/uilanguages/languages.js +0 -0
  320. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/datafiltering.html +0 -0
  321. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/divreplace.html +0 -0
  322. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/index.html +0 -0
  323. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/inlineall.html +0 -0
  324. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/inlinebycode.html +0 -0
  325. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/inlinetextarea.html +0 -0
  326. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/jquery.html +0 -0
  327. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/plugins/dialog/assets/my_dialog.js +0 -0
  328. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/plugins/dialog/dialog.html +0 -0
  329. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/plugins/enterkey/enterkey.html +0 -0
  330. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla +0 -0
  331. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf +0 -0
  332. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js +0 -0
  333. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/plugins/htmlwriter/outputforflash.html +0 -0
  334. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/plugins/htmlwriter/outputhtml.html +0 -0
  335. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/plugins/magicline/magicline.html +0 -0
  336. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/plugins/toolbar/toolbar.html +0 -0
  337. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/plugins/wysiwygarea/fullpage.html +0 -0
  338. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/readonly.html +0 -0
  339. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/replacebyclass.html +0 -0
  340. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/replacebycode.html +0 -0
  341. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/sample.css +0 -0
  342. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/sample.js +0 -0
  343. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/sample_posteddata.php +0 -0
  344. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/tabindex.html +0 -0
  345. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/uicolor.html +0 -0
  346. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/uilanguages.html +0 -0
  347. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/samples/xhtmlstyle.html +0 -0
  348. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/dialog.css +0 -0
  349. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/dialog_ie.css +0 -0
  350. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/dialog_ie7.css +0 -0
  351. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/dialog_ie8.css +0 -0
  352. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/dialog_iequirks.css +0 -0
  353. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/editor.css +0 -0
  354. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/editor_gecko.css +0 -0
  355. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/editor_ie.css +0 -0
  356. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/editor_ie7.css +0 -0
  357. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/editor_ie8.css +0 -0
  358. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/editor_iequirks.css +0 -0
  359. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/icons.png +0 -0
  360. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/icons_hidpi.png +0 -0
  361. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/images/arrow.png +0 -0
  362. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/images/close.png +0 -0
  363. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/images/hidpi/close.png +0 -0
  364. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/images/hidpi/lock-open.png +0 -0
  365. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/images/hidpi/lock.png +0 -0
  366. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/images/hidpi/refresh.png +0 -0
  367. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/images/lock-open.png +0 -0
  368. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/images/lock.png +0 -0
  369. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/images/refresh.png +0 -0
  370. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/skins/moono/readme.md +0 -0
  371. data/app/assets/javascripts/{drg_default_html_editor/ckeditor → ckeditor}/styles.js +0 -0
  372. data/app/assets/javascripts/drg_default_html_editor_cms.js +5 -5
  373. data/app/assets/javascripts/elfinder/Changelog +494 -0
  374. data/app/assets/javascripts/elfinder/LICENSE.md +15 -0
  375. data/app/assets/javascripts/elfinder/README.md +209 -0
  376. data/app/assets/javascripts/elfinder/bower.json +28 -0
  377. data/app/assets/javascripts/elfinder/composer.json +39 -0
  378. data/app/assets/javascripts/elfinder/css/elfinder.full.css +3034 -0
  379. data/app/assets/javascripts/elfinder/css/elfinder.min.css +9 -0
  380. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/css/theme.css +27 -8
  381. data/app/assets/javascripts/elfinder/elfinder.html +61 -0
  382. data/app/assets/javascripts/elfinder/img/arrows-active.png +0 -0
  383. data/app/assets/javascripts/elfinder/img/arrows-normal.png +0 -0
  384. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/img/crop.gif +0 -0
  385. data/app/assets/javascripts/elfinder/img/dialogs.png +0 -0
  386. data/app/assets/javascripts/elfinder/img/icons-big.png +0 -0
  387. data/app/assets/javascripts/elfinder/img/icons-small.png +0 -0
  388. data/app/assets/javascripts/elfinder/img/logo.png +0 -0
  389. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/img/progress.gif +0 -0
  390. data/app/assets/javascripts/elfinder/img/quicklook-bg.png +0 -0
  391. data/app/assets/javascripts/elfinder/img/quicklook-icons.png +0 -0
  392. data/app/assets/javascripts/elfinder/img/resize.png +0 -0
  393. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/img/spinner-mini.gif +0 -0
  394. data/app/assets/javascripts/elfinder/img/toolbar.png +0 -0
  395. data/app/assets/javascripts/elfinder/img/volume_icon_box.png +0 -0
  396. data/app/assets/javascripts/elfinder/img/volume_icon_dropbox.png +0 -0
  397. data/app/assets/javascripts/elfinder/img/volume_icon_ftp.png +0 -0
  398. data/app/assets/javascripts/elfinder/img/volume_icon_googledrive.png +0 -0
  399. data/app/assets/javascripts/elfinder/img/volume_icon_local.png +0 -0
  400. data/app/assets/javascripts/elfinder/img/volume_icon_onedrive.png +0 -0
  401. data/app/assets/javascripts/elfinder/img/volume_icon_sql.png +0 -0
  402. data/app/assets/javascripts/elfinder/js/elfinder.full.js +23025 -0
  403. data/app/assets/javascripts/elfinder/js/elfinder.min.js +20 -0
  404. data/app/assets/javascripts/elfinder/js/extras/encoding-japanese.min.js +35 -0
  405. data/app/assets/javascripts/elfinder/js/extras/quicklook.googledocs.js +69 -0
  406. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/js/i18n/elfinder.LANG.js +188 -57
  407. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/js/i18n/elfinder.ar.js +112 -27
  408. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/js/i18n/elfinder.bg.js +141 -39
  409. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/js/i18n/elfinder.ca.js +96 -31
  410. data/app/assets/javascripts/elfinder/js/i18n/elfinder.cs.js +469 -0
  411. data/app/assets/javascripts/elfinder/js/i18n/elfinder.da.js +374 -0
  412. data/app/assets/javascripts/elfinder/js/i18n/elfinder.de.js +457 -0
  413. data/app/assets/javascripts/elfinder/js/i18n/elfinder.el.js +374 -0
  414. data/app/assets/javascripts/elfinder/js/i18n/elfinder.es.js +433 -0
  415. data/app/assets/javascripts/elfinder/js/i18n/elfinder.fa.js +374 -0
  416. data/app/assets/javascripts/elfinder/js/i18n/elfinder.fallback.js +11 -0
  417. data/app/assets/javascripts/elfinder/js/i18n/elfinder.fo.js +419 -0
  418. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/js/i18n/elfinder.fr.js +178 -57
  419. data/app/assets/javascripts/elfinder/js/i18n/elfinder.he.js +375 -0
  420. data/app/assets/javascripts/elfinder/js/i18n/elfinder.hr.js +434 -0
  421. data/app/assets/javascripts/elfinder/js/i18n/elfinder.hu.js +447 -0
  422. data/app/assets/javascripts/elfinder/js/i18n/elfinder.id.js +373 -0
  423. data/app/assets/javascripts/elfinder/js/i18n/elfinder.it.js +448 -0
  424. data/app/assets/javascripts/elfinder/js/i18n/elfinder.jp.js +474 -0
  425. data/app/assets/javascripts/elfinder/js/i18n/elfinder.ko.js +374 -0
  426. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/js/i18n/elfinder.nl.js +147 -70
  427. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/js/i18n/elfinder.no.js +117 -23
  428. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/js/i18n/elfinder.pl.js +192 -46
  429. data/app/assets/javascripts/elfinder/js/i18n/elfinder.pt_BR.js +438 -0
  430. data/app/assets/javascripts/elfinder/js/i18n/elfinder.ro.js +417 -0
  431. data/app/assets/javascripts/elfinder/js/i18n/elfinder.ru.js +440 -0
  432. data/app/assets/javascripts/elfinder/js/i18n/elfinder.sk.js +469 -0
  433. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/js/i18n/elfinder.sl.js +63 -37
  434. data/app/assets/javascripts/elfinder/js/i18n/elfinder.sr.js +374 -0
  435. data/app/assets/javascripts/elfinder/js/i18n/elfinder.sv.js +375 -0
  436. data/app/assets/javascripts/elfinder/js/i18n/elfinder.tr.js +468 -0
  437. data/app/assets/javascripts/elfinder/js/i18n/elfinder.ug_CN.js +374 -0
  438. data/app/assets/javascripts/elfinder/js/i18n/elfinder.uk.js +391 -0
  439. data/app/assets/javascripts/elfinder/js/i18n/elfinder.vi.js +374 -0
  440. data/app/assets/javascripts/elfinder/js/i18n/elfinder.zh_CN.js +467 -0
  441. data/app/assets/javascripts/elfinder/js/i18n/elfinder.zh_TW.js +472 -0
  442. data/app/assets/javascripts/{drg_default_html_editor/elfinder → elfinder}/js/proxy/elFinderSupportVer1.js +106 -24
  443. data/app/assets/javascripts/elfinder/main.default.js +94 -0
  444. data/app/assets/javascripts/elfinder/package.json +13 -0
  445. data/app/assets/javascripts/elfinder/sounds/rm.wav +0 -0
  446. data/app/assets/stylesheets/drg_default_html_editor_cms.css +2 -2
  447. data/app/controllers/dc_elfinder_controller.rb +2 -2
  448. data/lib/drg_default_html_editor/version.rb +1 -1
  449. data/lib/patches/drgcms_form_field.rb +5 -4
  450. data/lib/patches/patch_for_elfinder.rb +5 -6
  451. data/lib/tasks/drg_default_html_editor_copy_assets.rake +3 -1
  452. data/test/patch_drgcms_form_field.rb +1 -1
  453. metadata +445 -411
  454. data/app/assets/images/elfinder/arrows-active.png +0 -0
  455. data/app/assets/images/elfinder/arrows-normal.png +0 -0
  456. data/app/assets/images/elfinder/dialogs.png +0 -0
  457. data/app/assets/images/elfinder/icons-big.png +0 -0
  458. data/app/assets/images/elfinder/icons-small.png +0 -0
  459. data/app/assets/images/elfinder/quicklook-bg.png +0 -0
  460. data/app/assets/images/elfinder/quicklook-icons.png +0 -0
  461. data/app/assets/images/elfinder/resize.png +0 -0
  462. data/app/assets/images/elfinder/toolbar.png +0 -0
  463. data/app/assets/javascripts/drg_default_html_editor/elfinder/Changelog.txt +0 -63
  464. data/app/assets/javascripts/drg_default_html_editor/elfinder/README.md +0 -118
  465. data/app/assets/javascripts/drg_default_html_editor/elfinder/css/elfinder.min.css +0 -9
  466. data/app/assets/javascripts/drg_default_html_editor/elfinder/elfinder.html +0 -54
  467. data/app/assets/javascripts/drg_default_html_editor/elfinder/img/arrows-active.png +0 -0
  468. data/app/assets/javascripts/drg_default_html_editor/elfinder/img/arrows-normal.png +0 -0
  469. data/app/assets/javascripts/drg_default_html_editor/elfinder/img/dialogs.png +0 -0
  470. data/app/assets/javascripts/drg_default_html_editor/elfinder/img/icons-big.png +0 -0
  471. data/app/assets/javascripts/drg_default_html_editor/elfinder/img/icons-small.png +0 -0
  472. data/app/assets/javascripts/drg_default_html_editor/elfinder/img/quicklook-bg.png +0 -0
  473. data/app/assets/javascripts/drg_default_html_editor/elfinder/img/quicklook-icons.png +0 -0
  474. data/app/assets/javascripts/drg_default_html_editor/elfinder/img/resize.png +0 -0
  475. data/app/assets/javascripts/drg_default_html_editor/elfinder/img/toolbar.png +0 -0
  476. data/app/assets/javascripts/drg_default_html_editor/elfinder/js/elfinder.min.js +0 -25
  477. data/app/assets/javascripts/drg_default_html_editor/elfinder/js/elfinder.min_1.js +0 -25
  478. data/app/assets/javascripts/drg_default_html_editor/elfinder/js/i18n/elfinder.cs.js +0 -285
  479. data/app/assets/javascripts/drg_default_html_editor/elfinder/js/i18n/elfinder.de.js +0 -280
  480. data/app/assets/javascripts/drg_default_html_editor/elfinder/js/i18n/elfinder.es.js +0 -291
  481. data/app/assets/javascripts/drg_default_html_editor/elfinder/js/i18n/elfinder.hu.js +0 -280
  482. data/app/assets/javascripts/drg_default_html_editor/elfinder/js/i18n/elfinder.jp.js +0 -316
  483. data/app/assets/javascripts/drg_default_html_editor/elfinder/js/i18n/elfinder.pt_BR.js +0 -280
  484. data/app/assets/javascripts/drg_default_html_editor/elfinder/js/i18n/elfinder.ru.js +0 -344
  485. data/app/assets/javascripts/drg_default_html_editor/elfinder/js/i18n/elfinder.zh_CN.js +0 -280
  486. data/app/assets/javascripts/drg_default_html_editor/elfinder/php/MySQLStorage.sql +0 -23
  487. data/app/assets/javascripts/drg_default_html_editor/elfinder/php/connector.php +0 -44
  488. data/app/assets/javascripts/drg_default_html_editor/elfinder/php/elFinder.class.php +0 -1103
  489. data/app/assets/javascripts/drg_default_html_editor/elfinder/php/elFinderConnector.class.php +0 -133
  490. data/app/assets/javascripts/drg_default_html_editor/elfinder/php/elFinderVolumeDriver.class.php +0 -3370
  491. data/app/assets/javascripts/drg_default_html_editor/elfinder/php/elFinderVolumeLocalFileSystem.class.php +0 -835
  492. data/app/assets/javascripts/drg_default_html_editor/elfinder/php/elFinderVolumeMySQL.class.php +0 -896
  493. data/app/assets/javascripts/drg_default_html_editor/elfinder/php/mime.types +0 -512
  494. data/app/assets/stylesheets/drg_default_html_editor/elfinder.min.css +0 -9
  495. data/lib/patch_drgcms_form_field.rb +0 -115
@@ -1,280 +0,0 @@
1
- /**
2
- * Simplified Chinese translation
3
- * @author 翻译者 <deerchao@gmail.com>
4
- * @version 2011-09-08
5
- */
6
- if (elFinder && elFinder.prototype && typeof(elFinder.prototype.i18) == 'object') {
7
- elFinder.prototype.i18.zh_CN = {
8
- translator : '翻译者 &lt;deerchao@gmail.com&gt;',
9
- language : '简体中文',
10
- direction : 'ltr',
11
- messages : {
12
-
13
- /********************************** errors **********************************/
14
- 'error' : '错误',
15
- 'errUnknown' : '未知的错误.',
16
- 'errUnknownCmd' : '未知的命令.',
17
- 'errJqui' : '无效的 jQuery UI 配置. 必须包含 Selectable, draggable 以及 droppable 组件.',
18
- 'errNode' : 'elFinder 需要能创建 DOM 元素.',
19
- 'errURL' : '无效的 elFinder 配置! URL 选项未配置.',
20
- 'errAccess' : '访问被拒绝.',
21
- 'errConnect' : '不能连接到后端.',
22
- 'errAbort' : '连接中止.',
23
- 'errTimeout' : '连接超时.',
24
- 'errNotFound' : '未找到后端.',
25
- 'errResponse' : '无效的后端响应.',
26
- 'errConf' : '无效的后端配置.',
27
- 'errJSON' : 'PHP JSON 模块未安装.',
28
- 'errNoVolumes' : '无可读的卷.',
29
- 'errCmdParams' : '无效的参数, 命令: "$1".',
30
- 'errDataNotJSON' : '响应不符合 JSON 格式.',
31
- 'errDataEmpty' : '响应为空.',
32
- 'errCmdReq' : '后端请求需要命令名称.',
33
- 'errOpen' : '无法打开 "$1".',
34
- 'errNotFolder' : '对象不是文件夹.',
35
- 'errNotFile' : '对象不是文件.',
36
- 'errRead' : '无法读取 "$1".',
37
- 'errWrite' : '无法写入 "$1".',
38
- 'errPerm' : '无权限.',
39
- 'errLocked' : '"$1" 被锁定,不能重命名, 移动或删除.',
40
- 'errExists' : '文件 "$1" 已经存在了.',
41
- 'errInvName' : '无效的文件名.',
42
- 'errFolderNotFound' : '未找到文件夹.',
43
- 'errFileNotFound' : '未找到文件.',
44
- 'errTrgFolderNotFound' : '未找到目标文件夹 "$1".',
45
- 'errPopup' : '浏览器拦截了弹出窗口. 请在选项中允许弹出窗口.',
46
- 'errMkdir' : '不能创建文件夹 "$1".',
47
- 'errMkfile' : '不能创建文件 "$1".',
48
- 'errRename' : '不能重命名 "$1".',
49
- 'errCopyFrom' : '不允许从卷 "$1" 复制.',
50
- 'errCopyTo' : '不允许向卷 "$1" 复制.',
51
- 'errUploadCommon' : '上传出错.',
52
- 'errUpload' : '无法上传 "$1".',
53
- 'errUploadNoFiles' : '未找到要上传的文件.',
54
- 'errMaxSize' : '数据超过了允许的最大大小.',
55
- 'errFileMaxSize' : '文件超过了允许的最大大小.',
56
- 'errUploadMime' : '不允许的文件类型.',
57
- 'errUploadTransfer' : '"$1" 传输错误.',
58
- 'errSave' : '无法保存 "$1".',
59
- 'errCopy' : '无法复制 "$1".',
60
- 'errMove' : '无法移动 "$1".',
61
- 'errCopyInItself' : '不能移动 "$1" 到原有位置.',
62
- 'errRm' : '无法删除 "$1".',
63
- 'errExtract' : '无法从 "$1" 提取文件.',
64
- 'errArchive' : '无法创建压缩包.',
65
- 'errArcType' : '不支持的压缩格式.',
66
- 'errNoArchive' : '文件不是压缩包, 或者不支持该压缩格式.',
67
- 'errCmdNoSupport' : '后端不支持该命令.',
68
-
69
- /******************************* commands names ********************************/
70
- 'cmdarchive' : '创建压缩包',
71
- 'cmdback' : '后退',
72
- 'cmdcopy' : '复制',
73
- 'cmdcut' : '剪切',
74
- 'cmddownload' : '下载',
75
- 'cmdduplicate' : '创建复本',
76
- 'cmdedit' : '编辑文件',
77
- 'cmdextract' : '从压缩包提取文件',
78
- 'cmdforward' : '前进',
79
- 'cmdgetfile' : '选择文件',
80
- 'cmdhelp' : '关于本软件',
81
- 'cmdhome' : '首页',
82
- 'cmdinfo' : '查看信息',
83
- 'cmdmkdir' : '新建文件夹',
84
- 'cmdmkfile' : '新建文本文件',
85
- 'cmdopen' : '打开',
86
- 'cmdpaste' : '粘贴',
87
- 'cmdquicklook' : '预览',
88
- 'cmdreload' : '刷新',
89
- 'cmdrename' : '重命名',
90
- 'cmdrm' : '删除',
91
- 'cmdsearch' : '查找文件',
92
- 'cmdup' : '转到上一级文件夹',
93
- 'cmdupload' : '上传文件',
94
- 'cmdview' : '查看',
95
-
96
- /*********************************** buttons ***********************************/
97
- 'btnClose' : '关闭',
98
- 'btnSave' : '保存',
99
- 'btnRm' : '删除',
100
- 'btnCancel' : '取消',
101
- 'btnNo' : '否',
102
- 'btnYes' : '是',
103
-
104
- /******************************** notifications ********************************/
105
- 'ntfopen' : '打开文件夹',
106
- 'ntffile' : '打开文件',
107
- 'ntfreload' : '刷新文件夹内容',
108
- 'ntfmkdir' : '创建文件夹',
109
- 'ntfmkfile' : '创建文件',
110
- 'ntfrm' : '删除文件',
111
- 'ntfcopy' : '复制文件',
112
- 'ntfmove' : '移动文件',
113
- 'ntfprepare' : '准备复制文件',
114
- 'ntfrename' : '重命名文件',
115
- 'ntfupload' : '上传文件',
116
- 'ntfdownload' : '下载文件',
117
- 'ntfsave' : '保存文件',
118
- 'ntfarchive' : '创建压缩包',
119
- 'ntfextract' : '从压缩包提取文件',
120
- 'ntfsearch' : '搜索文件',
121
- 'ntfsmth' : '正在忙 >_<',
122
-
123
- /************************************ dates **********************************/
124
- 'dateUnknown' : '未知',
125
- 'Today' : '今天',
126
- 'Yesterday' : '昨天',
127
- 'Jan' : '一月',
128
- 'Feb' : '二月',
129
- 'Mar' : '三月',
130
- 'Apr' : '四月',
131
- 'May' : '五月',
132
- 'Jun' : '六月',
133
- 'Jul' : '七月',
134
- 'Aug' : '八月',
135
- 'Sep' : '九月',
136
- 'Oct' : '十月',
137
- 'Nov' : '十一月',
138
- 'Dec' : '十二月',
139
-
140
- /********************************** messages **********************************/
141
- 'confirmReq' : '请确认',
142
- 'confirmRm' : '确定要删除文件吗?<br/>该操作不可撤销!',
143
- 'confirmRepl' : '用新的文件替换原有文件?',
144
- 'apllyAll' : '全部应用',
145
- 'name' : '名称',
146
- 'size' : '大小',
147
- 'perms' : '权限',
148
- 'modify' : '修改于',
149
- 'kind' : '类别',
150
- 'read' : '读取',
151
- 'write' : '写入',
152
- 'noaccess' : '无权限',
153
- 'and' : '和',
154
- 'unknown' : '未知',
155
- 'selectall' : '选择所有文件',
156
- 'selectfiles' : '选择文件',
157
- 'selectffile' : '选择第一个文件',
158
- 'selectlfile' : '选择最后一个文件',
159
- 'viewlist' : '列表视图',
160
- 'viewicons' : '图标视图',
161
- 'places' : '位置',
162
- 'calc' : '计算',
163
- 'path' : '路径',
164
- 'aliasfor' : '别名',
165
- 'locked' : '锁定',
166
- 'dim' : '尺寸',
167
- 'files' : '文件',
168
- 'folders' : '文件夹',
169
- 'items' : '项目',
170
- 'yes' : '是',
171
- 'no' : '否',
172
- 'link' : '链接',
173
- 'searcresult' : '搜索结果',
174
- 'selected' : '选中的项目',
175
- 'about' : '关于',
176
- 'shortcuts' : '快捷键',
177
- 'help' : '帮助',
178
- 'webfm' : '网络文件管理器',
179
- 'ver' : '版本',
180
- 'protocol' : '协议版本',
181
- 'homepage' : '项目主页',
182
- 'docs' : '文档',
183
- 'github' : 'Fork us on Github',
184
- 'twitter' : 'Follow us on twitter',
185
- 'facebook' : 'Join us on facebook',
186
- 'team' : '团队',
187
- 'chiefdev' : '首席开发',
188
- 'developer' : '开发',
189
- 'contributor' : '贡献',
190
- 'maintainer' : '维护',
191
- 'translator' : '翻译',
192
- 'icons' : '图标',
193
- 'dontforget' : '别忘了带上你的毛巾',
194
- 'shortcutsof' : '快捷键已禁用',
195
- 'dropFiles' : '把文件拖到这里',
196
- 'or' : '或者',
197
- 'selectForUpload' : '选择要上传的文件',
198
- 'moveFiles' : '移动文件',
199
- 'copyFiles' : '复制文件',
200
-
201
- /********************************** mimetypes **********************************/
202
- 'kindUnknown' : '未知',
203
- 'kindFolder' : '文件夹',
204
- 'kindAlias' : '别名',
205
- 'kindAliasBroken' : '错误的别名',
206
- // applications
207
- 'kindApp' : '程序',
208
- 'kindPostscript' : 'Postscript 文档',
209
- 'kindMsOffice' : 'Microsoft Office 文档',
210
- 'kindMsWord' : 'Microsoft Word 文档',
211
- 'kindMsExcel' : 'Microsoft Excel 文档',
212
- 'kindMsPP' : 'Microsoft Powerpoint 演示',
213
- 'kindOO' : 'Open Office 文档',
214
- 'kindAppFlash' : 'Flash 程序',
215
- 'kindPDF' : 'Portable Document Format (PDF)',
216
- 'kindTorrent' : 'Bittorrent 文件',
217
- 'kind7z' : '7z 压缩包',
218
- 'kindTAR' : 'TAR 压缩包',
219
- 'kindGZIP' : 'GZIP 压缩包',
220
- 'kindBZIP' : 'BZIP 压缩包',
221
- 'kindZIP' : 'ZIP 压缩包',
222
- 'kindRAR' : 'RAR 压缩包',
223
- 'kindJAR' : 'Java JAR 文件',
224
- 'kindTTF' : 'True Type 字体',
225
- 'kindOTF' : 'Open Type 字体',
226
- 'kindRPM' : 'RPM 包',
227
- // texts
228
- 'kindText' : '文本文件',
229
- 'kindTextPlain' : '纯文本',
230
- 'kindPHP' : 'PHP 源代码',
231
- 'kindCSS' : '层叠样式表(CSS)',
232
- 'kindHTML' : 'HTML 文档',
233
- 'kindJS' : 'Javascript 源代码',
234
- 'kindRTF' : '富文本格式(RTF)',
235
- 'kindC' : 'C 源代码',
236
- 'kindCHeader' : 'C 头文件',
237
- 'kindCPP' : 'C++ 源代码',
238
- 'kindCPPHeader' : 'C++ 头文件',
239
- 'kindShell' : 'Unix 外壳脚本',
240
- 'kindPython' : 'Python 源代码',
241
- 'kindJava' : 'Java 源代码',
242
- 'kindRuby' : 'Ruby 源代码',
243
- 'kindPerl' : 'Perl 源代码',
244
- 'kindSQL' : 'SQL 脚本',
245
- 'kindXML' : 'XML 文档',
246
- 'kindAWK' : 'AWK 源代码',
247
- 'kindCSV' : '逗号分隔值文件(CSV)',
248
- 'kindDOCBOOK' : 'Docbook XML 文档',
249
- // images
250
- 'kindImage' : '图片',
251
- 'kindBMP' : 'BMP 图片',
252
- 'kindJPEG' : 'JPEG 图片',
253
- 'kindGIF' : 'GIF 图片',
254
- 'kindPNG' : 'PNG 图片',
255
- 'kindTIFF' : 'TIFF 图片',
256
- 'kindTGA' : 'TGA 图片',
257
- 'kindPSD' : 'Adobe Photoshop 图片',
258
- 'kindXBITMAP' : 'X bitmap 图片',
259
- 'kindPXM' : 'Pixelmator 图片',
260
- // media
261
- 'kindAudio' : '音频',
262
- 'kindAudioMPEG' : 'MPEG 音频',
263
- 'kindAudioMPEG4' : 'MPEG-4 音频',
264
- 'kindAudioMIDI' : 'MIDI 音频',
265
- 'kindAudioOGG' : 'Ogg Vorbis 音频',
266
- 'kindAudioWAV' : 'WAV 音频',
267
- 'AudioPlaylist' : 'MP3 播放列表',
268
- 'kindVideo' : '视频',
269
- 'kindVideoDV' : 'DV 视频',
270
- 'kindVideoMPEG' : 'MPEG 视频',
271
- 'kindVideoMPEG4' : 'MPEG-4 视频',
272
- 'kindVideoAVI' : 'AVI 视频',
273
- 'kindVideoMOV' : 'Quick Time 视频',
274
- 'kindVideoWM' : 'Windows Media 视频',
275
- 'kindVideoFlash' : 'Flash 视频',
276
- 'kindVideoMKV' : 'Matroska 视频',
277
- 'kindVideoOGG' : 'Ogg 视频'
278
- }
279
- };
280
- }
@@ -1,23 +0,0 @@
1
- DROP TABLE IF EXISTS `elfinder_file`;
2
- CREATE TABLE IF NOT EXISTS `elfinder_file` (
3
- `id` int(7) unsigned NOT NULL auto_increment,
4
- `parent_id` int(7) unsigned NOT NULL,
5
- `name` varchar(256) NOT NULL,
6
- `content` longblob NOT NULL,
7
- `size` int(10) unsigned NOT NULL default '0',
8
- `mtime` int(10) unsigned NOT NULL,
9
- `mime` varchar(256) NOT NULL default 'unknown',
10
- `read` enum('1', '0') NOT NULL default '1',
11
- `write` enum('1', '0') NOT NULL default '1',
12
- `locked` enum('1', '0') NOT NULL default '0',
13
- `hidden` enum('1', '0') NOT NULL default '0',
14
- `width` int(5) NOT NULL,
15
- `height` int(5) NOT NULL,
16
- PRIMARY KEY (`id`),
17
- UNIQUE KEY `parent_name` (`parent_id`, `name`),
18
- KEY `parent_id` (`parent_id`)
19
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
20
-
21
- INSERT INTO `elfinder_file`
22
- (`id`, `parent_id`, `name`, `content`, `size`, `mtime`, `mime`, `read`, `write`, `locked`, `hidden`, `width`, `height`) VALUES
23
- ('1', '0', 'DATABASE', '', '0', '0', 'directory', '1', '1', '0', '0', '0', '0');
@@ -1,44 +0,0 @@
1
- <?php
2
-
3
- error_reporting(0); // Set E_ALL for debuging
4
-
5
- include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderConnector.class.php';
6
- include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinder.class.php';
7
- include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeDriver.class.php';
8
- include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeLocalFileSystem.class.php';
9
- // Required for MySQL storage connector
10
- // include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeMySQL.class.php';
11
- // Required for FTP connector support
12
- // include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeFTP.class.php';
13
-
14
-
15
- /**
16
- * Simple function to demonstrate how to control file access using "accessControl" callback.
17
- * This method will disable accessing files/folders starting from '.' (dot)
18
- *
19
- * @param string $attr attribute name (read|write|locked|hidden)
20
- * @param string $path file path relative to volume root directory started with directory separator
21
- * @return bool|null
22
- **/
23
- function access($attr, $path, $data, $volume) {
24
- return strpos(basename($path), '.') === 0 // if file/folder begins with '.' (dot)
25
- ? !($attr == 'read' || $attr == 'write') // set read+write to false, other (locked+hidden) set to true
26
- : null; // else elFinder decide it itself
27
- }
28
-
29
- $opts = array(
30
- // 'debug' => true,
31
- 'roots' => array(
32
- array(
33
- 'driver' => 'LocalFileSystem', // driver for accessing file system (REQUIRED)
34
- 'path' => '../files/', // path to files (REQUIRED)
35
- 'URL' => dirname($_SERVER['PHP_SELF']) . '/../files/', // URL to files (REQUIRED)
36
- 'accessControl' => 'access' // disable and hide dot starting files (OPTIONAL)
37
- )
38
- )
39
- );
40
-
41
- // run elFinder
42
- $connector = new elFinderConnector(new elFinder($opts));
43
- $connector->run();
44
-
@@ -1,1103 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * elFinder - file manager for web.
5
- * Core class.
6
- *
7
- * @package elfinder
8
- * @author Dmitry (dio) Levashov
9
- * @author Troex Nevelin
10
- * @author Alexey Sukhotin
11
- **/
12
- class elFinder {
13
-
14
- /**
15
- * API version number
16
- *
17
- * @var string
18
- **/
19
- protected $version = '2.0';
20
-
21
- /**
22
- * Storages (root dirs)
23
- *
24
- * @var array
25
- **/
26
- protected $volumes = array();
27
-
28
- /**
29
- * Mounted volumes count
30
- * Required to create unique volume id
31
- *
32
- * @var int
33
- **/
34
- public static $volumesCnt = 1;
35
-
36
- /**
37
- * Default root (storage)
38
- *
39
- * @var elFinderStorageDriver
40
- **/
41
- protected $default = null;
42
-
43
- /**
44
- * Commands and required arguments list
45
- *
46
- * @var array
47
- **/
48
- protected $commands = array(
49
- 'open' => array('target' => false, 'tree' => false, 'init' => false, 'mimes' => false),
50
- 'ls' => array('target' => true, 'mimes' => false),
51
- 'tree' => array('target' => true),
52
- 'parents' => array('target' => true),
53
- 'tmb' => array('targets' => true),
54
- 'file' => array('target' => true, 'download' => false),
55
- 'size' => array('targets' => true),
56
- 'mkdir' => array('target' => true, 'name' => true),
57
- 'mkfile' => array('target' => true, 'name' => true, 'mimes' => false),
58
- 'rm' => array('targets' => true),
59
- 'rename' => array('target' => true, 'name' => true, 'mimes' => false),
60
- 'duplicate' => array('targets' => true, 'suffix' => false),
61
- 'paste' => array('dst' => true, 'targets' => true, 'cut' => false, 'mimes' => false),
62
- 'upload' => array('target' => true, 'FILES' => true, 'mimes' => false, 'html' => false),
63
- 'get' => array('target' => true),
64
- 'put' => array('target' => true, 'content' => '', 'mimes' => false),
65
- 'archive' => array('targets' => true, 'type' => true, 'mimes' => false),
66
- 'extract' => array('target' => true, 'mimes' => false),
67
- 'search' => array('q' => true, 'mimes' => false),
68
- 'info' => array('targets' => true),
69
- 'dim' => array('target' => true),
70
- 'resize' => array('target' => true, 'width' => true, 'height' => true, 'mode' => false, 'x' => false, 'y' => false, 'degree' => false)
71
- );
72
-
73
- /**
74
- * Commands listeners
75
- *
76
- * @var array
77
- **/
78
- protected $listeners = array();
79
-
80
- /**
81
- * script work time for debug
82
- *
83
- * @var string
84
- **/
85
- protected $time = 0;
86
- /**
87
- * Is elFinder init correctly?
88
- *
89
- * @var bool
90
- **/
91
- protected $loaded = false;
92
- /**
93
- * Send debug to client?
94
- *
95
- * @var string
96
- **/
97
- protected $debug = false;
98
-
99
- /**
100
- * undocumented class variable
101
- *
102
- * @var string
103
- **/
104
- protected $uploadDebug = '';
105
-
106
- /**
107
- * Errors from not mounted volumes
108
- *
109
- * @var array
110
- **/
111
- public $mountErrors = array();
112
-
113
- // Errors messages
114
- const ERROR_UNKNOWN = 'errUnknown';
115
- const ERROR_UNKNOWN_CMD = 'errUnknownCmd';
116
- const ERROR_CONF = 'errConf';
117
- const ERROR_CONF_NO_JSON = 'errJSON';
118
- const ERROR_CONF_NO_VOL = 'errNoVolumes';
119
- const ERROR_INV_PARAMS = 'errCmdParams';
120
- const ERROR_OPEN = 'errOpen';
121
- const ERROR_DIR_NOT_FOUND = 'errFolderNotFound';
122
- const ERROR_FILE_NOT_FOUND = 'errFileNotFound'; // 'File not found.'
123
- const ERROR_TRGDIR_NOT_FOUND = 'errTrgFolderNotFound'; // 'Target folder "$1" not found.'
124
- const ERROR_NOT_DIR = 'errNotFolder';
125
- const ERROR_NOT_FILE = 'errNotFile';
126
- const ERROR_PERM_DENIED = 'errPerm';
127
- const ERROR_LOCKED = 'errLocked'; // '"$1" is locked and can not be renamed, moved or removed.'
128
- const ERROR_EXISTS = 'errExists'; // 'File named "$1" already exists.'
129
- const ERROR_INVALID_NAME = 'errInvName'; // 'Invalid file name.'
130
- const ERROR_MKDIR = 'errMkdir';
131
- const ERROR_MKFILE = 'errMkfile';
132
- const ERROR_RENAME = 'errRename';
133
- const ERROR_COPY = 'errCopy';
134
- const ERROR_MOVE = 'errMove';
135
- const ERROR_COPY_FROM = 'errCopyFrom';
136
- const ERROR_COPY_TO = 'errCopyTo';
137
- const ERROR_COPY_ITSELF = 'errCopyInItself';
138
- const ERROR_REPLACE = 'errReplace'; // 'Unable to replace "$1".'
139
- const ERROR_RM = 'errRm'; // 'Unable to remove "$1".'
140
- const ERROR_RM_SRC = 'errRmSrc'; // 'Unable remove source file(s)'
141
- const ERROR_UPLOAD = 'errUpload'; // 'Upload error.'
142
- const ERROR_UPLOAD_FILE = 'errUploadFile'; // 'Unable to upload "$1".'
143
- const ERROR_UPLOAD_NO_FILES = 'errUploadNoFiles'; // 'No files found for upload.'
144
- const ERROR_UPLOAD_TOTAL_SIZE = 'errUploadTotalSize'; // 'Data exceeds the maximum allowed size.'
145
- const ERROR_UPLOAD_FILE_SIZE = 'errUploadFileSize'; // 'File exceeds maximum allowed size.'
146
- const ERROR_UPLOAD_FILE_MIME = 'errUploadMime'; // 'File type not allowed.'
147
- const ERROR_UPLOAD_TRANSFER = 'errUploadTransfer'; // '"$1" transfer error.'
148
- // const ERROR_ACCESS_DENIED = 'errAccess';
149
- const ERROR_NOT_REPLACE = 'errNotReplace'; // Object "$1" already exists at this location and can not be replaced with object of another type.
150
- const ERROR_SAVE = 'errSave';
151
- const ERROR_EXTRACT = 'errExtract';
152
- const ERROR_ARCHIVE = 'errArchive';
153
- const ERROR_NOT_ARCHIVE = 'errNoArchive';
154
- const ERROR_ARCHIVE_TYPE = 'errArcType';
155
- const ERROR_ARC_SYMLINKS = 'errArcSymlinks';
156
- const ERROR_ARC_MAXSIZE = 'errArcMaxSize';
157
- const ERROR_RESIZE = 'errResize';
158
- const ERROR_UNSUPPORT_TYPE = 'errUsupportType';
159
- const ERROR_NOT_UTF8_CONTENT = 'errNotUTF8Content';
160
-
161
- /**
162
- * Constructor
163
- *
164
- * @param array elFinder and roots configurations
165
- * @return void
166
- * @author Dmitry (dio) Levashov
167
- **/
168
- public function __construct($opts) {
169
-
170
- $this->time = $this->utime();
171
- $this->debug = (isset($opts['debug']) && $opts['debug'] ? true : false);
172
-
173
- setlocale(LC_ALL, !empty($opts['locale']) ? $opts['locale'] : 'en_US.UTF-8');
174
-
175
- // bind events listeners
176
- if (!empty($opts['bind']) && is_array($opts['bind'])) {
177
- foreach ($opts['bind'] as $cmd => $handler) {
178
- $this->bind($cmd, $handler);
179
- }
180
- }
181
-
182
- // "mount" volumes
183
- if (isset($opts['roots']) && is_array($opts['roots'])) {
184
-
185
- foreach ($opts['roots'] as $i => $o) {
186
- $class = 'elFinderVolume'.(isset($o['driver']) ? $o['driver'] : '');
187
-
188
- if (class_exists($class)) {
189
- $volume = new $class();
190
-
191
- if ($volume->mount($o)) {
192
- // unique volume id (ends on "_") - used as prefix to files hash
193
- $id = $volume->id();
194
-
195
- $this->volumes[$id] = $volume;
196
- if (!$this->default && $volume->isReadable()) {
197
- $this->default = $this->volumes[$id];
198
- }
199
- } else {
200
- $this->mountErrors[] = 'Driver "'.$class.'" : '.implode(' ', $volume->error());
201
- }
202
- } else {
203
- $this->mountErrors[] = 'Driver "'.$class.'" does not exists';
204
- }
205
- }
206
- }
207
- // if at least one redable volume - ii desu >_<
208
- $this->loaded = !empty($this->default);
209
- }
210
-
211
- /**
212
- * Return true if fm init correctly
213
- *
214
- * @return bool
215
- * @author Dmitry (dio) Levashov
216
- **/
217
- public function loaded() {
218
- return $this->loaded;
219
- }
220
-
221
- /**
222
- * Return version (api) number
223
- *
224
- * @return string
225
- * @author Dmitry (dio) Levashov
226
- **/
227
- public function version() {
228
- return $this->version;
229
- }
230
-
231
- /**
232
- * Add handler to elFinder command
233
- *
234
- * @param string command name
235
- * @param string|array callback name or array(object, method)
236
- * @return elFinder
237
- * @author Dmitry (dio) Levashov
238
- **/
239
- public function bind($cmd, $handler) {
240
- $cmds = array_map('trim', explode(' ', $cmd));
241
-
242
- foreach ($cmds as $cmd) {
243
- if ($cmd) {
244
- if (!isset($this->listeners[$cmd])) {
245
- $this->listeners[$cmd] = array();
246
- }
247
-
248
- if ((is_array($handler) && count($handler) == 2 && is_object($handler[0]) && method_exists($handler[0], $handler[1]))
249
- || function_exists($handler)) {
250
- $this->listeners[$cmd][] = $handler;
251
- }
252
- }
253
- }
254
-
255
- return $this;
256
- }
257
-
258
- /**
259
- * Remove event (command exec) handler
260
- *
261
- * @param string command name
262
- * @param string|array callback name or array(object, method)
263
- * @return elFinder
264
- * @author Dmitry (dio) Levashov
265
- **/
266
- public function unbind($cmd, $handler) {
267
- if (!empty($this->listeners[$cmd])) {
268
- foreach ($this->listeners[$cmd] as $i => $h) {
269
- if ($h === $handler) {
270
- unset($this->listeners[$cmd][$i]);
271
- return $this;
272
- }
273
- }
274
- }
275
- return $this;
276
- }
277
-
278
- /**
279
- * Return true if command exists
280
- *
281
- * @param string command name
282
- * @return bool
283
- * @author Dmitry (dio) Levashov
284
- **/
285
- public function commandExists($cmd) {
286
- return $this->loaded && isset($this->commands[$cmd]) && method_exists($this, $cmd);
287
- }
288
-
289
- /**
290
- * Return command required arguments info
291
- *
292
- * @param string command name
293
- * @return array
294
- * @author Dmitry (dio) Levashov
295
- **/
296
- public function commandArgsList($cmd) {
297
- return $this->commandExists($cmd) ? $this->commands[$cmd] : array();
298
- }
299
-
300
- /**
301
- * Exec command and return result
302
- *
303
- * @param string $cmd command name
304
- * @param array $args command arguments
305
- * @return array
306
- * @author Dmitry (dio) Levashov
307
- **/
308
- public function exec($cmd, $args) {
309
-
310
- if (!$this->loaded) {
311
- return array('error' => $this->error(self::ERROR_CONF, self::ERROR_CONF_NO_VOL));
312
- }
313
-
314
- if (!$this->commandExists($cmd)) {
315
- return array('error' => $this->error(self::ERROR_UNKNOWN_CMD));
316
- }
317
-
318
- if (!empty($args['mimes']) && is_array($args['mimes'])) {
319
- foreach ($this->volumes as $id => $v) {
320
- $this->volumes[$id]->setMimesFilter($args['mimes']);
321
- }
322
- }
323
-
324
- $result = $this->$cmd($args);
325
-
326
- if (isset($result['removed'])) {
327
- foreach ($this->volumes as $volume) {
328
- $result['removed'] = array_merge($result['removed'], $volume->removed());
329
- $volume->resetRemoved();
330
- }
331
- }
332
-
333
- // call handlers for this command
334
- if (!empty($this->listeners[$cmd])) {
335
- foreach ($this->listeners[$cmd] as $handler) {
336
- if ((is_array($handler) && $handler[0]->{$handler[1]}($cmd, $result, $args, $this))
337
- || (!is_array($handler) && $handler($cmd, $result, $args, $this))) {
338
- // handler return true to force sync client after command completed
339
- $result['sync'] = true;
340
- }
341
- }
342
- }
343
-
344
- // replace removed files info with removed files hashes
345
- if (!empty($result['removed'])) {
346
- $removed = array();
347
- foreach ($result['removed'] as $file) {
348
- $removed[] = $file['hash'];
349
- }
350
- $result['removed'] = array_unique($removed);
351
- }
352
- // remove hidden files and filter files by mimetypes
353
- if (!empty($result['added'])) {
354
- $result['added'] = $this->filter($result['added']);
355
- }
356
- // remove hidden files and filter files by mimetypes
357
- if (!empty($result['changed'])) {
358
- $result['changed'] = $this->filter($result['changed']);
359
- }
360
-
361
- if ($this->debug || !empty($args['debug'])) {
362
- $result['debug'] = array(
363
- 'connector' => 'php',
364
- 'phpver' => PHP_VERSION,
365
- 'time' => $this->utime() - $this->time,
366
- 'memory' => (function_exists('memory_get_peak_usage') ? ceil(memory_get_peak_usage()/1024).'Kb / ' : '').ceil(memory_get_usage()/1024).'Kb / '.ini_get('memory_limit'),
367
- 'upload' => $this->uploadDebug,
368
- 'volumes' => array(),
369
- 'mountErrors' => $this->mountErrors
370
- );
371
-
372
- foreach ($this->volumes as $id => $volume) {
373
- $result['debug']['volumes'][] = $volume->debug();
374
- }
375
- }
376
-
377
- foreach ($this->volumes as $volume) {
378
- $volume->umount();
379
- }
380
-
381
- return $result;
382
- }
383
-
384
- /**
385
- * Return file real path
386
- *
387
- * @param string $hash file hash
388
- * @return string
389
- * @author Dmitry (dio) Levashov
390
- **/
391
- public function realpath($hash) {
392
- if (($volume = $this->volume($hash)) == false) {
393
- return false;
394
- }
395
- return $volume->realpath($hash);
396
- }
397
-
398
- /***************************************************************************/
399
- /* commands */
400
- /***************************************************************************/
401
-
402
- /**
403
- * Normalize error messages
404
- *
405
- * @return array
406
- * @author Dmitry (dio) Levashov
407
- **/
408
- public function error() {
409
- $errors = array();
410
-
411
- foreach (func_get_args() as $msg) {
412
- if (is_array($msg)) {
413
- $errors = array_merge($errors, $msg);
414
- } else {
415
- $errors[] = $msg;
416
- }
417
- }
418
-
419
- return count($errors) ? $errors : array(self::ERROR_UNKNOWN);
420
- }
421
-
422
- /**
423
- * "Open" directory
424
- * Return array with following elements
425
- * - cwd - opened dir info
426
- * - files - opened dir content [and dirs tree if $args[tree]]
427
- * - api - api version (if $args[init])
428
- * - uplMaxSize - if $args[init]
429
- * - error - on failed
430
- *
431
- * @param array command arguments
432
- * @return array
433
- * @author Dmitry (dio) Levashov
434
- **/
435
- protected function open($args) {
436
- $target = $args['target'];
437
- $init = !empty($args['init']);
438
- $tree = !empty($args['tree']);
439
- $volume = $this->volume($target);
440
- $cwd = $volume ? $volume->dir($target, true) : false;
441
- $hash = $init ? 'default folder' : '#'.$target;
442
-
443
- // on init request we can get invalid dir hash -
444
- // dir which can not be opened now, but remembered by client,
445
- // so open default dir
446
- if ((!$cwd || !$cwd['read']) && $init) {
447
- $volume = $this->default;
448
- $cwd = $volume->dir($volume->defaultPath(), true);
449
- }
450
-
451
- if (!$cwd) {
452
- return array('error' => $this->error(self::ERROR_OPEN, $hash, self::ERROR_DIR_NOT_FOUND));
453
- }
454
- if (!$cwd['read']) {
455
- return array('error' => $this->error(self::ERROR_OPEN, $hash, self::ERROR_PERM_DENIED));
456
- }
457
-
458
- $files = array();
459
-
460
- // get folders trees
461
- if ($args['tree']) {
462
- foreach ($this->volumes as $id => $v) {
463
-
464
- if (($tree = $v->tree('', 0, $cwd['hash'])) != false) {
465
- $files = array_merge($files, $tree);
466
- }
467
- }
468
- }
469
-
470
- // get current working directory files list and add to $files if not exists in it
471
- if (($ls = $volume->scandir($cwd['hash'])) === false) {
472
- return array('error' => $this->error(self::ERROR_OPEN, $cwd['name'], $volume->error()));
473
- }
474
-
475
- foreach ($ls as $file) {
476
- if (!in_array($file, $files)) {
477
- $files[] = $file;
478
- }
479
- }
480
-
481
- $result = array(
482
- 'cwd' => $cwd,
483
- 'options' => $volume->options($cwd['hash']),
484
- 'files' => $files
485
- );
486
-
487
- if (!empty($args['init'])) {
488
- $result['api'] = $this->version;
489
- $result['uplMaxSize'] = ini_get('upload_max_filesize');
490
- }
491
-
492
- return $result;
493
- }
494
-
495
- /**
496
- * Return dir files names list
497
- *
498
- * @param array command arguments
499
- * @return array
500
- * @author Dmitry (dio) Levashov
501
- **/
502
- protected function ls($args) {
503
- $target = $args['target'];
504
-
505
- if (($volume = $this->volume($target)) == false
506
- || ($list = $volume->ls($target)) === false) {
507
- return array('error' => $this->error(self::ERROR_OPEN, '#'.$target));
508
- }
509
- return array('list' => $list);
510
- }
511
-
512
- /**
513
- * Return subdirs for required directory
514
- *
515
- * @param array command arguments
516
- * @return array
517
- * @author Dmitry (dio) Levashov
518
- **/
519
- protected function tree($args) {
520
- $target = $args['target'];
521
-
522
- if (($volume = $this->volume($target)) == false
523
- || ($tree = $volume->tree($target)) == false) {
524
- return array('error' => $this->error(self::ERROR_OPEN, '#'.$target));
525
- }
526
-
527
- return array('tree' => $tree);
528
- }
529
-
530
- /**
531
- * Return parents dir for required directory
532
- *
533
- * @param array command arguments
534
- * @return array
535
- * @author Dmitry (dio) Levashov
536
- **/
537
- protected function parents($args) {
538
- $target = $args['target'];
539
-
540
- if (($volume = $this->volume($target)) == false
541
- || ($tree = $volume->parents($target)) == false) {
542
- return array('error' => $this->error(self::ERROR_OPEN, '#'.$target));
543
- }
544
-
545
- return array('tree' => $tree);
546
- }
547
-
548
- /**
549
- * Return new created thumbnails list
550
- *
551
- * @param array command arguments
552
- * @return array
553
- * @author Dmitry (dio) Levashov
554
- **/
555
- protected function tmb($args) {
556
-
557
- $result = array('images' => array());
558
- $targets = $args['targets'];
559
-
560
- foreach ($targets as $target) {
561
- if (($volume = $this->volume($target)) != false
562
- && (($tmb = $volume->tmb($target)) != false)) {
563
- $result['images'][$target] = $tmb;
564
- }
565
- }
566
- return $result;
567
- }
568
-
569
- /**
570
- * Required to output file in browser when volume URL is not set
571
- * Return array contains opened file pointer, root itself and required headers
572
- *
573
- * @param array command arguments
574
- * @return array
575
- * @author Dmitry (dio) Levashov
576
- **/
577
- protected function file($args) {
578
- $target = $args['target'];
579
- $download = !empty($args['download']);
580
- $h403 = 'HTTP/1.x 403 Access Denied';
581
- $h404 = 'HTTP/1.x 404 Not Found';
582
-
583
- if (($volume = $this->volume($target)) == false) {
584
- return array('error' => 'File not found', 'header' => $h404, 'raw' => true);
585
- }
586
-
587
- if (($file = $volume->file($target)) == false) {
588
- return array('error' => 'File not found', 'header' => $h404, 'raw' => true);
589
- }
590
-
591
- if (!$file['read']) {
592
- return array('error' => 'Access denied', 'header' => $h403, 'raw' => true);
593
- }
594
-
595
- if (($fp = $volume->open($target)) == false) {
596
- return array('error' => 'File not found', 'header' => $h404, 'raw' => true);
597
- }
598
-
599
- if ($download) {
600
- $disp = 'attachment';
601
- $mime = 'application/octet-stream';
602
- } else {
603
- $disp = preg_match('/^(image|text)/i', $file['mime']) || $file['mime'] == 'application/x-shockwave-flash'
604
- ? 'inline'
605
- : 'attachment';
606
- $mime = $file['mime'];
607
- }
608
-
609
- $filenameEncoded = rawurlencode($file['name']);
610
- if (strpos($filenameEncoded, '%') === false) { // ASCII only
611
- $filename = 'filename="'.$file['name'].'"';
612
- } else {
613
- $ua = $_SERVER["HTTP_USER_AGENT"];
614
- if (preg_match('/MSIE [4-8]/', $ua)) { // IE < 9 do not support RFC 6266 (RFC 2231/RFC 5987)
615
- $filename = 'filename="'.$filenameEncoded.'"';
616
- } else { // RFC 6266 (RFC 2231/RFC 5987)
617
- $filename = 'filename*=UTF-8\'\''.$filenameEncoded;
618
- }
619
- }
620
-
621
- $result = array(
622
- 'volume' => $volume,
623
- 'pointer' => $fp,
624
- 'info' => $file,
625
- 'header' => array(
626
- 'Content-Type: '.$mime,
627
- 'Content-Disposition: '.$disp.'; '.$filename,
628
- 'Content-Location: '.$file['name'],
629
- 'Content-Transfer-Encoding: binary',
630
- 'Content-Length: '.$file['size'],
631
- 'Connection: close'
632
- )
633
- );
634
- return $result;
635
- }
636
-
637
- /**
638
- * Count total files size
639
- *
640
- * @param array command arguments
641
- * @return array
642
- * @author Dmitry (dio) Levashov
643
- **/
644
- protected function size($args) {
645
- $size = 0;
646
-
647
- foreach ($args['targets'] as $target) {
648
- if (($volume = $this->volume($target)) == false
649
- || ($file = $volume->file($target)) == false
650
- || !$file['read']) {
651
- return array('error' => $this->error(self::ERROR_OPEN, '#'.$target));
652
- }
653
-
654
- $size += $volume->size($target);
655
- }
656
- return array('size' => $size);
657
- }
658
-
659
- /**
660
- * Create directory
661
- *
662
- * @param array command arguments
663
- * @return array
664
- * @author Dmitry (dio) Levashov
665
- **/
666
- protected function mkdir($args) {
667
- $target = $args['target'];
668
- $name = $args['name'];
669
-
670
- if (($volume = $this->volume($target)) == false) {
671
- return array('error' => $this->error(self::ERROR_MKDIR, $name, self::ERROR_TRGDIR_NOT_FOUND, '#'.$target));
672
- }
673
-
674
- return ($dir = $volume->mkdir($target, $name)) == false
675
- ? array('error' => $this->error(self::ERROR_MKDIR, $name, $volume->error()))
676
- : array('added' => array($dir));
677
- }
678
-
679
- /**
680
- * Create empty file
681
- *
682
- * @param array command arguments
683
- * @return array
684
- * @author Dmitry (dio) Levashov
685
- **/
686
- protected function mkfile($args) {
687
- $target = $args['target'];
688
- $name = $args['name'];
689
-
690
- if (($volume = $this->volume($target)) == false) {
691
- return array('error' => $this->error(self::ERROR_MKFILE, $name, self::ERROR_TRGDIR_NOT_FOUND, '#'.$target));
692
- }
693
-
694
- return ($file = $volume->mkfile($target, $args['name'])) == false
695
- ? array('error' => $this->error(self::ERROR_MKFILE, $name, $volume->error()))
696
- : array('added' => array($file));
697
- }
698
-
699
- /**
700
- * Rename file
701
- *
702
- * @param array $args
703
- * @return array
704
- * @author Dmitry (dio) Levashov
705
- **/
706
- protected function rename($args) {
707
- $target = $args['target'];
708
- $name = $args['name'];
709
-
710
- if (($volume = $this->volume($target)) == false
711
- || ($rm = $volume->file($target)) == false) {
712
- return array('error' => $this->error(self::ERROR_RENAME, '#'.$target, self::ERROR_FILE_NOT_FOUND));
713
- }
714
- $rm['realpath'] = $volume->realpath($target);
715
-
716
- return ($file = $volume->rename($target, $name)) == false
717
- ? array('error' => $this->error(self::ERROR_RENAME, $rm['name'], $volume->error()))
718
- : array('added' => array($file), 'removed' => array($rm));
719
- }
720
-
721
- /**
722
- * Duplicate file - create copy with "copy %d" suffix
723
- *
724
- * @param array $args command arguments
725
- * @return array
726
- * @author Dmitry (dio) Levashov
727
- **/
728
- protected function duplicate($args) {
729
- $targets = is_array($args['targets']) ? $args['targets'] : array();
730
- $result = array('added' => array());
731
- $suffix = empty($args['suffix']) ? 'copy' : $args['suffix'];
732
-
733
- foreach ($targets as $target) {
734
- if (($volume = $this->volume($target)) == false
735
- || ($src = $volume->file($target)) == false) {
736
- $result['warning'] = $this->error(self::ERROR_COPY, '#'.$target, self::ERROR_FILE_NOT_FOUND);
737
- break;
738
- }
739
-
740
- if (($file = $volume->duplicate($target, $suffix)) == false) {
741
- $result['warning'] = $this->error($volume->error());
742
- break;
743
- }
744
-
745
- $result['added'][] = $file;
746
- }
747
-
748
- return $result;
749
- }
750
-
751
- /**
752
- * Remove dirs/files
753
- *
754
- * @param array command arguments
755
- * @return array
756
- * @author Dmitry (dio) Levashov
757
- **/
758
- protected function rm($args) {
759
- $targets = is_array($args['targets']) ? $args['targets'] : array();
760
- $result = array('removed' => array());
761
-
762
- foreach ($targets as $target) {
763
- if (($volume = $this->volume($target)) == false) {
764
- $result['warning'] = $this->error(self::ERROR_RM, '#'.$target, self::ERROR_FILE_NOT_FOUND);
765
- return $result;
766
- }
767
- if (!$volume->rm($target)) {
768
- $result['warning'] = $this->error($volume->error());
769
- return $result;
770
- }
771
- }
772
-
773
- return $result;
774
- }
775
-
776
- /**
777
- * Save uploaded files
778
- *
779
- * @param array
780
- * @return array
781
- * @author Dmitry (dio) Levashov
782
- **/
783
- protected function upload($args) {
784
- $target = $args['target'];
785
- $volume = $this->volume($target);
786
- $files = isset($args['FILES']['upload']) && is_array($args['FILES']['upload']) ? $args['FILES']['upload'] : array();
787
- $result = array('added' => array(), 'header' => empty($args['html']) ? false : 'Content-Type: text/html; charset=utf-8');
788
-
789
- if (empty($files)) {
790
- return array('error' => $this->error(self::ERROR_UPLOAD, self::ERROR_UPLOAD_NO_FILES), 'header' => $header);
791
- }
792
-
793
- if (!$volume) {
794
- return array('error' => $this->error(self::ERROR_UPLOAD, self::ERROR_TRGDIR_NOT_FOUND, '#'.$target), 'header' => $header);
795
- }
796
-
797
- foreach ($files['name'] as $i => $name) {
798
- if (($error = $files['error'][$i]) > 0) {
799
- $result['warning'] = $this->error(self::ERROR_UPLOAD_FILE, $name, $error == UPLOAD_ERR_INI_SIZE || $error == UPLOAD_ERR_FORM_SIZE ? self::ERROR_UPLOAD_FILE_SIZE : self::ERROR_UPLOAD_TRANSFER);
800
- $this->uploadDebug = 'Upload error code: '.$error;
801
- break;
802
- }
803
-
804
- $tmpname = $files['tmp_name'][$i];
805
-
806
- if (($fp = fopen($tmpname, 'rb')) == false) {
807
- $result['warning'] = $this->error(self::ERROR_UPLOAD_FILE, $name, self::ERROR_UPLOAD_TRANSFER);
808
- $this->uploadDebug = 'Upload error: unable open tmp file';
809
- break;
810
- }
811
-
812
- if (($file = $volume->upload($fp, $target, $name, $tmpname)) === false) {
813
- $result['warning'] = $this->error(self::ERROR_UPLOAD_FILE, $name, $volume->error());
814
- fclose($fp);
815
- break;
816
- }
817
-
818
- fclose($fp);
819
- $result['added'][] = $file;
820
- }
821
-
822
- return $result;
823
- }
824
-
825
- /**
826
- * Copy/move files into new destination
827
- *
828
- * @param array command arguments
829
- * @return array
830
- * @author Dmitry (dio) Levashov
831
- **/
832
- protected function paste($args) {
833
- $dst = $args['dst'];
834
- $targets = is_array($args['targets']) ? $args['targets'] : array();
835
- $cut = !empty($args['cut']);
836
- $error = $cut ? self::ERROR_MOVE : self::ERROR_COPY;
837
- $result = array('added' => array(), 'removed' => array());
838
-
839
- if (($dstVolume = $this->volume($dst)) == false) {
840
- return array('error' => $this->error($error, '#'.$targets[0], self::ERROR_TRGDIR_NOT_FOUND, '#'.$dst));
841
- }
842
-
843
- foreach ($targets as $target) {
844
- if (($srcVolume = $this->volume($target)) == false) {
845
- $result['warning'] = $this->error($error, '#'.$target, self::ERROR_FILE_NOT_FOUND);
846
- break;
847
- }
848
-
849
- if (($file = $dstVolume->paste($srcVolume, $target, $dst, $cut)) == false) {
850
- $result['warning'] = $this->error($dstVolume->error());
851
- break;
852
- }
853
-
854
- $result['added'][] = $file;
855
- }
856
- return $result;
857
- }
858
-
859
- /**
860
- * Return file content
861
- *
862
- * @param array $args command arguments
863
- * @return array
864
- * @author Dmitry (dio) Levashov
865
- **/
866
- protected function get($args) {
867
- $target = $args['target'];
868
- $volume = $this->volume($target);
869
-
870
- if (!$volume || ($file = $volume->file($target)) == false) {
871
- return array('error' => $this->error(self::ERROR_OPEN, '#'.$target, self::ERROR_FILE_NOT_FOUND));
872
- }
873
-
874
- if (($content = $volume->getContents($target)) === false) {
875
- return array('error' => $this->error(self::ERROR_OPEN, $volume->path($target), $volume->error()));
876
- }
877
-
878
- $json = json_encode($content);
879
-
880
- if ($json == 'null' && strlen($json) < strlen($content)) {
881
- return array('error' => $this->error(self::ERROR_NOT_UTF8_CONTENT, $volume->path($target)));
882
- }
883
-
884
- return array('content' => $content);
885
- }
886
-
887
- /**
888
- * Save content into text file
889
- *
890
- * @return array
891
- * @author Dmitry (dio) Levashov
892
- **/
893
- protected function put($args) {
894
- $target = $args['target'];
895
-
896
- if (($volume = $this->volume($target)) == false
897
- || ($file = $volume->file($target)) == false) {
898
- return array('error' => $this->error(self::ERROR_SAVE, '#'.$target, self::ERROR_FILE_NOT_FOUND));
899
- }
900
-
901
- if (($file = $volume->putContents($target, $args['content'])) == false) {
902
- return array('error' => $this->error(self::ERROR_SAVE, $volume->path($target), $volume->error()));
903
- }
904
-
905
- return array('changed' => array($file));
906
- }
907
-
908
- /**
909
- * Extract files from archive
910
- *
911
- * @param array $args command arguments
912
- * @return array
913
- * @author Dmitry (dio) Levashov,
914
- * @author Alexey Sukhotin
915
- **/
916
- protected function extract($args) {
917
- $target = $args['target'];
918
- $mimes = !empty($args['mimes']) && is_array($args['mimes']) ? $args['mimes'] : array();
919
- $error = array(self::ERROR_EXTRACT, '#'.$target);
920
-
921
- if (($volume = $this->volume($target)) == false
922
- || ($file = $volume->file($target)) == false) {
923
- return array('error' => $this->error(self::ERROR_EXTRACT, '#'.$target, self::ERROR_FILE_NOT_FOUND));
924
- }
925
-
926
- return ($file = $volume->extract($target))
927
- ? array('added' => array($file))
928
- : array('error' => $this->error(self::ERROR_EXTRACT, $volume->path($target), $volume->error()));
929
- }
930
-
931
- /**
932
- * Create archive
933
- *
934
- * @param array $args command arguments
935
- * @return array
936
- * @author Dmitry (dio) Levashov,
937
- * @author Alexey Sukhotin
938
- **/
939
- protected function archive($args) {
940
- $type = $args['type'];
941
- $targets = isset($args['targets']) && is_array($args['targets']) ? $args['targets'] : array();
942
-
943
- if (($volume = $this->volume($targets[0])) == false) {
944
- return $this->error(self::ERROR_ARCHIVE, self::ERROR_TRGDIR_NOT_FOUND);
945
- }
946
-
947
- return ($file = $volume->archive($targets, $args['type']))
948
- ? array('added' => array($file))
949
- : array('error' => $this->error(self::ERROR_ARCHIVE, $volume->error()));
950
- }
951
-
952
- /**
953
- * Search files
954
- *
955
- * @param array $args command arguments
956
- * @return array
957
- * @author Dmitry Levashov
958
- **/
959
- protected function search($args) {
960
- $q = trim($args['q']);
961
- $mimes = !empty($args['mimes']) && is_array($args['mimes']) ? $args['mimes'] : array();
962
- $result = array();
963
-
964
- foreach ($this->volumes as $volume) {
965
- $result = array_merge($result, $volume->search($q, $mimes));
966
- }
967
-
968
- return array('files' => $result);
969
- }
970
-
971
- /**
972
- * Return file info (used by client "places" ui)
973
- *
974
- * @param array $args command arguments
975
- * @return array
976
- * @author Dmitry Levashov
977
- **/
978
- protected function info($args) {
979
- $files = array();
980
-
981
- foreach ($args['targets'] as $hash) {
982
- if (($volume = $this->volume($hash)) != false
983
- && ($info = $volume->file($hash)) != false) {
984
- $files[] = $info;
985
- }
986
- }
987
-
988
- return array('files' => $files);
989
- }
990
-
991
- /**
992
- * Return image dimmensions
993
- *
994
- * @param array $args command arguments
995
- * @return array
996
- * @author Dmitry (dio) Levashov
997
- **/
998
- protected function dim($args) {
999
- $target = $args['target'];
1000
-
1001
- if (($volume = $this->volume($target)) != false) {
1002
- $dim = $volume->dimensions($target);
1003
- return $dim ? array('dim' => $dim) : array();
1004
- }
1005
- return array();
1006
- }
1007
-
1008
- /**
1009
- * Resize image
1010
- *
1011
- * @param array command arguments
1012
- * @return array
1013
- * @author Dmitry (dio) Levashov
1014
- * @author Alexey Sukhotin
1015
- **/
1016
- protected function resize($args) {
1017
- $target = $args['target'];
1018
- $width = $args['width'];
1019
- $height = $args['height'];
1020
- $x = (int)$args['x'];
1021
- $y = (int)$args['y'];
1022
- $mode = $args['mode'];
1023
- $bg = null;
1024
- $degree = (int)$args['degree'];
1025
-
1026
- if (($volume = $this->volume($target)) == false
1027
- || ($file = $volume->file($target)) == false) {
1028
- return array('error' => $this->error(self::ERROR_RESIZE, '#'.$target, self::ERROR_FILE_NOT_FOUND));
1029
- }
1030
-
1031
- return ($file = $volume->resize($target, $width, $height, $x, $y, $mode, $bg, $degree))
1032
- ? array('changed' => array($file))
1033
- : array('error' => $this->error(self::ERROR_RESIZE, $volume->path($target), $volume->error()));
1034
- }
1035
-
1036
- /***************************************************************************/
1037
- /* utils */
1038
- /***************************************************************************/
1039
-
1040
- /**
1041
- * Return root - file's owner
1042
- *
1043
- * @param string file hash
1044
- * @return elFinderStorageDriver
1045
- * @author Dmitry (dio) Levashov
1046
- **/
1047
- protected function volume($hash) {
1048
- foreach ($this->volumes as $id => $v) {
1049
- if (strpos(''.$hash, $id) === 0) {
1050
- return $this->volumes[$id];
1051
- }
1052
- }
1053
- return false;
1054
- }
1055
-
1056
- /**
1057
- * Return files info array
1058
- *
1059
- * @param array $data one file info or files info
1060
- * @return array
1061
- * @author Dmitry (dio) Levashov
1062
- **/
1063
- protected function toArray($data) {
1064
- return isset($data['hash']) || !is_array($data) ? array($data) : $data;
1065
- }
1066
-
1067
- /**
1068
- * Return fils hashes list
1069
- *
1070
- * @param array $files files info
1071
- * @return array
1072
- * @author Dmitry (dio) Levashov
1073
- **/
1074
- protected function hashes($files) {
1075
- $ret = array();
1076
- foreach ($files as $file) {
1077
- $ret[] = $file['hash'];
1078
- }
1079
- return $ret;
1080
- }
1081
-
1082
- /**
1083
- * Remove from files list hidden files and files with required mime types
1084
- *
1085
- * @param array $files files info
1086
- * @return array
1087
- * @author Dmitry (dio) Levashov
1088
- **/
1089
- protected function filter($files) {
1090
- foreach ($files as $i => $file) {
1091
- if (!empty($file['hidden']) || !$this->default->mimeAccepted($file['mime'])) {
1092
- unset($files[$i]);
1093
- }
1094
- }
1095
- return array_merge($files, array());
1096
- }
1097
-
1098
- protected function utime() {
1099
- $time = explode(" ", microtime());
1100
- return (double)$time[1] + (double)$time[0];
1101
- }
1102
-
1103
- } // END class