baidu_ueditor_rails 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (291) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/vendor/assets/javascripts/ueditor/dialogs/anchor/anchor.html +0 -0
  4. data/vendor/assets/javascripts/ueditor/dialogs/attachment/attachment.css +648 -97
  5. data/vendor/assets/javascripts/ueditor/dialogs/attachment/attachment.html +50 -118
  6. data/vendor/assets/javascripts/ueditor/dialogs/attachment/attachment.js +754 -0
  7. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif +0 -0
  8. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_default.png +0 -0
  9. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif +0 -0
  10. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif +0 -0
  11. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif +0 -0
  12. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif +0 -0
  13. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif +0 -0
  14. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif +0 -0
  15. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif +0 -0
  16. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_psd.gif +0 -0
  17. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_rar.gif +0 -0
  18. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif +0 -0
  19. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeImages/icon_xls.gif +0 -0
  20. data/vendor/assets/javascripts/ueditor/dialogs/attachment/images/alignicon.gif +0 -0
  21. data/vendor/assets/javascripts/ueditor/dialogs/attachment/images/alignicon.png +0 -0
  22. data/vendor/assets/javascripts/ueditor/{lang/zh-cn/images/imglabel.png → dialogs/attachment/images/bg.png} +0 -0
  23. data/vendor/assets/javascripts/ueditor/dialogs/attachment/images/file-icons.gif +0 -0
  24. data/vendor/assets/javascripts/ueditor/dialogs/attachment/images/file-icons.png +0 -0
  25. data/vendor/assets/javascripts/ueditor/dialogs/attachment/images/icons.gif +0 -0
  26. data/vendor/assets/javascripts/ueditor/dialogs/attachment/images/icons.png +0 -0
  27. data/vendor/assets/javascripts/ueditor/dialogs/attachment/images/image.png +0 -0
  28. data/vendor/assets/javascripts/ueditor/dialogs/attachment/images/progress.png +0 -0
  29. data/vendor/assets/javascripts/ueditor/dialogs/attachment/images/success.gif +0 -0
  30. data/vendor/assets/javascripts/ueditor/dialogs/attachment/images/success.png +0 -0
  31. data/vendor/assets/javascripts/ueditor/dialogs/background/background.css +70 -1
  32. data/vendor/assets/javascripts/ueditor/dialogs/background/background.html +0 -0
  33. data/vendor/assets/javascripts/ueditor/dialogs/background/background.js +205 -80
  34. data/vendor/assets/javascripts/ueditor/dialogs/background/images/bg.png +0 -0
  35. data/vendor/assets/javascripts/ueditor/dialogs/background/images/success.png +0 -0
  36. data/vendor/assets/javascripts/ueditor/dialogs/charts/chart.config.js +0 -0
  37. data/vendor/assets/javascripts/ueditor/dialogs/charts/charts.css +0 -0
  38. data/vendor/assets/javascripts/ueditor/dialogs/charts/charts.html +0 -0
  39. data/vendor/assets/javascripts/ueditor/dialogs/charts/charts.js +0 -0
  40. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts0.png +0 -0
  41. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts1.png +0 -0
  42. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts2.png +0 -0
  43. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts3.png +0 -0
  44. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts4.png +0 -0
  45. data/vendor/assets/javascripts/ueditor/dialogs/charts/images/charts5.png +0 -0
  46. data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.css +0 -0
  47. data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.html +0 -0
  48. data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.js +0 -0
  49. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/0.gif +0 -0
  50. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/bface.gif +0 -0
  51. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/cface.gif +0 -0
  52. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/fface.gif +0 -0
  53. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/jxface2.gif +0 -0
  54. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/neweditor-tab-bg.png +0 -0
  55. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/tface.gif +0 -0
  56. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/wface.gif +0 -0
  57. data/vendor/assets/javascripts/ueditor/dialogs/emotion/images/yface.gif +0 -0
  58. data/vendor/assets/javascripts/ueditor/dialogs/gmap/gmap.html +3 -3
  59. data/vendor/assets/javascripts/ueditor/dialogs/help/help.css +0 -0
  60. data/vendor/assets/javascripts/ueditor/dialogs/help/help.html +0 -0
  61. data/vendor/assets/javascripts/ueditor/dialogs/help/help.js +1 -1
  62. data/vendor/assets/javascripts/ueditor/dialogs/image/image.css +880 -55
  63. data/vendor/assets/javascripts/ueditor/dialogs/image/image.html +101 -239
  64. data/vendor/assets/javascripts/ueditor/dialogs/image/image.js +1054 -625
  65. data/vendor/assets/javascripts/ueditor/dialogs/image/images/alignicon.jpg +0 -0
  66. data/vendor/assets/javascripts/ueditor/dialogs/image/images/bg.png +0 -0
  67. data/vendor/assets/javascripts/ueditor/dialogs/image/images/icons.gif +0 -0
  68. data/vendor/assets/javascripts/ueditor/dialogs/image/images/icons.png +0 -0
  69. data/vendor/assets/javascripts/ueditor/dialogs/image/images/image.png +0 -0
  70. data/vendor/assets/javascripts/ueditor/dialogs/image/images/progress.png +0 -0
  71. data/vendor/assets/javascripts/ueditor/dialogs/image/images/success.gif +0 -0
  72. data/vendor/assets/javascripts/ueditor/dialogs/image/images/success.png +0 -0
  73. data/vendor/assets/javascripts/ueditor/dialogs/insertframe/insertframe.html +0 -0
  74. data/vendor/assets/javascripts/ueditor/dialogs/internal.js +0 -0
  75. data/vendor/assets/javascripts/ueditor/dialogs/link/link.html +2 -2
  76. data/vendor/assets/javascripts/ueditor/dialogs/map/map.html +0 -0
  77. data/vendor/assets/javascripts/ueditor/dialogs/map/show.html +0 -0
  78. data/vendor/assets/javascripts/ueditor/dialogs/music/music.css +0 -0
  79. data/vendor/assets/javascripts/ueditor/dialogs/music/music.html +0 -0
  80. data/vendor/assets/javascripts/ueditor/dialogs/music/music.js +0 -0
  81. data/vendor/assets/javascripts/ueditor/dialogs/preview/preview.html +0 -0
  82. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/addimg.png +0 -0
  83. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/brush.png +0 -0
  84. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/delimg.png +0 -0
  85. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/delimgH.png +0 -0
  86. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/empty.png +0 -0
  87. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/emptyH.png +0 -0
  88. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/eraser.png +0 -0
  89. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/redo.png +0 -0
  90. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/redoH.png +0 -0
  91. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/scale.png +0 -0
  92. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/scaleH.png +0 -0
  93. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/size.png +0 -0
  94. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/undo.png +0 -0
  95. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/images/undoH.png +0 -0
  96. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/scrawl.css +0 -0
  97. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/scrawl.html +1 -1
  98. data/vendor/assets/javascripts/ueditor/dialogs/scrawl/scrawl.js +29 -13
  99. data/vendor/assets/javascripts/ueditor/dialogs/searchreplace/searchreplace.html +0 -0
  100. data/vendor/assets/javascripts/ueditor/dialogs/searchreplace/searchreplace.js +0 -0
  101. data/vendor/assets/javascripts/ueditor/dialogs/snapscreen/snapscreen.html +0 -0
  102. data/vendor/assets/javascripts/ueditor/dialogs/spechars/spechars.html +0 -0
  103. data/vendor/assets/javascripts/ueditor/dialogs/spechars/spechars.js +0 -0
  104. data/vendor/assets/javascripts/ueditor/dialogs/table/dragicon.png +0 -0
  105. data/vendor/assets/javascripts/ueditor/dialogs/table/edittable.css +0 -0
  106. data/vendor/assets/javascripts/ueditor/dialogs/table/edittable.html +0 -0
  107. data/vendor/assets/javascripts/ueditor/dialogs/table/edittable.js +0 -0
  108. data/vendor/assets/javascripts/ueditor/dialogs/table/edittd.html +0 -0
  109. data/vendor/assets/javascripts/ueditor/dialogs/table/edittip.html +0 -0
  110. data/vendor/assets/javascripts/ueditor/dialogs/template/config.js +0 -0
  111. data/vendor/assets/javascripts/ueditor/dialogs/template/images/bg.gif +0 -0
  112. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre0.png +0 -0
  113. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre1.png +0 -0
  114. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre2.png +0 -0
  115. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre3.png +0 -0
  116. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre4.png +0 -0
  117. data/vendor/assets/javascripts/ueditor/dialogs/template/template.css +0 -0
  118. data/vendor/assets/javascripts/ueditor/dialogs/template/template.html +0 -0
  119. data/vendor/assets/javascripts/ueditor/dialogs/template/template.js +0 -0
  120. data/vendor/assets/javascripts/ueditor/dialogs/video/images/bg.png +0 -0
  121. data/vendor/assets/javascripts/ueditor/dialogs/video/images/center_focus.jpg +0 -0
  122. data/vendor/assets/javascripts/ueditor/dialogs/video/images/file-icons.gif +0 -0
  123. data/vendor/assets/javascripts/ueditor/dialogs/video/images/file-icons.png +0 -0
  124. data/vendor/assets/javascripts/ueditor/dialogs/video/images/icons.gif +0 -0
  125. data/vendor/assets/javascripts/ueditor/dialogs/video/images/icons.png +0 -0
  126. data/vendor/assets/javascripts/ueditor/dialogs/video/images/image.png +0 -0
  127. data/vendor/assets/javascripts/ueditor/dialogs/video/images/left_focus.jpg +0 -0
  128. data/vendor/assets/javascripts/ueditor/dialogs/video/images/none_focus.jpg +0 -0
  129. data/vendor/assets/javascripts/ueditor/dialogs/video/images/progress.png +0 -0
  130. data/vendor/assets/javascripts/ueditor/dialogs/video/images/right_focus.jpg +0 -0
  131. data/vendor/assets/javascripts/ueditor/dialogs/video/images/success.gif +0 -0
  132. data/vendor/assets/javascripts/ueditor/dialogs/video/images/success.png +0 -0
  133. data/vendor/assets/javascripts/ueditor/dialogs/video/video.css +555 -70
  134. data/vendor/assets/javascripts/ueditor/dialogs/video/video.html +29 -38
  135. data/vendor/assets/javascripts/ueditor/dialogs/video/video.js +521 -201
  136. data/vendor/assets/javascripts/ueditor/dialogs/webapp/webapp.html +0 -0
  137. data/vendor/assets/javascripts/ueditor/dialogs/wordimage/fClipboard_ueditor.swf +0 -0
  138. data/vendor/assets/javascripts/ueditor/dialogs/wordimage/imageUploader.swf +0 -0
  139. data/vendor/assets/javascripts/ueditor/dialogs/{tangram.js → wordimage/tangram.js} +1495 -1495
  140. data/vendor/assets/javascripts/ueditor/dialogs/wordimage/wordimage.html +22 -15
  141. data/vendor/assets/javascripts/ueditor/dialogs/wordimage/wordimage.js +4 -5
  142. data/vendor/assets/javascripts/ueditor/index.html +13 -13
  143. data/vendor/assets/javascripts/ueditor/lang/en/en.js +233 -187
  144. data/vendor/assets/javascripts/ueditor/lang/en/images/addimage.png +0 -0
  145. data/vendor/assets/javascripts/ueditor/lang/en/images/alldeletebtnhoverskin.png +0 -0
  146. data/vendor/assets/javascripts/ueditor/lang/en/images/alldeletebtnupskin.png +0 -0
  147. data/vendor/assets/javascripts/ueditor/lang/en/images/background.png +0 -0
  148. data/vendor/assets/javascripts/ueditor/lang/en/images/button.png +0 -0
  149. data/vendor/assets/javascripts/ueditor/lang/en/images/copy.png +0 -0
  150. data/vendor/assets/javascripts/ueditor/lang/en/images/deletedisable.png +0 -0
  151. data/vendor/assets/javascripts/ueditor/lang/en/images/deleteenable.png +0 -0
  152. data/vendor/assets/javascripts/ueditor/lang/en/images/listbackground.png +0 -0
  153. data/vendor/assets/javascripts/ueditor/lang/en/images/localimage.png +0 -0
  154. data/vendor/assets/javascripts/ueditor/lang/en/images/music.png +0 -0
  155. data/vendor/assets/javascripts/ueditor/lang/en/images/rotateleftdisable.png +0 -0
  156. data/vendor/assets/javascripts/ueditor/lang/en/images/rotateleftenable.png +0 -0
  157. data/vendor/assets/javascripts/ueditor/lang/en/images/rotaterightdisable.png +0 -0
  158. data/vendor/assets/javascripts/ueditor/lang/en/images/rotaterightenable.png +0 -0
  159. data/vendor/assets/javascripts/ueditor/lang/en/images/upload.png +0 -0
  160. data/vendor/assets/javascripts/ueditor/lang/zh-cn/images/copy.png +0 -0
  161. data/vendor/assets/javascripts/ueditor/lang/zh-cn/images/localimage.png +0 -0
  162. data/vendor/assets/javascripts/ueditor/lang/zh-cn/images/music.png +0 -0
  163. data/vendor/assets/javascripts/ueditor/lang/zh-cn/images/upload.png +0 -0
  164. data/vendor/assets/javascripts/ueditor/lang/zh-cn/zh-cn.js +248 -184
  165. data/vendor/assets/javascripts/ueditor/themes/default/css/ueditor.css +118 -38
  166. data/vendor/assets/javascripts/ueditor/themes/default/css/ueditor.min.css +8 -8
  167. data/vendor/assets/javascripts/ueditor/themes/default/dialogbase.css +1 -1
  168. data/vendor/assets/javascripts/ueditor/themes/default/images/anchor.gif +0 -0
  169. data/vendor/assets/javascripts/ueditor/themes/default/images/arrow.png +0 -0
  170. data/vendor/assets/javascripts/ueditor/themes/default/images/arrow_down.png +0 -0
  171. data/vendor/assets/javascripts/ueditor/themes/default/images/arrow_up.png +0 -0
  172. data/vendor/assets/javascripts/ueditor/themes/default/images/button-bg.gif +0 -0
  173. data/vendor/assets/javascripts/ueditor/themes/default/images/cancelbutton.gif +0 -0
  174. data/vendor/assets/javascripts/ueditor/themes/default/images/charts.png +0 -0
  175. data/vendor/assets/javascripts/ueditor/themes/default/images/cursor_h.gif +0 -0
  176. data/vendor/assets/javascripts/ueditor/themes/default/images/cursor_h.png +0 -0
  177. data/vendor/assets/javascripts/ueditor/themes/default/images/cursor_v.gif +0 -0
  178. data/vendor/assets/javascripts/ueditor/themes/default/images/cursor_v.png +0 -0
  179. data/vendor/assets/javascripts/ueditor/themes/default/images/dialog-title-bg.png +0 -0
  180. data/vendor/assets/javascripts/ueditor/themes/default/images/filescan.png +0 -0
  181. data/vendor/assets/javascripts/ueditor/themes/default/images/highlighted.gif +0 -0
  182. data/vendor/assets/javascripts/ueditor/themes/default/images/icons-all.gif +0 -0
  183. data/vendor/assets/javascripts/ueditor/themes/default/images/icons.gif +0 -0
  184. data/vendor/assets/javascripts/ueditor/themes/default/images/icons.png +0 -0
  185. data/vendor/assets/javascripts/ueditor/themes/default/images/loaderror.png +0 -0
  186. data/vendor/assets/javascripts/ueditor/themes/default/images/loading.gif +0 -0
  187. data/vendor/assets/javascripts/ueditor/themes/default/images/lock.gif +0 -0
  188. data/vendor/assets/javascripts/ueditor/themes/default/images/neweditor-tab-bg.png +0 -0
  189. data/vendor/assets/javascripts/ueditor/themes/default/images/pagebreak.gif +0 -0
  190. data/vendor/assets/javascripts/ueditor/themes/default/images/scale.png +0 -0
  191. data/vendor/assets/javascripts/ueditor/themes/default/images/sortable.png +0 -0
  192. data/vendor/assets/javascripts/ueditor/themes/default/images/spacer.gif +0 -0
  193. data/vendor/assets/javascripts/ueditor/themes/default/images/sparator_v.png +0 -0
  194. data/vendor/assets/javascripts/ueditor/themes/default/images/table-cell-align.png +0 -0
  195. data/vendor/assets/javascripts/ueditor/themes/default/images/tangram-colorpicker.png +0 -0
  196. data/vendor/assets/javascripts/ueditor/themes/default/images/toolbar_bg.png +0 -0
  197. data/vendor/assets/javascripts/ueditor/themes/default/images/unhighlighted.gif +0 -0
  198. data/vendor/assets/javascripts/ueditor/themes/default/images/upload.png +0 -0
  199. data/vendor/assets/javascripts/ueditor/themes/default/images/videologo.gif +0 -0
  200. data/vendor/assets/javascripts/ueditor/themes/default/images/word.gif +0 -0
  201. data/vendor/assets/javascripts/ueditor/themes/default/images/wordpaste.png +0 -0
  202. data/vendor/assets/javascripts/ueditor/themes/iframe.css +0 -0
  203. data/vendor/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCore.js +0 -0
  204. data/vendor/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css +0 -0
  205. data/vendor/assets/javascripts/ueditor/third-party/codemirror/codemirror.css +0 -0
  206. data/vendor/assets/javascripts/ueditor/third-party/codemirror/codemirror.js +0 -0
  207. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/mootools-adapter.js +0 -0
  208. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/mootools-adapter.src.js +0 -0
  209. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/prototype-adapter.js +0 -0
  210. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/prototype-adapter.src.js +0 -0
  211. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/standalone-framework.js +0 -0
  212. data/vendor/assets/javascripts/ueditor/third-party/highcharts/adapters/standalone-framework.src.js +0 -0
  213. data/vendor/assets/javascripts/ueditor/third-party/highcharts/highcharts-more.js +0 -0
  214. data/vendor/assets/javascripts/ueditor/third-party/highcharts/highcharts-more.src.js +0 -0
  215. data/vendor/assets/javascripts/ueditor/third-party/highcharts/highcharts.js +0 -0
  216. data/vendor/assets/javascripts/ueditor/third-party/highcharts/highcharts.src.js +0 -0
  217. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/annotations.js +0 -0
  218. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/annotations.src.js +0 -0
  219. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/canvas-tools.js +0 -0
  220. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/canvas-tools.src.js +0 -0
  221. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/data.js +0 -0
  222. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/data.src.js +0 -0
  223. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/drilldown.js +0 -0
  224. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/drilldown.src.js +0 -0
  225. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/exporting.js +0 -0
  226. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/exporting.src.js +0 -0
  227. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/funnel.js +0 -0
  228. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/funnel.src.js +0 -0
  229. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/heatmap.js +0 -0
  230. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/heatmap.src.js +0 -0
  231. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/map.js +0 -0
  232. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/map.src.js +0 -0
  233. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/no-data-to-display.js +0 -0
  234. data/vendor/assets/javascripts/ueditor/third-party/highcharts/modules/no-data-to-display.src.js +0 -0
  235. data/vendor/assets/javascripts/ueditor/third-party/highcharts/themes/dark-blue.js +0 -0
  236. data/vendor/assets/javascripts/ueditor/third-party/highcharts/themes/dark-green.js +0 -0
  237. data/vendor/assets/javascripts/ueditor/third-party/highcharts/themes/gray.js +0 -0
  238. data/vendor/assets/javascripts/ueditor/third-party/highcharts/themes/grid.js +0 -0
  239. data/vendor/assets/javascripts/ueditor/third-party/highcharts/themes/skies.js +0 -0
  240. data/vendor/assets/javascripts/ueditor/third-party/jquery-1.10.2.js +9789 -0
  241. data/vendor/assets/javascripts/ueditor/third-party/jquery-1.10.2.min.js +0 -0
  242. data/vendor/assets/javascripts/ueditor/third-party/jquery-1.10.2.min.map +1 -0
  243. data/vendor/assets/javascripts/ueditor/third-party/snapscreen/UEditorSnapscreen.exe +0 -0
  244. data/vendor/assets/javascripts/ueditor/third-party/video-js/font/vjs.eot +0 -0
  245. data/vendor/assets/javascripts/ueditor/third-party/video-js/font/vjs.svg +0 -0
  246. data/vendor/assets/javascripts/ueditor/third-party/video-js/font/vjs.ttf +0 -0
  247. data/vendor/assets/javascripts/ueditor/third-party/video-js/font/vjs.woff +0 -0
  248. data/vendor/assets/javascripts/ueditor/third-party/video-js/video-js.css +0 -0
  249. data/vendor/assets/javascripts/ueditor/third-party/video-js/video-js.min.css +0 -0
  250. data/vendor/assets/javascripts/ueditor/third-party/video-js/video-js.swf +0 -0
  251. data/vendor/assets/javascripts/ueditor/third-party/video-js/video.dev.js +0 -0
  252. data/vendor/assets/javascripts/ueditor/third-party/video-js/video.js +0 -0
  253. data/vendor/assets/javascripts/ueditor/third-party/webuploader/Uploader.swf +0 -0
  254. data/vendor/assets/javascripts/ueditor/third-party/webuploader/webuploader.css +28 -0
  255. data/vendor/assets/javascripts/ueditor/third-party/webuploader/webuploader.custom.js +5670 -0
  256. data/vendor/assets/javascripts/ueditor/third-party/webuploader/webuploader.custom.min.js +2 -0
  257. data/vendor/assets/javascripts/ueditor/third-party/webuploader/webuploader.flashonly.js +4176 -0
  258. data/vendor/assets/javascripts/ueditor/third-party/webuploader/webuploader.flashonly.min.js +2 -0
  259. data/vendor/assets/javascripts/ueditor/third-party/webuploader/webuploader.html5only.js +5559 -0
  260. data/vendor/assets/javascripts/ueditor/third-party/webuploader/webuploader.html5only.min.js +2 -0
  261. data/vendor/assets/javascripts/ueditor/third-party/webuploader/webuploader.js +6733 -0
  262. data/vendor/assets/javascripts/ueditor/third-party/webuploader/webuploader.min.js +2 -0
  263. data/vendor/assets/javascripts/ueditor/third-party/webuploader/webuploader.withoutimage.js +4593 -0
  264. data/vendor/assets/javascripts/ueditor/third-party/webuploader/webuploader.withoutimage.min.js +2 -0
  265. data/vendor/assets/javascripts/ueditor/third-party/xss.min.js +1 -0
  266. data/vendor/assets/javascripts/ueditor/third-party/zeroclipboard/ZeroClipboard.js +1256 -0
  267. data/vendor/assets/javascripts/ueditor/third-party/zeroclipboard/ZeroClipboard.min.js +9 -0
  268. data/vendor/assets/javascripts/ueditor/third-party/zeroclipboard/ZeroClipboard.swf +0 -0
  269. data/vendor/assets/javascripts/ueditor/ueditor.all.js +4719 -2686
  270. data/vendor/assets/javascripts/ueditor/ueditor.all.min.js +18 -664
  271. data/vendor/assets/javascripts/ueditor/ueditor.config.js +497 -452
  272. data/vendor/assets/javascripts/ueditor/ueditor.parse.js +45 -38
  273. data/vendor/assets/javascripts/ueditor/ueditor.parse.min.js +7 -28
  274. metadata +56 -22
  275. data/vendor/assets/javascripts/ueditor/dialogs/attachment/callbacks.js +0 -166
  276. data/vendor/assets/javascripts/ueditor/dialogs/attachment/fileTypeMaps.js +0 -29
  277. data/vendor/assets/javascripts/ueditor/dialogs/image/imageUploader.swf +0 -0
  278. data/vendor/assets/javascripts/ueditor/dialogs/image/images/center_focus.jpg +0 -0
  279. data/vendor/assets/javascripts/ueditor/dialogs/image/images/left_focus.jpg +0 -0
  280. data/vendor/assets/javascripts/ueditor/dialogs/image/images/none_focus.jpg +0 -0
  281. data/vendor/assets/javascripts/ueditor/dialogs/image/images/right_focus.jpg +0 -0
  282. data/vendor/assets/javascripts/ueditor/dialogs/video/callbacks.js +0 -166
  283. data/vendor/assets/javascripts/ueditor/lang/en/images/imglabel.png +0 -0
  284. data/vendor/assets/javascripts/ueditor/third-party/swfupload/fileprogress.js +0 -215
  285. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.cookies.js +0 -53
  286. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.js +0 -1132
  287. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.proxy.js +0 -96
  288. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.queue.js +0 -98
  289. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.speed.js +0 -346
  290. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload.swf +0 -0
  291. data/vendor/assets/javascripts/ueditor/third-party/swfupload/swfupload_fp9.swf +0 -0
