loyal_rails_kindeditor 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (237) hide show
  1. data/.gitignore +5 -0
  2. data/Gemfile +6 -0
  3. data/README.md +317 -0
  4. data/Rakefile +2 -0
  5. data/app/assets/javascripts/kindeditor.js +1 -0
  6. data/app/controllers/kindeditor/assets_controller.rb +123 -0
  7. data/app/uploaders/kindeditor/asset_uploader.rb +89 -0
  8. data/app/uploaders/kindeditor/file_uploader.rb +10 -0
  9. data/app/uploaders/kindeditor/flash_uploader.rb +10 -0
  10. data/app/uploaders/kindeditor/image_uploader.rb +10 -0
  11. data/app/uploaders/kindeditor/media_uploader.rb +10 -0
  12. data/config/routes.rb +6 -0
  13. data/lib/generators/rails_kindeditor/install/USAGE +10 -0
  14. data/lib/generators/rails_kindeditor/install/install_generator.rb +23 -0
  15. data/lib/generators/rails_kindeditor/install/templates/application.js +17 -0
  16. data/lib/generators/rails_kindeditor/install/templates/rails_kindeditor.rb +19 -0
  17. data/lib/generators/rails_kindeditor/migration/USAGE +14 -0
  18. data/lib/generators/rails_kindeditor/migration/migration_generator.rb +36 -0
  19. data/lib/generators/rails_kindeditor/migration/templates/migration/migration.rb +15 -0
  20. data/lib/generators/rails_kindeditor/migration/templates/models/active_record/kindeditor/asset.rb +12 -0
  21. data/lib/generators/rails_kindeditor/migration/templates/models/active_record/kindeditor/file.rb +3 -0
  22. data/lib/generators/rails_kindeditor/migration/templates/models/active_record/kindeditor/flash.rb +3 -0
  23. data/lib/generators/rails_kindeditor/migration/templates/models/active_record/kindeditor/image.rb +3 -0
  24. data/lib/generators/rails_kindeditor/migration/templates/models/active_record/kindeditor/media.rb +3 -0
  25. data/lib/generators/rails_kindeditor/migration/templates/models/mongoid/kindeditor/asset.rb +21 -0
  26. data/lib/generators/rails_kindeditor/migration/templates/models/mongoid/kindeditor/file.rb +3 -0
  27. data/lib/generators/rails_kindeditor/migration/templates/models/mongoid/kindeditor/flash.rb +3 -0
  28. data/lib/generators/rails_kindeditor/migration/templates/models/mongoid/kindeditor/image.rb +3 -0
  29. data/lib/generators/rails_kindeditor/migration/templates/models/mongoid/kindeditor/media.rb +3 -0
  30. data/lib/rails_kindeditor/engine.rb +34 -0
  31. data/lib/rails_kindeditor/formtastic.rb +12 -0
  32. data/lib/rails_kindeditor/helper.rb +70 -0
  33. data/lib/rails_kindeditor/simple_form.rb +11 -0
  34. data/lib/rails_kindeditor/version.rb +4 -0
  35. data/lib/rails_kindeditor.rb +54 -0
  36. data/lib/tasks/assets.rake +9 -0
  37. data/rails_kindeditor.gemspec +23 -0
  38. data/screenshots/rails_kindeditor.png +0 -0
  39. data/screenshots/simple_mode.png +0 -0
  40. data/vendor/assets/javascripts/kindeditor/kindeditor.js +5827 -0
  41. data/vendor/assets/javascripts/kindeditor/lang/ar.js +232 -0
  42. data/vendor/assets/javascripts/kindeditor/lang/en.js +231 -0
  43. data/vendor/assets/javascripts/kindeditor/lang/ko.js +237 -0
  44. data/vendor/assets/javascripts/kindeditor/lang/zh_CN.js +235 -0
  45. data/vendor/assets/javascripts/kindeditor/lang/zh_TW.js +234 -0
  46. data/vendor/assets/javascripts/kindeditor/plugins/anchor/anchor.js +46 -0
  47. data/vendor/assets/javascripts/kindeditor/plugins/autoheight/autoheight.js +27 -0
  48. data/vendor/assets/javascripts/kindeditor/plugins/baidumap/baidumap.js +93 -0
  49. data/vendor/assets/javascripts/kindeditor/plugins/baidumap/index.html +83 -0
  50. data/vendor/assets/javascripts/kindeditor/plugins/baidumap/map.html +43 -0
  51. data/vendor/assets/javascripts/kindeditor/plugins/clearhtml/clearhtml.js +29 -0
  52. data/vendor/assets/javascripts/kindeditor/plugins/code/code.js +57 -0
  53. data/vendor/assets/javascripts/kindeditor/plugins/code/prettify.css +13 -0
  54. data/vendor/assets/javascripts/kindeditor/plugins/code/prettify.js +28 -0
  55. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/emoticons.js +129 -0
  56. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/0.gif +0 -0
  57. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/1.gif +0 -0
  58. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/10.gif +0 -0
  59. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/100.gif +0 -0
  60. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/101.gif +0 -0
  61. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/102.gif +0 -0
  62. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/103.gif +0 -0
  63. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/104.gif +0 -0
  64. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/105.gif +0 -0
  65. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/106.gif +0 -0
  66. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/107.gif +0 -0
  67. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/108.gif +0 -0
  68. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/109.gif +0 -0
  69. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/11.gif +0 -0
  70. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/110.gif +0 -0
  71. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/111.gif +0 -0
  72. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/112.gif +0 -0
  73. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/113.gif +0 -0
  74. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/114.gif +0 -0
  75. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/115.gif +0 -0
  76. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/116.gif +0 -0
  77. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/117.gif +0 -0
  78. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/118.gif +0 -0
  79. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/119.gif +0 -0
  80. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/12.gif +0 -0
  81. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/120.gif +0 -0
  82. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/121.gif +0 -0
  83. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/122.gif +0 -0
  84. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/123.gif +0 -0
  85. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/124.gif +0 -0
  86. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/125.gif +0 -0
  87. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/126.gif +0 -0
  88. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/127.gif +0 -0
  89. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/128.gif +0 -0
  90. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/129.gif +0 -0
  91. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/13.gif +0 -0
  92. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/130.gif +0 -0
  93. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/131.gif +0 -0
  94. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/132.gif +0 -0
  95. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/133.gif +0 -0
  96. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/134.gif +0 -0
  97. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/14.gif +0 -0
  98. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/15.gif +0 -0
  99. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/16.gif +0 -0
  100. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/17.gif +0 -0
  101. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/18.gif +0 -0
  102. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/19.gif +0 -0
  103. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/2.gif +0 -0
  104. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/20.gif +0 -0
  105. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/21.gif +0 -0
  106. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/22.gif +0 -0
  107. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/23.gif +0 -0
  108. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/24.gif +0 -0
  109. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/25.gif +0 -0
  110. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/26.gif +0 -0
  111. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/27.gif +0 -0
  112. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/28.gif +0 -0
  113. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/29.gif +0 -0
  114. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/3.gif +0 -0
  115. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/30.gif +0 -0
  116. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/31.gif +0 -0
  117. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/32.gif +0 -0
  118. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/33.gif +0 -0
  119. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/34.gif +0 -0
  120. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/35.gif +0 -0
  121. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/36.gif +0 -0
  122. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/37.gif +0 -0
  123. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/38.gif +0 -0
  124. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/39.gif +0 -0
  125. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/4.gif +0 -0
  126. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/40.gif +0 -0
  127. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/41.gif +0 -0
  128. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/42.gif +0 -0
  129. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/43.gif +0 -0
  130. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/44.gif +0 -0
  131. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/45.gif +0 -0
  132. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/46.gif +0 -0
  133. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/47.gif +0 -0
  134. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/48.gif +0 -0
  135. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/49.gif +0 -0
  136. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/5.gif +0 -0
  137. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/50.gif +0 -0
  138. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/51.gif +0 -0
  139. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/52.gif +0 -0
  140. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/53.gif +0 -0
  141. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/54.gif +0 -0
  142. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/55.gif +0 -0
  143. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/56.gif +0 -0
  144. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/57.gif +0 -0
  145. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/58.gif +0 -0
  146. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/59.gif +0 -0
  147. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/6.gif +0 -0
  148. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/60.gif +0 -0
  149. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/61.gif +0 -0
  150. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/62.gif +0 -0
  151. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/63.gif +0 -0
  152. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/64.gif +0 -0
  153. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/65.gif +0 -0
  154. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/66.gif +0 -0
  155. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/67.gif +0 -0
  156. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/68.gif +0 -0
  157. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/69.gif +0 -0
  158. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/7.gif +0 -0
  159. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/70.gif +0 -0
  160. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/71.gif +0 -0
  161. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/72.gif +0 -0
  162. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/73.gif +0 -0
  163. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/74.gif +0 -0
  164. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/75.gif +0 -0
  165. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/76.gif +0 -0
  166. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/77.gif +0 -0
  167. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/78.gif +0 -0
  168. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/79.gif +0 -0
  169. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/8.gif +0 -0
  170. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/80.gif +0 -0
  171. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/81.gif +0 -0
  172. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/82.gif +0 -0
  173. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/83.gif +0 -0
  174. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/84.gif +0 -0
  175. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/85.gif +0 -0
  176. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/86.gif +0 -0
  177. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/87.gif +0 -0
  178. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/88.gif +0 -0
  179. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/89.gif +0 -0
  180. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/9.gif +0 -0
  181. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/90.gif +0 -0
  182. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/91.gif +0 -0
  183. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/92.gif +0 -0
  184. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/93.gif +0 -0
  185. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/94.gif +0 -0
  186. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/95.gif +0 -0
  187. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/96.gif +0 -0
  188. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/97.gif +0 -0
  189. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/98.gif +0 -0
  190. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/99.gif +0 -0
  191. data/vendor/assets/javascripts/kindeditor/plugins/emoticons/images/static.gif +0 -0
  192. data/vendor/assets/javascripts/kindeditor/plugins/filemanager/filemanager.js +190 -0
  193. data/vendor/assets/javascripts/kindeditor/plugins/filemanager/images/file-16.gif +0 -0
  194. data/vendor/assets/javascripts/kindeditor/plugins/filemanager/images/file-64.gif +0 -0
  195. data/vendor/assets/javascripts/kindeditor/plugins/filemanager/images/folder-16.gif +0 -0
  196. data/vendor/assets/javascripts/kindeditor/plugins/filemanager/images/folder-64.gif +0 -0
  197. data/vendor/assets/javascripts/kindeditor/plugins/filemanager/images/go-up.gif +0 -0
  198. data/vendor/assets/javascripts/kindeditor/plugins/flash/flash.js +160 -0
  199. data/vendor/assets/javascripts/kindeditor/plugins/image/image.js +316 -0
  200. data/vendor/assets/javascripts/kindeditor/plugins/image/images/align_left.gif +0 -0
  201. data/vendor/assets/javascripts/kindeditor/plugins/image/images/align_right.gif +0 -0
  202. data/vendor/assets/javascripts/kindeditor/plugins/image/images/align_top.gif +0 -0
  203. data/vendor/assets/javascripts/kindeditor/plugins/image/images/refresh.png +0 -0
  204. data/vendor/assets/javascripts/kindeditor/plugins/insertfile/insertfile.js +139 -0
  205. data/vendor/assets/javascripts/kindeditor/plugins/lineheight/lineheight.js +38 -0
  206. data/vendor/assets/javascripts/kindeditor/plugins/link/link.js +66 -0
  207. data/vendor/assets/javascripts/kindeditor/plugins/map/map.html +57 -0
  208. data/vendor/assets/javascripts/kindeditor/plugins/map/map.js +137 -0
  209. data/vendor/assets/javascripts/kindeditor/plugins/media/media.js +169 -0
  210. data/vendor/assets/javascripts/kindeditor/plugins/multiimage/images/image.png +0 -0
  211. data/vendor/assets/javascripts/kindeditor/plugins/multiimage/images/select-files-en.png +0 -0
  212. data/vendor/assets/javascripts/kindeditor/plugins/multiimage/images/select-files-zh_CN.png +0 -0
  213. data/vendor/assets/javascripts/kindeditor/plugins/multiimage/images/swfupload.swf +0 -0
  214. data/vendor/assets/javascripts/kindeditor/plugins/multiimage/multiimage.js +1385 -0
  215. data/vendor/assets/javascripts/kindeditor/plugins/pagebreak/pagebreak.js +29 -0
  216. data/vendor/assets/javascripts/kindeditor/plugins/plainpaste/plainpaste.js +41 -0
  217. data/vendor/assets/javascripts/kindeditor/plugins/preview/preview.js +31 -0
  218. data/vendor/assets/javascripts/kindeditor/plugins/quickformat/quickformat.js +81 -0
  219. data/vendor/assets/javascripts/kindeditor/plugins/table/table.js +705 -0
  220. data/vendor/assets/javascripts/kindeditor/plugins/template/html/1.html +14 -0
  221. data/vendor/assets/javascripts/kindeditor/plugins/template/html/2.html +42 -0
  222. data/vendor/assets/javascripts/kindeditor/plugins/template/html/3.html +36 -0
  223. data/vendor/assets/javascripts/kindeditor/plugins/template/template.js +58 -0
  224. data/vendor/assets/javascripts/kindeditor/plugins/wordpaste/wordpaste.js +51 -0
  225. data/vendor/assets/javascripts/kindeditor/themes/common/anchor.gif +0 -0
  226. data/vendor/assets/javascripts/kindeditor/themes/common/blank.gif +0 -0
  227. data/vendor/assets/javascripts/kindeditor/themes/common/flash.gif +0 -0
  228. data/vendor/assets/javascripts/kindeditor/themes/common/loading.gif +0 -0
  229. data/vendor/assets/javascripts/kindeditor/themes/common/media.gif +0 -0
  230. data/vendor/assets/javascripts/kindeditor/themes/common/rm.gif +0 -0
  231. data/vendor/assets/javascripts/kindeditor/themes/default/background.png +0 -0
  232. data/vendor/assets/javascripts/kindeditor/themes/default/default.css +1148 -0
  233. data/vendor/assets/javascripts/kindeditor/themes/default/default.png +0 -0
  234. data/vendor/assets/javascripts/kindeditor/themes/qq/editor.gif +0 -0
  235. data/vendor/assets/javascripts/kindeditor/themes/qq/qq.css +143 -0
  236. data/vendor/assets/javascripts/kindeditor/themes/simple/simple.css +100 -0
  237. metadata +314 -0
