ppc_logic 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. data/Gemfile +1 -4
  2. data/VERSION +1 -1
  3. data/app/models/landing_page.rb +13 -50
  4. data/app/views/admin/landing_pages/_form.html.erb +1 -1
  5. data/app/views/layouts/application.html.erb +2 -8
  6. data/config/environments/development.rb +1 -0
  7. data/config/environments/production.rb +2 -0
  8. data/config/environments/test.rb +2 -3
  9. data/features/manage_landing_pages.feature +1 -1
  10. data/features/manage_local_offers.feature +1 -1
  11. data/features/support/env.rb +38 -20
  12. data/lib/tasks/cucumber.rake +12 -0
  13. data/ppc_logic.gemspec +5 -659
  14. metadata +22 -686
  15. data/public/404.html +0 -26
  16. data/public/422.html +0 -26
  17. data/public/500.html +0 -26
  18. data/public/favicon.ico +0 -0
  19. data/public/javascripts/application.js +0 -2
  20. data/public/javascripts/ckeditor/.htaccess +0 -24
  21. data/public/javascripts/ckeditor/CHANGES.html +0 -993
  22. data/public/javascripts/ckeditor/INSTALL.html +0 -92
  23. data/public/javascripts/ckeditor/LICENSE.html +0 -1334
  24. data/public/javascripts/ckeditor/_samples/ajax.html +0 -87
  25. data/public/javascripts/ckeditor/_samples/api.html +0 -152
  26. data/public/javascripts/ckeditor/_samples/api_dialog.html +0 -188
  27. data/public/javascripts/ckeditor/_samples/api_dialog/my_dialog.js +0 -28
  28. data/public/javascripts/ckeditor/_samples/asp/advanced.asp +0 -105
  29. data/public/javascripts/ckeditor/_samples/asp/events.asp +0 -136
  30. data/public/javascripts/ckeditor/_samples/asp/index.html +0 -103
  31. data/public/javascripts/ckeditor/_samples/asp/replace.asp +0 -72
  32. data/public/javascripts/ckeditor/_samples/asp/replaceall.asp +0 -77
  33. data/public/javascripts/ckeditor/_samples/asp/sample_posteddata.asp +0 -46
  34. data/public/javascripts/ckeditor/_samples/asp/standalone.asp +0 -72
  35. data/public/javascripts/ckeditor/_samples/assets/output_for_flash.fla +0 -0
  36. data/public/javascripts/ckeditor/_samples/assets/output_for_flash.swf +0 -0
  37. data/public/javascripts/ckeditor/_samples/assets/output_xhtml.css +0 -204
  38. data/public/javascripts/ckeditor/_samples/assets/swfobject.js +0 -18
  39. data/public/javascripts/ckeditor/_samples/autogrow.html +0 -75
  40. data/public/javascripts/ckeditor/_samples/divreplace.html +0 -137
  41. data/public/javascripts/ckeditor/_samples/enterkey.html +0 -88
  42. data/public/javascripts/ckeditor/_samples/fullpage.html +0 -62
  43. data/public/javascripts/ckeditor/_samples/index.html +0 -57
  44. data/public/javascripts/ckeditor/_samples/jqueryadapter.html +0 -73
  45. data/public/javascripts/ckeditor/_samples/output_for_flash.html +0 -257
  46. data/public/javascripts/ckeditor/_samples/output_html.html +0 -259
  47. data/public/javascripts/ckeditor/_samples/output_xhtml.html +0 -159
  48. data/public/javascripts/ckeditor/_samples/php/advanced.php +0 -93
  49. data/public/javascripts/ckeditor/_samples/php/events.php +0 -130
  50. data/public/javascripts/ckeditor/_samples/php/replace.php +0 -63
  51. data/public/javascripts/ckeditor/_samples/php/replaceall.php +0 -68
  52. data/public/javascripts/ckeditor/_samples/php/standalone.php +0 -64
  53. data/public/javascripts/ckeditor/_samples/replacebyclass.html +0 -49
  54. data/public/javascripts/ckeditor/_samples/replacebycode.html +0 -80
  55. data/public/javascripts/ckeditor/_samples/sample.css +0 -81
  56. data/public/javascripts/ckeditor/_samples/sample.js +0 -65
  57. data/public/javascripts/ckeditor/_samples/sample_posteddata.php +0 -59
  58. data/public/javascripts/ckeditor/_samples/sharedspaces.html +0 -131
  59. data/public/javascripts/ckeditor/_samples/skins.html +0 -83
  60. data/public/javascripts/ckeditor/_samples/ui_color.html +0 -87
  61. data/public/javascripts/ckeditor/_samples/ui_languages.html +0 -103
  62. data/public/javascripts/ckeditor/_source/adapters/jquery.js +0 -297
  63. data/public/javascripts/ckeditor/_source/core/_bootstrap.js +0 -96
  64. data/public/javascripts/ckeditor/_source/core/ajax.js +0 -142
  65. data/public/javascripts/ckeditor/_source/core/ckeditor.js +0 -133
  66. data/public/javascripts/ckeditor/_source/core/ckeditor_base.js +0 -196
  67. data/public/javascripts/ckeditor/_source/core/ckeditor_basic.js +0 -239
  68. data/public/javascripts/ckeditor/_source/core/command.js +0 -209
  69. data/public/javascripts/ckeditor/_source/core/commanddefinition.js +0 -129
  70. data/public/javascripts/ckeditor/_source/core/config.js +0 -430
  71. data/public/javascripts/ckeditor/_source/core/dataprocessor.js +0 -65
  72. data/public/javascripts/ckeditor/_source/core/dom.js +0 -20
  73. data/public/javascripts/ckeditor/_source/core/dom/comment.js +0 -32
  74. data/public/javascripts/ckeditor/_source/core/dom/document.js +0 -224
  75. data/public/javascripts/ckeditor/_source/core/dom/documentfragment.js +0 -49
  76. data/public/javascripts/ckeditor/_source/core/dom/domobject.js +0 -255
  77. data/public/javascripts/ckeditor/_source/core/dom/element.js +0 -1564
  78. data/public/javascripts/ckeditor/_source/core/dom/elementpath.js +0 -119
  79. data/public/javascripts/ckeditor/_source/core/dom/event.js +0 -142
  80. data/public/javascripts/ckeditor/_source/core/dom/node.js +0 -683
  81. data/public/javascripts/ckeditor/_source/core/dom/nodelist.js +0 -26
  82. data/public/javascripts/ckeditor/_source/core/dom/range.js +0 -1883
  83. data/public/javascripts/ckeditor/_source/core/dom/rangelist.js +0 -214
  84. data/public/javascripts/ckeditor/_source/core/dom/text.js +0 -123
  85. data/public/javascripts/ckeditor/_source/core/dom/walker.js +0 -445
  86. data/public/javascripts/ckeditor/_source/core/dom/window.js +0 -96
  87. data/public/javascripts/ckeditor/_source/core/dtd.js +0 -238
  88. data/public/javascripts/ckeditor/_source/core/editor.js +0 -924
  89. data/public/javascripts/ckeditor/_source/core/editor_basic.js +0 -182
  90. data/public/javascripts/ckeditor/_source/core/env.js +0 -270
  91. data/public/javascripts/ckeditor/_source/core/event.js +0 -342
  92. data/public/javascripts/ckeditor/_source/core/eventInfo.js +0 -120
  93. data/public/javascripts/ckeditor/_source/core/focusmanager.js +0 -152
  94. data/public/javascripts/ckeditor/_source/core/htmlparser.js +0 -224
  95. data/public/javascripts/ckeditor/_source/core/htmlparser/basicwriter.js +0 -145
  96. data/public/javascripts/ckeditor/_source/core/htmlparser/cdata.js +0 -43
  97. data/public/javascripts/ckeditor/_source/core/htmlparser/comment.js +0 -60
  98. data/public/javascripts/ckeditor/_source/core/htmlparser/element.js +0 -240
  99. data/public/javascripts/ckeditor/_source/core/htmlparser/filter.js +0 -288
  100. data/public/javascripts/ckeditor/_source/core/htmlparser/fragment.js +0 -504
  101. data/public/javascripts/ckeditor/_source/core/htmlparser/text.js +0 -55
  102. data/public/javascripts/ckeditor/_source/core/imagecacher.js +0 -80
  103. data/public/javascripts/ckeditor/_source/core/lang.js +0 -156
  104. data/public/javascripts/ckeditor/_source/core/loader.js +0 -243
  105. data/public/javascripts/ckeditor/_source/core/plugindefinition.js +0 -66
  106. data/public/javascripts/ckeditor/_source/core/plugins.js +0 -85
  107. data/public/javascripts/ckeditor/_source/core/resourcemanager.js +0 -238
  108. data/public/javascripts/ckeditor/_source/core/scriptloader.js +0 -200
  109. data/public/javascripts/ckeditor/_source/core/skins.js +0 -212
  110. data/public/javascripts/ckeditor/_source/core/themes.js +0 -19
  111. data/public/javascripts/ckeditor/_source/core/tools.js +0 -734
  112. data/public/javascripts/ckeditor/_source/core/ui.js +0 -116
  113. data/public/javascripts/ckeditor/_source/core/xml.js +0 -165
  114. data/public/javascripts/ckeditor/_source/lang/_languages.js +0 -83
  115. data/public/javascripts/ckeditor/_source/lang/_translationstatus.txt +0 -60
  116. data/public/javascripts/ckeditor/_source/lang/af.js +0 -758
  117. data/public/javascripts/ckeditor/_source/lang/ar.js +0 -758
  118. data/public/javascripts/ckeditor/_source/lang/bg.js +0 -758
  119. data/public/javascripts/ckeditor/_source/lang/bn.js +0 -758
  120. data/public/javascripts/ckeditor/_source/lang/bs.js +0 -758
  121. data/public/javascripts/ckeditor/_source/lang/ca.js +0 -758
  122. data/public/javascripts/ckeditor/_source/lang/cs.js +0 -758
  123. data/public/javascripts/ckeditor/_source/lang/cy.js +0 -758
  124. data/public/javascripts/ckeditor/_source/lang/da.js +0 -758
  125. data/public/javascripts/ckeditor/_source/lang/de.js +0 -758
  126. data/public/javascripts/ckeditor/_source/lang/el.js +0 -758
  127. data/public/javascripts/ckeditor/_source/lang/en-au.js +0 -758
  128. data/public/javascripts/ckeditor/_source/lang/en-ca.js +0 -758
  129. data/public/javascripts/ckeditor/_source/lang/en-gb.js +0 -758
  130. data/public/javascripts/ckeditor/_source/lang/en.js +0 -758
  131. data/public/javascripts/ckeditor/_source/lang/eo.js +0 -758
  132. data/public/javascripts/ckeditor/_source/lang/es.js +0 -758
  133. data/public/javascripts/ckeditor/_source/lang/et.js +0 -758
  134. data/public/javascripts/ckeditor/_source/lang/eu.js +0 -758
  135. data/public/javascripts/ckeditor/_source/lang/fa.js +0 -758
  136. data/public/javascripts/ckeditor/_source/lang/fi.js +0 -758
  137. data/public/javascripts/ckeditor/_source/lang/fo.js +0 -758
  138. data/public/javascripts/ckeditor/_source/lang/fr-ca.js +0 -758
  139. data/public/javascripts/ckeditor/_source/lang/fr.js +0 -758
  140. data/public/javascripts/ckeditor/_source/lang/gl.js +0 -758
  141. data/public/javascripts/ckeditor/_source/lang/gu.js +0 -758
  142. data/public/javascripts/ckeditor/_source/lang/he.js +0 -758
  143. data/public/javascripts/ckeditor/_source/lang/hi.js +0 -758
  144. data/public/javascripts/ckeditor/_source/lang/hr.js +0 -758
  145. data/public/javascripts/ckeditor/_source/lang/hu.js +0 -758
  146. data/public/javascripts/ckeditor/_source/lang/is.js +0 -758
  147. data/public/javascripts/ckeditor/_source/lang/it.js +0 -758
  148. data/public/javascripts/ckeditor/_source/lang/ja.js +0 -758
  149. data/public/javascripts/ckeditor/_source/lang/km.js +0 -758
  150. data/public/javascripts/ckeditor/_source/lang/ko.js +0 -758
  151. data/public/javascripts/ckeditor/_source/lang/lt.js +0 -758
  152. data/public/javascripts/ckeditor/_source/lang/lv.js +0 -758
  153. data/public/javascripts/ckeditor/_source/lang/mn.js +0 -758
  154. data/public/javascripts/ckeditor/_source/lang/ms.js +0 -758
  155. data/public/javascripts/ckeditor/_source/lang/nb.js +0 -758
  156. data/public/javascripts/ckeditor/_source/lang/nl.js +0 -758
  157. data/public/javascripts/ckeditor/_source/lang/no.js +0 -758
  158. data/public/javascripts/ckeditor/_source/lang/pl.js +0 -758
  159. data/public/javascripts/ckeditor/_source/lang/pt-br.js +0 -757
  160. data/public/javascripts/ckeditor/_source/lang/pt.js +0 -758
  161. data/public/javascripts/ckeditor/_source/lang/ro.js +0 -758
  162. data/public/javascripts/ckeditor/_source/lang/ru.js +0 -758
  163. data/public/javascripts/ckeditor/_source/lang/sk.js +0 -758
  164. data/public/javascripts/ckeditor/_source/lang/sl.js +0 -758
  165. data/public/javascripts/ckeditor/_source/lang/sr-latn.js +0 -758
  166. data/public/javascripts/ckeditor/_source/lang/sr.js +0 -758
  167. data/public/javascripts/ckeditor/_source/lang/sv.js +0 -758
  168. data/public/javascripts/ckeditor/_source/lang/th.js +0 -758
  169. data/public/javascripts/ckeditor/_source/lang/tr.js +0 -757
  170. data/public/javascripts/ckeditor/_source/lang/uk.js +0 -758
  171. data/public/javascripts/ckeditor/_source/lang/vi.js +0 -758
  172. data/public/javascripts/ckeditor/_source/lang/zh-cn.js +0 -758
  173. data/public/javascripts/ckeditor/_source/lang/zh.js +0 -758
  174. data/public/javascripts/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +0 -211
  175. data/public/javascripts/ckeditor/_source/plugins/a11yhelp/lang/en.js +0 -108
  176. data/public/javascripts/ckeditor/_source/plugins/a11yhelp/lang/he.js +0 -216
  177. data/public/javascripts/ckeditor/_source/plugins/a11yhelp/plugin.js +0 -46
  178. data/public/javascripts/ckeditor/_source/plugins/about/dialogs/about.js +0 -73
  179. data/public/javascripts/ckeditor/_source/plugins/about/dialogs/logo_ckeditor.png +0 -0
  180. data/public/javascripts/ckeditor/_source/plugins/about/plugin.js +0 -23
  181. data/public/javascripts/ckeditor/_source/plugins/ajax_save/plugin.js +0 -44
  182. data/public/javascripts/ckeditor/_source/plugins/attachment/dialogs/attachment.js +0 -384
  183. data/public/javascripts/ckeditor/_source/plugins/attachment/images/attachment.png +0 -0
  184. data/public/javascripts/ckeditor/_source/plugins/attachment/lang/en.js +0 -10
  185. data/public/javascripts/ckeditor/_source/plugins/attachment/lang/ru.js +0 -10
  186. data/public/javascripts/ckeditor/_source/plugins/attachment/lang/uk.js +0 -10
  187. data/public/javascripts/ckeditor/_source/plugins/attachment/plugin.js +0 -44
  188. data/public/javascripts/ckeditor/_source/plugins/autogrow/plugin.js +0 -86
  189. data/public/javascripts/ckeditor/_source/plugins/basicstyles/plugin.js +0 -101
  190. data/public/javascripts/ckeditor/_source/plugins/bidi/plugin.js +0 -259
  191. data/public/javascripts/ckeditor/_source/plugins/blockquote/plugin.js +0 -301
  192. data/public/javascripts/ckeditor/_source/plugins/button/plugin.js +0 -277
  193. data/public/javascripts/ckeditor/_source/plugins/clipboard/dialogs/paste.js +0 -205
  194. data/public/javascripts/ckeditor/_source/plugins/clipboard/plugin.js +0 -412
  195. data/public/javascripts/ckeditor/_source/plugins/colorbutton/plugin.js +0 -250
  196. data/public/javascripts/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +0 -336
  197. data/public/javascripts/ckeditor/_source/plugins/colordialog/plugin.js +0 -13
  198. data/public/javascripts/ckeditor/_source/plugins/contextmenu/plugin.js +0 -290
  199. data/public/javascripts/ckeditor/_source/plugins/dialog/dialogDefinition.js +0 -315
  200. data/public/javascripts/ckeditor/_source/plugins/dialog/plugin.js +0 -3015
  201. data/public/javascripts/ckeditor/_source/plugins/dialogadvtab/plugin.js +0 -213
  202. data/public/javascripts/ckeditor/_source/plugins/dialogui/plugin.js +0 -1523
  203. data/public/javascripts/ckeditor/_source/plugins/div/dialogs/div.js +0 -535
  204. data/public/javascripts/ckeditor/_source/plugins/div/plugin.js +0 -121
  205. data/public/javascripts/ckeditor/_source/plugins/domiterator/plugin.js +0 -356
  206. data/public/javascripts/ckeditor/_source/plugins/editingblock/plugin.js +0 -229
  207. data/public/javascripts/ckeditor/_source/plugins/elementspath/plugin.js +0 -206
  208. data/public/javascripts/ckeditor/_source/plugins/embed/dialogs/embed.js +0 -65
  209. data/public/javascripts/ckeditor/_source/plugins/embed/images/embed.png +0 -0
  210. data/public/javascripts/ckeditor/_source/plugins/embed/lang/en.js +0 -9
  211. data/public/javascripts/ckeditor/_source/plugins/embed/lang/ru.js +0 -9
  212. data/public/javascripts/ckeditor/_source/plugins/embed/lang/uk.js +0 -9
  213. data/public/javascripts/ckeditor/_source/plugins/embed/plugin.js +0 -44
  214. data/public/javascripts/ckeditor/_source/plugins/enterkey/plugin.js +0 -363
  215. data/public/javascripts/ckeditor/_source/plugins/entities/plugin.js +0 -226
  216. data/public/javascripts/ckeditor/_source/plugins/fakeobjects/plugin.js +0 -122
  217. data/public/javascripts/ckeditor/_source/plugins/filebrowser/plugin.js +0 -501
  218. data/public/javascripts/ckeditor/_source/plugins/find/dialogs/find.js +0 -890
  219. data/public/javascripts/ckeditor/_source/plugins/find/plugin.js +0 -46
  220. data/public/javascripts/ckeditor/_source/plugins/flash/dialogs/flash.js +0 -698
  221. data/public/javascripts/ckeditor/_source/plugins/flash/images/placeholder.png +0 -0
  222. data/public/javascripts/ckeditor/_source/plugins/flash/plugin.js +0 -168
  223. data/public/javascripts/ckeditor/_source/plugins/floatpanel/plugin.js +0 -402
  224. data/public/javascripts/ckeditor/_source/plugins/font/plugin.js +0 -234
  225. data/public/javascripts/ckeditor/_source/plugins/format/plugin.js +0 -194
  226. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/button.js +0 -135
  227. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/checkbox.js +0 -153
  228. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/form.js +0 -177
  229. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +0 -98
  230. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/radio.js +0 -135
  231. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/select.js +0 -556
  232. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/textarea.js +0 -114
  233. data/public/javascripts/ckeditor/_source/plugins/forms/dialogs/textfield.js +0 -199
  234. data/public/javascripts/ckeditor/_source/plugins/forms/images/hiddenfield.gif +0 -0
  235. data/public/javascripts/ckeditor/_source/plugins/forms/plugin.js +0 -284
  236. data/public/javascripts/ckeditor/_source/plugins/horizontalrule/plugin.js +0 -36
  237. data/public/javascripts/ckeditor/_source/plugins/htmldataprocessor/plugin.js +0 -502
  238. data/public/javascripts/ckeditor/_source/plugins/htmlwriter/plugin.js +0 -319
  239. data/public/javascripts/ckeditor/_source/plugins/iframedialog/plugin.js +0 -136
  240. data/public/javascripts/ckeditor/_source/plugins/image/dialogs/image.js +0 -1396
  241. data/public/javascripts/ckeditor/_source/plugins/image/plugin.js +0 -81
  242. data/public/javascripts/ckeditor/_source/plugins/indent/plugin.js +0 -455
  243. data/public/javascripts/ckeditor/_source/plugins/justify/plugin.js +0 -221
  244. data/public/javascripts/ckeditor/_source/plugins/keystrokes/plugin.js +0 -225
  245. data/public/javascripts/ckeditor/_source/plugins/link/dialogs/anchor.js +0 -99
  246. data/public/javascripts/ckeditor/_source/plugins/link/dialogs/link.js +0 -1424
  247. data/public/javascripts/ckeditor/_source/plugins/link/images/anchor.gif +0 -0
  248. data/public/javascripts/ckeditor/_source/plugins/link/plugin.js +0 -238
  249. data/public/javascripts/ckeditor/_source/plugins/list/plugin.js +0 -710
  250. data/public/javascripts/ckeditor/_source/plugins/listblock/plugin.js +0 -257
  251. data/public/javascripts/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +0 -204
  252. data/public/javascripts/ckeditor/_source/plugins/liststyle/plugin.js +0 -66
  253. data/public/javascripts/ckeditor/_source/plugins/maximize/plugin.js +0 -350
  254. data/public/javascripts/ckeditor/_source/plugins/menu/plugin.js +0 -408
  255. data/public/javascripts/ckeditor/_source/plugins/menubutton/plugin.js +0 -94
  256. data/public/javascripts/ckeditor/_source/plugins/newpage/plugin.js +0 -53
  257. data/public/javascripts/ckeditor/_source/plugins/pagebreak/images/pagebreak.gif +0 -0
  258. data/public/javascripts/ckeditor/_source/plugins/pagebreak/plugin.js +0 -121
  259. data/public/javascripts/ckeditor/_source/plugins/panel/plugin.js +0 -399
  260. data/public/javascripts/ckeditor/_source/plugins/panelbutton/plugin.js +0 -147
  261. data/public/javascripts/ckeditor/_source/plugins/pastefromword/filter/default.js +0 -1170
  262. data/public/javascripts/ckeditor/_source/plugins/pastefromword/plugin.js +0 -122
  263. data/public/javascripts/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +0 -70
  264. data/public/javascripts/ckeditor/_source/plugins/pastetext/plugin.js +0 -145
  265. data/public/javascripts/ckeditor/_source/plugins/popup/plugin.js +0 -64
  266. data/public/javascripts/ckeditor/_source/plugins/preview/plugin.js +0 -108
  267. data/public/javascripts/ckeditor/_source/plugins/print/plugin.js +0 -41
  268. data/public/javascripts/ckeditor/_source/plugins/removeformat/plugin.js +0 -184
  269. data/public/javascripts/ckeditor/_source/plugins/resize/plugin.js +0 -157
  270. data/public/javascripts/ckeditor/_source/plugins/richcombo/plugin.js +0 -370
  271. data/public/javascripts/ckeditor/_source/plugins/save/plugin.js +0 -55
  272. data/public/javascripts/ckeditor/_source/plugins/scayt/dialogs/options.js +0 -534
  273. data/public/javascripts/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +0 -71
  274. data/public/javascripts/ckeditor/_source/plugins/scayt/plugin.js +0 -945
  275. data/public/javascripts/ckeditor/_source/plugins/selection/plugin.js +0 -1375
  276. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_address.png +0 -0
  277. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_blockquote.png +0 -0
  278. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_div.png +0 -0
  279. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h1.png +0 -0
  280. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h2.png +0 -0
  281. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h3.png +0 -0
  282. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h4.png +0 -0
  283. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h5.png +0 -0
  284. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_h6.png +0 -0
  285. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_p.png +0 -0
  286. data/public/javascripts/ckeditor/_source/plugins/showblocks/images/block_pre.png +0 -0
  287. data/public/javascripts/ckeditor/_source/plugins/showblocks/plugin.js +0 -155
  288. data/public/javascripts/ckeditor/_source/plugins/showborders/plugin.js +0 -201
  289. data/public/javascripts/ckeditor/_source/plugins/smiley/dialogs/smiley.js +0 -218
  290. data/public/javascripts/ckeditor/_source/plugins/smiley/images/angel_smile.gif +0 -0
  291. data/public/javascripts/ckeditor/_source/plugins/smiley/images/angry_smile.gif +0 -0
  292. data/public/javascripts/ckeditor/_source/plugins/smiley/images/broken_heart.gif +0 -0
  293. data/public/javascripts/ckeditor/_source/plugins/smiley/images/confused_smile.gif +0 -0
  294. data/public/javascripts/ckeditor/_source/plugins/smiley/images/cry_smile.gif +0 -0
  295. data/public/javascripts/ckeditor/_source/plugins/smiley/images/devil_smile.gif +0 -0
  296. data/public/javascripts/ckeditor/_source/plugins/smiley/images/embaressed_smile.gif +0 -0
  297. data/public/javascripts/ckeditor/_source/plugins/smiley/images/envelope.gif +0 -0
  298. data/public/javascripts/ckeditor/_source/plugins/smiley/images/heart.gif +0 -0
  299. data/public/javascripts/ckeditor/_source/plugins/smiley/images/kiss.gif +0 -0
  300. data/public/javascripts/ckeditor/_source/plugins/smiley/images/lightbulb.gif +0 -0
  301. data/public/javascripts/ckeditor/_source/plugins/smiley/images/omg_smile.gif +0 -0
  302. data/public/javascripts/ckeditor/_source/plugins/smiley/images/regular_smile.gif +0 -0
  303. data/public/javascripts/ckeditor/_source/plugins/smiley/images/sad_smile.gif +0 -0
  304. data/public/javascripts/ckeditor/_source/plugins/smiley/images/shades_smile.gif +0 -0
  305. data/public/javascripts/ckeditor/_source/plugins/smiley/images/teeth_smile.gif +0 -0
  306. data/public/javascripts/ckeditor/_source/plugins/smiley/images/thumbs_down.gif +0 -0
  307. data/public/javascripts/ckeditor/_source/plugins/smiley/images/thumbs_up.gif +0 -0
  308. data/public/javascripts/ckeditor/_source/plugins/smiley/images/tounge_smile.gif +0 -0
  309. data/public/javascripts/ckeditor/_source/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  310. data/public/javascripts/ckeditor/_source/plugins/smiley/images/wink_smile.gif +0 -0
  311. data/public/javascripts/ckeditor/_source/plugins/smiley/plugin.js +0 -94
  312. data/public/javascripts/ckeditor/_source/plugins/sourcearea/plugin.js +0 -207
  313. data/public/javascripts/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +0 -409
  314. data/public/javascripts/ckeditor/_source/plugins/specialchar/plugin.js +0 -29
  315. data/public/javascripts/ckeditor/_source/plugins/styles/plugin.js +0 -1479
  316. data/public/javascripts/ckeditor/_source/plugins/styles/styles/default.js +0 -88
  317. data/public/javascripts/ckeditor/_source/plugins/stylescombo/plugin.js +0 -206
  318. data/public/javascripts/ckeditor/_source/plugins/tab/plugin.js +0 -367
  319. data/public/javascripts/ckeditor/_source/plugins/table/dialogs/table.js +0 -672
  320. data/public/javascripts/ckeditor/_source/plugins/table/plugin.js +0 -78
  321. data/public/javascripts/ckeditor/_source/plugins/tableresize/plugin.js +0 -450
  322. data/public/javascripts/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +0 -533
  323. data/public/javascripts/ckeditor/_source/plugins/tabletools/plugin.js +0 -1120
  324. data/public/javascripts/ckeditor/_source/plugins/templates/dialogs/templates.js +0 -233
  325. data/public/javascripts/ckeditor/_source/plugins/templates/plugin.js +0 -99
  326. data/public/javascripts/ckeditor/_source/plugins/templates/templates/default.js +0 -94
  327. data/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template1.gif +0 -0
  328. data/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template2.gif +0 -0
  329. data/public/javascripts/ckeditor/_source/plugins/templates/templates/images/template3.gif +0 -0
  330. data/public/javascripts/ckeditor/_source/plugins/toolbar/plugin.js +0 -481
  331. data/public/javascripts/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +0 -205
  332. data/public/javascripts/ckeditor/_source/plugins/uicolor/lang/en.js +0 -15
  333. data/public/javascripts/ckeditor/_source/plugins/uicolor/lang/he.js +0 -15
  334. data/public/javascripts/ckeditor/_source/plugins/uicolor/plugin.js +0 -37
  335. data/public/javascripts/ckeditor/_source/plugins/uicolor/uicolor.gif +0 -0
  336. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  337. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  338. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  339. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  340. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +0 -15
  341. data/public/javascripts/ckeditor/_source/plugins/uicolor/yui/yui.js +0 -71
  342. data/public/javascripts/ckeditor/_source/plugins/undo/plugin.js +0 -554
  343. data/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +0 -49
  344. data/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +0 -52
  345. data/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/wsc.css +0 -82
  346. data/public/javascripts/ckeditor/_source/plugins/wsc/dialogs/wsc.js +0 -176
  347. data/public/javascripts/ckeditor/_source/plugins/wsc/plugin.js +0 -33
  348. data/public/javascripts/ckeditor/_source/plugins/wysiwygarea/plugin.js +0 -1146
  349. data/public/javascripts/ckeditor/_source/skins/kama/dialog.css +0 -882
  350. data/public/javascripts/ckeditor/_source/skins/kama/editor.css +0 -25
  351. data/public/javascripts/ckeditor/_source/skins/kama/elementspath.css +0 -73
  352. data/public/javascripts/ckeditor/_source/skins/kama/icons.css +0 -357
  353. data/public/javascripts/ckeditor/_source/skins/kama/icons.png +0 -0
  354. data/public/javascripts/ckeditor/_source/skins/kama/icons_rtl.png +0 -0
  355. data/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides.gif +0 -0
  356. data/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides.png +0 -0
  357. data/public/javascripts/ckeditor/_source/skins/kama/images/dialog_sides_rtl.png +0 -0
  358. data/public/javascripts/ckeditor/_source/skins/kama/images/mini.gif +0 -0
  359. data/public/javascripts/ckeditor/_source/skins/kama/images/noimage.png +0 -0
  360. data/public/javascripts/ckeditor/_source/skins/kama/images/sprites.png +0 -0
  361. data/public/javascripts/ckeditor/_source/skins/kama/images/sprites_ie6.png +0 -0
  362. data/public/javascripts/ckeditor/_source/skins/kama/images/toolbar_start.gif +0 -0
  363. data/public/javascripts/ckeditor/_source/skins/kama/mainui.css +0 -195
  364. data/public/javascripts/ckeditor/_source/skins/kama/menu.css +0 -216
  365. data/public/javascripts/ckeditor/_source/skins/kama/panel.css +0 -217
  366. data/public/javascripts/ckeditor/_source/skins/kama/presets.css +0 -49
  367. data/public/javascripts/ckeditor/_source/skins/kama/reset.css +0 -84
  368. data/public/javascripts/ckeditor/_source/skins/kama/richcombo.css +0 -277
  369. data/public/javascripts/ckeditor/_source/skins/kama/skin.js +0 -268
  370. data/public/javascripts/ckeditor/_source/skins/kama/templates.css +0 -88
  371. data/public/javascripts/ckeditor/_source/skins/kama/toolbar.css +0 -409
  372. data/public/javascripts/ckeditor/_source/skins/office2003/dialog.css +0 -785
  373. data/public/javascripts/ckeditor/_source/skins/office2003/editor.css +0 -25
  374. data/public/javascripts/ckeditor/_source/skins/office2003/elementspath.css +0 -74
  375. data/public/javascripts/ckeditor/_source/skins/office2003/icons.css +0 -354
  376. data/public/javascripts/ckeditor/_source/skins/office2003/icons.png +0 -0
  377. data/public/javascripts/ckeditor/_source/skins/office2003/icons_rtl.png +0 -0
  378. data/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides.gif +0 -0
  379. data/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides.png +0 -0
  380. data/public/javascripts/ckeditor/_source/skins/office2003/images/dialog_sides_rtl.png +0 -0
  381. data/public/javascripts/ckeditor/_source/skins/office2003/images/mini.gif +0 -0
  382. data/public/javascripts/ckeditor/_source/skins/office2003/images/noimage.png +0 -0
  383. data/public/javascripts/ckeditor/_source/skins/office2003/images/sprites.png +0 -0
  384. data/public/javascripts/ckeditor/_source/skins/office2003/images/sprites_ie6.png +0 -0
  385. data/public/javascripts/ckeditor/_source/skins/office2003/mainui.css +0 -145
  386. data/public/javascripts/ckeditor/_source/skins/office2003/menu.css +0 -213
  387. data/public/javascripts/ckeditor/_source/skins/office2003/panel.css +0 -212
  388. data/public/javascripts/ckeditor/_source/skins/office2003/presets.css +0 -49
  389. data/public/javascripts/ckeditor/_source/skins/office2003/reset.css +0 -84
  390. data/public/javascripts/ckeditor/_source/skins/office2003/richcombo.css +0 -297
  391. data/public/javascripts/ckeditor/_source/skins/office2003/skin.js +0 -81
  392. data/public/javascripts/ckeditor/_source/skins/office2003/templates.css +0 -87
  393. data/public/javascripts/ckeditor/_source/skins/office2003/toolbar.css +0 -470
  394. data/public/javascripts/ckeditor/_source/skins/v2/dialog.css +0 -800
  395. data/public/javascripts/ckeditor/_source/skins/v2/editor.css +0 -25
  396. data/public/javascripts/ckeditor/_source/skins/v2/elementspath.css +0 -74
  397. data/public/javascripts/ckeditor/_source/skins/v2/icons.css +0 -354
  398. data/public/javascripts/ckeditor/_source/skins/v2/icons.png +0 -0
  399. data/public/javascripts/ckeditor/_source/skins/v2/icons_rtl.png +0 -0
  400. data/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides.gif +0 -0
  401. data/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides.png +0 -0
  402. data/public/javascripts/ckeditor/_source/skins/v2/images/dialog_sides_rtl.png +0 -0
  403. data/public/javascripts/ckeditor/_source/skins/v2/images/mini.gif +0 -0
  404. data/public/javascripts/ckeditor/_source/skins/v2/images/noimage.png +0 -0
  405. data/public/javascripts/ckeditor/_source/skins/v2/images/sprites.png +0 -0
  406. data/public/javascripts/ckeditor/_source/skins/v2/images/sprites_ie6.png +0 -0
  407. data/public/javascripts/ckeditor/_source/skins/v2/images/toolbar_start.gif +0 -0
  408. data/public/javascripts/ckeditor/_source/skins/v2/mainui.css +0 -154
  409. data/public/javascripts/ckeditor/_source/skins/v2/menu.css +0 -215
  410. data/public/javascripts/ckeditor/_source/skins/v2/panel.css +0 -212
  411. data/public/javascripts/ckeditor/_source/skins/v2/presets.css +0 -50
  412. data/public/javascripts/ckeditor/_source/skins/v2/reset.css +0 -84
  413. data/public/javascripts/ckeditor/_source/skins/v2/richcombo.css +0 -297
  414. data/public/javascripts/ckeditor/_source/skins/v2/skin.js +0 -77
  415. data/public/javascripts/ckeditor/_source/skins/v2/templates.css +0 -87
  416. data/public/javascripts/ckeditor/_source/skins/v2/toolbar.css +0 -423
  417. data/public/javascripts/ckeditor/_source/themes/default/theme.js +0 -361
  418. data/public/javascripts/ckeditor/adapters/jquery.js +0 -6
  419. data/public/javascripts/ckeditor/ckeditor.js +0 -137
  420. data/public/javascripts/ckeditor/ckeditor.pack +0 -211
  421. data/public/javascripts/ckeditor/ckeditor_basic.js +0 -8
  422. data/public/javascripts/ckeditor/ckeditor_basic_source.js +0 -20
  423. data/public/javascripts/ckeditor/ckeditor_source.js +0 -25
  424. data/public/javascripts/ckeditor/config.js +0 -43
  425. data/public/javascripts/ckeditor/contents.css +0 -39
  426. data/public/javascripts/ckeditor/css/ckfinder.css +0 -299
  427. data/public/javascripts/ckeditor/css/fck_dialog.css +0 -119
  428. data/public/javascripts/ckeditor/css/fck_editor.css +0 -448
  429. data/public/javascripts/ckeditor/css/swfupload.css +0 -94
  430. data/public/javascripts/ckeditor/images/add.gif +0 -0
  431. data/public/javascripts/ckeditor/images/cancelbutton.gif +0 -0
  432. data/public/javascripts/ckeditor/images/ckfnothumb.gif +0 -0
  433. data/public/javascripts/ckeditor/images/doc.gif +0 -0
  434. data/public/javascripts/ckeditor/images/mp3.gif +0 -0
  435. data/public/javascripts/ckeditor/images/pdf.gif +0 -0
  436. data/public/javascripts/ckeditor/images/rar.gif +0 -0
  437. data/public/javascripts/ckeditor/images/refresh.gif +0 -0
  438. data/public/javascripts/ckeditor/images/select_files.png +0 -0
  439. data/public/javascripts/ckeditor/images/spacer.gif +0 -0
  440. data/public/javascripts/ckeditor/images/swf.gif +0 -0
  441. data/public/javascripts/ckeditor/images/toolbar.start.gif +0 -0
  442. data/public/javascripts/ckeditor/images/xls.gif +0 -0
  443. data/public/javascripts/ckeditor/lang/_languages.js +0 -6
  444. data/public/javascripts/ckeditor/lang/_translationstatus.txt +0 -60
  445. data/public/javascripts/ckeditor/lang/af.js +0 -6
  446. data/public/javascripts/ckeditor/lang/ar.js +0 -6
  447. data/public/javascripts/ckeditor/lang/bg.js +0 -6
  448. data/public/javascripts/ckeditor/lang/bn.js +0 -6
  449. data/public/javascripts/ckeditor/lang/bs.js +0 -6
  450. data/public/javascripts/ckeditor/lang/ca.js +0 -6
  451. data/public/javascripts/ckeditor/lang/cs.js +0 -6
  452. data/public/javascripts/ckeditor/lang/cy.js +0 -6
  453. data/public/javascripts/ckeditor/lang/da.js +0 -6
  454. data/public/javascripts/ckeditor/lang/de.js +0 -6
  455. data/public/javascripts/ckeditor/lang/el.js +0 -6
  456. data/public/javascripts/ckeditor/lang/en-au.js +0 -6
  457. data/public/javascripts/ckeditor/lang/en-ca.js +0 -6
  458. data/public/javascripts/ckeditor/lang/en-gb.js +0 -6
  459. data/public/javascripts/ckeditor/lang/en.js +0 -6
  460. data/public/javascripts/ckeditor/lang/eo.js +0 -6
  461. data/public/javascripts/ckeditor/lang/es.js +0 -6
  462. data/public/javascripts/ckeditor/lang/et.js +0 -6
  463. data/public/javascripts/ckeditor/lang/eu.js +0 -6
  464. data/public/javascripts/ckeditor/lang/fa.js +0 -6
  465. data/public/javascripts/ckeditor/lang/fi.js +0 -6
  466. data/public/javascripts/ckeditor/lang/fo.js +0 -6
  467. data/public/javascripts/ckeditor/lang/fr-ca.js +0 -6
  468. data/public/javascripts/ckeditor/lang/fr.js +0 -6
  469. data/public/javascripts/ckeditor/lang/gl.js +0 -6
  470. data/public/javascripts/ckeditor/lang/gu.js +0 -6
  471. data/public/javascripts/ckeditor/lang/he.js +0 -6
  472. data/public/javascripts/ckeditor/lang/hi.js +0 -6
  473. data/public/javascripts/ckeditor/lang/hr.js +0 -6
  474. data/public/javascripts/ckeditor/lang/hu.js +0 -6
  475. data/public/javascripts/ckeditor/lang/is.js +0 -6
  476. data/public/javascripts/ckeditor/lang/it.js +0 -6
  477. data/public/javascripts/ckeditor/lang/ja.js +0 -6
  478. data/public/javascripts/ckeditor/lang/km.js +0 -6
  479. data/public/javascripts/ckeditor/lang/ko.js +0 -6
  480. data/public/javascripts/ckeditor/lang/lt.js +0 -6
  481. data/public/javascripts/ckeditor/lang/lv.js +0 -6
  482. data/public/javascripts/ckeditor/lang/mn.js +0 -6
  483. data/public/javascripts/ckeditor/lang/ms.js +0 -6
  484. data/public/javascripts/ckeditor/lang/nb.js +0 -6
  485. data/public/javascripts/ckeditor/lang/nl.js +0 -6
  486. data/public/javascripts/ckeditor/lang/no.js +0 -6
  487. data/public/javascripts/ckeditor/lang/pl.js +0 -6
  488. data/public/javascripts/ckeditor/lang/pt-br.js +0 -6
  489. data/public/javascripts/ckeditor/lang/pt.js +0 -6
  490. data/public/javascripts/ckeditor/lang/ro.js +0 -6
  491. data/public/javascripts/ckeditor/lang/ru.js +0 -6
  492. data/public/javascripts/ckeditor/lang/sk.js +0 -6
  493. data/public/javascripts/ckeditor/lang/sl.js +0 -6
  494. data/public/javascripts/ckeditor/lang/sr-latn.js +0 -6
  495. data/public/javascripts/ckeditor/lang/sr.js +0 -6
  496. data/public/javascripts/ckeditor/lang/sv.js +0 -6
  497. data/public/javascripts/ckeditor/lang/th.js +0 -6
  498. data/public/javascripts/ckeditor/lang/tr.js +0 -6
  499. data/public/javascripts/ckeditor/lang/uk.js +0 -6
  500. data/public/javascripts/ckeditor/lang/vi.js +0 -6
  501. data/public/javascripts/ckeditor/lang/zh-cn.js +0 -6
  502. data/public/javascripts/ckeditor/lang/zh.js +0 -6
  503. data/public/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +0 -7
  504. data/public/javascripts/ckeditor/plugins/a11yhelp/lang/en.js +0 -6
  505. data/public/javascripts/ckeditor/plugins/a11yhelp/lang/he.js +0 -6
  506. data/public/javascripts/ckeditor/plugins/about/dialogs/about.js +0 -6
  507. data/public/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  508. data/public/javascripts/ckeditor/plugins/ajax_save/plugin.js +0 -1
  509. data/public/javascripts/ckeditor/plugins/attachment/dialogs/attachment.js +0 -1
  510. data/public/javascripts/ckeditor/plugins/attachment/images/attachment.png +0 -0
  511. data/public/javascripts/ckeditor/plugins/attachment/lang/en.js +0 -10
  512. data/public/javascripts/ckeditor/plugins/attachment/lang/ru.js +0 -10
  513. data/public/javascripts/ckeditor/plugins/attachment/lang/uk.js +0 -10
  514. data/public/javascripts/ckeditor/plugins/attachment/plugin.js +0 -1
  515. data/public/javascripts/ckeditor/plugins/autogrow/plugin.js +0 -6
  516. data/public/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +0 -7
  517. data/public/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +0 -7
  518. data/public/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +0 -4
  519. data/public/javascripts/ckeditor/plugins/div/dialogs/div.js +0 -8
  520. data/public/javascripts/ckeditor/plugins/embed/dialogs/embed.js +0 -1
  521. data/public/javascripts/ckeditor/plugins/embed/images/embed.png +0 -0
  522. data/public/javascripts/ckeditor/plugins/embed/lang/en.js +0 -9
  523. data/public/javascripts/ckeditor/plugins/embed/lang/ru.js +0 -9
  524. data/public/javascripts/ckeditor/plugins/embed/lang/uk.js +0 -9
  525. data/public/javascripts/ckeditor/plugins/embed/plugin.js +0 -1
  526. data/public/javascripts/ckeditor/plugins/find/dialogs/find.js +0 -9
  527. data/public/javascripts/ckeditor/plugins/flash/dialogs/flash.js +0 -9
  528. data/public/javascripts/ckeditor/plugins/flash/images/placeholder.png +0 -0
  529. data/public/javascripts/ckeditor/plugins/forms/dialogs/button.js +0 -6
  530. data/public/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +0 -6
  531. data/public/javascripts/ckeditor/plugins/forms/dialogs/form.js +0 -6
  532. data/public/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +0 -6
  533. data/public/javascripts/ckeditor/plugins/forms/dialogs/radio.js +0 -6
  534. data/public/javascripts/ckeditor/plugins/forms/dialogs/select.js +0 -9
  535. data/public/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +0 -6
  536. data/public/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +0 -7
  537. data/public/javascripts/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  538. data/public/javascripts/ckeditor/plugins/iframedialog/plugin.js +0 -6
  539. data/public/javascripts/ckeditor/plugins/image/dialogs/image.js +0 -13
  540. data/public/javascripts/ckeditor/plugins/link/dialogs/anchor.js +0 -6
  541. data/public/javascripts/ckeditor/plugins/link/dialogs/link.js +0 -11
  542. data/public/javascripts/ckeditor/plugins/link/images/anchor.gif +0 -0
  543. data/public/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +0 -6
  544. data/public/javascripts/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  545. data/public/javascripts/ckeditor/plugins/pastefromword/filter/default.js +0 -10
  546. data/public/javascripts/ckeditor/plugins/pastetext/dialogs/pastetext.js +0 -6
  547. data/public/javascripts/ckeditor/plugins/scayt/dialogs/options.js +0 -8
  548. data/public/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +0 -6
  549. data/public/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  550. data/public/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  551. data/public/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  552. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  553. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  554. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  555. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  556. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  557. data/public/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  558. data/public/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  559. data/public/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  560. data/public/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +0 -7
  561. data/public/javascripts/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  562. data/public/javascripts/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  563. data/public/javascripts/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  564. data/public/javascripts/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  565. data/public/javascripts/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  566. data/public/javascripts/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  567. data/public/javascripts/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  568. data/public/javascripts/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  569. data/public/javascripts/ckeditor/plugins/smiley/images/heart.gif +0 -0
  570. data/public/javascripts/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  571. data/public/javascripts/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  572. data/public/javascripts/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  573. data/public/javascripts/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  574. data/public/javascripts/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  575. data/public/javascripts/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  576. data/public/javascripts/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  577. data/public/javascripts/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  578. data/public/javascripts/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  579. data/public/javascripts/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  580. data/public/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  581. data/public/javascripts/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  582. data/public/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +0 -7
  583. data/public/javascripts/ckeditor/plugins/styles/styles/default.js +0 -6
  584. data/public/javascripts/ckeditor/plugins/table/dialogs/table.js +0 -9
  585. data/public/javascripts/ckeditor/plugins/tableresize/plugin.js +0 -7
  586. data/public/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +0 -8
  587. data/public/javascripts/ckeditor/plugins/templates/dialogs/templates.js +0 -7
  588. data/public/javascripts/ckeditor/plugins/templates/templates/default.js +0 -6
  589. data/public/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  590. data/public/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  591. data/public/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  592. data/public/javascripts/ckeditor/plugins/uicolor/dialogs/uicolor.js +0 -7
  593. data/public/javascripts/ckeditor/plugins/uicolor/lang/en.js +0 -6
  594. data/public/javascripts/ckeditor/plugins/uicolor/lang/he.js +0 -6
  595. data/public/javascripts/ckeditor/plugins/uicolor/plugin.js +0 -6
  596. data/public/javascripts/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  597. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  598. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  599. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  600. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  601. data/public/javascripts/ckeditor/plugins/uicolor/yui/assets/yui.css +0 -6
  602. data/public/javascripts/ckeditor/plugins/uicolor/yui/yui.js +0 -76
  603. data/public/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +0 -49
  604. data/public/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +0 -52
  605. data/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +0 -6
  606. data/public/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +0 -7
  607. data/public/javascripts/ckeditor/skins/kama/dialog.css +0 -9
  608. data/public/javascripts/ckeditor/skins/kama/editor.css +0 -12
  609. data/public/javascripts/ckeditor/skins/kama/icons.png +0 -0
  610. data/public/javascripts/ckeditor/skins/kama/icons_rtl.png +0 -0
  611. data/public/javascripts/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  612. data/public/javascripts/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  613. data/public/javascripts/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  614. data/public/javascripts/ckeditor/skins/kama/images/mini.gif +0 -0
  615. data/public/javascripts/ckeditor/skins/kama/images/noimage.png +0 -0
  616. data/public/javascripts/ckeditor/skins/kama/images/sprites.png +0 -0
  617. data/public/javascripts/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  618. data/public/javascripts/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  619. data/public/javascripts/ckeditor/skins/kama/skin.js +0 -7
  620. data/public/javascripts/ckeditor/skins/kama/templates.css +0 -6
  621. data/public/javascripts/ckeditor/skins/office2003/dialog.css +0 -9
  622. data/public/javascripts/ckeditor/skins/office2003/editor.css +0 -13
  623. data/public/javascripts/ckeditor/skins/office2003/icons.png +0 -0
  624. data/public/javascripts/ckeditor/skins/office2003/icons_rtl.png +0 -0
  625. data/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  626. data/public/javascripts/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  627. data/public/javascripts/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  628. data/public/javascripts/ckeditor/skins/office2003/images/mini.gif +0 -0
  629. data/public/javascripts/ckeditor/skins/office2003/images/noimage.png +0 -0
  630. data/public/javascripts/ckeditor/skins/office2003/images/sprites.png +0 -0
  631. data/public/javascripts/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  632. data/public/javascripts/ckeditor/skins/office2003/skin.js +0 -6
  633. data/public/javascripts/ckeditor/skins/office2003/templates.css +0 -6
  634. data/public/javascripts/ckeditor/skins/v2/dialog.css +0 -9
  635. data/public/javascripts/ckeditor/skins/v2/editor.css +0 -12
  636. data/public/javascripts/ckeditor/skins/v2/icons.png +0 -0
  637. data/public/javascripts/ckeditor/skins/v2/icons_rtl.png +0 -0
  638. data/public/javascripts/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  639. data/public/javascripts/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  640. data/public/javascripts/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  641. data/public/javascripts/ckeditor/skins/v2/images/mini.gif +0 -0
  642. data/public/javascripts/ckeditor/skins/v2/images/noimage.png +0 -0
  643. data/public/javascripts/ckeditor/skins/v2/images/sprites.png +0 -0
  644. data/public/javascripts/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  645. data/public/javascripts/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  646. data/public/javascripts/ckeditor/skins/v2/skin.js +0 -6
  647. data/public/javascripts/ckeditor/skins/v2/templates.css +0 -6
  648. data/public/javascripts/ckeditor/swfupload/fileprogress.js +0 -275
  649. data/public/javascripts/ckeditor/swfupload/handlers.js +0 -170
  650. data/public/javascripts/ckeditor/swfupload/mootools-1.2.3-core-yc.js +0 -356
  651. data/public/javascripts/ckeditor/swfupload/querystring.js +0 -40
  652. data/public/javascripts/ckeditor/swfupload/swfupload.js +0 -1
  653. data/public/javascripts/ckeditor/swfupload/swfupload.queue.js +0 -1
  654. data/public/javascripts/ckeditor/swfupload/swfupload.swf +0 -0
  655. data/public/javascripts/ckeditor/swfupload/swfupload.swfobject.js +0 -111
  656. data/public/javascripts/ckeditor/themes/default/theme.js +0 -8
  657. data/public/javascripts/controls.js +0 -965
  658. data/public/javascripts/dragdrop.js +0 -974
  659. data/public/javascripts/effects.js +0 -1123
  660. data/public/javascripts/link_obfuscator.js +0 -31
  661. data/public/javascripts/prototype.js +0 -6001
  662. data/public/javascripts/rails.js +0 -175
  663. data/public/robots.txt +0 -5
  664. data/public/stylesheets/core_ie.css +0 -52
  665. data/public/stylesheets/csshover3.htc +0 -14