@@ -8,13 +8,10 @@
8
8
 
9
9
  (function(){
10
10
 
11
- editor.setOpt({
12
- videoFieldName:"upfile"
13
- });
14
-
15
11
  var video = {},
16
12
  uploadVideoList = [],
17
- isModifyUploadVideo = false;
13
+ isModifyUploadVideo = false,
14
+ uploadFile;
18
15
 
19
16
  window.onload = function(){
20
17
  $focus($G("videoUrl"));
@@ -28,14 +25,15 @@
28
25
  var tabs = $G('tabHeads').children;
29
26
  for (var i = 0; i < tabs.length; i++) {
30
27
  domUtils.on(tabs[i], "click", function (e) {
31
- var target = e.target || e.srcElement;
32
- for (var j = 0; j < tabs.length; j++) {
28
+ var j, bodyId, target = e.target || e.srcElement;
29
+ for (j = 0; j < tabs.length; j++) {
30
+ bodyId = tabs[j].getAttribute('data-content-id');
33
31
  if(tabs[j] == target){
34
- tabs[j].className = "focus";
35
- $G(tabs[j].getAttribute('data-content-id')).style.display = "block";
32
+ domUtils.addClass(tabs[j], 'focus');
33
+ domUtils.addClass($G(bodyId), 'focus');
36
34
  }else {
37
- tabs[j].className = "";
38
- $G(tabs[j].getAttribute('data-content-id')).style.display = "none";
35
+ domUtils.removeClasses(tabs[j], 'focus');
36
+ domUtils.removeClasses($G(bodyId), 'focus');
39
37
  }
40
38
  }
41
39
  });
@@ -67,7 +65,8 @@
67
65
  }
68
66
  createPreviewVideo(url);
69
67
  })();
70
- };
68
+ }
69
+
71
70
  /**
72
71
  * 监听确认和取消两个按钮事件,用户执行插入或者清空正在播放的视频实例操作
73
72
  */