@@ -0,0 +1,190 @@
1
+ /*******************************************************************************
2
+ * KindEditor - WYSIWYG HTML Editor for Internet
3
+ * Copyright (C) 2006-2011 kindsoft.net
4
+ *
5
+ * @author Roddy <luolonghao@gmail.com>
6
+ * @site http://www.kindsoft.net/
7
+ * @licence http://www.kindsoft.net/license.php
8
+ *******************************************************************************/
9
+
10
+ KindEditor.plugin('filemanager', function(K) {
11
+ var self = this, name = 'filemanager',
12
+ fileManagerJson = K.undef(self.fileManagerJson, self.basePath + 'php/file_manager_json.php'),
13
+ imgPath = self.pluginsPath + name + '/images/',
14
+ lang = self.lang(name + '.');
15
+ function makeFileTitle(filename, filesize, datetime) {
16
+ return filename + ' (' + Math.ceil(filesize / 1024) + 'KB, ' + datetime + ')';
17
+ }
18
+ function bindTitle(el, data) {
19
+ if (data.is_dir) {
20
+ el.attr('title', data.filename);
21
+ } else {
22
+ el.attr('title', makeFileTitle(data.filename, data.filesize, data.datetime));
23
+ }
24
+ }
25
+ self.plugin.filemanagerDialog = function(options) {
26
+ var width = K.undef(options.width, 650),
27
+ height = K.undef(options.height, 510),
28
+ dirName = K.undef(options.dirName, ''),
29
+ viewType = K.undef(options.viewType, 'VIEW').toUpperCase(), // "LIST" or "VIEW"
30
+ clickFn = options.clickFn;
31
+ var html = [
32
+ '<div style="padding:10px 20px;">',
33
+ // header start
34
+ '<div class="ke-plugin-filemanager-header">',
35
+ // left start
36
+ '<div class="ke-left">',
37
+ '<img class="ke-inline-block" name="moveupImg" src="' + imgPath + 'go-up.gif" width="16" height="16" border="0" alt="" /> ',
38
+ '<a class="ke-inline-block" name="moveupLink" href="javascript:;">' + lang.moveup + '</a>',
39
+ '</div>',
40
+ // right start
41
+ '<div class="ke-right">',
42
+ lang.viewType + ' <select class="ke-inline-block" name="viewType">',
43
+ '<option value="VIEW">' + lang.viewImage + '</option>',
44
+ '<option value="LIST">' + lang.listImage + '</option>',
45
+ '</select> ',
46
+ lang.orderType + ' <select class="ke-inline-block" name="orderType">',
47
+ '<option value="NAME">' + lang.fileName + '</option>',
48
+ '<option value="SIZE">' + lang.fileSize + '</option>',
49
+ '<option value="TYPE">' + lang.fileType + '</option>',
50
+ '</select>',
51
+ '</div>',
52
+ '<div class="ke-clearfix"></div>',
53
+ '</div>',
54
+ // body start
55
+ '<div class="ke-plugin-filemanager-body"></div>',
56
+ '</div>'
57
+ ].join('');
58
+ var dialog = self.createDialog({
59
+ name : name,
60
+ width : width,
61
+ height : height,
62
+ title : self.lang(name),
63
+ body : html
64
+ }),
65
+ div = dialog.div,
66
+ bodyDiv = K('.ke-plugin-filemanager-body', div),
67
+ moveupImg = K('[name="moveupImg"]', div),
68
+ moveupLink = K('[name="moveupLink"]', div),
69
+ viewServerBtn = K('[name="viewServer"]', div),
70
+ viewTypeBox = K('[name="viewType"]', div),
71
+ orderTypeBox = K('[name="orderType"]', div);
72
+ function reloadPage(path, order, func) {
73
+ var param = 'path=' + path + '&order=' + order + '&dir=' + dirName;
74
+ dialog.showLoading(self.lang('ajaxLoading'));
75
+ K.ajax(K.addParam(fileManagerJson, param + '&' + new Date().getTime()), function(data) {
76
+ dialog.hideLoading();
77
+ func(data);
78
+ });
79
+ }
80
+ var elList = [];
81
+ function bindEvent(el, result, data, createFunc) {
82
+ // var fileUrl = K.formatUrl(result.current_url + data.filename, 'absolute'),
83
+ var fileUrl = K.formatUrl(result.current_url + data.filename, 'domain'),
84
+ dirPath = encodeURIComponent(result.current_dir_path + data.filename + '/');
85
+ if (data.is_dir) {
86
+ el.click(function(e) {
87
+ reloadPage(dirPath, orderTypeBox.val(), createFunc);
88
+ });
89
+ } else if (data.is_photo) {
90
+ el.click(function(e) {
91
+ clickFn.call(this, fileUrl, data.filename);
92
+ });
93
+ } else {
94
+ el.click(function(e) {
95
+ clickFn.call(this, fileUrl, data.filename);
96
+ });
97
+ }
98
+ elList.push(el);
99
+ }
100
+ function createCommon(result, createFunc) {
101
+ // remove events
102
+ K.each(elList, function() {
103
+ this.unbind();
104
+ });
105
+ moveupLink.unbind();
106
+ viewTypeBox.unbind();
107
+ orderTypeBox.unbind();
108
+ // add events
109
+ if (result.current_dir_path) {
110
+ moveupLink.click(function(e) {
111
+ reloadPage(result.moveup_dir_path, orderTypeBox.val(), createFunc);
112
+ });
113
+ }
114
+ function changeFunc() {
115
+ if (viewTypeBox.val() == 'VIEW') {
116
+ reloadPage(result.current_dir_path, orderTypeBox.val(), createView);
117
+ } else {
118
+ reloadPage(result.current_dir_path, orderTypeBox.val(), createList);
119
+ }
120
+ }
121
+ viewTypeBox.change(changeFunc);
122
+ orderTypeBox.change(changeFunc);
123
+ bodyDiv.html('');
124
+ }
125
+ function createList(result) {
126
+ createCommon(result, createList);
127
+ var table = document.createElement('table');
128
+ table.className = 'ke-table';
129
+ table.cellPadding = 0;
130
+ table.cellSpacing = 0;
131
+ table.border = 0;
132
+ bodyDiv.append(table);
133
+ var fileList = result.file_list;
134
+ for (var i = 0, len = fileList.length; i < len; i++) {
135
+ var data = fileList[i], row = K(table.insertRow(i));
136
+ row.mouseover(function(e) {
137
+ K(this).addClass('ke-on');
138
+ })
139
+ .mouseout(function(e) {
140
+ K(this).removeClass('ke-on');
141
+ });
142
+ var iconUrl = imgPath + (data.is_dir ? 'folder-16.gif' : 'file-16.gif'),
143
+ img = K('<img src="' + iconUrl + '" width="16" height="16" alt="' + data.filename + '" align="absmiddle" />'),
144
+ cell0 = K(row[0].insertCell(0)).addClass('ke-cell ke-name').append(img).append(document.createTextNode(' ' + data.filename));
145
+ if (!data.is_dir || data.has_file) {
146
+ row.css('cursor', 'pointer');
147
+ cell0.attr('title', data.filename);
148
+ bindEvent(cell0, result, data, createList);
149
+ } else {
150
+ cell0.attr('title', lang.emptyFolder);
151
+ }
152
+ K(row[0].insertCell(1)).addClass('ke-cell ke-size').html(data.is_dir ? '-' : Math.ceil(data.filesize / 1024) + 'KB');
153
+ K(row[0].insertCell(2)).addClass('ke-cell ke-datetime').html(data.datetime);
154
+ }
155
+ }
156
+ function createView(result) {
157
+ createCommon(result, createView);
158
+ var fileList = result.file_list;
159
+ for (var i = 0, len = fileList.length; i < len; i++) {
160
+ var data = fileList[i],
161
+ div = K('<div class="ke-inline-block ke-item"></div>');
162
+ bodyDiv.append(div);
163
+ var photoDiv = K('<div class="ke-inline-block ke-photo"></div>')
164
+ .mouseover(function(e) {
165
+ K(this).addClass('ke-on');
166
+ })
167
+ .mouseout(function(e) {
168
+ K(this).removeClass('ke-on');
169
+ });
170
+ div.append(photoDiv);
171
+ var fileUrl = result.current_url + data.filename,
172
+ iconUrl = data.is_dir ? imgPath + 'folder-64.gif' : (data.is_photo ? fileUrl : imgPath + 'file-64.gif');
173
+ var img = K('<img src="' + iconUrl + '" width="80" height="80" alt="' + data.filename + '" />');
174
+ if (!data.is_dir || data.has_file) {
175
+ photoDiv.css('cursor', 'pointer');
176
+ bindTitle(photoDiv, data);
177
+ bindEvent(photoDiv, result, data, createView);
178
+ } else {
179
+ photoDiv.attr('title', lang.emptyFolder);
180
+ }
181
+ photoDiv.append(img);
182
+ div.append('<div class="ke-name" title="' + data.filename + '">' + data.filename + '</div>');
183
+ }
184
+ }
185
+ viewTypeBox.val(viewType);
186
+ reloadPage('', orderTypeBox.val(), viewType == 'VIEW' ? createView : createList);
187
+ return dialog;
188
+ }
189
+
190
+ });
@@ -0,0 +1,160 @@
1
+ /*******************************************************************************
2
+ * KindEditor - WYSIWYG HTML Editor for Internet
3
+ * Copyright (C) 2006-2011 kindsoft.net
4
+ *
5
+ * @author Roddy <luolonghao@gmail.com>
6
+ * @site http://www.kindsoft.net/
7
+ * @licence http://www.kindsoft.net/license.php
8
+ *******************************************************************************/
9
+
10
+ KindEditor.plugin('flash', function(K) {
11
+ var self = this, name = 'flash', lang = self.lang(name + '.'),
12
+ allowFlashUpload = K.undef(self.allowFlashUpload, true),
13
+ allowFileManager = K.undef(self.allowFileManager, false),
14
+ formatUploadUrl = K.undef(self.formatUploadUrl, true),
15
+ extraParams = K.undef(self.extraFileUploadParams, {}),
16
+ filePostName = K.undef(self.filePostName, 'imgFile'),
17
+ uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php');
18
+ self.plugin.flash = {
19
+ edit : function() {
20
+ var html = [
21
+ '<div style="padding:20px;">',
22
+ //url
23
+ '<div class="ke-dialog-row">',
24
+ '<label for="keUrl" style="width:60px;">' + lang.url + '</label>',
25
+ '<input class="ke-input-text" type="text" id="keUrl" name="url" value="" style="width:160px;" /> &nbsp;',
26
+ '<input type="button" class="ke-upload-button" value="' + lang.upload + '" /> &nbsp;',
27
+ '<span class="ke-button-common ke-button-outer">',
28
+ '<input type="button" class="ke-button-common ke-button" name="viewServer" value="' + lang.viewServer + '" />',
29
+ '</span>',
30
+ '</div>',
31
+ //width
32
+ '<div class="ke-dialog-row">',
33
+ '<label for="keWidth" style="width:60px;">' + lang.width + '</label>',
34
+ '<input type="text" id="keWidth" class="ke-input-text ke-input-number" name="width" value="550" maxlength="4" /> ',
35
+ '</div>',
36
+ //height
37
+ '<div class="ke-dialog-row">',
38
+ '<label for="keHeight" style="width:60px;">' + lang.height + '</label>',
39
+ '<input type="text" id="keHeight" class="ke-input-text ke-input-number" name="height" value="400" maxlength="4" /> ',
40
+ '</div>',
41
+ '</div>'
42
+ ].join('');
43
+ var dialog = self.createDialog({
44
+ name : name,
45
+ width : 450,
46
+ title : self.lang(name),
47
+ body : html,
48
+ yesBtn : {
49
+ name : self.lang('yes'),
50
+ click : function(e) {
51
+ var url = K.trim(urlBox.val()),
52
+ width = widthBox.val(),
53
+ height = heightBox.val();
54
+ if (url == 'http://' || K.invalidUrl(url)) {
55
+ alert(self.lang('invalidUrl'));
56
+ urlBox[0].focus();
57
+ return;
58
+ }
59
+ if (!/^\d*$/.test(width)) {
60
+ alert(self.lang('invalidWidth'));
61
+ widthBox[0].focus();
62
+ return;
63
+ }
64
+ if (!/^\d*$/.test(height)) {
65
+ alert(self.lang('invalidHeight'));
66
+ heightBox[0].focus();
67
+ return;
68
+ }
69
+ var html = K.mediaImg(self.themesPath + 'common/blank.gif', {
70
+ src : url,
71
+ type : K.mediaType('.swf'),
72
+ width : width,
73
+ height : height,
74
+ quality : 'high'
75
+ });
76
+ self.insertHtml(html).hideDialog().focus();
77
+ }
78
+ }
79
+ }),
80
+ div = dialog.div,
81
+ urlBox = K('[name="url"]', div),
82
+ viewServerBtn = K('[name="viewServer"]', div),
83
+ widthBox = K('[name="width"]', div),
84
+ heightBox = K('[name="height"]', div);
85
+ urlBox.val('http://');
86
+
87
+ if (allowFlashUpload) {
88
+ var uploadbutton = K.uploadbutton({
89
+ button : K('.ke-upload-button', div)[0],
90
+ fieldName : filePostName,
91
+ extraParams : extraParams,
92
+ url : K.addParam(uploadJson, 'dir=flash'),
93
+ afterUpload : function(data) {
94
+ dialog.hideLoading();
95
+ if (data.error === 0) {
96
+ var url = data.url;
97
+ if (formatUploadUrl) {
98
+ // url = K.formatUrl(url, 'absolute');
99
+ url = K.formatUrl(url, 'domain');
100
+ }
101
+ urlBox.val(url);
102
+ if (self.afterUpload) {
103
+ self.afterUpload.call(self, url, data, name);
104
+ }
105
+ alert(self.lang('uploadSuccess'));
106
+ } else {
107
+ alert(data.message);
108
+ }
109
+ },
110
+ afterError : function(html) {
111
+ dialog.hideLoading();
112
+ self.errorDialog(html);
113
+ }
114
+ });
115
+ uploadbutton.fileBox.change(function(e) {
116
+ dialog.showLoading(self.lang('uploadLoading'));
117
+ uploadbutton.submit();
118
+ });
119
+ } else {
120
+ K('.ke-upload-button', div).hide();
121
+ }
122
+
123
+ if (allowFileManager) {
124
+ viewServerBtn.click(function(e) {
125
+ self.loadPlugin('filemanager', function() {
126
+ self.plugin.filemanagerDialog({
127
+ viewType : 'LIST',
128
+ dirName : 'flash',
129
+ clickFn : function(url, title) {
130
+ if (self.dialogs.length > 1) {
131
+ K('[name="url"]', div).val(url);
132
+ if (self.afterSelectFile) {
133
+ self.afterSelectFile.call(self, url);
134
+ }
135
+ self.hideDialog();
136
+ }
137
+ }
138
+ });
139
+ });
140
+ });
141
+ } else {
142
+ viewServerBtn.hide();
143
+ }
144
+
145
+ var img = self.plugin.getSelectedFlash();
146
+ if (img) {
147
+ var attrs = K.mediaAttrs(img.attr('data-ke-tag'));
148
+ urlBox.val(attrs.src);
149
+ widthBox.val(K.removeUnit(img.css('width')) || attrs.width || 0);
150
+ heightBox.val(K.removeUnit(img.css('height')) || attrs.height || 0);
151
+ }
152
+ urlBox[0].focus();
153
+ urlBox[0].select();
154
+ },
155
+ 'delete' : function() {
156
+ self.plugin.getSelectedFlash().remove();
157
+ }
158
+ };
159
+ self.clickToolbar(name, self.plugin.flash.edit);
160
+ });
@@ -0,0 +1,316 @@
1
+ /*******************************************************************************
2
+ * KindEditor - WYSIWYG HTML Editor for Internet
3
+ * Copyright (C) 2006-2011 kindsoft.net
4
+ *
5
+ * @author Roddy <luolonghao@gmail.com>
6
+ * @site http://www.kindsoft.net/
7
+ * @licence http://www.kindsoft.net/license.php
8
+ *******************************************************************************/
9
+
10
+ KindEditor.plugin('image', function(K) {
11
+ var self = this, name = 'image',
12
+ allowImageUpload = K.undef(self.allowImageUpload, true),
13
+ formatUploadUrl = K.undef(self.formatUploadUrl, true),
14
+ allowFileManager = K.undef(self.allowFileManager, false),
15
+ uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'),
16
+ imageTabIndex = K.undef(self.imageTabIndex, 0),
17
+ imgPath = self.pluginsPath + 'image/images/',
18
+ extraParams = K.undef(self.extraFileUploadParams, {}),
19
+ filePostName = K.undef(self.filePostName, 'imgFile'),
20
+ fillDescAfterUploadImage = K.undef(self.fillDescAfterUploadImage, false),
21
+ lang = self.lang(name + '.');
22
+
23
+ self.plugin.imageDialog = function(options) {
24
+ var imageUrl = options.imageUrl,
25
+ imageWidth = K.undef(options.imageWidth, ''),
26
+ imageHeight = K.undef(options.imageHeight, ''),
27
+ imageTitle = K.undef(options.imageTitle, ''),
28
+ imageAlign = K.undef(options.imageAlign, ''),
29
+ showRemote = K.undef(options.showRemote, true),
30
+ showLocal = K.undef(options.showLocal, true),
31
+ tabIndex = K.undef(options.tabIndex, 0),
32
+ clickFn = options.clickFn;
33
+ var target = 'kindeditor_upload_iframe_' + new Date().getTime();
34
+ var hiddenElements = [];
35
+ for(var k in extraParams){
36
+ hiddenElements.push('<input type="hidden" name="' + k + '" value="' + extraParams[k] + '" />');
37
+ }
38
+ var html = [
39
+ '<div style="padding:20px;">',
40
+ //tabs
41
+ '<div class="tabs"></div>',
42
+ //remote image - start
43
+ '<div class="tab1" style="display:none;">',
44
+ //url
45
+ '<div class="ke-dialog-row">',
46
+ '<label for="remoteUrl" style="width:60px;">' + lang.remoteUrl + '</label>',
47
+ '<input type="text" id="remoteUrl" class="ke-input-text" name="url" value="" style="width:200px;" /> &nbsp;',
48
+ '<span class="ke-button-common ke-button-outer">',
49
+ '<input type="button" class="ke-button-common ke-button" name="viewServer" value="' + lang.viewServer + '" />',
50
+ '</span>',
51
+ '</div>',
52
+ //size
53
+ '<div class="ke-dialog-row">',
54
+ '<label for="remoteWidth" style="width:60px;">' + lang.size + '</label>',
55
+ lang.width + ' <input type="text" id="remoteWidth" class="ke-input-text ke-input-number" name="width" value="" maxlength="4" /> ',
56
+ lang.height + ' <input type="text" class="ke-input-text ke-input-number" name="height" value="" maxlength="4" /> ',
57
+ '<img class="ke-refresh-btn" src="' + imgPath + 'refresh.png" width="16" height="16" alt="" style="cursor:pointer;" title="' + lang.resetSize + '" />',
58
+ '</div>',
59
+ //align
60
+ '<div class="ke-dialog-row">',
61
+ '<label style="width:60px;">' + lang.align + '</label>',
62
+ '<input type="radio" name="align" class="ke-inline-block" value="" checked="checked" /> <img name="defaultImg" src="' + imgPath + 'align_top.gif" width="23" height="25" alt="" />',
63
+ ' <input type="radio" name="align" class="ke-inline-block" value="left" /> <img name="leftImg" src="' + imgPath + 'align_left.gif" width="23" height="25" alt="" />',
64
+ ' <input type="radio" name="align" class="ke-inline-block" value="right" /> <img name="rightImg" src="' + imgPath + 'align_right.gif" width="23" height="25" alt="" />',
65
+ '</div>',
66
+ //title
67
+ '<div class="ke-dialog-row">',
68
+ '<label for="remoteTitle" style="width:60px;">' + lang.imgTitle + '</label>',
69
+ '<input type="text" id="remoteTitle" class="ke-input-text" name="title" value="" style="width:200px;" />',
70
+ '</div>',
71
+ '</div>',
72
+ //remote image - end
73
+ //local upload - start
74
+ '<div class="tab2" style="display:none;">',
75
+ '<iframe name="' + target + '" style="display:none;"></iframe>',
76
+ '<form class="ke-upload-area ke-form" method="post" enctype="multipart/form-data" target="' + target + '" action="' + K.addParam(uploadJson, 'dir=image') + '">',
77
+ //file
78
+ '<div class="ke-dialog-row">',
79
+ hiddenElements.join(''),
80
+ '<label style="width:60px;">' + lang.localUrl + '</label>',
81
+ '<input type="text" name="localUrl" class="ke-input-text" tabindex="-1" style="width:200px;" readonly="true" /> &nbsp;',
82
+ '<input type="button" class="ke-upload-button" value="' + lang.upload + '" />',
83
+ '</div>',
84
+ '</form>',
85
+ '</div>',
86
+ //local upload - end
87
+ '</div>'
88
+ ].join('');
89
+ var dialogWidth = showLocal || allowFileManager ? 450 : 400,
90
+ dialogHeight = showLocal && showRemote ? 300 : 250;
91
+ var dialog = self.createDialog({
92
+ name : name,
93
+ width : dialogWidth,
94
+ height : dialogHeight,
95
+ title : self.lang(name),
96
+ body : html,
97
+ yesBtn : {
98
+ name : self.lang('yes'),
99
+ click : function(e) {
100
+ // Bugfix: http://code.google.com/p/kindeditor/issues/detail?id=319
101
+ if (dialog.isLoading) {
102
+ return;
103
+ }
104
+ // insert local image
105
+ if (showLocal && showRemote && tabs && tabs.selectedIndex === 1 || !showRemote) {
106
+ if (uploadbutton.fileBox.val() == '') {
107
+ alert(self.lang('pleaseSelectFile'));
108
+ return;
109
+ }
110
+ dialog.showLoading(self.lang('uploadLoading'));
111
+ uploadbutton.submit();
112
+ localUrlBox.val('');
113
+ return;
114
+ }
115
+ // insert remote image
116
+ var url = K.trim(urlBox.val()),
117
+ width = widthBox.val(),
118
+ height = heightBox.val(),
119
+ title = titleBox.val(),
120
+ align = '';
121
+ alignBox.each(function() {
122
+ if (this.checked) {
123
+ align = this.value;
124
+ return false;
125
+ }
126
+ });
127
+ if (url == 'http://' || K.invalidUrl(url)) {
128
+ alert(self.lang('invalidUrl'));
129
+ urlBox[0].focus();
130
+ return;
131
+ }
132
+ if (!/^\d*$/.test(width)) {
133
+ alert(self.lang('invalidWidth'));
134
+ widthBox[0].focus();
135
+ return;
136
+ }
137
+ if (!/^\d*$/.test(height)) {
138
+ alert(self.lang('invalidHeight'));
139
+ heightBox[0].focus();
140
+ return;
141
+ }
142
+ clickFn.call(self, url, title, width, height, 0, align);
143
+ }
144
+ },
145
+ beforeRemove : function() {
146
+ viewServerBtn.unbind();
147
+ widthBox.unbind();
148
+ heightBox.unbind();
149
+ refreshBtn.unbind();
150
+ }
151
+ }),
152
+ div = dialog.div;
153
+
154
+ var urlBox = K('[name="url"]', div),
155
+ localUrlBox = K('[name="localUrl"]', div),
156
+ viewServerBtn = K('[name="viewServer"]', div),
157
+ widthBox = K('.tab1 [name="width"]', div),
158
+ heightBox = K('.tab1 [name="height"]', div),
159
+ refreshBtn = K('.ke-refresh-btn', div),
160
+ titleBox = K('.tab1 [name="title"]', div),
161
+ alignBox = K('.tab1 [name="align"]', div);
162
+
163
+ var tabs;
164
+ if (showRemote && showLocal) {
165
+ tabs = K.tabs({
166
+ src : K('.tabs', div),
167
+ afterSelect : function(i) {}
168
+ });
169
+ tabs.add({
170
+ title : lang.remoteImage,
171
+ panel : K('.tab1', div)
172
+ });
173
+ tabs.add({
174
+ title : lang.localImage,
175
+ panel : K('.tab2', div)
176
+ });
177
+ tabs.select(tabIndex);
178
+ } else if (showRemote) {
179
+ K('.tab1', div).show();
180
+ } else if (showLocal) {
181
+ K('.tab2', div).show();
182
+ }
183
+
184
+ var uploadbutton = K.uploadbutton({
185
+ button : K('.ke-upload-button', div)[0],
186
+ fieldName : filePostName,
187
+ form : K('.ke-form', div),
188
+ target : target,
189
+ width: 60,
190
+ afterUpload : function(data) {
191
+ dialog.hideLoading();
192
+ if (data.error === 0) {
193
+ var url = data.url;
194
+ if (formatUploadUrl) {
195
+ // url = K.formatUrl(url, 'absolute');
196
+ url = K.formatUrl(url, 'domain');
197
+ }
198
+ if (self.afterUpload) {
199
+ self.afterUpload.call(self, url, data, name);
200
+ }
201
+ if (!fillDescAfterUploadImage) {
202
+ clickFn.call(self, url, data.title, data.width, data.height, data.border, data.align);
203
+ } else {
204
+ K(".ke-dialog-row #remoteUrl", div).val(url);
205
+ K(".ke-tabs-li", div)[0].click();
206
+ K(".ke-refresh-btn", div).click();
207
+ }
208
+ } else {
209
+ alert(data.message);
210
+ }
211
+ },
212
+ afterError : function(html) {
213
+ dialog.hideLoading();
214
+ self.errorDialog(html);
215
+ }
216
+ });
217
+ uploadbutton.fileBox.change(function(e) {
218
+ localUrlBox.val(uploadbutton.fileBox.val());
219
+ });
220
+ if (allowFileManager) {
221
+ viewServerBtn.click(function(e) {
222
+ self.loadPlugin('filemanager', function() {
223
+ self.plugin.filemanagerDialog({
224
+ viewType : 'VIEW',
225
+ dirName : 'image',
226
+ clickFn : function(url, title) {
227
+ if (self.dialogs.length > 1) {
228
+ K('[name="url"]', div).val(url);
229
+ if (self.afterSelectFile) {
230
+ self.afterSelectFile.call(self, url);
231
+ }
232
+ self.hideDialog();
233
+ }
234
+ }
235
+ });
236
+ });
237
+ });
238
+ } else {
239
+ viewServerBtn.hide();
240
+ }
241
+ var originalWidth = 0, originalHeight = 0;
242
+ function setSize(width, height) {
243
+ widthBox.val(width);
244
+ heightBox.val(height);
245
+ originalWidth = width;
246
+ originalHeight = height;
247
+ }
248
+ refreshBtn.click(function(e) {
249
+ var tempImg = K('<img src="' + urlBox.val() + '" />', document).css({
250
+ position : 'absolute',
251
+ visibility : 'hidden',
252
+ top : 0,
253
+ left : '-1000px'
254
+ });
255
+ tempImg.bind('load', function() {
256
+ setSize(tempImg.width(), tempImg.height());
257
+ tempImg.remove();
258
+ });
259
+ K(document.body).append(tempImg);
260
+ });
261
+ widthBox.change(function(e) {
262
+ if (originalWidth > 0) {
263
+ heightBox.val(Math.round(originalHeight / originalWidth * parseInt(this.value, 10)));
264
+ }
265
+ });
266
+ heightBox.change(function(e) {
267
+ if (originalHeight > 0) {
268
+ widthBox.val(Math.round(originalWidth / originalHeight * parseInt(this.value, 10)));
269
+ }
270
+ });
271
+ urlBox.val(options.imageUrl);
272
+ setSize(options.imageWidth, options.imageHeight);
273
+ titleBox.val(options.imageTitle);
274
+ alignBox.each(function() {
275
+ if (this.value === options.imageAlign) {
276
+ this.checked = true;
277
+ return false;
278
+ }
279
+ });
280
+ if (showRemote && tabIndex === 0) {
281
+ urlBox[0].focus();
282
+ urlBox[0].select();
283
+ }
284
+ return dialog;
285
+ };
286
+ self.plugin.image = {
287
+ edit : function() {
288
+ var img = self.plugin.getSelectedImage();
289
+ self.plugin.imageDialog({
290
+ imageUrl : img ? img.attr('data-ke-src') : 'http://',
291
+ imageWidth : img ? img.width() : '',
292
+ imageHeight : img ? img.height() : '',
293
+ imageTitle : img ? img.attr('title') : '',
294
+ imageAlign : img ? img.attr('align') : '',
295
+ showRemote : true,
296
+ showLocal : allowImageUpload,
297
+ tabIndex: img ? 0 : imageTabIndex,
298
+ clickFn : function(url, title, width, height, border, align) {
299
+ self.exec('insertimage', url, title, width, height, border, align);
300
+ // Bugfix: [Firefox] 上传图片后,总是出现正在加载的样式,需要延迟执行hideDialog
301
+ setTimeout(function() {
302
+ self.hideDialog().focus();
303
+ }, 0);
304
+ }
305
+ });
306
+ },
307
+ 'delete' : function() {
308
+ var target = self.plugin.getSelectedImage();
309
+ if (target.parent().name == 'a') {
310
+ target = target.parent();
311
+ }
312
+ target.remove();
313
+ }
314
+ };
315
+ self.clickToolbar(name, self.plugin.image.edit);
316
+ });