@@ -1,213 +0,0 @@
1
- /*
2
- Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- (function()
7
- {
8
-
9
- function setupAdvParams( element )
10
- {
11
- var attrName = this.att;
12
-
13
- var value = element && element.hasAttribute( attrName ) && element.getAttribute( attrName ) || '';
14
-
15
- if ( value !== undefined )
16
- this.setValue( value );
17
- }
18
-
19
- function commitAdvParams()
20
- {
21
- // Dialogs may use different parameters in the commit list, so, by
22
- // definition, we take the first CKEDITOR.dom.element available.
23
- var element;
24
-
25
- for ( var i = 0 ; i < arguments.length ; i++ )
26
- {
27
- if ( arguments[ i ] instanceof CKEDITOR.dom.element )
28
- {
29
- element = arguments[ i ];
30
- break;
31
- }
32
- }
33
-
34
- if ( element )
35
- {
36
- var attrName = this.att,
37
- value = this.getValue();
38
-
39
- // Broadcast Lang Dir change
40
- if ( attrName == 'dir' )
41
- {
42
- var dir = element.getAttribute( attrName, value );
43
- if ( dir != value && element.getParent() )
44
- this._.dialog._.editor.fire( 'dirChanged', element );
45
- }
46
-
47
- if ( value )
48
- element.setAttribute( attrName, value );
49
- else
50
- element.removeAttribute( attrName, value );
51
- }
52
- }
53
-
54
- CKEDITOR.plugins.add( 'dialogadvtab',
55
- {
56
- /**
57
- *
58
- * @param tabConfig
59
- * id, dir, classes, styles
60
- */
61
- createAdvancedTab : function( editor, tabConfig )
62
- {
63
- if ( !tabConfig )
64
- tabConfig = { id:1, dir:1, classes:1, styles:1 };
65
-
66
- var lang = editor.lang.common;
67
-
68
- var result =
69
- {
70
- id : 'advanced',
71
- label : lang.advancedTab,
72
- title : lang.advancedTab,
73
- elements :
74
- [
75
- {
76
- type : 'vbox',
77
- padding : 1,
78
- children : []
79
- }
80
- ]
81
- };
82
-
83
- var contents = [];
84
-
85
- if ( tabConfig.id || tabConfig.dir )
86
- {
87
- if ( tabConfig.id )
88
- {
89
- contents.push(
90
- {
91
- id : 'advId',
92
- att : 'id',
93
- type : 'text',
94
- label : lang.id,
95
- setup : setupAdvParams,
96
- commit : commitAdvParams
97
- });
98
- }
99
-
100
- if ( tabConfig.dir )
101
- {
102
- contents.push(
103
- {
104
- id : 'advLangDir',
105
- att : 'dir',
106
- type : 'select',
107
- label : lang.langDir,
108
- 'default' : '',
109
- style : 'width:100%',
110
- items :
111
- [
112
- [ lang.notSet, '' ],
113
- [ lang.langDirLTR, 'ltr' ],
114
- [ lang.langDirRTL, 'rtl' ]
115
- ],
116
- setup : setupAdvParams,
117
- commit : commitAdvParams
118
- });
119
- }
120
-
121
- result.elements[ 0 ].children.push(
122
- {
123
- type : 'hbox',
124
- widths : [ '50%', '50%' ],
125
- children : [].concat( contents )
126
- });
127
- }
128
-
129
- if ( tabConfig.styles || tabConfig.classes )
130
- {
131
- contents = [];
132
-
133
- if ( tabConfig.styles )
134
- {
135
- contents.push(
136
- {
137
- id : 'advStyles',
138
- att : 'style',
139
- type : 'text',
140
- label : lang.styles,
141
- 'default' : '',
142
-
143
- getStyle : function( name, defaultValue )
144
- {
145
- var match = this.getValue().match( new RegExp( name + '\\s*:\s*([^;]*)', 'i') );
146
- return match ? match[ 1 ] : defaultValue;
147
- },
148
-
149
- updateStyle : function( name, value )
150
- {
151
- var styles = this.getValue();
152
-
153
- // Remove the current value.
154
- if ( styles )
155
- {
156
- styles = styles
157
- .replace( new RegExp( '\\s*' + name + '\s*:[^;]*(?:$|;\s*)', 'i' ), '' )
158
- .replace( /^[;\s]+/, '' )
159
- .replace( /\s+$/, '' );
160
- }
161
-
162
- if ( value )
163
- {
164
- styles && !(/;\s*$/).test( styles ) && ( styles += '; ' );
165
- styles += name + ': ' + value;
166
- }
167
-
168
- this.setValue( styles, 1 );
169
-
170
- },
171
-
172
- setup : setupAdvParams,
173
-
174
- commit : commitAdvParams
175
-
176
- });
177
- }
178
-
179
- if ( tabConfig.classes )
180
- {
181
- contents.push(
182
- {
183
- type : 'hbox',
184
- widths : [ '45%', '55%' ],
185
- children :
186
- [
187
- {
188
- id : 'advCSSClasses',
189
- att : 'class',
190
- type : 'text',
191
- label : lang.cssClasses,
192
- 'default' : '',
193
- setup : setupAdvParams,
194
- commit : commitAdvParams
195
-
196
- }
197
- ]
198
- });
199
- }
200
-
201
- result.elements[ 0 ].children.push(
202
- {
203
- type : 'hbox',
204
- widths : [ '50%', '50%' ],
205
- children : [].concat( contents )
206
- });
207
- }
208
-
209
- return result;
210
- }
211
- });
212
-
213
- })();
@@ -1,1523 +0,0 @@
1
- /*
2
- Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- /** @fileoverview The "dialogui" plugin. */
7
-
8
- CKEDITOR.plugins.add( 'dialogui' );
9
-
10
- (function()
11
- {
12
- var initPrivateObject = function( elementDefinition )
13
- {
14
- this._ || ( this._ = {} );
15
- this._['default'] = this._.initValue = elementDefinition['default'] || '';
16
- this._.required = elementDefinition[ 'required' ] || false;
17
- var args = [ this._ ];
18
- for ( var i = 1 ; i < arguments.length ; i++ )
19
- args.push( arguments[i] );
20
- args.push( true );
21
- CKEDITOR.tools.extend.apply( CKEDITOR.tools, args );
22
- return this._;
23
- },
24
- textBuilder =
25
- {
26
- build : function( dialog, elementDefinition, output )
27
- {
28
- return new CKEDITOR.ui.dialog.textInput( dialog, elementDefinition, output );
29
- }
30
- },
31
- commonBuilder =
32
- {
33
- build : function( dialog, elementDefinition, output )
34
- {
35
- return new CKEDITOR.ui.dialog[elementDefinition.type]( dialog, elementDefinition, output );
36
- }
37
- },
38
- containerBuilder =
39
- {
40
- build : function( dialog, elementDefinition, output )
41
- {
42
- var children = elementDefinition.children,
43
- child,
44
- childHtmlList = [],
45
- childObjList = [];
46
- for ( var i = 0 ; ( i < children.length && ( child = children[i] ) ) ; i++ )
47
- {
48
- var childHtml = [];
49
- childHtmlList.push( childHtml );
50
- childObjList.push( CKEDITOR.dialog._.uiElementBuilders[ child.type ].build( dialog, child, childHtml ) );
51
- }
52
- return new CKEDITOR.ui.dialog[ elementDefinition.type ]( dialog, childObjList, childHtmlList, output, elementDefinition );
53
- }
54
- },
55
- commonPrototype =
56
- {
57
- isChanged : function()
58
- {
59
- return this.getValue() != this.getInitValue();
60
- },
61
-
62
- reset : function( noChangeEvent )
63
- {
64
- this.setValue( this.getInitValue(), noChangeEvent );
65
- },
66
-
67
- setInitValue : function()
68
- {
69
- this._.initValue = this.getValue();
70
- },
71
-
72
- resetInitValue : function()
73
- {
74
- this._.initValue = this._['default'];
75
- },
76
-
77
- getInitValue : function()
78
- {
79
- return this._.initValue;
80
- }
81
- },
82
- commonEventProcessors = CKEDITOR.tools.extend( {}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,
83
- {
84
- onChange : function( dialog, func )
85
- {
86
- if ( !this._.domOnChangeRegistered )
87
- {
88
- dialog.on( 'load', function()
89
- {
90
- this.getInputElement().on( 'change', function()
91
- {
92
- // Make sure 'onchange' doesn't get fired after dialog closed. (#5719)
93
- if ( !dialog.parts.dialog.isVisible() )
94
- return;
95
-
96
- this.fire( 'change', { value : this.getValue() } );
97
- }, this );
98
- }, this );
99
- this._.domOnChangeRegistered = true;
100
- }
101
-
102
- this.on( 'change', func );
103
- }
104
- }, true ),
105
- eventRegex = /^on([A-Z]\w+)/,
106
- cleanInnerDefinition = function( def )
107
- {
108
- // An inner UI element should not have the parent's type, title or events.
109
- for ( var i in def )
110
- {
111
- if ( eventRegex.test( i ) || i == 'title' || i == 'type' )
112
- delete def[i];
113
- }
114
- return def;
115
- };
116
-
117
- CKEDITOR.tools.extend( CKEDITOR.ui.dialog,
118
- /** @lends CKEDITOR.ui.dialog */
119
- {
120
- /**
121
- * Base class for all dialog elements with a textual label on the left.
122
- * @constructor
123
- * @example
124
- * @extends CKEDITOR.ui.dialog.uiElement
125
- * @param {CKEDITOR.dialog} dialog
126
- * Parent dialog object.
127
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
128
- * The element definition. Accepted fields:
129
- * <ul>
130
- * <li><strong>label</strong> (Required) The label string.</li>
131
- * <li><strong>labelLayout</strong> (Optional) Put 'horizontal' here if the
132
- * label element is to be layed out horizontally. Otherwise a vertical
133
- * layout will be used.</li>
134
- * <li><strong>widths</strong> (Optional) This applies only for horizontal
135
- * layouts - an 2-element array of lengths to specify the widths of the
136
- * label and the content element.</li>
137
- * </ul>
138
- * @param {Array} htmlList
139
- * List of HTML code to output to.
140
- * @param {Function} contentHtml
141
- * A function returning the HTML code string to be added inside the content
142
- * cell.
143
- */
144
- labeledElement : function( dialog, elementDefinition, htmlList, contentHtml )
145
- {
146
- if ( arguments.length < 4 )
147
- return;
148
-
149
- var _ = initPrivateObject.call( this, elementDefinition );
150
- _.labelId = CKEDITOR.tools.getNextId() + '_label';
151
- var children = this._.children = [];
152
- /** @ignore */
153
- var innerHTML = function()
154
- {
155
- var html = [],
156
- requiredClass = elementDefinition.required ? ' cke_required' : '' ;
157
- if ( elementDefinition.labelLayout != 'horizontal' )
158
- html.push( '<label class="cke_dialog_ui_labeled_label' + requiredClass + '" ',
159
- ' id="'+ _.labelId + '"',
160
- ' for="' + _.inputId + '"',
161
- ' style="' + elementDefinition.labelStyle + '">',
162
- elementDefinition.label,
163
- '</label>',
164
- '<div class="cke_dialog_ui_labeled_content" role="presentation">',
165
- contentHtml.call( this, dialog, elementDefinition ),
166
- '</div>' );
167
- else
168
- {
169
- var hboxDefinition = {
170
- type : 'hbox',
171
- widths : elementDefinition.widths,
172
- padding : 0,
173
- children :
174
- [
175
- {
176
- type : 'html',
177
- html : '<label class="cke_dialog_ui_labeled_label' + requiredClass + '"' +
178
- ' id="' + _.labelId + '"' +
179
- ' for="' + _.inputId + '"' +
180
- ' style="' + elementDefinition.labelStyle + '">' +
181
- CKEDITOR.tools.htmlEncode( elementDefinition.label ) +
182
- '</span>'
183
- },
184
- {
185
- type : 'html',
186
- html : '<span class="cke_dialog_ui_labeled_content">' +
187
- contentHtml.call( this, dialog, elementDefinition ) +
188
- '</span>'
189
- }
190
- ]
191
- };
192
- CKEDITOR.dialog._.uiElementBuilders.hbox.build( dialog, hboxDefinition, html );
193
- }
194
- return html.join( '' );
195
- };
196
- CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, htmlList, 'div', null, { role : 'presentation' }, innerHTML );
197
- },
198
-
199
- /**
200
- * A text input with a label. This UI element class represents both the
201
- * single-line text inputs and password inputs in dialog boxes.
202
- * @constructor
203
- * @example
204
- * @extends CKEDITOR.ui.dialog.labeledElement
205
- * @param {CKEDITOR.dialog} dialog
206
- * Parent dialog object.
207
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
208
- * The element definition. Accepted fields:
209
- * <ul>
210
- * <li><strong>default</strong> (Optional) The default value.</li>
211
- * <li><strong>validate</strong> (Optional) The validation function. </li>
212
- * <li><strong>maxLength</strong> (Optional) The maximum length of text box
213
- * contents.</li>
214
- * <li><strong>size</strong> (Optional) The size of the text box. This is
215
- * usually overridden by the size defined by the skin, however.</li>
216
- * </ul>
217
- * @param {Array} htmlList
218
- * List of HTML code to output to.
219
- */
220
- textInput : function( dialog, elementDefinition, htmlList )
221
- {
222
- if ( arguments.length < 3 )
223
- return;
224
-
225
- initPrivateObject.call( this, elementDefinition );
226
- var domId = this._.inputId = CKEDITOR.tools.getNextId() + '_textInput',
227
- attributes = { 'class' : 'cke_dialog_ui_input_' + elementDefinition.type, id : domId, type : 'text' },
228
- i;
229
-
230
- // Set the validator, if any.
231
- if ( elementDefinition.validate )
232
- this.validate = elementDefinition.validate;
233
-
234
- // Set the max length and size.
235
- if ( elementDefinition.maxLength )
236
- attributes.maxlength = elementDefinition.maxLength;
237
- if ( elementDefinition.size )
238
- attributes.size = elementDefinition.size;
239
-
240
- if ( elementDefinition.controlStyle )
241
- attributes.style = elementDefinition.controlStyle;
242
-
243
- // If user presses Enter in a text box, it implies clicking OK for the dialog.
244
- var me = this, keyPressedOnMe = false;
245
- dialog.on( 'load', function()
246
- {
247
- me.getInputElement().on( 'keydown', function( evt )
248
- {
249
- if ( evt.data.getKeystroke() == 13 )
250
- keyPressedOnMe = true;
251
- } );
252
-
253
- // Lower the priority this 'keyup' since 'ok' will close the dialog.(#3749)
254
- me.getInputElement().on( 'keyup', function( evt )
255
- {
256
- if ( evt.data.getKeystroke() == 13 && keyPressedOnMe )
257
- {
258
- dialog.getButton( 'ok' ) && setTimeout( function ()
259
- {
260
- dialog.getButton( 'ok' ).click();
261
- }, 0 );
262
- keyPressedOnMe = false;
263
- }
264
- }, null, null, 1000 );
265
- } );
266
-
267
- /** @ignore */
268
- var innerHTML = function()
269
- {
270
- // IE BUG: Text input fields in IE at 100% would exceed a <td> or inline
271
- // container's width, so need to wrap it inside a <div>.
272
- var html = [ '<div class="cke_dialog_ui_input_', elementDefinition.type, '" role="presentation"' ];
273
-
274
- if ( elementDefinition.width )
275
- html.push( 'style="width:'+ elementDefinition.width +'" ' );
276
-
277
- html.push( '><input ' );
278
-
279
- attributes[ 'aria-labelledby' ] = this._.labelId;
280
- this._.required && ( attributes[ 'aria-required' ] = this._.required );
281
- for ( var i in attributes )
282
- html.push( i + '="' + attributes[i] + '" ' );
283
- html.push( ' /></div>' );
284
- return html.join( '' );
285
- };
286
- CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
287
- },
288
-
289
- /**
290
- * A text area with a label on the top or left.
291
- * @constructor
292
- * @extends CKEDITOR.ui.dialog.labeledElement
293
- * @example
294
- * @param {CKEDITOR.dialog} dialog
295
- * Parent dialog object.
296
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
297
- * The element definition. Accepted fields:
298
- * <ul>
299
- * <li><strong>rows</strong> (Optional) The number of rows displayed.
300
- * Defaults to 5 if not defined.</li>
301
- * <li><strong>cols</strong> (Optional) The number of cols displayed.
302
- * Defaults to 20 if not defined. Usually overridden by skins.</li>
303
- * <li><strong>default</strong> (Optional) The default value.</li>
304
- * <li><strong>validate</strong> (Optional) The validation function. </li>
305
- * </ul>
306
- * @param {Array} htmlList
307
- * List of HTML code to output to.
308
- */
309
- textarea : function( dialog, elementDefinition, htmlList )
310
- {
311
- if ( arguments.length < 3 )
312
- return;
313
-
314
- initPrivateObject.call( this, elementDefinition );
315
- var me = this,
316
- domId = this._.inputId = CKEDITOR.tools.getNextId() + '_textarea',
317
- attributes = {};
318
-
319
- if ( elementDefinition.validate )
320
- this.validate = elementDefinition.validate;
321
-
322
- // Generates the essential attributes for the textarea tag.
323
- attributes.rows = elementDefinition.rows || 5;
324
- attributes.cols = elementDefinition.cols || 20;
325
-
326
- /** @ignore */
327
- var innerHTML = function()
328
- {
329
- attributes[ 'aria-labelledby' ] = this._.labelId;
330
- this._.required && ( attributes[ 'aria-required' ] = this._.required );
331
- var html = [ '<div class="cke_dialog_ui_input_textarea" role="presentation"><textarea class="cke_dialog_ui_input_textarea" id="', domId, '" ' ];
332
- for ( var i in attributes )
333
- html.push( i + '="' + CKEDITOR.tools.htmlEncode( attributes[i] ) + '" ' );
334
- html.push( '>', CKEDITOR.tools.htmlEncode( me._['default'] ), '</textarea></div>' );
335
- return html.join( '' );
336
- };
337
- CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
338
- },
339
-
340
- /**
341
- * A single checkbox with a label on the right.
342
- * @constructor
343
- * @extends CKEDITOR.ui.dialog.uiElement
344
- * @example
345
- * @param {CKEDITOR.dialog} dialog
346
- * Parent dialog object.
347
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
348
- * The element definition. Accepted fields:
349
- * <ul>
350
- * <li><strong>checked</strong> (Optional) Whether the checkbox is checked
351
- * on instantiation. Defaults to false.</li>
352
- * <li><strong>validate</strong> (Optional) The validation function.</li>
353
- * <li><strong>label</strong> (Optional) The checkbox label.</li>
354
- * </ul>
355
- * @param {Array} htmlList
356
- * List of HTML code to output to.
357
- */
358
- checkbox : function( dialog, elementDefinition, htmlList )
359
- {
360
- if ( arguments.length < 3 )
361
- return;
362
-
363
- var _ = initPrivateObject.call( this, elementDefinition, { 'default' : !!elementDefinition[ 'default' ] } );
364
-
365
- if ( elementDefinition.validate )
366
- this.validate = elementDefinition.validate;
367
-
368
- /** @ignore */
369
- var innerHTML = function()
370
- {
371
- var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition,
372
- {
373
- id : elementDefinition.id ? elementDefinition.id + '_checkbox' : CKEDITOR.tools.getNextId() + '_checkbox'
374
- }, true ),
375
- html = [];
376
-
377
- var labelId = CKEDITOR.tools.getNextId() + '_label';
378
- var attributes = { 'class' : 'cke_dialog_ui_checkbox_input', type : 'checkbox', 'aria-labelledby' : labelId };
379
- cleanInnerDefinition( myDefinition );
380
- if ( elementDefinition[ 'default' ] )
381
- attributes.checked = 'checked';
382
-
383
- if ( typeof myDefinition.controlStyle != 'undefined' )
384
- myDefinition.style = myDefinition.controlStyle;
385
-
386
- _.checkbox = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'input', null, attributes );
387
- html.push( ' <label id="', labelId, '" for="', attributes.id, '">',
388
- CKEDITOR.tools.htmlEncode( elementDefinition.label ),
389
- '</label>' );
390
- return html.join( '' );
391
- };
392
-
393
- CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, htmlList, 'span', null, null, innerHTML );
394
- },
395
-
396
- /**
397
- * A group of radio buttons.
398
- * @constructor
399
- * @example
400
- * @extends CKEDITOR.ui.dialog.labeledElement
401
- * @param {CKEDITOR.dialog} dialog
402
- * Parent dialog object.
403
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
404
- * The element definition. Accepted fields:
405
- * <ul>
406
- * <li><strong>default</strong> (Required) The default value.</li>
407
- * <li><strong>validate</strong> (Optional) The validation function.</li>
408
- * <li><strong>items</strong> (Required) An array of options. Each option
409
- * is a 1- or 2-item array of format [ 'Description', 'Value' ]. If 'Value'
410
- * is missing, then the value would be assumed to be the same as the
411
- * description.</li>
412
- * </ul>
413
- * @param {Array} htmlList
414
- * List of HTML code to output to.
415
- */
416
- radio : function( dialog, elementDefinition, htmlList )
417
- {
418
- if ( arguments.length < 3)
419
- return;
420
-
421
- initPrivateObject.call( this, elementDefinition );
422
- if ( !this._['default'] )
423
- this._['default'] = this._.initValue = elementDefinition.items[0][1];
424
- if ( elementDefinition.validate )
425
- this.validate = elementDefinition.valdiate;
426
- var children = [], me = this;
427
-
428
- /** @ignore */
429
- var innerHTML = function()
430
- {
431
- var inputHtmlList = [], html = [],
432
- commonAttributes = { 'class' : 'cke_dialog_ui_radio_item', 'aria-labelledby' : this._.labelId },
433
- commonName = elementDefinition.id ? elementDefinition.id + '_radio' : CKEDITOR.tools.getNextId() + '_radio';
434
- for ( var i = 0 ; i < elementDefinition.items.length ; i++ )
435
- {
436
- var item = elementDefinition.items[i],
437
- title = item[2] !== undefined ? item[2] : item[0],
438
- value = item[1] !== undefined ? item[1] : item[0],
439
- inputId = CKEDITOR.tools.getNextId() + '_radio_input',
440
- labelId = inputId + '_label',
441
- inputDefinition = CKEDITOR.tools.extend( {}, elementDefinition,
442
- {
443
- id : inputId,
444
- title : null,
445
- type : null
446
- }, true ),
447
- labelDefinition = CKEDITOR.tools.extend( {}, inputDefinition,
448
- {
449
- title : title
450
- }, true ),
451
- inputAttributes =
452
- {
453
- type : 'radio',
454
- 'class' : 'cke_dialog_ui_radio_input',
455
- name : commonName,
456
- value : value,
457
- 'aria-labelledby' : labelId
458
- },
459
- inputHtml = [];
460
- if ( me._['default'] == value )
461
- inputAttributes.checked = 'checked';
462
- cleanInnerDefinition( inputDefinition );
463
- cleanInnerDefinition( labelDefinition );
464
-
465
- if ( typeof inputDefinition.controlStyle != 'undefined' )
466
- inputDefinition.style = inputDefinition.controlStyle;
467
-
468
- children.push( new CKEDITOR.ui.dialog.uiElement( dialog, inputDefinition, inputHtml, 'input', null, inputAttributes ) );
469
- inputHtml.push( ' ' );
470
- new CKEDITOR.ui.dialog.uiElement( dialog, labelDefinition, inputHtml, 'label', null, { id : labelId, 'for' : inputAttributes.id },
471
- item[0] );
472
- inputHtmlList.push( inputHtml.join( '' ) );
473
- }
474
- new CKEDITOR.ui.dialog.hbox( dialog, [], inputHtmlList, html );
475
- return html.join( '' );
476
- };
477
-
478
- CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
479
- this._.children = children;
480
- },
481
-
482
- /**
483
- * A button with a label inside.
484
- * @constructor
485
- * @example
486
- * @extends CKEDITOR.ui.dialog.uiElement
487
- * @param {CKEDITOR.dialog} dialog
488
- * Parent dialog object.
489
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
490
- * The element definition. Accepted fields:
491
- * <ul>
492
- * <li><strong>label</strong> (Required) The button label.</li>
493
- * <li><strong>disabled</strong> (Optional) Set to true if you want the
494
- * button to appear in disabled state.</li>
495
- * </ul>
496
- * @param {Array} htmlList
497
- * List of HTML code to output to.
498
- */
499
- button : function( dialog, elementDefinition, htmlList )
500
- {
501
- if ( !arguments.length )
502
- return;
503
-
504
- if ( typeof elementDefinition == 'function' )
505
- elementDefinition = elementDefinition( dialog.getParentEditor() );
506
-
507
- initPrivateObject.call( this, elementDefinition, { disabled : elementDefinition.disabled || false } );
508
-
509
- // Add OnClick event to this input.
510
- CKEDITOR.event.implementOn( this );
511
-
512
- var me = this;
513
-
514
- // Register an event handler for processing button clicks.
515
- dialog.on( 'load', function( eventInfo )
516
- {
517
- var element = this.getElement();
518
-
519
- (function()
520
- {
521
- element.on( 'click', function( evt )
522
- {
523
- me.fire( 'click', { dialog : me.getDialog() } );
524
- evt.data.preventDefault();
525
- } );
526
-
527
- element.on( 'keydown', function( evt )
528
- {
529
- if ( evt.data.getKeystroke() in { 32:1 } )
530
- {
531
- me.click();
532
- evt.data.preventDefault();
533
- }
534
- } );
535
- })();
536
-
537
- element.unselectable();
538
- }, this );
539
-
540
- var outerDefinition = CKEDITOR.tools.extend( {}, elementDefinition );
541
- delete outerDefinition.style;
542
-
543
- var labelId = CKEDITOR.tools.getNextId() + '_label';
544
- CKEDITOR.ui.dialog.uiElement.call(
545
- this,
546
- dialog,
547
- outerDefinition,
548
- htmlList,
549
- 'a',
550
- null,
551
- {
552
- style : elementDefinition.style,
553
- href : 'javascript:void(0)',
554
- title : elementDefinition.label,
555
- hidefocus : 'true',
556
- 'class' : elementDefinition['class'],
557
- role : 'button',
558
- 'aria-labelledby' : labelId
559
- },
560
- '<span id="' + labelId + '" class="cke_dialog_ui_button">' +
561
- CKEDITOR.tools.htmlEncode( elementDefinition.label ) +
562
- '</span>' );
563
- },
564
-
565
- /**
566
- * A select box.
567
- * @extends CKEDITOR.ui.dialog.uiElement
568
- * @example
569
- * @constructor
570
- * @param {CKEDITOR.dialog} dialog
571
- * Parent dialog object.
572
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
573
- * The element definition. Accepted fields:
574
- * <ul>
575
- * <li><strong>default</strong> (Required) The default value.</li>
576
- * <li><strong>validate</strong> (Optional) The validation function.</li>
577
- * <li><strong>items</strong> (Required) An array of options. Each option
578
- * is a 1- or 2-item array of format [ 'Description', 'Value' ]. If 'Value'
579
- * is missing, then the value would be assumed to be the same as the
580
- * description.</li>
581
- * <li><strong>multiple</strong> (Optional) Set this to true if you'd like
582
- * to have a multiple-choice select box.</li>
583
- * <li><strong>size</strong> (Optional) The number of items to display in
584
- * the select box.</li>
585
- * </ul>
586
- * @param {Array} htmlList
587
- * List of HTML code to output to.
588
- */
589
- select : function( dialog, elementDefinition, htmlList )
590
- {
591
- if ( arguments.length < 3 )
592
- return;
593
-
594
- var _ = initPrivateObject.call( this, elementDefinition );
595
-
596
- if ( elementDefinition.validate )
597
- this.validate = elementDefinition.validate;
598
-
599
- _.inputId = CKEDITOR.tools.getNextId() + '_select';
600
- /** @ignore */
601
- var innerHTML = function()
602
- {
603
- var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition,
604
- {
605
- id : elementDefinition.id ? elementDefinition.id + '_select' : CKEDITOR.tools.getNextId() + '_select'
606
- }, true ),
607
- html = [],
608
- innerHTML = [],
609
- attributes = { 'id' : _.inputId, 'class' : 'cke_dialog_ui_input_select', 'aria-labelledby' : this._.labelId };
610
-
611
- // Add multiple and size attributes from element definition.
612
- if ( elementDefinition.size != undefined )
613
- attributes.size = elementDefinition.size;
614
- if ( elementDefinition.multiple != undefined )
615
- attributes.multiple = elementDefinition.multiple;
616
-
617
- cleanInnerDefinition( myDefinition );
618
- for ( var i = 0, item ; i < elementDefinition.items.length && ( item = elementDefinition.items[i] ) ; i++ )
619
- {
620
- innerHTML.push( '<option value="',
621
- CKEDITOR.tools.htmlEncode( item[1] !== undefined ? item[1] : item[0] ), '" /> ',
622
- CKEDITOR.tools.htmlEncode( item[0] ) );
623
- }
624
-
625
- if ( typeof myDefinition.controlStyle != 'undefined' )
626
- myDefinition.style = myDefinition.controlStyle;
627
-
628
- _.select = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'select', null, attributes, innerHTML.join( '' ) );
629
- return html.join( '' );
630
- };
631
-
632
- CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
633
- },
634
-
635
- /**
636
- * A file upload input.
637
- * @extends CKEDITOR.ui.dialog.labeledElement
638
- * @example
639
- * @constructor
640
- * @param {CKEDITOR.dialog} dialog
641
- * Parent dialog object.
642
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
643
- * The element definition. Accepted fields:
644
- * <ul>
645
- * <li><strong>validate</strong> (Optional) The validation function.</li>
646
- * </ul>
647
- * @param {Array} htmlList
648
- * List of HTML code to output to.
649
- */
650
- file : function( dialog, elementDefinition, htmlList )
651
- {
652
- if ( arguments.length < 3 )
653
- return;
654
-
655
- if ( elementDefinition['default'] === undefined )
656
- elementDefinition['default'] = '';
657
-
658
- var _ = CKEDITOR.tools.extend( initPrivateObject.call( this, elementDefinition ), { definition : elementDefinition, buttons : [] } );
659
-
660
- if ( elementDefinition.validate )
661
- this.validate = elementDefinition.validate;
662
-
663
- /** @ignore */
664
- var innerHTML = function()
665
- {
666
- _.frameId = CKEDITOR.tools.getNextId() + '_fileInput';
667
-
668
- // Support for custom document.domain in IE.
669
- var isCustomDomain = CKEDITOR.env.isCustomDomain();
670
-
671
- var html = [
672
- '<iframe' +
673
- ' frameborder="0"' +
674
- ' allowtransparency="0"' +
675
- ' class="cke_dialog_ui_input_file"' +
676
- ' id="', _.frameId, '"' +
677
- ' title="', elementDefinition.label, '"' +
678
- ' src="javascript:void(' ];
679
-
680
- html.push(
681
- isCustomDomain ?
682
- '(function(){' +
683
- 'document.open();' +
684
- 'document.domain=\'' + document.domain + '\';' +
685
- 'document.close();' +
686
- '})()'
687
- :
688
- '0' );
689
-
690
- html.push(
691
- ')">' +
692
- '</iframe>' );
693
-
694
- return html.join( '' );
695
- };
696
-
697
- // IE BUG: Parent container does not resize to contain the iframe automatically.
698
- dialog.on( 'load', function()
699
- {
700
- var iframe = CKEDITOR.document.getById( _.frameId ),
701
- contentDiv = iframe.getParent();
702
- contentDiv.addClass( 'cke_dialog_ui_input_file' );
703
- } );
704
-
705
- CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
706
- },
707
-
708
- /**
709
- * A button for submitting the file in a file upload input.
710
- * @extends CKEDITOR.ui.dialog.button
711
- * @example
712
- * @constructor
713
- * @param {CKEDITOR.dialog} dialog
714
- * Parent dialog object.
715
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
716
- * The element definition. Accepted fields:
717
- * <ul>
718
- * <li><strong>for</strong> (Required) The file input's page and element Id
719
- * to associate to, in a 2-item array format: [ 'page_id', 'element_id' ].
720
- * </li>
721
- * <li><strong>validate</strong> (Optional) The validation function.</li>
722
- * </ul>
723
- * @param {Array} htmlList
724
- * List of HTML code to output to.
725
- */
726
- fileButton : function( dialog, elementDefinition, htmlList )
727
- {
728
- if ( arguments.length < 3 )
729
- return;
730
-
731
- var _ = initPrivateObject.call( this, elementDefinition ),
732
- me = this;
733
-
734
- if ( elementDefinition.validate )
735
- this.validate = elementDefinition.validate;
736
-
737
- var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition );
738
- var onClick = myDefinition.onClick;
739
- myDefinition.className = ( myDefinition.className ? myDefinition.className + ' ' : '' ) + 'cke_dialog_ui_button';
740
- myDefinition.onClick = function( evt )
741
- {
742
- var target = elementDefinition[ 'for' ]; // [ pageId, elementId ]
743
- if ( !onClick || onClick.call( this, evt ) !== false )
744
- {
745
- dialog.getContentElement( target[0], target[1] ).submit();
746
- this.disable();
747
- }
748
- };
749
-
750
- dialog.on( 'load', function()
751
- {
752
- dialog.getContentElement( elementDefinition[ 'for' ][0], elementDefinition[ 'for' ][1] )._.buttons.push( me );
753
- } );
754
-
755
- CKEDITOR.ui.dialog.button.call( this, dialog, myDefinition, htmlList );
756
- },
757
-
758
- html : (function()
759
- {
760
- var myHtmlRe = /^\s*<[\w:]+\s+([^>]*)?>/,
761
- theirHtmlRe = /^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,
762
- emptyTagRe = /\/$/;
763
- /**
764
- * A dialog element made from raw HTML code.
765
- * @extends CKEDITOR.ui.dialog.uiElement
766
- * @name CKEDITOR.ui.dialog.html
767
- * @param {CKEDITOR.dialog} dialog Parent dialog object.
768
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition Element definition.
769
- * Accepted fields:
770
- * <ul>
771
- * <li><strong>html</strong> (Required) HTML code of this element.</li>
772
- * </ul>
773
- * @param {Array} htmlList List of HTML code to be added to the dialog's content area.
774
- * @example
775
- * @constructor
776
- */
777
- return function( dialog, elementDefinition, htmlList )
778
- {
779
- if ( arguments.length < 3 )
780
- return;
781
-
782
- var myHtmlList = [],
783
- myHtml,
784
- theirHtml = elementDefinition.html,
785
- myMatch, theirMatch;
786
-
787
- // If the HTML input doesn't contain any tags at the beginning, add a <span> tag around it.
788
- if ( theirHtml.charAt( 0 ) != '<' )
789
- theirHtml = '<span>' + theirHtml + '</span>';
790
-
791
- // Look for focus function in definition.
792
- var focus = elementDefinition.focus;
793
- if ( focus )
794
- {
795
- var oldFocus = this.focus;
796
- this.focus = function()
797
- {
798
- oldFocus.call( this );
799
- typeof focus == 'function' && focus.call( this );
800
- this.fire( 'focus' );
801
- };
802
- if ( elementDefinition.isFocusable )
803
- {
804
- var oldIsFocusable = this.isFocusable;
805
- this.isFocusable = oldIsFocusable;
806
- }
807
- this.keyboardFocusable = true;
808
- }
809
-
810
- CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, myHtmlList, 'span', null, null, '' );
811
-
812
- // Append the attributes created by the uiElement call to the real HTML.
813
- myHtml = myHtmlList.join( '' );
814
- myMatch = myHtml.match( myHtmlRe );
815
- theirMatch = theirHtml.match( theirHtmlRe ) || [ '', '', '' ];
816
-
817
- if ( emptyTagRe.test( theirMatch[1] ) )
818
- {
819
- theirMatch[1] = theirMatch[1].slice( 0, -1 );
820
- theirMatch[2] = '/' + theirMatch[2];
821
- }
822
-
823
- htmlList.push( [ theirMatch[1], ' ', myMatch[1] || '', theirMatch[2] ].join( '' ) );
824
- };
825
- })(),
826
-
827
- /**
828
- * Form fieldset for grouping dialog UI elements.
829
- * @constructor
830
- * @extends CKEDITOR.ui.dialog.uiElement
831
- * @param {CKEDITOR.dialog} dialog Parent dialog object.
832
- * @param {Array} childObjList
833
- * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this
834
- * container.
835
- * @param {Array} childHtmlList
836
- * Array of HTML code that correspond to the HTML output of all the
837
- * objects in childObjList.
838
- * @param {Array} htmlList
839
- * Array of HTML code that this element will output to.
840
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
841
- * The element definition. Accepted fields:
842
- * <ul>
843
- * <li><strong>label</strong> (Optional) The legend of the this fieldset.</li>
844
- * <li><strong>children</strong> (Required) An array of dialog field definitions which will be grouped inside this fieldset. </li>
845
- * </ul>
846
- */
847
- fieldset : function( dialog, childObjList, childHtmlList, htmlList, elementDefinition )
848
- {
849
- var legendLabel = elementDefinition.label;
850
- /** @ignore */
851
- var innerHTML = function()
852
- {
853
- var html = [];
854
- legendLabel && html.push( '<legend>' + legendLabel + '</legend>' );
855
- for ( var i = 0; i < childHtmlList.length; i++ )
856
- html.push( childHtmlList[ i ] );
857
- return html.join( '' );
858
- };
859
-
860
- this._ = { children : childObjList };
861
- CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, htmlList, 'fieldset', null, null, innerHTML );
862
- }
863
-
864
- }, true );
865
-
866
- CKEDITOR.ui.dialog.html.prototype = new CKEDITOR.ui.dialog.uiElement;
867
-
868
- CKEDITOR.ui.dialog.labeledElement.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement,
869
- /** @lends CKEDITOR.ui.dialog.labeledElement.prototype */
870
- {
871
- /**
872
- * Sets the label text of the element.
873
- * @param {String} label The new label text.
874
- * @returns {CKEDITOR.ui.dialog.labeledElement} The current labeled element.
875
- * @example
876
- */
877
- setLabel : function( label )
878
- {
879
- var node = CKEDITOR.document.getById( this._.labelId );
880
- if ( node.getChildCount() < 1 )
881
- ( new CKEDITOR.dom.text( label, CKEDITOR.document ) ).appendTo( node );
882
- else
883
- node.getChild( 0 ).$.nodeValue = label;
884
- return this;
885
- },
886
-
887
- /**
888
- * Retrieves the current label text of the elment.
889
- * @returns {String} The current label text.
890
- * @example
891
- */
892
- getLabel : function()
893
- {
894
- var node = CKEDITOR.document.getById( this._.labelId );
895
- if ( !node || node.getChildCount() < 1 )
896
- return '';
897
- else
898
- return node.getChild( 0 ).getText();
899
- },
900
-
901
- /**
902
- * Defines the onChange event for UI element definitions.
903
- * @field
904
- * @type Object
905
- * @example
906
- */
907
- eventProcessors : commonEventProcessors
908
- }, true );
909
-
910
- CKEDITOR.ui.dialog.button.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement,
911
- /** @lends CKEDITOR.ui.dialog.button.prototype */
912
- {
913
- /**
914
- * Simulates a click to the button.
915
- * @example
916
- * @returns {Object} Return value of the 'click' event.
917
- */
918
- click : function()
919
- {
920
- if ( !this._.disabled )
921
- return this.fire( 'click', { dialog : this._.dialog } );
922
- this.getElement().$.blur();
923
- return false;
924
- },
925
-
926
- /**
927
- * Enables the button.
928
- * @example
929
- */
930
- enable : function()
931
- {
932
- this._.disabled = false;
933
- var element = this.getElement();
934
- element && element.removeClass( 'cke_disabled' );
935
- },
936
-
937
- /**
938
- * Disables the button.
939
- * @example
940
- */
941
- disable : function()
942
- {
943
- this._.disabled = true;
944
- this.getElement().addClass( 'cke_disabled' );
945
- },
946
-
947
- isVisible : function()
948
- {
949
- return this.getElement().getFirst().isVisible();
950
- },
951
-
952
- isEnabled : function()
953
- {
954
- return !this._.disabled;
955
- },
956
-
957
- /**
958
- * Defines the onChange event and onClick for button element definitions.
959
- * @field
960
- * @type Object
961
- * @example
962
- */
963
- eventProcessors : CKEDITOR.tools.extend( {}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,
964
- {
965
- /** @ignore */
966
- onClick : function( dialog, func )
967
- {
968
- this.on( 'click', func );
969
- }
970
- }, true ),
971
-
972
- /**
973
- * Handler for the element's access key up event. Simulates a click to
974
- * the button.
975
- * @example
976
- */
977
- accessKeyUp : function()
978
- {
979
- this.click();
980
- },
981
-
982
- /**
983
- * Handler for the element's access key down event. Simulates a mouse
984
- * down to the button.
985
- * @example
986
- */
987
- accessKeyDown : function()
988
- {
989
- this.focus();
990
- },
991
-
992
- keyboardFocusable : true
993
- }, true );
994
-
995
- CKEDITOR.ui.dialog.textInput.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement,
996
- /** @lends CKEDITOR.ui.dialog.textInput.prototype */
997
- {
998
- /**
999
- * Gets the text input DOM element under this UI object.
1000
- * @example
1001
- * @returns {CKEDITOR.dom.element} The DOM element of the text input.
1002
- */
1003
- getInputElement : function()
1004
- {
1005
- return CKEDITOR.document.getById( this._.inputId );
1006
- },
1007
-
1008
- /**
1009
- * Puts focus into the text input.
1010
- * @example
1011
- */
1012
- focus : function()
1013
- {
1014
- var me = this.selectParentTab();
1015
-
1016
- // GECKO BUG: setTimeout() is needed to workaround invisible selections.
1017
- setTimeout( function()
1018
- {
1019
- var element = me.getInputElement();
1020
- element && element.$.focus();
1021
- }, 0 );
1022
- },
1023
-
1024
- /**
1025
- * Selects all the text in the text input.
1026
- * @example
1027
- */
1028
- select : function()
1029
- {
1030
- var me = this.selectParentTab();
1031
-
1032
- // GECKO BUG: setTimeout() is needed to workaround invisible selections.
1033
- setTimeout( function()
1034
- {
1035
- var e = me.getInputElement();
1036
- if ( e )
1037
- {
1038
- e.$.focus();
1039
- e.$.select();
1040
- }
1041
- }, 0 );
1042
- },
1043
-
1044
- /**
1045
- * Handler for the text input's access key up event. Makes a select()
1046
- * call to the text input.
1047
- * @example
1048
- */
1049
- accessKeyUp : function()
1050
- {
1051
- this.select();
1052
- },
1053
-
1054
- /**
1055
- * Sets the value of this text input object.
1056
- * @param {Object} value The new value.
1057
- * @returns {CKEDITOR.ui.dialog.textInput} The current UI element.
1058
- * @example
1059
- * uiElement.setValue( 'Blamo' );
1060
- */
1061
- setValue : function( value )
1062
- {
1063
- !value && ( value = '' );
1064
- return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply( this, arguments );
1065
- },
1066
-
1067
- keyboardFocusable : true
1068
- }, commonPrototype, true );
1069
-
1070
- CKEDITOR.ui.dialog.textarea.prototype = new CKEDITOR.ui.dialog.textInput();
1071
-
1072
- CKEDITOR.ui.dialog.select.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement,
1073
- /** @lends CKEDITOR.ui.dialog.select.prototype */
1074
- {
1075
- /**
1076
- * Gets the DOM element of the select box.
1077
- * @returns {CKEDITOR.dom.element} The &lt;select&gt; element of this UI
1078
- * element.
1079
- * @example
1080
- */
1081
- getInputElement : function()
1082
- {
1083
- return this._.select.getElement();
1084
- },
1085
-
1086
- /**
1087
- * Adds an option to the select box.
1088
- * @param {String} label Option label.
1089
- * @param {String} value (Optional) Option value, if not defined it'll be
1090
- * assumed to be the same as the label.
1091
- * @param {Number} index (Optional) Position of the option to be inserted
1092
- * to. If not defined the new option will be inserted to the end of list.
1093
- * @example
1094
- * @returns {CKEDITOR.ui.dialog.select} The current select UI element.
1095
- */
1096
- add : function( label, value, index )
1097
- {
1098
- var option = new CKEDITOR.dom.element( 'option', this.getDialog().getParentEditor().document ),
1099
- selectElement = this.getInputElement().$;
1100
- option.$.text = label;
1101
- option.$.value = ( value === undefined || value === null ) ? label : value;
1102
- if ( index === undefined || index === null )
1103
- {
1104
- if ( CKEDITOR.env.ie )
1105
- selectElement.add( option.$ );
1106
- else
1107
- selectElement.add( option.$, null );
1108
- }
1109
- else
1110
- selectElement.add( option.$, index );
1111
- return this;
1112
- },
1113
-
1114
- /**
1115
- * Removes an option from the selection list.
1116
- * @param {Number} index Index of the option to be removed.
1117
- * @example
1118
- * @returns {CKEDITOR.ui.dialog.select} The current select UI element.
1119
- */
1120
- remove : function( index )
1121
- {
1122
- var selectElement = this.getInputElement().$;
1123
- selectElement.remove( index );
1124
- return this;
1125
- },
1126
-
1127
- /**
1128
- * Clears all options out of the selection list.
1129
- * @returns {CKEDITOR.ui.dialog.select} The current select UI element.
1130
- */
1131
- clear : function()
1132
- {
1133
- var selectElement = this.getInputElement().$;
1134
- while ( selectElement.length > 0 )
1135
- selectElement.remove( 0 );
1136
- return this;
1137
- },
1138
-
1139
- keyboardFocusable : true
1140
- }, commonPrototype, true );
1141
-
1142
- CKEDITOR.ui.dialog.checkbox.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement,
1143
- /** @lends CKEDITOR.ui.dialog.checkbox.prototype */
1144
- {
1145
- /**
1146
- * Gets the checkbox DOM element.
1147
- * @example
1148
- * @returns {CKEDITOR.dom.element} The DOM element of the checkbox.
1149
- */
1150
- getInputElement : function()
1151
- {
1152
- return this._.checkbox.getElement();
1153
- },
1154
-
1155
- /**
1156
- * Sets the state of the checkbox.
1157
- * @example
1158
- * @param {Boolean} true to tick the checkbox, false to untick it.
1159
- * @param {Boolean} noChangeEvent Internal commit, to supress 'change' event on this element.
1160
- */
1161
- setValue : function( checked, noChangeEvent )
1162
- {
1163
- this.getInputElement().$.checked = checked;
1164
- !noChangeEvent && this.fire( 'change', { value : checked } );
1165
- },
1166
-
1167
- /**
1168
- * Gets the state of the checkbox.
1169
- * @example
1170
- * @returns {Boolean} true means the checkbox is ticked, false means it's not ticked.
1171
- */
1172
- getValue : function()
1173
- {
1174
- return this.getInputElement().$.checked;
1175
- },
1176
-
1177
- /**
1178
- * Handler for the access key up event. Toggles the checkbox.
1179
- * @example
1180
- */
1181
- accessKeyUp : function()
1182
- {
1183
- this.setValue( !this.getValue() );
1184
- },
1185
-
1186
- /**
1187
- * Defines the onChange event for UI element definitions.
1188
- * @field
1189
- * @type Object
1190
- * @example
1191
- */
1192
- eventProcessors :
1193
- {
1194
- onChange : function( dialog, func )
1195
- {
1196
- if ( !CKEDITOR.env.ie )
1197
- return commonEventProcessors.onChange.apply( this, arguments );
1198
- else
1199
- {
1200
- dialog.on( 'load', function()
1201
- {
1202
- var element = this._.checkbox.getElement();
1203
- element.on( 'propertychange', function( evt )
1204
- {
1205
- evt = evt.data.$;
1206
- if ( evt.propertyName == 'checked' )
1207
- this.fire( 'change', { value : element.$.checked } );
1208
- }, this );
1209
- }, this );
1210
- this.on( 'change', func );
1211
- }
1212
- return null;
1213
- }
1214
- },
1215
-
1216
- keyboardFocusable : true
1217
- }, commonPrototype, true );
1218
-
1219
- CKEDITOR.ui.dialog.radio.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement,
1220
- /** @lends CKEDITOR.ui.dialog.radio.prototype */
1221
- {
1222
- /**
1223
- * Checks one of the radio buttons in this button group.
1224
- * @example
1225
- * @param {String} value The value of the button to be chcked.
1226
- * @param {Boolean} noChangeEvent Internal commit, to supress 'change' event on this element.
1227
- */
1228
- setValue : function( value, noChangeEvent )
1229
- {
1230
- var children = this._.children,
1231
- item;
1232
- for ( var i = 0 ; ( i < children.length ) && ( item = children[i] ) ; i++ )
1233
- item.getElement().$.checked = ( item.getValue() == value );
1234
- !noChangeEvent && this.fire( 'change', { value : value } );
1235
- },
1236
-
1237
- /**
1238
- * Gets the value of the currently checked radio button.
1239
- * @example
1240
- * @returns {String} The currently checked button's value.
1241
- */
1242
- getValue : function()
1243
- {
1244
- var children = this._.children;
1245
- for ( var i = 0 ; i < children.length ; i++ )
1246
- {
1247
- if ( children[i].getElement().$.checked )
1248
- return children[i].getValue();
1249
- }
1250
- return null;
1251
- },
1252
-
1253
- /**
1254
- * Handler for the access key up event. Focuses the currently
1255
- * selected radio button, or the first radio button if none is
1256
- * selected.
1257
- * @example
1258
- */
1259
- accessKeyUp : function()
1260
- {
1261
- var children = this._.children, i;
1262
- for ( i = 0 ; i < children.length ; i++ )
1263
- {
1264
- if ( children[i].getElement().$.checked )
1265
- {
1266
- children[i].getElement().focus();
1267
- return;
1268
- }
1269
- }
1270
- children[0].getElement().focus();
1271
- },
1272
-
1273
- /**
1274
- * Defines the onChange event for UI element definitions.
1275
- * @field
1276
- * @type Object
1277
- * @example
1278
- */
1279
- eventProcessors :
1280
- {
1281
- onChange : function( dialog, func )
1282
- {
1283
- if ( !CKEDITOR.env.ie )
1284
- return commonEventProcessors.onChange.apply( this, arguments );
1285
- else
1286
- {
1287
- dialog.on( 'load', function()
1288
- {
1289
- var children = this._.children, me = this;
1290
- for ( var i = 0 ; i < children.length ; i++ )
1291
- {
1292
- var element = children[i].getElement();
1293
- element.on( 'propertychange', function( evt )
1294
- {
1295
- evt = evt.data.$;
1296
- if ( evt.propertyName == 'checked' && this.$.checked )
1297
- me.fire( 'change', { value : this.getAttribute( 'value' ) } );
1298
- } );
1299
- }
1300
- }, this );
1301
- this.on( 'change', func );
1302
- }
1303
- return null;
1304
- }
1305
- },
1306
-
1307
- keyboardFocusable : true
1308
- }, commonPrototype, true );
1309
-
1310
- CKEDITOR.ui.dialog.file.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement,
1311
- commonPrototype,
1312
- /** @lends CKEDITOR.ui.dialog.file.prototype */
1313
- {
1314
- /**
1315
- * Gets the &lt;input&gt; element of this file input.
1316
- * @returns {CKEDITOR.dom.element} The file input element.
1317
- * @example
1318
- */
1319
- getInputElement : function()
1320
- {
1321
- var frameDocument = CKEDITOR.document.getById( this._.frameId ).getFrameDocument();
1322
- return frameDocument.$.forms.length > 0 ?
1323
- new CKEDITOR.dom.element( frameDocument.$.forms[0].elements[0] ) :
1324
- this.getElement();
1325
- },
1326
-
1327
- /**
1328
- * Uploads the file in the file input.
1329
- * @returns {CKEDITOR.ui.dialog.file} This object.
1330
- * @example
1331
- */
1332
- submit : function()
1333
- {
1334
- this.getInputElement().getParent().$.submit();
1335
- return this;
1336
- },
1337
-
1338
- /**
1339
- * Get the action assigned to the form.
1340
- * @returns {String} The value of the action.
1341
- * @example
1342
- */
1343
- getAction : function()
1344
- {
1345
- return this.getInputElement().getParent().$.action;
1346
- },
1347
-
1348
- /**
1349
- * The events must be applied on the inner input element, and
1350
- * that must be done when the iframe & form has been loaded
1351
- */
1352
- registerEvents : function( definition )
1353
- {
1354
- var regex = /^on([A-Z]\w+)/,
1355
- match;
1356
-
1357
- var registerDomEvent = function( uiElement, dialog, eventName, func )
1358
- {
1359
- uiElement.on( 'formLoaded', function()
1360
- {
1361
- uiElement.getInputElement().on( eventName, func, uiElement );
1362
- });
1363
- };
1364
-
1365
- for ( var i in definition )
1366
- {
1367
- if ( !( match = i.match( regex ) ) )
1368
- continue;
1369
-
1370
- if ( this.eventProcessors[i] )
1371
- this.eventProcessors[i].call( this, this._.dialog, definition[i] );
1372
- else
1373
- registerDomEvent( this, this._.dialog, match[1].toLowerCase(), definition[i] );
1374
- }
1375
-
1376
- return this;
1377
- },
1378
-
1379
- /**
1380
- * Redraws the file input and resets the file path in the file input.
1381
- * The redraw logic is necessary because non-IE browsers tend to clear
1382
- * the &lt;iframe&gt; containing the file input after closing the dialog.
1383
- * @example
1384
- */
1385
- reset : function()
1386
- {
1387
- var _ = this._,
1388
- frameElement = CKEDITOR.document.getById( _.frameId ),
1389
- frameDocument = frameElement.getFrameDocument(),
1390
- elementDefinition = _.definition,
1391
- buttons = _.buttons,
1392
- callNumber = this.formLoadedNumber,
1393
- unloadNumber = this.formUnloadNumber,
1394
- langDir = _.dialog._.editor.lang.dir,
1395
- langCode = _.dialog._.editor.langCode;
1396
-
1397
- // The callback function for the iframe, but we must call tools.addFunction only once
1398
- // so we store the function number in this.formLoadedNumber
1399
- if ( !callNumber )
1400
- {
1401
- callNumber = this.formLoadedNumber = CKEDITOR.tools.addFunction(
1402
- function()
1403
- {
1404
- // Now we can apply the events to the input type=file
1405
- this.fire( 'formLoaded' ) ;
1406
- }, this ) ;
1407
-
1408
- // Remove listeners attached to the content of the iframe (the file input)
1409
- unloadNumber = this.formUnloadNumber = CKEDITOR.tools.addFunction(
1410
- function()
1411
- {
1412
- this.getInputElement().clearCustomData();
1413
- }, this ) ;
1414
-
1415
- this.getDialog()._.editor.on( 'destroy', function()
1416
- {
1417
- CKEDITOR.tools.removeFunction( callNumber );
1418
- CKEDITOR.tools.removeFunction( unloadNumber );
1419
- } );
1420
- }
1421
-
1422
- function generateFormField()
1423
- {
1424
- frameDocument.$.open();
1425
-
1426
- // Support for custom document.domain in IE.
1427
- if ( CKEDITOR.env.isCustomDomain() )
1428
- frameDocument.$.domain = document.domain;
1429
-
1430
- var size = '';
1431
- if ( elementDefinition.size )
1432
- size = elementDefinition.size - ( CKEDITOR.env.ie ? 7 : 0 ); // "Browse" button is bigger in IE.
1433
-
1434
- frameDocument.$.write( [ '<html dir="' + langDir + '" lang="' + langCode + '"><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">',
1435
- '<form enctype="multipart/form-data" method="POST" dir="' + langDir + '" lang="' + langCode + '" action="',
1436
- CKEDITOR.tools.htmlEncode( elementDefinition.action ),
1437
- '">',
1438
- '<input type="file" name="',
1439
- CKEDITOR.tools.htmlEncode( elementDefinition.id || 'cke_upload' ),
1440
- '" size="',
1441
- CKEDITOR.tools.htmlEncode( size > 0 ? size : "" ),
1442
- '" />',
1443
- '</form>',
1444
- '</body></html>',
1445
- '<script>window.parent.CKEDITOR.tools.callFunction(' + callNumber + ');',
1446
- 'window.onbeforeunload = function() {window.parent.CKEDITOR.tools.callFunction(' + unloadNumber + ')}</script>' ].join( '' ) );
1447
-
1448
- frameDocument.$.close();
1449
-
1450
- for ( var i = 0 ; i < buttons.length ; i++ )
1451
- buttons[i].enable();
1452
- }
1453
-
1454
- // #3465: Wait for the browser to finish rendering the dialog first.
1455
- if ( CKEDITOR.env.gecko )
1456
- setTimeout( generateFormField, 500 );
1457
- else
1458
- generateFormField();
1459
- },
1460
-
1461
- getValue : function()
1462
- {
1463
- return this.getInputElement().$.value;
1464
- },
1465
-
1466
- /***
1467
- * The default value of input type="file" is an empty string, but during initialization
1468
- * of this UI element, the iframe still isn't ready so it can't be read from that object
1469
- * Setting it manually prevents later issues about the current value ("") being different
1470
- * of the initial value (undefined as it asked for .value of a div)
1471
- */
1472
- setInitValue : function()
1473
- {
1474
- this._.initValue = '';
1475
- },
1476
-
1477
- /**
1478
- * Defines the onChange event for UI element definitions.
1479
- * @field
1480
- * @type Object
1481
- * @example
1482
- */
1483
- eventProcessors :
1484
- {
1485
- onChange : function( dialog, func )
1486
- {
1487
- // If this method is called several times (I'm not sure about how this can happen but the default
1488
- // onChange processor includes this protection)
1489
- // In order to reapply to the new element, the property is deleted at the beggining of the registerEvents method
1490
- if ( !this._.domOnChangeRegistered )
1491
- {
1492
- // By listening for the formLoaded event, this handler will get reapplied when a new
1493
- // form is created
1494
- this.on( 'formLoaded', function()
1495
- {
1496
- this.getInputElement().on( 'change', function(){ this.fire( 'change', { value : this.getValue() } ); }, this );
1497
- }, this );
1498
- this._.domOnChangeRegistered = true;
1499
- }
1500
-
1501
- this.on( 'change', func );
1502
- }
1503
- },
1504
-
1505
- keyboardFocusable : true
1506
- }, true );
1507
-
1508
- CKEDITOR.ui.dialog.fileButton.prototype = new CKEDITOR.ui.dialog.button;
1509
-
1510
- CKEDITOR.ui.dialog.fieldset.prototype = CKEDITOR.tools.clone( CKEDITOR.ui.dialog.hbox.prototype );
1511
-
1512
- CKEDITOR.dialog.addUIElement( 'text', textBuilder );
1513
- CKEDITOR.dialog.addUIElement( 'password', textBuilder );
1514
- CKEDITOR.dialog.addUIElement( 'textarea', commonBuilder );
1515
- CKEDITOR.dialog.addUIElement( 'checkbox', commonBuilder );
1516
- CKEDITOR.dialog.addUIElement( 'radio', commonBuilder );
1517
- CKEDITOR.dialog.addUIElement( 'button', commonBuilder );
1518
- CKEDITOR.dialog.addUIElement( 'select', commonBuilder );
1519
- CKEDITOR.dialog.addUIElement( 'file', commonBuilder );
1520
- CKEDITOR.dialog.addUIElement( 'fileButton', commonBuilder );
1521
- CKEDITOR.dialog.addUIElement( 'html', commonBuilder );
1522
- CKEDITOR.dialog.addUIElement( 'fieldset', containerBuilder );
1523
- })();