@@ -92,15 +91,6 @@
92
91
  };
93
92
  }
94
93
 
95
- function selectTxt(node){
96
- if(node.select){
97
- node.select();
98
- }else{
99
- var r = node.createTextRange && node.createTextRange();
100
- r.select();
101
- }
102
- }
103
-
104
94
  /**
105
95
  * 依据传入的align值更新按钮信息
106
96
  * @param align
@@ -174,13 +164,23 @@
174
164
  }
175
165
  return property;
176
166
  }
177
- function convert_url(s){
178
- return s.replace(/http:\/\/www\.tudou\.com\/programs\/view\/([\w\-]+)\/?/i,"http://www.tudou.com/v/$1")
179
- .replace(/http:\/\/www\.youtube\.com\/watch\?v=([\w\-]+)/i,"http://www.youtube.com/v/$1")
180
- .replace(/http:\/\/v\.youku\.com\/v_show\/id_([\w\-=]+)\.html/i,"http://player.youku.com/player.php/sid/$1")
181
- .replace(/http:\/\/www\.56\.com\/u\d+\/v_([\w\-]+)\.html/i, "http://player.56.com/v_$1.swf")
182
- .replace(/http:\/\/www.56.com\/w\d+\/play_album\-aid\-\d+_vid\-([^.]+)\.html/i, "http://player.56.com/v_$1.swf")
183
- .replace(/http:\/\/v\.ku6\.com\/.+\/([^.]+)\.html/i, "http://player.ku6.com/refer/$1/v.swf");
167
+ function convert_url(url){
168
+ if ( !url ) return '';
169
+ url = utils.trim(url)
170
+ .replace(/v\.youku\.com\/v_show\/id_([\w\-=]+)\.html/i, 'player.youku.com/player.php/sid/$1/v.swf')
171
+ .replace(/(www\.)?youtube\.com\/watch\?v=([\w\-]+)/i, "www.youtube.com/v/$2")
172
+ .replace(/youtu.be\/(\w+)$/i, "www.youtube.com/v/$1")
173
+ .replace(/v\.ku6\.com\/.+\/([\w\.]+)\.html.*$/i, "player.ku6.com/refer/$1/v.swf")
174
+ .replace(/www\.56\.com\/u\d+\/v_([\w\-]+)\.html/i, "player.56.com/v_$1.swf")
175
+ .replace(/www.56.com\/w\d+\/play_album\-aid\-\d+_vid\-([^.]+)\.html/i, "player.56.com/v_$1.swf")
176
+ .replace(/v\.pps\.tv\/play_([\w]+)\.html.*$/i, "player.pps.tv/player/sid/$1/v.swf")
177
+ .replace(/www\.letv\.com\/ptv\/vplay\/([\d]+)\.html.*$/i, "i7.imgs.letv.com/player/swfPlayer.swf?id=$1&autoplay=0")
178
+ .replace(/www\.tudou\.com\/programs\/view\/([\w\-]+)\/?/i, "www.tudou.com/v/$1")
179
+ .replace(/v\.qq\.com\/cover\/[\w]+\/[\w]+\/([\w]+)\.html/i, "static.video.qq.com/TPout.swf?vid=$1")
180
+ .replace(/v\.qq\.com\/.+[\?\&]vid=([^&]+).*$/i, "static.video.qq.com/TPout.swf?vid=$1")
181
+ .replace(/my\.tv\.sohu\.com\/[\w]+\/[\d]+\/([\d]+)\.shtml.*$/i, "share.vrs.sohu.com/my/v.swf&id=$1");
182
+
183
+ return url;
184
184
  }
185
185
 
186
186
  /**
@@ -266,117 +266,28 @@
266
266
  * @param url
267
267
  */
268
268
  function createPreviewVideo(url){
269
-
270
269
  if ( !url )return;
271
- var matches = url.match(/youtu.be\/(\w+)$/) || url.match(/youtube\.com\/watch\?v=(\w+)/) || url.match(/youtube.com\/v\/(\w+)/),
272
- youku = url.match(/youku\.com\/v_show\/id_(\w+)/),
273
- youkuPlay = /player\.youku\.com/ig.test(url);
274
- if(!youkuPlay){
275
- if (matches){
276
- url = "https://www.youtube.com/v/" + matches[1] + "?version=3&feature=player_embedded";
277
- }else if(youku){
278
- url = "http://player.youku.com/player.php/sid/"+youku[1]+"/v.swf"
279
- }else if(!endWith(url,[".swf",".flv",".wmv"])){
280
- $G("preview").innerHTML = lang.urlError;
281
- return;
282
- }
283
- }else{
284
- url = url.replace(/\?f=.*/,"");
285
- }
286
- $G("preview").innerHTML = '<embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"' +
287
- ' src="' + url + '"' +
288
- ' width="' + 420 + '"' +
289
- ' height="' + 280 + '"' +
290
- ' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" ></embed>';
291
- }
292
-
293
- /**
294
- * 末尾字符检测
295
- * @param str
296
- * @param endStrArr
297
- */
298
- function endWith(str,endStrArr){
299
- for(var i=0,len = endStrArr.length;i<len;i++){
300
- var tmp = endStrArr[i];
301
- if(str.length - tmp.length<0) return false;
302
-
303
- if(str.substring(str.length-tmp.length)==tmp){
304
- return true;
305
- }
306
- }
307
- return false;
308
- }
309
270
 
310
- /**
311
- * ajax获取视频信息
312
- */
313
- function getMovie(){
314
- var keywordInput = $G("videoSearchTxt");
315
- if(!keywordInput.getAttribute("hasClick") ||!keywordInput.value){
316
- selectTxt(keywordInput);
317
- return;
318
- }
319
- $G( "searchList" ).innerHTML = lang.loading;
320
- var keyword = keywordInput.value,
321
- type = $G("videoType").value,
322
- str="";
323
- ajax.request(editor.options.getMovieUrl,{
324
- searchKey:keyword,
325
- videoType:type,
326
- onsuccess:function(xhr){
327
- try{
328
- var info = eval("("+xhr.responseText+")");
329
- }catch(e){
330
- return;
331
- }
271
+ var conUrl = convert_url(url);
332
272
 
333
- var videos = info.multiPageResult.results;
334
- var html=["<table width='530'>"];
335
- for(var i=0,ci;ci = videos[i++];){
336
- html.push(
337
- "<tr>" +
338
- "<td><img title='"+lang.clickToSelect+"' ue_video_url='"+ci.outerPlayerUrl+"' alt='"+ci.tags+"' width='106' height='80' src='"+ci.picUrl+"' /> </td>" +
339
- "<td>" +
340
- "<p><a target='_blank' title='"+lang.goToSource+"' href='"+ci.itemUrl+"'>"+ci.title.substr(0,30)+"</a></p>" +
341
- "<p style='height: 62px;line-height: 20px' title='"+ci.description+"'> "+ ci.description.substr(0,95) +" </p>" +
342
- "</td>" +
343
- "</tr>"
344
- );
345
- }
346
- html.push("</table>");
347
- $G("searchList").innerHTML = str = html.length ==2 ?lang.noVideo : html.join("");
348
- var imgs = domUtils.getElementsByTagName($G("searchList"),"img");
349
- if(!imgs)return;
350
- for(var i=0,img;img = imgs[i++];){
351
- domUtils.on(img,"click",function(){
352
- changeSelected(this);
353
- })
354
- }
355
- }
356
- });
357
- }
273
+ conUrl = utils.unhtmlForUrl(conUrl);
358
274
 
359
- /**
360
- * 改变对象o的选中状态
361
- * @param o
362
- */
363
- function changeSelected(o){
364
- if ( o.getAttribute( "selected" ) ) {
365
- o.removeAttribute( "selected" );
366
- o.style.cssText = "filter:alpha(Opacity=100);-moz-opacity:1;opacity: 1;border: 2px solid #fff";
367
- } else {
368
- o.setAttribute( "selected", "true" );
369
- o.style.cssText = "filter:alpha(Opacity=50);-moz-opacity:0.5;opacity: 0.5;border:2px solid blue;";
370
- }
275
+ $G("preview").innerHTML = '<div class="previewMsg"><span>'+lang.urlError+'</span></div>'+
276
+ '<embed class="previewVideo" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"' +
277
+ ' src="' + conUrl + '"' +
278
+ ' width="' + 420 + '"' +
279
+ ' height="' + 280 + '"' +
280
+ ' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >' +
281
+ '</embed>';
371
282
  }
372
283
 
373
284
 
374
285
  /* 插入上传视频 */
375
286
  function insertUpload(){
376
287
  var videoObjs=[],
377
- uploadDir = editor.options.videoPath,
378
- width = $G('upload_width').value || 420,
379
- height = $G('upload_height').value || 280,
288
+ uploadDir = editor.getOpt('videoUrlPrefix'),
289
+ width = parseInt($G('upload_width').value, 10) || 420,
290
+ height = parseInt($G('upload_height').value, 10) || 280,
380
291
  align = findFocus("upload_alignment","name") || 'none';
381
292
  for(var key in uploadVideoList) {
382
293
  var file = uploadVideoList[key];
@@ -387,85 +298,494 @@
387
298
  align:align
388
299
  });
389
300
  }
390
- editor.execCommand('insertvideo', videoObjs, 'upload');
301
+
302
+ var count = uploadFile.getQueueCount();
303
+ if (count) {
304
+ $('.info', '#queueList').html('<span style="color:red;">' + '还有2个未上传文件'.replace(/[\d]/, count) + '</span>');
305
+ return false;
306
+ } else {
307
+ editor.execCommand('insertvideo', videoObjs, 'upload');
308
+ }
391
309
  }
392
310
 
393
311
  /*初始化上传标签*/
394
312
  function initUpload(){
395
- var settings = {
396
- upload_url:editor.options.videoUrl, //附件上传服务器地址
397
- file_post_name:editor.options.videoFieldName, //向后台提交的表单名
398
- flash_url:"../../third-party/swfupload/swfupload.swf",
399
- flash9_url:"../../third-party/swfupload/swfupload_fp9.swf",
400
- post_params:{"PHPSESSID":"<?php echo session_id(); ?>","fileNameFormat":editor.options.fileNameFormat}, //解决session丢失问题
401
- file_size_limit:"100 MB", //文件大小限制,此处仅是前端flash选择时候的限制,具体还需要和后端结合判断
402
- file_types:"*.*", //允许的扩展名,多个扩展名之间用分号隔开,支持*通配符
403
- file_types_description:"Video Files", //扩展名描述
404
- file_upload_limit:100, //单次可同时上传的文件数目
405
- file_queue_limit:10, //队列中可同时上传的文件数目
406
- custom_settings:{ //自定义设置,用户可在此向服务器传递自定义变量
407
- progressTarget:"fsUploadProgress",
408
- startUploadId:"startUpload"
409
- },
410
- debug:false,
411
-
412
- // 按钮设置
413
- button_image_url:"../../themes/default/images/filescan.png",
414
- button_width:"100",
415
- button_height:"25",
416
- button_placeholder_id:"spanButtonPlaceHolder",
417
- button_text:'<span class="theFont">'+lang.browseFiles+'</span>',
418
- button_text_style:".theFont { font-size:14px;}",
419
- button_text_left_padding:10,
420
- button_text_top_padding:4,
421
- // 所有回调函数
422
- swfupload_preload_handler:preLoad,
423
- swfupload_load_failed_handler:loadFailed,
424
- file_queued_handler:fileQueued,
425
- file_queue_error_handler:fileQueueError,
426
- //选择文件完成回调
427
- file_dialog_complete_handler:function(numFilesSelected, numFilesQueued) {
428
- var me = this; //此处的this是swfupload对象
429
- if (numFilesQueued > 0) {
430
- dialog.buttons[0].setDisabled(true);
431
- var start = $G(this.customSettings.startUploadId);
432
- start.style.display = "";
433
- start.onclick = function(){
434
- me.startUpload();
435
- start.style.display = "none";
313
+ uploadFile = new UploadFile('queueList');
314
+ }
315
+
316
+
317
+ /* 上传附件 */
318
+ function UploadFile(target) {
319
+ this.$wrap = target.constructor == String ? $('#' + target) : $(target);
320
+ this.init();
321
+ }
322
+ UploadFile.prototype = {
323
+ init: function () {
324
+ this.fileList = [];
325
+ this.initContainer();
326
+ this.initUploader();
327
+ },
328
+ initContainer: function () {
329
+ this.$queue = this.$wrap.find('.filelist');
330
+ },
331
+ /* 初始化容器 */
332
+ initUploader: function () {
333
+ var _this = this,
334
+ $ = jQuery, // just in case. Make sure it's not an other libaray.
335
+ $wrap = _this.$wrap,
336
+ // 图片容器
337
+ $queue = $wrap.find('.filelist'),
338
+ // 状态栏,包括进度和控制按钮
339
+ $statusBar = $wrap.find('.statusBar'),
340
+ // 文件总体选择信息。
341
+ $info = $statusBar.find('.info'),
342
+ // 上传按钮
343
+ $upload = $wrap.find('.uploadBtn'),
344
+ // 上传按钮
345
+ $filePickerBtn = $wrap.find('.filePickerBtn'),
346
+ // 上传按钮
347
+ $filePickerBlock = $wrap.find('.filePickerBlock'),
348
+ // 没选择文件之前的内容。
349
+ $placeHolder = $wrap.find('.placeholder'),
350
+ // 总体进度条
351
+ $progress = $statusBar.find('.progress').hide(),
352
+ // 添加的文件数量
353
+ fileCount = 0,
354
+ // 添加的文件总大小
355
+ fileSize = 0,
356
+ // 优化retina, 在retina下这个值是2
357
+ ratio = window.devicePixelRatio || 1,
358
+ // 缩略图大小
359
+ thumbnailWidth = 113 * ratio,
360
+ thumbnailHeight = 113 * ratio,
361
+ // 可能有pedding, ready, uploading, confirm, done.
362
+ state = '',
363
+ // 所有文件的进度信息,key为file id
364
+ percentages = {},
365
+ supportTransition = (function () {
366
+ var s = document.createElement('p').style,
367
+ r = 'transition' in s ||
368
+ 'WebkitTransition' in s ||
369
+ 'MozTransition' in s ||
370
+ 'msTransition' in s ||
371
+ 'OTransition' in s;
372
+ s = null;
373
+ return r;
374
+ })(),
375
+ // WebUploader实例
376
+ uploader,
377
+ actionUrl = editor.getActionUrl(editor.getOpt('videoActionName')),
378
+ fileMaxSize = editor.getOpt('videoMaxSize'),
379
+ acceptExtensions = (editor.getOpt('videoAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');;
380
+
381
+ if (!WebUploader.Uploader.support()) {
382
+ $('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide();
383
+ return;
384
+ } else if (!editor.getOpt('videoActionName')) {
385
+ $('#filePickerReady').after($('<div>').html(lang.errorLoadConfig)).hide();
386
+ return;
387
+ }
388
+
389
+ uploader = _this.uploader = WebUploader.create({
390
+ pick: {
391
+ id: '#filePickerReady',
392
+ label: lang.uploadSelectFile
393
+ },
394
+ swf: '../../third-party/webuploader/Uploader.swf',
395
+ server: actionUrl,
396
+ fileVal: editor.getOpt('videoFieldName'),
397
+ duplicate: true,
398
+ fileSingleSizeLimit: fileMaxSize,
399
+ compress: false
400
+ });
401
+ uploader.addButton({
402
+ id: '#filePickerBlock'
403
+ });
404
+ uploader.addButton({
405
+ id: '#filePickerBtn',
406
+ label: lang.uploadAddFile
407
+ });
408
+
409
+ setState('pedding');
410
+
411
+ // 当有文件添加进来时执行,负责view的创建
412
+ function addFile(file) {
413
+ var $li = $('<li id="' + file.id + '">' +
414
+ '<p class="title">' + file.name + '</p>' +
415
+ '<p class="imgWrap"></p>' +
416
+ '<p class="progress"><span></span></p>' +
417
+ '</li>'),
418
+
419
+ $btns = $('<div class="file-panel">' +
420
+ '<span class="cancel">' + lang.uploadDelete + '</span>' +
421
+ '<span class="rotateRight">' + lang.uploadTurnRight + '</span>' +
422
+ '<span class="rotateLeft">' + lang.uploadTurnLeft + '</span></div>').appendTo($li),
423
+ $prgress = $li.find('p.progress span'),
424
+ $wrap = $li.find('p.imgWrap'),
425
+ $info = $('<p class="error"></p>').hide().appendTo($li),
426
+
427
+ showError = function (code) {
428
+ switch (code) {
429
+ case 'exceed_size':
430
+ text = lang.errorExceedSize;
431
+ break;
432
+ case 'interrupt':
433
+ text = lang.errorInterrupt;
434
+ break;
435
+ case 'http':
436
+ text = lang.errorHttp;
437
+ break;
438
+ case 'not_allow_type':
439
+ text = lang.errorFileType;
440
+ break;
441
+ default:
442
+ text = lang.errorUploadRetry;
443
+ break;
444
+ }
445
+ $info.text(text).show();
446
+ };
447
+
448
+ if (file.getStatus() === 'invalid') {
449
+ showError(file.statusText);
450
+ } else {
451
+ $wrap.text(lang.uploadPreview);
452
+ if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) {
453
+ $wrap.empty().addClass('notimage').append('<i class="file-preview file-type-' + file.ext.toLowerCase() + '"></i>' +
454
+ '<span class="file-title">' + file.name + '</span>');
455
+ } else {
456
+ if (browser.ie && browser.version <= 7) {
457
+ $wrap.text(lang.uploadNoPreview);
458
+ } else {
459
+ uploader.makeThumb(file, function (error, src) {
460
+ if (error || !src || (/^data:/.test(src) && browser.ie && browser.version <= 7)) {
461
+ $wrap.text(lang.uploadNoPreview);
462
+ } else {
463
+ var $img = $('<img src="' + src + '">');
464
+ $wrap.empty().append($img);
465
+ $img.on('error', function () {
466
+ $wrap.text(lang.uploadNoPreview);
467
+ });
468
+ }
469
+ }, thumbnailWidth, thumbnailHeight);
470
+ }
471
+ }
472
+ percentages[ file.id ] = [ file.size, 0 ];
473
+ file.rotation = 0;
474
+
475
+ /* 检查文件格式 */
476
+ if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
477
+ showError('not_allow_type');
478
+ uploader.removeFile(file);
479
+ }
480
+ }
481
+
482
+ file.on('statuschange', function (cur, prev) {
483
+ if (prev === 'progress') {
484
+ $prgress.hide().width(0);
485
+ } else if (prev === 'queued') {
486
+ $li.off('mouseenter mouseleave');
487
+ $btns.remove();
488
+ }
489
+ // 成功
490
+ if (cur === 'error' || cur === 'invalid') {
491
+ showError(file.statusText);
492
+ percentages[ file.id ][ 1 ] = 1;
493
+ } else if (cur === 'interrupt') {
494
+ showError('interrupt');
495
+ } else if (cur === 'queued') {
496
+ percentages[ file.id ][ 1 ] = 0;
497
+ } else if (cur === 'progress') {
498
+ $info.hide();
499
+ $prgress.css('display', 'block');
500
+ } else if (cur === 'complete') {
501
+ }
502
+
503
+ $li.removeClass('state-' + prev).addClass('state-' + cur);
504
+ });
505
+
506
+ $li.on('mouseenter', function () {
507
+ $btns.stop().animate({height: 30});
508
+ });
509
+ $li.on('mouseleave', function () {
510
+ $btns.stop().animate({height: 0});
511
+ });
512
+
513
+ $btns.on('click', 'span', function () {
514
+ var index = $(this).index(),
515
+ deg;
516
+
517
+ switch (index) {
518
+ case 0:
519
+ uploader.removeFile(file);
520
+ return;
521
+ case 1:
522
+ file.rotation += 90;
523
+ break;
524
+ case 2:
525
+ file.rotation -= 90;
526
+ break;
527
+ }
528
+
529
+ if (supportTransition) {
530
+ deg = 'rotate(' + file.rotation + 'deg)';
531
+ $wrap.css({
532
+ '-webkit-transform': deg,
533
+ '-mos-transform': deg,
534
+ '-o-transform': deg,
535
+ 'transform': deg
536
+ });
537
+ } else {
538
+ $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
539
+ }
540
+
541
+ });
542
+
543
+ $li.insertBefore($filePickerBlock);
544
+ }
545
+
546
+ // 负责view的销毁
547
+ function removeFile(file) {
548
+ var $li = $('#' + file.id);
549
+ delete percentages[ file.id ];
550
+ updateTotalProgress();
551
+ $li.off().find('.file-panel').off().end().remove();
552
+ }
553
+
554
+ function updateTotalProgress() {
555
+ var loaded = 0,
556
+ total = 0,
557
+ spans = $progress.children(),
558
+ percent;
559
+
560
+ $.each(percentages, function (k, v) {
561
+ total += v[ 0 ];
562
+ loaded += v[ 0 ] * v[ 1 ];
563
+ });
564
+
565
+ percent = total ? loaded / total : 0;
566
+
567
+ spans.eq(0).text(Math.round(percent * 100) + '%');
568
+ spans.eq(1).css('width', Math.round(percent * 100) + '%');
569
+ updateStatus();
570
+ }
571
+
572
+ function setState(val, files) {
573
+
574
+ if (val != state) {
575
+
576
+ var stats = uploader.getStats();
577
+
578
+ $upload.removeClass('state-' + state);
579
+ $upload.addClass('state-' + val);
580
+
581
+ switch (val) {
582
+
583
+ /* 未选择文件 */
584
+ case 'pedding':
585
+ $queue.addClass('element-invisible');
586
+ $statusBar.addClass('element-invisible');
587
+ $placeHolder.removeClass('element-invisible');
588
+ $progress.hide(); $info.hide();
589
+ uploader.refresh();
590
+ break;
591
+
592
+ /* 可以开始上传 */
593
+ case 'ready':
594
+ $placeHolder.addClass('element-invisible');
595
+ $queue.removeClass('element-invisible');
596
+ $statusBar.removeClass('element-invisible');
597
+ $progress.hide(); $info.show();
598
+ $upload.text(lang.uploadStart);
599
+ uploader.refresh();
600
+ break;
601
+
602
+ /* 上传中 */
603
+ case 'uploading':
604
+ $progress.show(); $info.hide();
605
+ $upload.text(lang.uploadPause);
606
+ break;
607
+
608
+ /* 暂停上传 */
609
+ case 'paused':
610
+ $progress.show(); $info.hide();
611
+ $upload.text(lang.uploadContinue);
612
+ break;
613
+
614
+ case 'confirm':
615
+ $progress.show(); $info.hide();
616
+ $upload.text(lang.uploadStart);
617
+
618
+ stats = uploader.getStats();
619
+ if (stats.successNum && !stats.uploadFailNum) {
620
+ setState('finish');
621
+ return;
622
+ }
623
+ break;
624
+
625
+ case 'finish':
626
+ $progress.hide(); $info.show();
627
+ if (stats.uploadFailNum) {
628
+ $upload.text(lang.uploadRetry);
629
+ } else {
630
+ $upload.text(lang.uploadStart);
631
+ }
632
+ break;
436
633
  }
634
+
635
+ state = val;
636
+ updateStatus();
637
+
437
638
  }
438
- },
439
- upload_start_handler:uploadStart,
440
- upload_progress_handler:uploadProgress,
441
- upload_error_handler:uploadError,
442
- upload_success_handler:function (file, serverData) {
443
- try{
444
- var info = eval("("+serverData+")");
445
- }catch(e){}
446
- var progress = new FileProgress(file, this.customSettings.progressTarget);
447
- if(info.state=="SUCCESS"){
448
- progress.setComplete();
449
- progress.setStatus("<span style='color: #0b0;font-weight: bold'>"+lang.uploadSuccess+"</span>");
450
- uploadVideoList.push({url:info.url,type:info.fileType,original:info.original});
451
- progress.toggleCancel(true,this,lang.delSuccessFile);
452
- }else{
453
- progress.setError();
454
- progress.setStatus(info.state);
455
- progress.toggleCancel(true,this,lang.delFailSaveFile);
639
+
640
+ if (!_this.getQueueCount()) {
641
+ $upload.addClass('disabled')
642
+ } else {
643
+ $upload.removeClass('disabled')
456
644
  }
457
- },
458
- //上传完成回调
459
- upload_complete_handler:uploadComplete,
460
- //队列完成回调
461
- queue_complete_handler:function(numFilesUploaded){
462
- dialog.buttons[0].setDisabled(false);
463
- // var status = $G("divStatus");
464
- // var num = status.innerHTML.match(/\d+/g);
465
- // status.innerHTML = ((num && num[0] ?parseInt(num[0]):0) + numFilesUploaded) +lang.statusPrompt;
645
+
466
646
  }
467
- };
468
- var swfupload = new SWFUpload( settings );
647
+
648
+ function updateStatus() {
649
+ var text = '', stats;
650
+
651
+ if (state === 'ready') {
652
+ text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize));
653
+ } else if (state === 'confirm') {
654
+ stats = uploader.getStats();
655
+ if (stats.uploadFailNum) {
656
+ text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum);
657
+ }
658
+ } else {
659
+ stats = uploader.getStats();
660
+ text = lang.updateStatusFinish.replace('_', fileCount).
661
+ replace('_KB', WebUploader.formatSize(fileSize)).
662
+ replace('_', stats.successNum);
663
+
664
+ if (stats.uploadFailNum) {
665
+ text += lang.updateStatusError.replace('_', stats.uploadFailNum);
666
+ }
667
+ }
668
+
669
+ $info.html(text);
670
+ }
671
+
672
+ uploader.on('fileQueued', function (file) {
673
+ fileCount++;
674
+ fileSize += file.size;
675
+
676
+ if (fileCount === 1) {
677
+ $placeHolder.addClass('element-invisible');
678
+ $statusBar.show();
679
+ }
680
+
681
+ addFile(file);
682
+ });
683
+
684
+ uploader.on('fileDequeued', function (file) {
685
+ fileCount--;
686
+ fileSize -= file.size;
687
+
688
+ removeFile(file);
689
+ updateTotalProgress();
690
+ });
691
+
692
+ uploader.on('filesQueued', function (file) {
693
+ if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) {
694
+ setState('ready');
695
+ }
696
+ updateTotalProgress();
697
+ });
698
+
699
+ uploader.on('all', function (type, files) {
700
+ switch (type) {
701
+ case 'uploadFinished':
702
+ setState('confirm', files);
703
+ break;
704
+ case 'startUpload':
705
+ /* 添加额外的GET参数 */
706
+ var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
707
+ url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params);
708
+ uploader.option('server', url);
709
+ setState('uploading', files);
710
+ break;
711
+ case 'stopUpload':
712
+ setState('paused', files);
713
+ break;
714
+ }
715
+ });
716
+
717
+ uploader.on('uploadBeforeSend', function (file, data, header) {
718
+ //这里可以通过data对象添加POST参数
719
+ header['X_Requested_With'] = 'XMLHttpRequest';
720
+ });
721
+
722
+ uploader.on('uploadProgress', function (file, percentage) {
723
+ var $li = $('#' + file.id),
724
+ $percent = $li.find('.progress span');
725
+
726
+ $percent.css('width', percentage * 100 + '%');
727
+ percentages[ file.id ][ 1 ] = percentage;
728
+ updateTotalProgress();
729
+ });
730
+
731
+ uploader.on('uploadSuccess', function (file, ret) {
732
+ var $file = $('#' + file.id);
733
+ try {
734
+ var responseText = (ret._raw || ret),
735
+ json = utils.str2json(responseText);
736
+ if (json.state == 'SUCCESS') {
737
+ uploadVideoList.push({
738
+ 'url': json.url,
739
+ 'type': json.type,
740
+ 'original':json.original
741
+ });
742
+ $file.append('<span class="success"></span>');
743
+ } else {
744
+ $file.find('.error').text(json.state).show();
745
+ }
746
+ } catch (e) {
747
+ $file.find('.error').text(lang.errorServerUpload).show();
748
+ }
749
+ });
750
+
751
+ uploader.on('uploadError', function (file, code) {
752
+ });
753
+ uploader.on('error', function (code, file) {
754
+ if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') {
755
+ addFile(file);
756
+ }
757
+ });
758
+ uploader.on('uploadComplete', function (file, ret) {
759
+ });
760
+
761
+ $upload.on('click', function () {
762
+ if ($(this).hasClass('disabled')) {
763
+ return false;
764
+ }
765
+
766
+ if (state === 'ready') {
767
+ uploader.upload();
768
+ } else if (state === 'paused') {
769
+ uploader.upload();
770
+ } else if (state === 'uploading') {
771
+ uploader.stop();
772
+ }
773
+ });
774
+
775
+ $upload.addClass('state-' + state);
776
+ updateTotalProgress();
777
+ },
778
+ getQueueCount: function () {
779
+ var file, i, status, readyFile = 0, files = this.uploader.getFiles();
780
+ for (i = 0; file = files[i++]; ) {
781
+ status = file.getStatus();
782
+ if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
783
+ }
784
+ return readyFile;
785
+ },
786
+ refresh: function(){
787
+ this.uploader.refresh();
788
+ }
469
789
  };
470
790
 
471
- })();
791
+ })();