gnuside-aloha-rails 0.23.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (826) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +18 -0
  3. data/README.md +48 -0
  4. data/Rakefile +69 -0
  5. data/app/assets/javascripts/aloha.js +3 -0
  6. data/app/assets/javascripts/aloha/preinit.js.erb +1 -0
  7. data/lib/aloha-rails.rb +1 -0
  8. data/lib/aloha/rails.rb +2 -0
  9. data/lib/aloha/rails/engine.rb +9 -0
  10. data/lib/aloha/rails/version.rb +7 -0
  11. data/lib/tasks/aloha-assets.rake +9 -0
  12. data/vendor/assets/javascripts/aloha/css/aloha.scss +31 -0
  13. data/vendor/assets/javascripts/aloha/img/arrow-down.png +0 -0
  14. data/vendor/assets/javascripts/aloha/img/arrow-left.png +0 -0
  15. data/vendor/assets/javascripts/aloha/img/arrow.png +0 -0
  16. data/vendor/assets/javascripts/aloha/img/base-multi.png +0 -0
  17. data/vendor/assets/javascripts/aloha/img/base.png +0 -0
  18. data/vendor/assets/javascripts/aloha/img/bg.png +0 -0
  19. data/vendor/assets/javascripts/aloha/img/breadcrumb-divider.png +0 -0
  20. data/vendor/assets/javascripts/aloha/img/gentics-logo.png +0 -0
  21. data/vendor/assets/javascripts/aloha/img/grabhandle.png +0 -0
  22. data/vendor/assets/javascripts/aloha/img/maximize.png +0 -0
  23. data/vendor/assets/javascripts/aloha/img/multisplit-base.jpg +0 -0
  24. data/vendor/assets/javascripts/aloha/img/multisplit-close.gif +0 -0
  25. data/vendor/assets/javascripts/aloha/img/multisplit-open.gif +0 -0
  26. data/vendor/assets/javascripts/aloha/img/pin.png +0 -0
  27. data/vendor/assets/javascripts/aloha/img/removeformat.png +0 -0
  28. data/vendor/assets/javascripts/aloha/img/text_indent.png +0 -0
  29. data/vendor/assets/javascripts/aloha/img/text_indent_remove.png +0 -0
  30. data/vendor/assets/javascripts/aloha/lib/aloha-jquery-noconflict.js +14 -0
  31. data/vendor/assets/javascripts/aloha/lib/aloha.js +595 -0
  32. data/vendor/assets/javascripts/aloha/lib/aloha/block-jump.js +153 -0
  33. data/vendor/assets/javascripts/aloha/lib/aloha/command.js +287 -0
  34. data/vendor/assets/javascripts/aloha/lib/aloha/console.js +347 -0
  35. data/vendor/assets/javascripts/aloha/lib/aloha/contenthandlermanager.js +104 -0
  36. data/vendor/assets/javascripts/aloha/lib/aloha/copypaste.js +108 -0
  37. data/vendor/assets/javascripts/aloha/lib/aloha/core.js +623 -0
  38. data/vendor/assets/javascripts/aloha/lib/aloha/ecma5shims.js +326 -0
  39. data/vendor/assets/javascripts/aloha/lib/aloha/editable.js +1042 -0
  40. data/vendor/assets/javascripts/aloha/lib/aloha/engine.js +8646 -0
  41. data/vendor/assets/javascripts/aloha/lib/aloha/ephemera.js +492 -0
  42. data/vendor/assets/javascripts/aloha/lib/aloha/ierange-m2.js +29 -0
  43. data/vendor/assets/javascripts/aloha/lib/aloha/jquery.aloha.js +542 -0
  44. data/vendor/assets/javascripts/aloha/lib/aloha/markup.js +1276 -0
  45. data/vendor/assets/javascripts/aloha/lib/aloha/nls/ca/i18n.js +11 -0
  46. data/vendor/assets/javascripts/aloha/lib/aloha/nls/de/i18n.js +11 -0
  47. data/vendor/assets/javascripts/aloha/lib/aloha/nls/i18n.js +20 -0
  48. data/vendor/assets/javascripts/aloha/lib/aloha/nls/mk/i18n.js +11 -0
  49. data/vendor/assets/javascripts/aloha/lib/aloha/nls/pt-br/i18n.js +11 -0
  50. data/vendor/assets/javascripts/aloha/lib/aloha/nls/ru/i18n.js +11 -0
  51. data/vendor/assets/javascripts/aloha/lib/aloha/nls/uk/i18n.js +11 -0
  52. data/vendor/assets/javascripts/aloha/lib/aloha/nls/zh-hans/i18n.js +11 -0
  53. data/vendor/assets/javascripts/aloha/lib/aloha/observable.js +113 -0
  54. data/vendor/assets/javascripts/aloha/lib/aloha/plugin.js +281 -0
  55. data/vendor/assets/javascripts/aloha/lib/aloha/pluginmanager.js +203 -0
  56. data/vendor/assets/javascripts/aloha/lib/aloha/rangy-core.js +30 -0
  57. data/vendor/assets/javascripts/aloha/lib/aloha/registry.js +137 -0
  58. data/vendor/assets/javascripts/aloha/lib/aloha/repository.js +255 -0
  59. data/vendor/assets/javascripts/aloha/lib/aloha/repositorymanager.js +742 -0
  60. data/vendor/assets/javascripts/aloha/lib/aloha/repositoryobjects.js +162 -0
  61. data/vendor/assets/javascripts/aloha/lib/aloha/selection.js +2402 -0
  62. data/vendor/assets/javascripts/aloha/lib/aloha/sidebar.js +1045 -0
  63. data/vendor/assets/javascripts/aloha/lib/aloha/state-override.js +147 -0
  64. data/vendor/assets/javascripts/aloha/lib/css.js +455 -0
  65. data/vendor/assets/javascripts/aloha/lib/i18n.js +192 -0
  66. data/vendor/assets/javascripts/aloha/lib/require.js +2053 -0
  67. data/vendor/assets/javascripts/aloha/lib/text.js +288 -0
  68. data/vendor/assets/javascripts/aloha/lib/util/arrays.js +287 -0
  69. data/vendor/assets/javascripts/aloha/lib/util/boundary-markers.js +86 -0
  70. data/vendor/assets/javascripts/aloha/lib/util/browser.js +32 -0
  71. data/vendor/assets/javascripts/aloha/lib/util/class.js +78 -0
  72. data/vendor/assets/javascripts/aloha/lib/util/dom.js +1888 -0
  73. data/vendor/assets/javascripts/aloha/lib/util/dom2.js +908 -0
  74. data/vendor/assets/javascripts/aloha/lib/util/functions.js +62 -0
  75. data/vendor/assets/javascripts/aloha/lib/util/html.js +311 -0
  76. data/vendor/assets/javascripts/aloha/lib/util/json2.js +464 -0
  77. data/vendor/assets/javascripts/aloha/lib/util/keys.js +65 -0
  78. data/vendor/assets/javascripts/aloha/lib/util/lang.js +89 -0
  79. data/vendor/assets/javascripts/aloha/lib/util/maps.js +130 -0
  80. data/vendor/assets/javascripts/aloha/lib/util/misc.js +51 -0
  81. data/vendor/assets/javascripts/aloha/lib/util/position.js +176 -0
  82. data/vendor/assets/javascripts/aloha/lib/util/range-context.js +776 -0
  83. data/vendor/assets/javascripts/aloha/lib/util/range.js +917 -0
  84. data/vendor/assets/javascripts/aloha/lib/util/strings.js +122 -0
  85. data/vendor/assets/javascripts/aloha/lib/util/trees.js +336 -0
  86. data/vendor/assets/javascripts/aloha/lib/vendor/3rdparty.txt +70 -0
  87. data/vendor/assets/javascripts/aloha/lib/vendor/amplify.store.js +298 -0
  88. data/vendor/assets/javascripts/aloha/lib/vendor/class.js +76 -0
  89. data/vendor/assets/javascripts/aloha/lib/vendor/grid.locale.de.js +138 -0
  90. data/vendor/assets/javascripts/aloha/lib/vendor/grid.locale.en.js +133 -0
  91. data/vendor/assets/javascripts/aloha/lib/vendor/ierange-m2.js +508 -0
  92. data/vendor/assets/javascripts/aloha/lib/vendor/jquery-1.7.2.js +9421 -0
  93. data/vendor/assets/javascripts/aloha/lib/vendor/jquery-ui-1.9.0.custom-aloha.js +14711 -0
  94. data/vendor/assets/javascripts/aloha/lib/vendor/jquery.jqgrid.js +474 -0
  95. data/vendor/assets/javascripts/aloha/lib/vendor/jquery.jstree.js +4549 -0
  96. data/vendor/assets/javascripts/aloha/lib/vendor/jquery.layout-1.3.0-rc30.7.js +5924 -0
  97. data/vendor/assets/javascripts/aloha/lib/vendor/pubsub/js/pubsub-unminified.js +187 -0
  98. data/vendor/assets/javascripts/aloha/lib/vendor/pubsub/js/pubsub.js +2 -0
  99. data/vendor/assets/javascripts/aloha/lib/vendor/rangy-core.js +3295 -0
  100. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/css/jstree.css +88 -0
  101. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/css/repository-browser.css +744 -0
  102. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/arrow-000-medium.png +0 -0
  103. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/arrow-180.png +0 -0
  104. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/arrow-315-medium.png +0 -0
  105. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/arrow-stop-180.png +0 -0
  106. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/arrow-stop.png +0 -0
  107. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/arrow.png +0 -0
  108. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/control-stop-square-small.png +0 -0
  109. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/folder-horizontal-open.png +0 -0
  110. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/folder-open.png +0 -0
  111. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/magnifier-left.png +0 -0
  112. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/page.png +0 -0
  113. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/picture.png +0 -0
  114. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/sort-alphabet-descending.png +0 -0
  115. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/sort-alphabet.png +0 -0
  116. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/img/throbber.gif +0 -0
  117. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/js/repository-browser-unminified.js +1450 -0
  118. data/vendor/assets/javascripts/aloha/lib/vendor/repository-browser/js/repository-browser.js +32 -0
  119. data/vendor/assets/javascripts/aloha/lib/vendor/sanitize.js +278 -0
  120. data/vendor/assets/javascripts/aloha/plugins/common/abbr/css/abbr.css +1 -0
  121. data/vendor/assets/javascripts/aloha/plugins/common/abbr/img/remabbr.png +0 -0
  122. data/vendor/assets/javascripts/aloha/plugins/common/abbr/lib/abbr-plugin.js +304 -0
  123. data/vendor/assets/javascripts/aloha/plugins/common/abbr/nls/ca/i18n.js +6 -0
  124. data/vendor/assets/javascripts/aloha/plugins/common/abbr/nls/de/i18n.js +6 -0
  125. data/vendor/assets/javascripts/aloha/plugins/common/abbr/nls/i18n.js +15 -0
  126. data/vendor/assets/javascripts/aloha/plugins/common/abbr/nls/mk/i18n.js +6 -0
  127. data/vendor/assets/javascripts/aloha/plugins/common/abbr/nls/pt-br/i18n.js +6 -0
  128. data/vendor/assets/javascripts/aloha/plugins/common/abbr/nls/ru/i18n.js +6 -0
  129. data/vendor/assets/javascripts/aloha/plugins/common/abbr/nls/uk/i18n.js +6 -0
  130. data/vendor/assets/javascripts/aloha/plugins/common/abbr/nls/zh-hans/i18n.js +6 -0
  131. data/vendor/assets/javascripts/aloha/plugins/common/abbr/package.json +1 -0
  132. data/vendor/assets/javascripts/aloha/plugins/common/align/LICENSE +166 -0
  133. data/vendor/assets/javascripts/aloha/plugins/common/align/README +12 -0
  134. data/vendor/assets/javascripts/aloha/plugins/common/align/css/align.css +31 -0
  135. data/vendor/assets/javascripts/aloha/plugins/common/align/img/align.png +0 -0
  136. data/vendor/assets/javascripts/aloha/plugins/common/align/lib/align-plugin.js +465 -0
  137. data/vendor/assets/javascripts/aloha/plugins/common/align/nls/ca/i18n.js +6 -0
  138. data/vendor/assets/javascripts/aloha/plugins/common/align/nls/de/i18n.js +9 -0
  139. data/vendor/assets/javascripts/aloha/plugins/common/align/nls/i18n.js +18 -0
  140. data/vendor/assets/javascripts/aloha/plugins/common/align/nls/mk/i18n.js +6 -0
  141. data/vendor/assets/javascripts/aloha/plugins/common/align/nls/pt-br/i18n.js +6 -0
  142. data/vendor/assets/javascripts/aloha/plugins/common/align/nls/ru/i18n.js +6 -0
  143. data/vendor/assets/javascripts/aloha/plugins/common/align/nls/uk/i18n.js +6 -0
  144. data/vendor/assets/javascripts/aloha/plugins/common/align/nls/zh-hans/i18n.js +6 -0
  145. data/vendor/assets/javascripts/aloha/plugins/common/align/package.json +2 -0
  146. data/vendor/assets/javascripts/aloha/plugins/common/block/README +0 -0
  147. data/vendor/assets/javascripts/aloha/plugins/common/block/css/block.css +110 -0
  148. data/vendor/assets/javascripts/aloha/plugins/common/block/img/toolbar-draghandle.gif +0 -0
  149. data/vendor/assets/javascripts/aloha/plugins/common/block/lib/block-plugin.js +347 -0
  150. data/vendor/assets/javascripts/aloha/plugins/common/block/lib/block.js +1277 -0
  151. data/vendor/assets/javascripts/aloha/plugins/common/block/lib/blockcontenthandler.js +118 -0
  152. data/vendor/assets/javascripts/aloha/plugins/common/block/lib/blockmanager.js +621 -0
  153. data/vendor/assets/javascripts/aloha/plugins/common/block/lib/editor.js +331 -0
  154. data/vendor/assets/javascripts/aloha/plugins/common/block/lib/editormanager.js +55 -0
  155. data/vendor/assets/javascripts/aloha/plugins/common/block/lib/sidebarattributeeditor.js +126 -0
  156. data/vendor/assets/javascripts/aloha/plugins/common/block/nls/ca/i18n.js +3 -0
  157. data/vendor/assets/javascripts/aloha/plugins/common/block/nls/de/i18n.js +3 -0
  158. data/vendor/assets/javascripts/aloha/plugins/common/block/nls/i18n.js +12 -0
  159. data/vendor/assets/javascripts/aloha/plugins/common/block/nls/mk/i18n.js +3 -0
  160. data/vendor/assets/javascripts/aloha/plugins/common/block/nls/pt-br/i18n.js +3 -0
  161. data/vendor/assets/javascripts/aloha/plugins/common/block/nls/ru/i18n.js +3 -0
  162. data/vendor/assets/javascripts/aloha/plugins/common/block/nls/uk/i18n.js +3 -0
  163. data/vendor/assets/javascripts/aloha/plugins/common/block/nls/zh-hans/i18n.js +3 -0
  164. data/vendor/assets/javascripts/aloha/plugins/common/block/package.json +11 -0
  165. data/vendor/assets/javascripts/aloha/plugins/common/characterpicker/css/characterpicker.css +44 -0
  166. data/vendor/assets/javascripts/aloha/plugins/common/characterpicker/img/icon.png +0 -0
  167. data/vendor/assets/javascripts/aloha/plugins/common/characterpicker/lib/characterpicker-plugin.js +466 -0
  168. data/vendor/assets/javascripts/aloha/plugins/common/characterpicker/nls/ca/i18n.js +3 -0
  169. data/vendor/assets/javascripts/aloha/plugins/common/characterpicker/nls/de/i18n.js +3 -0
  170. data/vendor/assets/javascripts/aloha/plugins/common/characterpicker/nls/i18n.js +12 -0
  171. data/vendor/assets/javascripts/aloha/plugins/common/characterpicker/nls/mk/i18n.js +3 -0
  172. data/vendor/assets/javascripts/aloha/plugins/common/characterpicker/nls/pt-br/i18n.js +3 -0
  173. data/vendor/assets/javascripts/aloha/plugins/common/characterpicker/nls/ru/i18n.js +3 -0
  174. data/vendor/assets/javascripts/aloha/plugins/common/characterpicker/nls/uk/i18n.js +3 -0
  175. data/vendor/assets/javascripts/aloha/plugins/common/characterpicker/nls/zh-hans/i18n.js +3 -0
  176. data/vendor/assets/javascripts/aloha/plugins/common/commands/css/abbr.css +0 -0
  177. data/vendor/assets/javascripts/aloha/plugins/common/commands/lib/commands-plugin.js +33 -0
  178. data/vendor/assets/javascripts/aloha/plugins/common/commands/lib/inserthtml.js +126 -0
  179. data/vendor/assets/javascripts/aloha/plugins/common/commands/package.json +1 -0
  180. data/vendor/assets/javascripts/aloha/plugins/common/contenthandler/README.md +0 -0
  181. data/vendor/assets/javascripts/aloha/plugins/common/contenthandler/lib/blockelementcontenthandler.js +144 -0
  182. data/vendor/assets/javascripts/aloha/plugins/common/contenthandler/lib/contenthandler-plugin.js +65 -0
  183. data/vendor/assets/javascripts/aloha/plugins/common/contenthandler/lib/contenthandler-utils.js +58 -0
  184. data/vendor/assets/javascripts/aloha/plugins/common/contenthandler/lib/genericcontenthandler.js +359 -0
  185. data/vendor/assets/javascripts/aloha/plugins/common/contenthandler/lib/oembedcontenthandler.js +461 -0
  186. data/vendor/assets/javascripts/aloha/plugins/common/contenthandler/lib/sanitizecontenthandler.js +186 -0
  187. data/vendor/assets/javascripts/aloha/plugins/common/contenthandler/lib/wordcontenthandler.js +461 -0
  188. data/vendor/assets/javascripts/aloha/plugins/common/contenthandler/package.json +1 -0
  189. data/vendor/assets/javascripts/aloha/plugins/common/dom-to-xhtml/lib/dom-to-xhtml-plugin.js +74 -0
  190. data/vendor/assets/javascripts/aloha/plugins/common/dom-to-xhtml/lib/dom-to-xhtml.js +415 -0
  191. data/vendor/assets/javascripts/aloha/plugins/common/format/img/em.png +0 -0
  192. data/vendor/assets/javascripts/aloha/plugins/common/format/img/strong.png +0 -0
  193. data/vendor/assets/javascripts/aloha/plugins/common/format/lib/format-plugin.js +594 -0
  194. data/vendor/assets/javascripts/aloha/plugins/common/format/nls/ca/i18n.js +52 -0
  195. data/vendor/assets/javascripts/aloha/plugins/common/format/nls/de/i18n.js +52 -0
  196. data/vendor/assets/javascripts/aloha/plugins/common/format/nls/i18n.js +61 -0
  197. data/vendor/assets/javascripts/aloha/plugins/common/format/nls/mk/i18n.js +52 -0
  198. data/vendor/assets/javascripts/aloha/plugins/common/format/nls/pt-br/i18n.js +52 -0
  199. data/vendor/assets/javascripts/aloha/plugins/common/format/nls/ru/i18n.js +52 -0
  200. data/vendor/assets/javascripts/aloha/plugins/common/format/nls/uk/i18n.js +52 -0
  201. data/vendor/assets/javascripts/aloha/plugins/common/format/nls/zh-hans/i18n.js +52 -0
  202. data/vendor/assets/javascripts/aloha/plugins/common/highlighteditables/css/highlighteditables.css +14 -0
  203. data/vendor/assets/javascripts/aloha/plugins/common/highlighteditables/lib/highlighteditables-plugin.js +100 -0
  204. data/vendor/assets/javascripts/aloha/plugins/common/highlighteditables/package.json +1 -0
  205. data/vendor/assets/javascripts/aloha/plugins/common/horizontalruler/css/horizontalruler.css +3 -0
  206. data/vendor/assets/javascripts/aloha/plugins/common/horizontalruler/img/icon.png +0 -0
  207. data/vendor/assets/javascripts/aloha/plugins/common/horizontalruler/lib/horizontalruler-plugin.js +95 -0
  208. data/vendor/assets/javascripts/aloha/plugins/common/horizontalruler/nls/ca/i18n.js +3 -0
  209. data/vendor/assets/javascripts/aloha/plugins/common/horizontalruler/nls/de/i18n.js +3 -0
  210. data/vendor/assets/javascripts/aloha/plugins/common/horizontalruler/nls/i18n.js +12 -0
  211. data/vendor/assets/javascripts/aloha/plugins/common/horizontalruler/nls/mk/i18n.js +3 -0
  212. data/vendor/assets/javascripts/aloha/plugins/common/horizontalruler/nls/pt-br/i18n.js +3 -0
  213. data/vendor/assets/javascripts/aloha/plugins/common/horizontalruler/nls/ru/i18n.js +3 -0
  214. data/vendor/assets/javascripts/aloha/plugins/common/horizontalruler/nls/uk/i18n.js +3 -0
  215. data/vendor/assets/javascripts/aloha/plugins/common/horizontalruler/nls/zh-hans/i18n.js +3 -0
  216. data/vendor/assets/javascripts/aloha/plugins/common/image/README.md +66 -0
  217. data/vendor/assets/javascripts/aloha/plugins/common/image/css/image.css +133 -0
  218. data/vendor/assets/javascripts/aloha/plugins/common/image/img/blank.jpg +0 -0
  219. data/vendor/assets/javascripts/aloha/plugins/common/image/img/crop-buttons.gif +0 -0
  220. data/vendor/assets/javascripts/aloha/plugins/common/image/img/cropnresize.png +0 -0
  221. data/vendor/assets/javascripts/aloha/plugins/common/image/img/handle-sw.png +0 -0
  222. data/vendor/assets/javascripts/aloha/plugins/common/image/img/image-align-left.png +0 -0
  223. data/vendor/assets/javascripts/aloha/plugins/common/image/img/image-align-none.png +0 -0
  224. data/vendor/assets/javascripts/aloha/plugins/common/image/img/image-align-right.png +0 -0
  225. data/vendor/assets/javascripts/aloha/plugins/common/image/img/image-border.png +0 -0
  226. data/vendor/assets/javascripts/aloha/plugins/common/image/img/image-title.png +0 -0
  227. data/vendor/assets/javascripts/aloha/plugins/common/image/img/image.gif +0 -0
  228. data/vendor/assets/javascripts/aloha/plugins/common/image/img/padding-decrease.gif +0 -0
  229. data/vendor/assets/javascripts/aloha/plugins/common/image/img/padding-increase.gif +0 -0
  230. data/vendor/assets/javascripts/aloha/plugins/common/image/img/page.png +0 -0
  231. data/vendor/assets/javascripts/aloha/plugins/common/image/img/size-decrease.gif +0 -0
  232. data/vendor/assets/javascripts/aloha/plugins/common/image/img/size-increase.gif +0 -0
  233. data/vendor/assets/javascripts/aloha/plugins/common/image/lib/image-floatingMenu.js +308 -0
  234. data/vendor/assets/javascripts/aloha/plugins/common/image/lib/image-plugin-actions.js +0 -0
  235. data/vendor/assets/javascripts/aloha/plugins/common/image/lib/image-plugin.js +1341 -0
  236. data/vendor/assets/javascripts/aloha/plugins/common/image/nls/ca/i18n.js +32 -0
  237. data/vendor/assets/javascripts/aloha/plugins/common/image/nls/de/i18n.js +32 -0
  238. data/vendor/assets/javascripts/aloha/plugins/common/image/nls/i18n.js +41 -0
  239. data/vendor/assets/javascripts/aloha/plugins/common/image/nls/mk/i18n.js +32 -0
  240. data/vendor/assets/javascripts/aloha/plugins/common/image/nls/pt-br/i18n.js +32 -0
  241. data/vendor/assets/javascripts/aloha/plugins/common/image/nls/ru/i18n.js +32 -0
  242. data/vendor/assets/javascripts/aloha/plugins/common/image/nls/uk/i18n.js +32 -0
  243. data/vendor/assets/javascripts/aloha/plugins/common/image/nls/zh-hans/i18n.js +32 -0
  244. data/vendor/assets/javascripts/aloha/plugins/common/image/package.json +1 -0
  245. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/jcrop/jcrop.gif +0 -0
  246. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/jcrop/jquery.jcrop.css +46 -0
  247. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/jcrop/jquery.jcrop.min.js +165 -0
  248. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/mousewheel/mousewheel.js +85 -0
  249. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  250. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  251. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  252. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  253. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  254. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  255. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  256. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  257. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  258. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  259. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  260. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  261. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  262. data/vendor/assets/javascripts/aloha/plugins/common/image/vendor/ui/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  263. data/vendor/assets/javascripts/aloha/plugins/common/link/css/link.css +52 -0
  264. data/vendor/assets/javascripts/aloha/plugins/common/link/extra/delicious.js +264 -0
  265. data/vendor/assets/javascripts/aloha/plugins/common/link/extra/linklist.js +247 -0
  266. data/vendor/assets/javascripts/aloha/plugins/common/link/extra/slowlinklist.js +247 -0
  267. data/vendor/assets/javascripts/aloha/plugins/common/link/lib/link-plugin.js +958 -0
  268. data/vendor/assets/javascripts/aloha/plugins/common/link/nls/ca/i18n.js +14 -0
  269. data/vendor/assets/javascripts/aloha/plugins/common/link/nls/de/i18n.js +14 -0
  270. data/vendor/assets/javascripts/aloha/plugins/common/link/nls/i18n.js +23 -0
  271. data/vendor/assets/javascripts/aloha/plugins/common/link/nls/mk/i18n.js +14 -0
  272. data/vendor/assets/javascripts/aloha/plugins/common/link/nls/pt-br/i18n.js +14 -0
  273. data/vendor/assets/javascripts/aloha/plugins/common/link/nls/ru/i18n.js +14 -0
  274. data/vendor/assets/javascripts/aloha/plugins/common/link/nls/uk/i18n.js +14 -0
  275. data/vendor/assets/javascripts/aloha/plugins/common/link/nls/zh-hans/i18n.js +14 -0
  276. data/vendor/assets/javascripts/aloha/plugins/common/list/lib/list-plugin.js +878 -0
  277. data/vendor/assets/javascripts/aloha/plugins/common/list/nls/ca/i18n.js +7 -0
  278. data/vendor/assets/javascripts/aloha/plugins/common/list/nls/de/i18n.js +7 -0
  279. data/vendor/assets/javascripts/aloha/plugins/common/list/nls/i18n.js +16 -0
  280. data/vendor/assets/javascripts/aloha/plugins/common/list/nls/mk/i18n.js +7 -0
  281. data/vendor/assets/javascripts/aloha/plugins/common/list/nls/pt-br/i18n.js +7 -0
  282. data/vendor/assets/javascripts/aloha/plugins/common/list/nls/ru/i18n.js +7 -0
  283. data/vendor/assets/javascripts/aloha/plugins/common/list/nls/uk/i18n.js +7 -0
  284. data/vendor/assets/javascripts/aloha/plugins/common/list/nls/zh-hans/i18n.js +7 -0
  285. data/vendor/assets/javascripts/aloha/plugins/common/list/package.json +1 -0
  286. data/vendor/assets/javascripts/aloha/plugins/common/paste/lib/paste-plugin.js +457 -0
  287. data/vendor/assets/javascripts/aloha/plugins/common/paste/package.json +8 -0
  288. data/vendor/assets/javascripts/aloha/plugins/common/table/css/table.css +125 -0
  289. data/vendor/assets/javascripts/aloha/plugins/common/table/img/down.cur +0 -0
  290. data/vendor/assets/javascripts/aloha/plugins/common/table/img/left.cur +0 -0
  291. data/vendor/assets/javascripts/aloha/plugins/common/table/img/table_layout.png +0 -0
  292. data/vendor/assets/javascripts/aloha/plugins/common/table/img/wai-green.png +0 -0
  293. data/vendor/assets/javascripts/aloha/plugins/common/table/img/wai-red.png +0 -0
  294. data/vendor/assets/javascripts/aloha/plugins/common/table/lib/table-cell.js +542 -0
  295. data/vendor/assets/javascripts/aloha/plugins/common/table/lib/table-create-layer.js +213 -0
  296. data/vendor/assets/javascripts/aloha/plugins/common/table/lib/table-plugin-utils.js +494 -0
  297. data/vendor/assets/javascripts/aloha/plugins/common/table/lib/table-plugin.js +1596 -0
  298. data/vendor/assets/javascripts/aloha/plugins/common/table/lib/table-selection.js +468 -0
  299. data/vendor/assets/javascripts/aloha/plugins/common/table/lib/table.js +2110 -0
  300. data/vendor/assets/javascripts/aloha/plugins/common/table/nls/ca/i18n.js +28 -0
  301. data/vendor/assets/javascripts/aloha/plugins/common/table/nls/de/i18n.js +29 -0
  302. data/vendor/assets/javascripts/aloha/plugins/common/table/nls/i18n.js +38 -0
  303. data/vendor/assets/javascripts/aloha/plugins/common/table/nls/mk/i18n.js +28 -0
  304. data/vendor/assets/javascripts/aloha/plugins/common/table/nls/pt-br/i18n.js +28 -0
  305. data/vendor/assets/javascripts/aloha/plugins/common/table/nls/ru/i18n.js +28 -0
  306. data/vendor/assets/javascripts/aloha/plugins/common/table/nls/uk/i18n.js +28 -0
  307. data/vendor/assets/javascripts/aloha/plugins/common/table/nls/zh-hans/i18n.js +28 -0
  308. data/vendor/assets/javascripts/aloha/plugins/common/table/package.json +1 -0
  309. data/vendor/assets/javascripts/aloha/plugins/common/ui/css/jquery-ui-1.9m6.css +430 -0
  310. data/vendor/assets/javascripts/aloha/plugins/common/ui/css/ui.css +689 -0
  311. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/blockquote.png +0 -0
  312. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/character-picker.png +0 -0
  313. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/em.png +0 -0
  314. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/format-block.png +0 -0
  315. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/format-inline.png +0 -0
  316. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/indent.png +0 -0
  317. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/jqueryui/ui-icons_222222_256x240.png +0 -0
  318. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/justify.png +0 -0
  319. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/language-annotation.png +0 -0
  320. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview.png +0 -0
  321. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/anchor.png +0 -0
  322. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/blockquote.png +0 -0
  323. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/caption.png +0 -0
  324. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/cite.png +0 -0
  325. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/dd.png +0 -0
  326. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/div.png +0 -0
  327. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/dl.png +0 -0
  328. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/dt.png +0 -0
  329. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/h1.png +0 -0
  330. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/h2.png +0 -0
  331. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/h3.png +0 -0
  332. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/h4.png +0 -0
  333. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/h5.png +0 -0
  334. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/h6.png +0 -0
  335. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/p.png +0 -0
  336. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/pre.png +0 -0
  337. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/q.png +0 -0
  338. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/table.png +0 -0
  339. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/td.png +0 -0
  340. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/metaview/th.png +0 -0
  341. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/multisplit-close.gif +0 -0
  342. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/multisplit-open.gif +0 -0
  343. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/outdent.png +0 -0
  344. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/quote.png +0 -0
  345. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/removeformat.png +0 -0
  346. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/strong.png +0 -0
  347. data/vendor/assets/javascripts/aloha/plugins/common/ui/img/tree.png +0 -0
  348. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/arena.js +11 -0
  349. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/autocomplete.js +70 -0
  350. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/button.js +114 -0
  351. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/component.js +121 -0
  352. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/container.js +210 -0
  353. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/context.js +53 -0
  354. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/dialog.js +215 -0
  355. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/floating.js +405 -0
  356. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/menuButton.js +169 -0
  357. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/multiSplit.js +237 -0
  358. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/port-helper-attribute-field.js +440 -0
  359. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/port-helper-multi-split.js +71 -0
  360. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/scopes.js +187 -0
  361. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/settings.js +202 -0
  362. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/subguarded.js +183 -0
  363. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/surface.js +106 -0
  364. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/tab.js +316 -0
  365. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/text.js +33 -0
  366. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/toggleButton.js +57 -0
  367. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/toolbar.js +251 -0
  368. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/ui-plugin.js +169 -0
  369. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/ui.js +181 -0
  370. data/vendor/assets/javascripts/aloha/plugins/common/ui/lib/utils.js +104 -0
  371. data/vendor/assets/javascripts/aloha/plugins/common/ui/nls/ca/i18n.js +46 -0
  372. data/vendor/assets/javascripts/aloha/plugins/common/ui/nls/de/i18n.js +48 -0
  373. data/vendor/assets/javascripts/aloha/plugins/common/ui/nls/i18n.js +75 -0
  374. data/vendor/assets/javascripts/aloha/plugins/common/ui/nls/mk/i18n.js +46 -0
  375. data/vendor/assets/javascripts/aloha/plugins/common/ui/nls/pt-br/i18n.js +46 -0
  376. data/vendor/assets/javascripts/aloha/plugins/common/ui/nls/ru/i18n.js +46 -0
  377. data/vendor/assets/javascripts/aloha/plugins/common/ui/nls/uk/i18n.js +46 -0
  378. data/vendor/assets/javascripts/aloha/plugins/common/ui/nls/zh-hans/i18n.js +46 -0
  379. data/vendor/assets/javascripts/aloha/plugins/common/ui/vendor/jquery-ui-autocomplete-html.js +42 -0
  380. data/vendor/assets/javascripts/aloha/plugins/common/undo/lib/undo-plugin.js +165 -0
  381. data/vendor/assets/javascripts/aloha/plugins/common/undo/package.json +7 -0
  382. data/vendor/assets/javascripts/aloha/plugins/common/undo/vendor/diff_match_patch_uncompressed.js +2155 -0
  383. data/vendor/assets/javascripts/aloha/plugins/common/undo/vendor/undo.js +121 -0
  384. data/vendor/assets/javascripts/aloha/plugins/extra/attributes/README +0 -0
  385. data/vendor/assets/javascripts/aloha/plugins/extra/attributes/css/attributes.css +12 -0
  386. data/vendor/assets/javascripts/aloha/plugins/extra/attributes/lib/attributes-plugin.js +237 -0
  387. data/vendor/assets/javascripts/aloha/plugins/extra/attributes/nls/ca/i18n.js +5 -0
  388. data/vendor/assets/javascripts/aloha/plugins/extra/attributes/nls/de/i18n.js +5 -0
  389. data/vendor/assets/javascripts/aloha/plugins/extra/attributes/nls/i18n.js +14 -0
  390. data/vendor/assets/javascripts/aloha/plugins/extra/attributes/nls/mk/i18n.js +5 -0
  391. data/vendor/assets/javascripts/aloha/plugins/extra/attributes/nls/pt-br/i18n.js +5 -0
  392. data/vendor/assets/javascripts/aloha/plugins/extra/attributes/nls/ru/i18n.js +5 -0
  393. data/vendor/assets/javascripts/aloha/plugins/extra/attributes/nls/uk/i18n.js +5 -0
  394. data/vendor/assets/javascripts/aloha/plugins/extra/attributes/nls/zh-hans/i18n.js +5 -0
  395. data/vendor/assets/javascripts/aloha/plugins/extra/captioned-image/css/captioned-image.css +15 -0
  396. data/vendor/assets/javascripts/aloha/plugins/extra/captioned-image/lib/captioned-image-plugin.js +555 -0
  397. data/vendor/assets/javascripts/aloha/plugins/extra/cite/README +0 -0
  398. data/vendor/assets/javascripts/aloha/plugins/extra/cite/css/cite.css +39 -0
  399. data/vendor/assets/javascripts/aloha/plugins/extra/cite/img/blockquote.png +0 -0
  400. data/vendor/assets/javascripts/aloha/plugins/extra/cite/img/icon_cite.png +0 -0
  401. data/vendor/assets/javascripts/aloha/plugins/extra/cite/lib/cite-plugin.js +614 -0
  402. data/vendor/assets/javascripts/aloha/plugins/extra/cite/nls/ca/i18n.js +4 -0
  403. data/vendor/assets/javascripts/aloha/plugins/extra/cite/nls/de/i18n.js +4 -0
  404. data/vendor/assets/javascripts/aloha/plugins/extra/cite/nls/i18n.js +13 -0
  405. data/vendor/assets/javascripts/aloha/plugins/extra/cite/nls/mk/i18n.js +4 -0
  406. data/vendor/assets/javascripts/aloha/plugins/extra/cite/nls/pt-br/i18n.js +4 -0
  407. data/vendor/assets/javascripts/aloha/plugins/extra/cite/nls/ru/i18n.js +4 -0
  408. data/vendor/assets/javascripts/aloha/plugins/extra/cite/nls/uk/i18n.js +4 -0
  409. data/vendor/assets/javascripts/aloha/plugins/extra/cite/nls/zh-hans/i18n.js +4 -0
  410. data/vendor/assets/javascripts/aloha/plugins/extra/cite/package.json +1 -0
  411. data/vendor/assets/javascripts/aloha/plugins/extra/comments/img/add-icon.png +0 -0
  412. data/vendor/assets/javascripts/aloha/plugins/extra/comments/img/add.png +0 -0
  413. data/vendor/assets/javascripts/aloha/plugins/extra/comments/img/comments.png +0 -0
  414. data/vendor/assets/javascripts/aloha/plugins/extra/comments/img/hr.png +0 -0
  415. data/vendor/assets/javascripts/aloha/plugins/extra/comments/img/textbox.png +0 -0
  416. data/vendor/assets/javascripts/aloha/plugins/extra/comments/lib/comments-plugin.js +692 -0
  417. data/vendor/assets/javascripts/aloha/plugins/extra/comments/lib/comments.css +442 -0
  418. data/vendor/assets/javascripts/aloha/plugins/extra/comments/package.json +1 -0
  419. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/README.md +5 -0
  420. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/TODO.md +2 -0
  421. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/img/cross.png +0 -0
  422. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/img/hourglass.png +0 -0
  423. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/img/loading.gif +0 -0
  424. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/img/page.png +0 -0
  425. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/img/tick.png +0 -0
  426. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/lib/draganddropfiles-plugin.js +4 -0
  427. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/lib/dragndropfiles.css +110 -0
  428. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/lib/dragndropfiles.js +363 -0
  429. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/lib/dropfilesrepository.js +365 -0
  430. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/nls/ca/i18n.js +3 -0
  431. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/nls/de/i18n.js +3 -0
  432. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/nls/i18n.js +12 -0
  433. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/nls/mk/i18n.js +3 -0
  434. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/nls/pt-br/i18n.js +3 -0
  435. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/nls/ru/i18n.js +3 -0
  436. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/nls/uk/i18n.js +3 -0
  437. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/nls/zh-hans/i18n.js +3 -0
  438. data/vendor/assets/javascripts/aloha/plugins/extra/draganddropfiles/package.json +1 -0
  439. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/README.md +1 -0
  440. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/css/formatless.css +7 -0
  441. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/img/button.png +0 -0
  442. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/lib/formatlesshandler.js +97 -0
  443. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/lib/formatlesspaste-plugin.js +230 -0
  444. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/nls/ca/i18n.js +3 -0
  445. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/nls/de/i18n.js +3 -0
  446. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/nls/i18n.js +12 -0
  447. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/nls/mk/i18n.js +3 -0
  448. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/nls/pt-br/i18n.js +3 -0
  449. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/nls/ru/i18n.js +3 -0
  450. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/nls/uk/i18n.js +3 -0
  451. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/nls/zh-hans/i18n.js +3 -0
  452. data/vendor/assets/javascripts/aloha/plugins/extra/formatlesspaste/package.json +8 -0
  453. data/vendor/assets/javascripts/aloha/plugins/extra/headerids/README +0 -0
  454. data/vendor/assets/javascripts/aloha/plugins/extra/headerids/css/headerids.css +8 -0
  455. data/vendor/assets/javascripts/aloha/plugins/extra/headerids/lib/headerids-plugin.js +254 -0
  456. data/vendor/assets/javascripts/aloha/plugins/extra/headerids/nls/ca/i18n.js +6 -0
  457. data/vendor/assets/javascripts/aloha/plugins/extra/headerids/nls/de/i18n.js +6 -0
  458. data/vendor/assets/javascripts/aloha/plugins/extra/headerids/nls/i18n.js +15 -0
  459. data/vendor/assets/javascripts/aloha/plugins/extra/headerids/nls/mk/i18n.js +6 -0
  460. data/vendor/assets/javascripts/aloha/plugins/extra/headerids/nls/pt-br/i18n.js +6 -0
  461. data/vendor/assets/javascripts/aloha/plugins/extra/headerids/nls/ru/i18n.js +6 -0
  462. data/vendor/assets/javascripts/aloha/plugins/extra/headerids/nls/uk/i18n.js +6 -0
  463. data/vendor/assets/javascripts/aloha/plugins/extra/headerids/nls/zh-hans/i18n.js +6 -0
  464. data/vendor/assets/javascripts/aloha/plugins/extra/hints/README.md +12 -0
  465. data/vendor/assets/javascripts/aloha/plugins/extra/hints/css/hints.css +29 -0
  466. data/vendor/assets/javascripts/aloha/plugins/extra/hints/lib/hints-plugin.js +97 -0
  467. data/vendor/assets/javascripts/aloha/plugins/extra/hints/package.json +9 -0
  468. data/vendor/assets/javascripts/aloha/plugins/extra/hints/vendor/tipsy.js +242 -0
  469. data/vendor/assets/javascripts/aloha/plugins/extra/imagebrowser/README +0 -0
  470. data/vendor/assets/javascripts/aloha/plugins/extra/imagebrowser/lib/imagebrowser-plugin.js +160 -0
  471. data/vendor/assets/javascripts/aloha/plugins/extra/imagebrowser/nls/ca/i18n.js +6 -0
  472. data/vendor/assets/javascripts/aloha/plugins/extra/imagebrowser/nls/de/i18n.js +6 -0
  473. data/vendor/assets/javascripts/aloha/plugins/extra/imagebrowser/nls/i18n.js +15 -0
  474. data/vendor/assets/javascripts/aloha/plugins/extra/imagebrowser/nls/mk/i18n.js +6 -0
  475. data/vendor/assets/javascripts/aloha/plugins/extra/imagebrowser/nls/pt-br/i18n.js +6 -0
  476. data/vendor/assets/javascripts/aloha/plugins/extra/imagebrowser/nls/ru/i18n.js +6 -0
  477. data/vendor/assets/javascripts/aloha/plugins/extra/imagebrowser/nls/uk/i18n.js +6 -0
  478. data/vendor/assets/javascripts/aloha/plugins/extra/imagebrowser/nls/zh-hans/i18n.js +6 -0
  479. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/README +0 -0
  480. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ad.png +0 -0
  481. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ae.png +0 -0
  482. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/af.png +0 -0
  483. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ag.png +0 -0
  484. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ai.png +0 -0
  485. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/al.png +0 -0
  486. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/am.png +0 -0
  487. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/an.png +0 -0
  488. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ao.png +0 -0
  489. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ar.png +0 -0
  490. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/as.png +0 -0
  491. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/at.png +0 -0
  492. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/au.png +0 -0
  493. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/aw.png +0 -0
  494. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ax.png +0 -0
  495. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/az.png +0 -0
  496. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ba.png +0 -0
  497. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bb.png +0 -0
  498. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bd.png +0 -0
  499. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/be.png +0 -0
  500. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bf.png +0 -0
  501. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bg.png +0 -0
  502. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bh.png +0 -0
  503. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bi.png +0 -0
  504. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bj.png +0 -0
  505. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bm.png +0 -0
  506. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bn.png +0 -0
  507. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bo.png +0 -0
  508. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/br.png +0 -0
  509. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bs.png +0 -0
  510. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bt.png +0 -0
  511. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bv.png +0 -0
  512. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bw.png +0 -0
  513. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/by.png +0 -0
  514. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/bz.png +0 -0
  515. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ca.png +0 -0
  516. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/catalonia.png +0 -0
  517. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cc.png +0 -0
  518. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cd.png +0 -0
  519. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cf.png +0 -0
  520. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cg.png +0 -0
  521. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ch.png +0 -0
  522. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ci.png +0 -0
  523. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ck.png +0 -0
  524. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cl.png +0 -0
  525. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cm.png +0 -0
  526. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cn.png +0 -0
  527. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/co.png +0 -0
  528. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cr.png +0 -0
  529. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cs.png +0 -0
  530. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cu.png +0 -0
  531. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cv.png +0 -0
  532. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cx.png +0 -0
  533. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cy.png +0 -0
  534. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/cz.png +0 -0
  535. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/de.png +0 -0
  536. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/dj.png +0 -0
  537. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/dk.png +0 -0
  538. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/dm.png +0 -0
  539. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/do.png +0 -0
  540. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/dz.png +0 -0
  541. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ec.png +0 -0
  542. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ee.png +0 -0
  543. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/eg.png +0 -0
  544. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/eh.png +0 -0
  545. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/en.png +0 -0
  546. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/er.png +0 -0
  547. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/es.png +0 -0
  548. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/et.png +0 -0
  549. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/europeanunion.png +0 -0
  550. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/fam.png +0 -0
  551. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/fi.png +0 -0
  552. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/fj.png +0 -0
  553. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/fk.png +0 -0
  554. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/fm.png +0 -0
  555. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/fo.png +0 -0
  556. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/fr.png +0 -0
  557. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ga.png +0 -0
  558. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gb.png +0 -0
  559. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gd.png +0 -0
  560. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ge.png +0 -0
  561. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gf.png +0 -0
  562. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gh.png +0 -0
  563. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gi.png +0 -0
  564. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gl.png +0 -0
  565. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gm.png +0 -0
  566. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gn.png +0 -0
  567. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gp.png +0 -0
  568. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gq.png +0 -0
  569. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gr.png +0 -0
  570. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gs.png +0 -0
  571. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gt.png +0 -0
  572. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gu.png +0 -0
  573. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gw.png +0 -0
  574. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/gy.png +0 -0
  575. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/hk.png +0 -0
  576. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/hm.png +0 -0
  577. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/hn.png +0 -0
  578. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/hr.png +0 -0
  579. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ht.png +0 -0
  580. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/hu.png +0 -0
  581. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/id.png +0 -0
  582. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ie.png +0 -0
  583. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/il.png +0 -0
  584. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/in.png +0 -0
  585. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/io.png +0 -0
  586. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/iq.png +0 -0
  587. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ir.png +0 -0
  588. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/is.png +0 -0
  589. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/it.png +0 -0
  590. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/jm.png +0 -0
  591. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/jo.png +0 -0
  592. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/jp.png +0 -0
  593. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ke.png +0 -0
  594. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/kg.png +0 -0
  595. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/kh.png +0 -0
  596. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ki.png +0 -0
  597. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/km.png +0 -0
  598. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/kn.png +0 -0
  599. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/kp.png +0 -0
  600. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/kr.png +0 -0
  601. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/kw.png +0 -0
  602. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ky.png +0 -0
  603. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/kz.png +0 -0
  604. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/la.png +0 -0
  605. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/lb.png +0 -0
  606. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/lc.png +0 -0
  607. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/li.png +0 -0
  608. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/lk.png +0 -0
  609. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/lr.png +0 -0
  610. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ls.png +0 -0
  611. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/lt.png +0 -0
  612. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/lu.png +0 -0
  613. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/lv.png +0 -0
  614. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ly.png +0 -0
  615. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ma.png +0 -0
  616. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mc.png +0 -0
  617. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/md.png +0 -0
  618. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/me.png +0 -0
  619. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mg.png +0 -0
  620. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mh.png +0 -0
  621. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mk.png +0 -0
  622. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ml.png +0 -0
  623. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mm.png +0 -0
  624. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mn.png +0 -0
  625. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mo.png +0 -0
  626. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mp.png +0 -0
  627. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mq.png +0 -0
  628. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mr.png +0 -0
  629. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ms.png +0 -0
  630. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mt.png +0 -0
  631. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mu.png +0 -0
  632. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mv.png +0 -0
  633. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mw.png +0 -0
  634. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mx.png +0 -0
  635. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/my.png +0 -0
  636. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/mz.png +0 -0
  637. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/na.png +0 -0
  638. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/nc.png +0 -0
  639. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ne.png +0 -0
  640. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/nf.png +0 -0
  641. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ng.png +0 -0
  642. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ni.png +0 -0
  643. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/nl.png +0 -0
  644. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/no.png +0 -0
  645. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/np.png +0 -0
  646. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/nr.png +0 -0
  647. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/nu.png +0 -0
  648. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/nz.png +0 -0
  649. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/om.png +0 -0
  650. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/pa.png +0 -0
  651. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/pe.png +0 -0
  652. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/pf.png +0 -0
  653. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/pg.png +0 -0
  654. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ph.png +0 -0
  655. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/pk.png +0 -0
  656. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/pl.png +0 -0
  657. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/pm.png +0 -0
  658. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/pn.png +0 -0
  659. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/pr.png +0 -0
  660. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ps.png +0 -0
  661. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/pt.png +0 -0
  662. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/pw.png +0 -0
  663. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/py.png +0 -0
  664. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/qa.png +0 -0
  665. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/re.png +0 -0
  666. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ro.png +0 -0
  667. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/rs.png +0 -0
  668. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ru.png +0 -0
  669. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/rw.png +0 -0
  670. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sa.png +0 -0
  671. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sb.png +0 -0
  672. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sc.png +0 -0
  673. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/scotland.png +0 -0
  674. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sd.png +0 -0
  675. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/se.png +0 -0
  676. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sg.png +0 -0
  677. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sh.png +0 -0
  678. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/si.png +0 -0
  679. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sj.png +0 -0
  680. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sk.png +0 -0
  681. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sl.png +0 -0
  682. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sm.png +0 -0
  683. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sn.png +0 -0
  684. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/so.png +0 -0
  685. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sr.png +0 -0
  686. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/st.png +0 -0
  687. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sv.png +0 -0
  688. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sy.png +0 -0
  689. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/sz.png +0 -0
  690. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tc.png +0 -0
  691. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/td.png +0 -0
  692. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tf.png +0 -0
  693. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tg.png +0 -0
  694. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/th.png +0 -0
  695. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tj.png +0 -0
  696. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tk.png +0 -0
  697. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tl.png +0 -0
  698. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tm.png +0 -0
  699. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tn.png +0 -0
  700. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/to.png +0 -0
  701. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tr.png +0 -0
  702. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tt.png +0 -0
  703. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tv.png +0 -0
  704. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tw.png +0 -0
  705. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/tz.png +0 -0
  706. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ua.png +0 -0
  707. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ug.png +0 -0
  708. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/um.png +0 -0
  709. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/us.png +0 -0
  710. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/uy.png +0 -0
  711. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/uz.png +0 -0
  712. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/va.png +0 -0
  713. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/vc.png +0 -0
  714. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ve.png +0 -0
  715. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/vg.png +0 -0
  716. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/vi.png +0 -0
  717. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/vn.png +0 -0
  718. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/vu.png +0 -0
  719. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/wales.png +0 -0
  720. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/wf.png +0 -0
  721. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ws.png +0 -0
  722. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/ye.png +0 -0
  723. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/yt.png +0 -0
  724. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/za.png +0 -0
  725. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/zm.png +0 -0
  726. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/img/flags/zw.png +0 -0
  727. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/lib/linkbrowser-plugin.js +161 -0
  728. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/nls/ca/i18n.js +6 -0
  729. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/nls/de/i18n.js +6 -0
  730. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/nls/i18n.js +15 -0
  731. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/nls/mk/i18n.js +6 -0
  732. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/nls/pt-br/i18n.js +6 -0
  733. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/nls/ru/i18n.js +6 -0
  734. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/nls/uk/i18n.js +6 -0
  735. data/vendor/assets/javascripts/aloha/plugins/extra/linkbrowser/nls/zh-hans/i18n.js +6 -0
  736. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/nls/ca/i18n.js +28 -0
  737. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/nls/de/i18n.js +28 -0
  738. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/nls/i18n.js +37 -0
  739. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/nls/mk/i18n.js +28 -0
  740. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/nls/pt-br/i18n.js +28 -0
  741. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/nls/ru/i18n.js +28 -0
  742. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/nls/uk/i18n.js +28 -0
  743. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/nls/zh-hans/i18n.js +28 -0
  744. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/package.json +1 -0
  745. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/proxy.php.example +244 -0
  746. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/src/linkchecker.css +14 -0
  747. data/vendor/assets/javascripts/aloha/plugins/extra/linkchecker/src/linkchecker.js +269 -0
  748. data/vendor/assets/javascripts/aloha/plugins/extra/listenforcer/lib/listenforcer-plugin.js +190 -0
  749. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/README +0 -0
  750. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/css/metaview.css +78 -0
  751. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/anchor.png +0 -0
  752. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/blockquote.png +0 -0
  753. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/button.png +0 -0
  754. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/caption.png +0 -0
  755. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/cite.png +0 -0
  756. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/dd.png +0 -0
  757. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/div.png +0 -0
  758. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/dl.png +0 -0
  759. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/dt.png +0 -0
  760. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/h1.png +0 -0
  761. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/h2.png +0 -0
  762. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/h3.png +0 -0
  763. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/h4.png +0 -0
  764. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/h5.png +0 -0
  765. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/h6.png +0 -0
  766. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/hr.png +0 -0
  767. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/icon_cite.png +0 -0
  768. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/p.png +0 -0
  769. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/pre.png +0 -0
  770. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/table.png +0 -0
  771. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/td.png +0 -0
  772. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/img/th.png +0 -0
  773. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/lib/metaview-plugin.js +185 -0
  774. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/nls/ca/i18n.js +3 -0
  775. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/nls/de/i18n.js +3 -0
  776. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/nls/i18n.js +12 -0
  777. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/nls/mk/i18n.js +3 -0
  778. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/nls/pt-br/i18n.js +3 -0
  779. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/nls/ru/i18n.js +3 -0
  780. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/nls/uk/i18n.js +3 -0
  781. data/vendor/assets/javascripts/aloha/plugins/extra/metaview/nls/zh-hans/i18n.js +3 -0
  782. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/README +0 -0
  783. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/css/numerated-headers.css +7 -0
  784. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/img/headers.png +0 -0
  785. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/lib/numerated-headers-plugin.js +421 -0
  786. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/nls/ca/i18n.js +5 -0
  787. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/nls/de/i18n.js +6 -0
  788. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/nls/i18n.js +15 -0
  789. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/nls/mk/i18n.js +5 -0
  790. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/nls/pt-br/i18n.js +5 -0
  791. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/nls/ru/i18n.js +5 -0
  792. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/nls/uk/i18n.js +5 -0
  793. data/vendor/assets/javascripts/aloha/plugins/extra/numerated-headers/nls/zh-hans/i18n.js +5 -0
  794. data/vendor/assets/javascripts/aloha/plugins/extra/profiler/css/profiler.css +34 -0
  795. data/vendor/assets/javascripts/aloha/plugins/extra/profiler/lib/profiler-plugin.js +304 -0
  796. data/vendor/assets/javascripts/aloha/plugins/extra/ribbon/README.md +8 -0
  797. data/vendor/assets/javascripts/aloha/plugins/extra/ribbon/css/ribbon.css +54 -0
  798. data/vendor/assets/javascripts/aloha/plugins/extra/ribbon/img/fade-in.png +0 -0
  799. data/vendor/assets/javascripts/aloha/plugins/extra/ribbon/img/fade-out.png +0 -0
  800. data/vendor/assets/javascripts/aloha/plugins/extra/ribbon/lib/ribbon-plugin.js +144 -0
  801. data/vendor/assets/javascripts/aloha/plugins/extra/ribbon/package.json +1 -0
  802. data/vendor/assets/javascripts/aloha/plugins/extra/sourceview/css/sourceview.css +18 -0
  803. data/vendor/assets/javascripts/aloha/plugins/extra/sourceview/lib/sourceview-plugin.js +252 -0
  804. data/vendor/assets/javascripts/aloha/plugins/extra/sourceview/vendor/htmlbeautifier.js +468 -0
  805. data/vendor/assets/javascripts/aloha/plugins/extra/textcolor/css/textcolor.css +65 -0
  806. data/vendor/assets/javascripts/aloha/plugins/extra/textcolor/img/icon.png +0 -0
  807. data/vendor/assets/javascripts/aloha/plugins/extra/textcolor/lib/textcolor-plugin.js +420 -0
  808. data/vendor/assets/javascripts/aloha/plugins/extra/textcolor/nls/de/i18n.js +3 -0
  809. data/vendor/assets/javascripts/aloha/plugins/extra/textcolor/nls/i18n.js +6 -0
  810. data/vendor/assets/javascripts/aloha/plugins/extra/toc/lib/toc-plugin.js +399 -0
  811. data/vendor/assets/javascripts/aloha/plugins/extra/toc/nls/ca/i18n.js +3 -0
  812. data/vendor/assets/javascripts/aloha/plugins/extra/toc/nls/de/i18n.js +3 -0
  813. data/vendor/assets/javascripts/aloha/plugins/extra/toc/nls/i18n.js +12 -0
  814. data/vendor/assets/javascripts/aloha/plugins/extra/toc/nls/mk/i18n.js +3 -0
  815. data/vendor/assets/javascripts/aloha/plugins/extra/toc/nls/pt-br/i18n.js +3 -0
  816. data/vendor/assets/javascripts/aloha/plugins/extra/toc/nls/ru/i18n.js +3 -0
  817. data/vendor/assets/javascripts/aloha/plugins/extra/toc/nls/uk/i18n.js +3 -0
  818. data/vendor/assets/javascripts/aloha/plugins/extra/toc/nls/zh-hans/i18n.js +3 -0
  819. data/vendor/assets/javascripts/aloha/plugins/extra/toc/package.json +1 -0
  820. data/vendor/assets/javascripts/aloha/plugins/extra/validation/lib/validation-plugin.js +277 -0
  821. data/vendor/assets/stylesheets/aloha-common-extra.css +24 -0
  822. data/vendor/assets/stylesheets/aloha-core.css +19 -0
  823. data/vendor/assets/stylesheets/aloha-reset.css +24 -0
  824. data/vendor/assets/stylesheets/aloha-sidebar.css +296 -0
  825. data/vendor/assets/stylesheets/aloha.css +31 -0
  826. metadata +898 -0
@@ -0,0 +1,308 @@
1
+ /*global documents: true define: true */
2
+ /*!
3
+ * Aloha Editor
4
+ * Author & Copyright (c) 2011 Gentics Software GmbH
5
+ * aloha-sales@gentics.com
6
+ * Licensed under the terms of http://www.aloha-editor.com/license.html
7
+ *
8
+ * Author : Nicolas Karageuzian - http://nka.me
9
+ */
10
+ define([
11
+ 'jquery',
12
+ 'util/class',
13
+ 'i18n!image/nls/i18n',
14
+ 'i18n!aloha/nls/i18n',
15
+ 'ui/ui',
16
+ 'ui/scopes',
17
+ 'ui/button',
18
+ 'ui/toggleButton',
19
+ 'ui/port-helper-attribute-field'
20
+ ],
21
+ function (
22
+ jQuery,
23
+ Class,
24
+ i18n,
25
+ i18nCore,
26
+ Ui,
27
+ Scopes,
28
+ Button,
29
+ ToggleButton,
30
+ AttributeField
31
+ ) {
32
+ 'use strict';
33
+
34
+ var $ = jQuery;
35
+ var GENTICS = window.GENTICS;
36
+ var Aloha = window.Aloha;
37
+
38
+ /**
39
+ * Toolbar elements for Image plugin
40
+ *
41
+ * @class MyClass
42
+ */
43
+ return Class.extend({
44
+ /**
45
+ * Empty constructor
46
+ *
47
+ * @method
48
+ * @constructor
49
+ */
50
+ _constructor: function () {
51
+
52
+ },
53
+
54
+ /**
55
+ * Initialize Floating menu buttons according to plugin config
56
+ */
57
+ init: function (plugin) {
58
+ plugin.floatingMenuControl = this;
59
+ this.plugin = plugin;
60
+
61
+ Scopes.createScope(plugin.name, 'Aloha.empty');
62
+
63
+ this._addUIInsertButton();
64
+ this._addUIMetaButtons();
65
+ this._addUIResetButton();
66
+ this._addUIAlignButtons();
67
+ this._addUIMarginButtons();
68
+ this._addUICropButtons();
69
+ this._addUIResizeButtons();
70
+ this._addUIAspectRatioToggleButton();
71
+
72
+ // TODO fix the function and reenable this button
73
+ // this._addNaturalSizeButton();
74
+ },
75
+
76
+ /**
77
+ * Adds the aspect ratio toggle button to the floating menu
78
+ */
79
+ _addUIAspectRatioToggleButton: function () {
80
+ var plugin = this.plugin;
81
+
82
+ this._imageCnrRatioButton = Ui.adopt("imageCnrRatio", ToggleButton, {
83
+ tooltip: i18n.t('button.toggle.tooltip'),
84
+ icon: 'aloha-icon-cnr-ratio',
85
+ scope: plugin.name,
86
+ click: function(){
87
+ plugin.toggleKeepAspectRatio();
88
+ }
89
+ });
90
+
91
+ // If the setting has been set to a number or false we need to activate the
92
+ // toggle button to indicate that the aspect ratio will be preserved.
93
+ if (plugin.settings.fixedAspectRatio !== false) {
94
+ this._imageCnrRatioButton.setState(true);
95
+ plugin.keepAspectRatio = true;
96
+ }
97
+ },
98
+
99
+ /**
100
+ * Adds the reset button to the floating menu for the given tab
101
+ */
102
+ _addUIResetButton: function () {
103
+ var plugin = this.plugin;
104
+
105
+ this._imageCnrResetButton = Ui.adopt("imageCnrReset", Button, {
106
+ tooltip: i18n.t('Reset'),
107
+ icon: 'aloha-icon-cnr-reset',
108
+ scope: plugin.name,
109
+ click: function(){
110
+ plugin.reset();
111
+ }
112
+ });
113
+ },
114
+
115
+ /**
116
+ * Adds the insert button to the floating menu
117
+ */
118
+ _addUIInsertButton: function () {
119
+ var plugin = this.plugin;
120
+
121
+ this._insertImageButton = Ui.adopt("insertImage", Button, {
122
+ tooltip: i18n.t('button.addimg.tooltip'),
123
+ icon: 'aloha-button aloha-image-insert',
124
+ scope: 'Aloha.continuoustext',
125
+ click: function(){
126
+ plugin.insertImg();
127
+ }
128
+ });
129
+ },
130
+
131
+ /**
132
+ * Adds the ui meta fields (search, title) to the floating menu.
133
+ */
134
+ _addUIMetaButtons: function () {
135
+ var plugin = this.plugin;
136
+
137
+ this.imgSrcField = AttributeField({
138
+ label: i18n.t('field.img.src.label'),
139
+ labelClass: 'aloha-image-input-label',
140
+ tooltip: i18n.t('field.img.src.tooltip'),
141
+ name: 'imageSource',
142
+ scope: plugin.name
143
+ });
144
+ this.imgSrcField.setTemplate( '<span><b>{name}</b><br/>{url}</span>' );
145
+ this.imgSrcField.setObjectTypeFilter(plugin.objectTypeFilter);
146
+
147
+ this.imgTitleField = AttributeField({
148
+ label: i18n.t('field.img.title.label'),
149
+ labelClass: 'aloha-image-input-label',
150
+ tooltip: i18n.t('field.img.title.tooltip'),
151
+ name: 'imageTitle',
152
+ scope: plugin.name
153
+ });
154
+ this.imgTitleField.setObjectTypeFilter();
155
+ },
156
+
157
+ /**
158
+ * Adds the ui align buttons to the floating menu
159
+ */
160
+ _addUIAlignButtons: function () {
161
+ var plugin = this.plugin;
162
+
163
+ this._imageAlignLeftButton = Ui.adopt("imageAlignLeft", Button, {
164
+ tooltip: i18n.t('button.img.align.left.tooltip'),
165
+ icon: 'aloha-img aloha-image-align-left',
166
+ scope: plugin.name,
167
+ click : function () {
168
+ var el = jQuery(plugin.getPluginFocus());
169
+ el.add(el.parent()).css('float', 'left');
170
+ }
171
+ });
172
+
173
+ this._imageAlignRightButton = Ui.adopt("imageAlignRight", Button, {
174
+ tooltip: i18n.t('button.img.align.right.tooltip'),
175
+ icon: 'aloha-img aloha-image-align-right',
176
+ scope: plugin.name,
177
+ click : function () {
178
+ var el = jQuery(plugin.getPluginFocus());
179
+ el.add(el.parent()).css('float', 'right');
180
+ }
181
+ });
182
+
183
+ this._imageAlignNoneButton = Ui.adopt("imageAlignNone", Button, {
184
+ tooltip: i18n.t('button.img.align.none.tooltip'),
185
+ icon: 'aloha-img aloha-image-align-none',
186
+ scope: plugin.name,
187
+ click : function () {
188
+ var el = jQuery(plugin.getPluginFocus());
189
+ el.add(el.parent()).css({
190
+ 'float': 'none',
191
+ display: 'inline-block'
192
+ });
193
+ }
194
+ });
195
+ },
196
+
197
+ /**
198
+ * Adds the ui margin buttons to the floating menu
199
+ */
200
+ _addUIMarginButtons: function () {
201
+ var plugin = this.plugin;
202
+
203
+ this._imageIncPaddingButton = Ui.adopt("imageIncPadding", Button, {
204
+ tooltip: i18n.t('padding.increase'),
205
+ icon: 'aloha-img aloha-image-padding-increase',
206
+ scope: plugin.name,
207
+ click: function () {
208
+ jQuery(plugin.getPluginFocus()).increase('padding');
209
+ }
210
+ });
211
+
212
+ this._imageDecPaddingButton = Ui.adopt("imageDecPadding", Button, {
213
+ tooltip: i18n.t('padding.decrease'),
214
+ icon: 'aloha-img aloha-image-padding-decrease',
215
+ scope: plugin.name,
216
+ click: function () {
217
+ jQuery(plugin.getPluginFocus()).decrease('padding');
218
+ }
219
+ });
220
+ },
221
+
222
+ /**
223
+ * Adds the crop buttons to the floating menu
224
+ */
225
+ _addUICropButtons: function () {
226
+ var plugin = this.plugin;
227
+
228
+ Scopes.createScope('Aloha.img', ['Aloha.global']);
229
+
230
+ this._imageCropButton = Ui.adopt("imageCropButton", ToggleButton, {
231
+ tooltip: i18n.t('Crop'),
232
+ icon: 'aloha-icon-cnr-crop',
233
+ scope: plugin.name,
234
+ click: function () {
235
+ if (this.getState()) {
236
+ plugin.crop();
237
+ } else {
238
+ plugin.endCrop();
239
+ }
240
+ }
241
+ });
242
+ },
243
+
244
+ /**
245
+ * Adds the resize buttons to the floating menu
246
+ */
247
+ _addUIResizeButtons: function () {
248
+ var plugin = this.plugin;
249
+
250
+ // Manual resize fields
251
+ this.imgResizeHeightField = AttributeField({
252
+ label: i18n.t('height'),
253
+ labelClass: 'aloha-image-input-label',
254
+ name: "imageResizeHeight",
255
+ width: 50,
256
+ scope: plugin.name
257
+ });
258
+ this.imgResizeHeightField.maxValue = plugin.settings.maxHeight;
259
+ this.imgResizeHeightField.minValue = plugin.settings.minHeight;
260
+
261
+ this.imgResizeWidthField = AttributeField({
262
+ label: i18n.t('width'),
263
+ labelClass: 'aloha-image-input-label',
264
+ name: "imageResizeWidth",
265
+ width: 50,
266
+ scope: plugin.name
267
+ });
268
+ this.imgResizeWidthField.maxValue = plugin.settings.maxWidth;
269
+ this.imgResizeWidthField.minValue = plugin.settings.minWidth;
270
+ },
271
+
272
+ /**
273
+ * Adds the natural size button to the floating menu
274
+ */
275
+ /*
276
+ TODO currently deactivated see TODO at call site above.
277
+ _addNaturalSizeButton: function () {
278
+ var plugin = this.plugin;
279
+
280
+ this._imageNaturalSizeButton = Ui.adopt("imageNaturalSize", Button, {
281
+ icon: 'aloha-img aloha-image-size-natural',
282
+ label: i18n.t('size.natural'),
283
+ scope: plugin.name,
284
+ click: function () {
285
+ plugin.resetSize();
286
+ }
287
+ });
288
+ },
289
+ */
290
+
291
+ /**
292
+ * Sets the scope
293
+ */
294
+ setScope: function () {
295
+ Scopes.setScope(this.plugin.name);
296
+ },
297
+
298
+ /**
299
+ * Redraws UI
300
+ */
301
+ doLayout: function () {
302
+ // Implementation was removed while porting this plugin to
303
+ // the jqueryui toolbar because it seems to be a hack that
304
+ // is not needed with the new implementation.
305
+ }
306
+ });
307
+ });
308
+
@@ -0,0 +1,1341 @@
1
+ /*global documents: true define: true*/
2
+ /*
3
+ * Aloha Image Plugin - Allow image manipulation in Aloha Editor
4
+ *
5
+ * Author & Copyright (c) 2013 Gentics Software GmbH
6
+ * aloha-sales@gentics.com
7
+ * Contributors
8
+ * Johannes Schüth - http://jotschi.de
9
+ * Nicolas karageuzian - http://nka.me/
10
+ * Benjamin Athur Lupton - http://www.balupton.com/
11
+ * Thomas Lete
12
+ * Nils Dehl
13
+ * Christopher Hlubek
14
+ * Edward Tsech
15
+ * Haymo Meran
16
+ * Martin Schönberger
17
+ *
18
+ * Licensed under the terms of http://www.aloha-editor.org/license.php
19
+ */
20
+
21
+ define([
22
+ // js
23
+ 'jquery',
24
+ 'aloha/plugin',
25
+ 'image/image-floatingMenu',
26
+ 'i18n!aloha/nls/i18n',
27
+ 'i18n!image/nls/i18n',
28
+ 'jqueryui',
29
+ 'image/vendor/jcrop/jquery.jcrop.min',
30
+ 'image/vendor/mousewheel/mousewheel'
31
+ ], function AlohaImagePlugin(
32
+ aQuery,
33
+ Plugin,
34
+ ImageFloatingMenu,
35
+ i18nCore,
36
+ i18n
37
+ ){
38
+
39
+ 'use strict';
40
+
41
+ var jQuery = aQuery;
42
+ var $ = aQuery;
43
+ var GENTICS = window.GENTICS;
44
+ var Aloha = window.Aloha;
45
+ var resizing = false;
46
+
47
+ // Attributes manipulation utilities
48
+ // Aloha team may want to factorize, it could be useful for other plugins
49
+ // Prototypes
50
+ String.prototype.toInteger = String.prototype.toInteger || function () {
51
+ return parseInt(String(this).replace(/px$/, '') || 0, 10);
52
+ };
53
+ String.prototype.toFloat = String.prototype.toInteger || function () {
54
+ return parseFloat(String(this).replace(/px$/, '') || 0, 10);
55
+ };
56
+ Number.prototype.toInteger = Number.prototype.toInteger || String.prototype.toInteger;
57
+ Number.prototype.toFloat = Number.prototype.toFloat || String.prototype.toFloat;
58
+
59
+ // Insert jQuery Prototypes
60
+ jQuery.extend(true, jQuery.fn, {
61
+ increase: jQuery.fn.increase || function (attr) {
62
+ var obj = jQuery(this), value, newValue;
63
+ if (!obj.length) {
64
+ return obj;
65
+ }
66
+ value = obj.css(attr).toFloat();
67
+ newValue = Math.round((value || 1) * 1.2);
68
+ // when value is 2, won't increase
69
+ if (value === newValue) {
70
+ newValue++;
71
+ }
72
+ obj.css(attr, newValue);
73
+ return obj;
74
+ },
75
+ decrease: jQuery.fn.decrease || function (attr) {
76
+ var obj = jQuery(this), value, newValue;
77
+ // Check
78
+ if (!obj.length) {
79
+ return obj;
80
+ }
81
+ // Calculate
82
+ value = obj.css(attr).toFloat();
83
+ newValue = Math.round((value || 0) * 0.8);
84
+ // Apply
85
+ if (value === newValue && newValue > 0) {
86
+ // when value is 2, won't increase
87
+ newValue--;
88
+ }
89
+ obj.css(attr, newValue);
90
+ // Chain
91
+ return obj;
92
+ }
93
+ });
94
+
95
+ // Create and register Image Plugin
96
+ return Plugin.create('image', {
97
+ defaultSettings: {
98
+ 'maxWidth': 1600,
99
+ 'minWidth': 3,
100
+ 'maxHeight': 1200,
101
+ 'minHeight': 3,
102
+ // This setting will manually correct values that are out of bounds
103
+ 'autoCorrectManualInput': true,
104
+ // This setting will define a fixed aspect ratio for all resize actions
105
+ 'fixedAspectRatio' : false,
106
+ // When enabled this setting will order the plugin to automatically resize images to given bounds
107
+ 'autoResize': false,
108
+ //Image manipulation options - ONLY in default config section
109
+ ui: {
110
+ meta : true, // If imageResizeWidth and imageResizeHeight are displayed, then you will want to set this to true, so that the width and height text fields are updated automatically.
111
+ crop : true, // If imageCropButton is displayed, then you have to enable this.
112
+ resizable : true // Resizable ui-drag image
113
+ },
114
+ handles : 'ne, se, sw, nw', // set handles for resize
115
+
116
+ /**
117
+ * Crop callback is triggered after the user clicked accept to accept his crop
118
+ * @param image jquery image object reference
119
+ * @param props cropping properties
120
+ */
121
+ onCropped: function ($image, props) {
122
+ Aloha.Log.info('Default onCropped invoked', $image, props);
123
+ },
124
+
125
+ /**
126
+ * Reset callback is triggered before the internal reset procedure is applied
127
+ * if this function returns true, then the reset has been handled by the callback
128
+ * which means that no other reset will be applied
129
+ * if false is returned the internal reset procedure will be applied
130
+ * @param image jquery image object reference
131
+ * @return true if a reset has been applied, false otherwise
132
+ */
133
+ onReset: function ($image) {
134
+ Aloha.Log.info('Default onReset invoked', $image);
135
+ return false;
136
+ },
137
+
138
+ /**
139
+ * Example callback method which gets called while the resize process is being executed.
140
+ */
141
+ onResize: function ($image) {
142
+ Aloha.Log.info('Default onResize invoked', $image);
143
+ },
144
+
145
+ /**
146
+ * Resize callback is triggered after the internal resize procedure is applied.
147
+ */
148
+ onResized: function ($image) {
149
+ Aloha.Log.info('Default onResized invoked', $image);
150
+ }
151
+ },
152
+
153
+ /**
154
+ * Internal callback hook which gets invoked when cropping has been finished
155
+ */
156
+ _onCropped: function ($image, props) {
157
+
158
+ $('body').trigger('aloha-image-cropped', [$image, props]);
159
+
160
+ // After successful cropping, the aspect ratio value has to recalculated
161
+ if (this.keepAspectRatio) {
162
+ this.aspectRatioValue = this.imageObj.width() / this.imageObj.height();
163
+ }
164
+
165
+ // Call the custom onCropped function
166
+ this.onCropped($image, props);
167
+ },
168
+
169
+ /**
170
+ * Internal callback hook which gets invoked when resetting images
171
+ */
172
+ _onReset: function ($image) {
173
+
174
+ // No default behaviour defined besides event triggering
175
+ $('body').trigger('aloha-image-reset', $image);
176
+
177
+ $('#' + this.ui.imgResizeHeightField.getInputId()).val($image.height());
178
+ $('#' + this.ui.imgResizeWidthField.getInputId()).val($image.width());
179
+
180
+ // Call the custom resize function
181
+ return this.onReset($image);
182
+ },
183
+
184
+ /**
185
+ * Internal callback hook which gets invoked while the image is being resized
186
+ */
187
+ _onResize: function ($image) {
188
+
189
+ // No default behaviour defined besides event triggering
190
+ $('body').trigger('aloha-image-resize', $image);
191
+
192
+ $('#' + this.ui.imgResizeHeightField.getInputId()).val($image.height());
193
+ $('#' + this.ui.imgResizeWidthField.getInputId()).val($image.width());
194
+
195
+ // Call the custom resize function
196
+ this.onResize($image);
197
+ },
198
+
199
+ /**
200
+ * Internal callback hook which gets invoked when the current resizing action has stopped
201
+ */
202
+ _onResized: function ($image) {
203
+
204
+ $('body').trigger('aloha-image-resized', $image);
205
+
206
+ $('#' + this.ui.imgResizeHeightField.getInputId()).val($image.height());
207
+ $('#' + this.ui.imgResizeWidthField.getInputId()).val($image.width());
208
+
209
+ // Call the custom resize function
210
+ this.onResized($image);
211
+ },
212
+
213
+ /**
214
+ * The image that is currently edited
215
+ */
216
+ imageObj: null,
217
+
218
+
219
+ /**
220
+ * The Jcrop API reference
221
+ * this is needed to be able to destroy the cropping frame later on
222
+ * the variable is linked to the api object whilst cropping, or set to null otherwise
223
+ * strange, but done as documented http://deepliquid.com/content/Jcrop_API.html
224
+ */
225
+ jcAPI: null,
226
+
227
+
228
+ /**
229
+ * State variable for the aspect ratio toggle feature
230
+ */
231
+ keepAspectRatio: false,
232
+
233
+ /**
234
+ * Variable that will hold the value of the aspect ratio. This ratio will be used once startResize has been called
235
+ */
236
+ aspectRatioValue: false,
237
+
238
+ /**
239
+ * This will contain an image's original properties to be able to undo previous settings
240
+ *
241
+ * when an image is clicked for the first time, a new object will be added to the array
242
+ * {
243
+ * obj : [the image object reference],
244
+ * src : [the original src url],
245
+ * width : [initial width],
246
+ * height : [initial height]
247
+ * }
248
+ *
249
+ * when an image is clicked the second time, the array will be checked for the image object
250
+ * reference, to prevent double entries
251
+ */
252
+ restoreProps: [],
253
+
254
+ /**
255
+ * the defined object types to be used for this instance
256
+ */
257
+ objectTypeFilter: [],
258
+
259
+ /**
260
+ * Plugin initialization method
261
+ */
262
+ init: function () {
263
+
264
+ var plugin = this;
265
+
266
+ var imagePluginUrl = Aloha.getPluginUrl('image');
267
+
268
+ if ( typeof this.settings.objectTypeFilter != 'undefined' ) {
269
+ this.objectTypeFilter = this.settings.objectTypeFilter;
270
+ }
271
+
272
+ // Extend the default settings with the custom ones (done by default)
273
+ plugin.config = plugin.defaultSettings;
274
+ plugin.settings = jQuery.extend(true, plugin.defaultSettings, plugin.settings);
275
+
276
+ // Determine the flag and the value of the aspect ratio depending on settings
277
+ if ( typeof this.settings.fixedAspectRatio === 'number' ) {
278
+ this.aspectRatioValue = this.settings.fixedAspectRatio;
279
+ plugin.keepAspectRatio = true;
280
+ } else {
281
+ if ((plugin.settings.fixedAspectRatio) === true) {
282
+ plugin.keepAspectRatio = true;
283
+ } else {
284
+ plugin.keepAspectRatio = false;
285
+ }
286
+ }
287
+
288
+ plugin.initializeUI();
289
+ plugin.bindInteractions();
290
+ plugin.subscribeEvents();
291
+
292
+ },
293
+
294
+ /**
295
+ * Create buttons
296
+ */
297
+ initializeUI: function () {
298
+
299
+ var that = this;
300
+
301
+ this.ui = new ImageFloatingMenu();
302
+ this.ui.init(this);
303
+ },
304
+ /**
305
+ * Bind plugin interactions
306
+ */
307
+ bindInteractions: function () {
308
+ var plugin = this;
309
+
310
+ if (plugin.settings.ui.resizable) {
311
+ try {
312
+ // this will disable mozillas image resizing facilities
313
+ document.execCommand('enableObjectResizing', false, false);
314
+ } catch (e) {
315
+ Aloha.Log.info(e, 'Could not disable enableObjectResizing');
316
+ // this is just for internet explorer, which will not support disabling enableObjectResizing
317
+ }
318
+ }
319
+
320
+ if (plugin.settings.ui.meta) {
321
+ // update image object when src changes
322
+ plugin.ui.imgSrcField.addListener('keyup', function (event) {
323
+ plugin.srcChange();
324
+ });
325
+
326
+ plugin.ui.imgSrcField.addListener('blur', function (event) {
327
+ // TODO remove image or do something useful if the user leaves the
328
+ // image without defining a valid image src
329
+ var img = jQuery(plugin.ui.imgSrcField.getTargetObject());
330
+ if (img.attr('src') === '') {
331
+ img.remove();
332
+ } // image removal when src field is blank
333
+ });
334
+ }
335
+
336
+ // Override the default method by using the given one
337
+ if (plugin.settings.onCropped && typeof plugin.settings.onCropped === "function") {
338
+ plugin.onCropped = plugin.settings.onCropped;
339
+ }
340
+
341
+ // Override the default method by using the given one
342
+ if (plugin.settings.onReset && typeof plugin.settings.onReset === "function") {
343
+ plugin.onReset = plugin.settings.onReset;
344
+ }
345
+
346
+ // Override the default method by using the given one
347
+ if (plugin.settings.onResized && typeof plugin.settings.onResized === "function") {
348
+ plugin.onResized = plugin.settings.onResized;
349
+ }
350
+
351
+ // Override the default method by using the given one
352
+ if (plugin.settings.onResize && typeof plugin.settings.onResize === "function") {
353
+ plugin.onResize = this.settings.onResize;
354
+ }
355
+
356
+ },
357
+
358
+ /**
359
+ * Subscribe to Aloha events and DragAndDropPlugin Event
360
+ */
361
+ subscribeEvents: function () {
362
+ var plugin = this;
363
+ var config = this.settings;
364
+
365
+ jQuery('img').filter(config.globalselector).unbind();
366
+ jQuery('img').filter(config.globalselector).click(function (event) {
367
+ plugin.clickImage(event);
368
+ });
369
+
370
+ Aloha.bind('aloha-drop-files-in-editable', function (event, data) {
371
+ var img, len = data.filesObjs.length, fileObj, config;
372
+
373
+ while (--len >= 0) {
374
+ fileObj = data.filesObjs[len];
375
+ if (fileObj.file.type.match(/image\//)) {
376
+ config = plugin.getEditableConfig(data.editable);
377
+ // Prepare
378
+ img = jQuery('<img/>');
379
+ img.css({
380
+ "max-width": that.maxWidth,
381
+ "max-height": that.maxHeight
382
+ });
383
+ img.attr('id', fileObj.id);
384
+ if (typeof fileObj.src === 'undefined') {
385
+ img.attr('src', fileObj.data);
386
+ //fileObj.src = fileObj.data ;
387
+ } else {
388
+ img.attr('src', fileObj.src);
389
+ }
390
+ GENTICS.Utils.Dom.insertIntoDOM(img, data.range, jQuery(Aloha.activeEditable.obj));
391
+ }
392
+ }
393
+
394
+ });
395
+ /*
396
+ * Add the event handler for selection change
397
+ */
398
+ Aloha.bind('aloha-selection-changed', function (event, rangeObject, originalEvent) {
399
+ var config, foundMarkup;
400
+
401
+ if (originalEvent && originalEvent.target) {
402
+ // Check if the element is currently being resized
403
+ if (plugin.settings.ui.resizable && !jQuery(originalEvent.target).hasClass('ui-resizable-handle')) {
404
+ plugin.endResize();
405
+ plugin.imageObj = null;
406
+ Aloha.trigger('aloha-image-unselected');
407
+ }
408
+ }
409
+
410
+ if (Aloha.activeEditable !== null) {
411
+ foundMarkup = plugin.findImgMarkup(rangeObject);
412
+ config = plugin.getEditableConfig(Aloha.activeEditable.obj);
413
+
414
+ if (typeof config !== 'undefined') {
415
+ plugin.ui._insertImageButton.show();
416
+ } else {
417
+ plugin.ui._insertImageButton.hide();
418
+ return;
419
+ }
420
+
421
+ // Enable image specific ui components if the element is an image
422
+ if (foundMarkup) { // TODO : this is always null (below is dead code, moving it to clickImage)
423
+ plugin.ui._insertImageButton.show();
424
+ plugin.ui.setScope();
425
+ if (plugin.settings.ui.meta) {
426
+ plugin.ui.imgSrcField.setTargetObject(foundMarkup, 'src');
427
+ plugin.ui.imgTitleField.setTargetObject(foundMarkup, 'title');
428
+ }
429
+ plugin.ui.imgSrcField.foreground();
430
+ plugin.ui.imgSrcField.focus();
431
+ } else {
432
+ if (plugin.settings.ui.meta) {
433
+ plugin.ui.imgSrcField.setTargetObject(null);
434
+ }
435
+ }
436
+ // TODO this should not be necessary here!
437
+ plugin.ui.doLayout();
438
+ }
439
+
440
+ });
441
+
442
+ Aloha.bind('aloha-editable-created', function (event, editable) {
443
+ try {
444
+ // this disables mozillas image resizing facilities
445
+ document.execCommand('enableObjectResizing', false, false);
446
+ } catch (e) {
447
+ Aloha.Log.info(e, 'Could not disable enableObjectResizing');
448
+ // this is just for other browsers, which do not support disabling enableObjectResizing
449
+ }
450
+
451
+ // Inital click on images will be handled here
452
+ // editable.obj.find('img').attr('_moz_resizing', false);
453
+ // editable.obj.find('img').contentEditable(false);
454
+
455
+ editable.obj.delegate('img', 'mouseup', function (event) {
456
+ if (!resizing) {
457
+ plugin.clickImage(event);
458
+ event.stopPropagation();
459
+ }
460
+ });
461
+ });
462
+
463
+ plugin._subscribeToResizeFieldEvents();
464
+
465
+ },
466
+
467
+
468
+ /**
469
+ * Automatically resize the image to fit into defined bounds.
470
+ * @param doScaleUp if true, small images are scaled up to fit minimum size
471
+ */
472
+ autoResize: function(doScaleUp) {
473
+ // @todo handle ratio mismatches (eg 4:3 is set but image is 16:9 --> image needs to be cut)
474
+
475
+ var that = this;
476
+
477
+ var widthField = jQuery("#" + that.ui.imgResizeWidthField.getInputId());
478
+ var heightField = jQuery("#" + that.ui.imgResizeHeightField.getInputId());
479
+
480
+ var width = that.imageObj.width();
481
+ var height = that.imageObj.height();
482
+ var resize = false;
483
+
484
+ // Only normalize the field values if the image exceeds the defined bounds
485
+ if (width < that.settings.minWidth ||
486
+ width > that.settings.maxWidth ||
487
+ height < that.settings.minHeight ||
488
+ height > that.settings.maxHeight) {
489
+ resize = true;
490
+ }
491
+
492
+ var aspectRatio = width / height;
493
+
494
+ if (resize) {
495
+ if (width > that.settings.maxWidth) {
496
+ width = that.settings.maxWidth;
497
+ height = width / aspectRatio;
498
+ }
499
+
500
+ if (height > that.settings.maxHeight) {
501
+ height = that.settings.maxHeight;
502
+ width = height * aspectRatio;
503
+ }
504
+
505
+ if ((width < that.settings.minWidth) && doScaleUp) {
506
+ width = that.settings.minWidth;
507
+ height = width / aspectRatio;
508
+ }
509
+
510
+ if ((height < that.settings.minHeight) && doScaleUp) {
511
+ height = that.settings.minHeight;
512
+ width = width * aspectRatio;
513
+ }
514
+
515
+ widthField.val(width);
516
+ heightField.val(height);
517
+
518
+ that.setSizeByFieldValue();
519
+ return true;
520
+ }
521
+ return false;
522
+ },
523
+
524
+ /**
525
+ * Toggle the keep aspect ratio functionality
526
+ */
527
+ toggleKeepAspectRatio: function() {
528
+
529
+ this.keepAspectRatio = !this.keepAspectRatio;
530
+
531
+ if (typeof this.jcAPI !== 'undefined' && this.jcAPI !== null) {
532
+ //toggling keepaspectratio during crop is deactivated until implemented
533
+ //this.ui._imageCnrRatioButton.setState(false);
534
+
535
+ } else {
536
+
537
+
538
+ this.endResize();
539
+ if (!this.keepAspectRatio) {
540
+ this.aspectRatioValue = false;
541
+ } else {
542
+ // If no fixed aspect ratio was given a new start aspect ratio is calculated
543
+ // that will be used for the next startResize action
544
+
545
+ if ( typeof this.settings.fixedAspectRatio !== 'number' ) {
546
+ this.aspectRatioValue = this.imageObj.width() / this.imageObj.height();
547
+ } else {
548
+ this.aspectRatioValue = this.settings.fixedAspectRatio;
549
+ }
550
+ }
551
+ this.startResize();
552
+ }
553
+ },
554
+
555
+ /**
556
+ * Bind interaction events that are invoked on the resize fields
557
+ */
558
+ _subscribeToResizeFieldEvents: function () {
559
+ var plugin = this;
560
+
561
+ /**
562
+ * Handle the keyup event on the field
563
+ */
564
+ function handleKeyUpEventOnField(e) {
565
+
566
+ // Load the max/min from the data properties of this event
567
+ var minValue = e.data.minValue;
568
+ var maxValue = e.data.maxValue;
569
+ var fieldName = e.data.fieldName;
570
+
571
+ // Allow backspace and delete
572
+ if (e.keyCode === 8 || e.keyCode === 46) {
573
+
574
+ // Only resize if field values are ok
575
+ if (plugin._updateFields(fieldName, $(this).val(), false)) {
576
+ // Check if we are currently in cropping mode
577
+ if (typeof plugin.jcAPI !== 'undefined' && plugin.jcAPI !== null) {
578
+ plugin.setCropAreaByFieldValue();
579
+ } else {
580
+ plugin.setSizeByFieldValue();
581
+ }
582
+ }
583
+ // 0-9 keys
584
+ } else if (e.keyCode <= 57 && e.keyCode >= 48 || e.keyCode <= 105 && e.keyCode >= 96 ) {
585
+
586
+ // Only resize if field values are ok
587
+ if (plugin._updateFields(fieldName, $(this).val(), false)) {
588
+ // Check if we are currently in cropping mode
589
+ if (typeof plugin.jcAPI !== 'undefined' && plugin.jcAPI !== null) {
590
+ plugin.setCropAreaByFieldValue();
591
+ } else {
592
+ plugin.setSizeByFieldValue();
593
+ }
594
+ }
595
+ } else {
596
+ var delta = 0;
597
+ if (e.keyCode === 38 || e.keyCode === 107) {
598
+ delta = +1;
599
+ } else if (e.keyCode === 40 || e.keyCode === 109) {
600
+ delta = -1;
601
+ }
602
+ // Handle key combinations
603
+ if (e.shiftKey || e.metaKey || e.ctrlKey) {
604
+ delta = delta * 10;
605
+ }
606
+
607
+ var isDecrement = false;
608
+ if (delta < 0) {
609
+ isDecrement = true;
610
+ }
611
+ var newValue = parseInt($(this).val(), 10) + delta;
612
+
613
+ // Only resize if field values are ok
614
+ if (plugin._updateFields(fieldName, newValue, isDecrement)) {
615
+ // Check if we are currently in cropping mode
616
+ if (typeof plugin.jcAPI !== 'undefined' && plugin.jcAPI !== null) {
617
+ plugin.setCropAreaByFieldValue();
618
+ } else {
619
+ plugin.setSizeByFieldValue();
620
+ }
621
+ }
622
+ }
623
+
624
+ e.preventDefault();
625
+ return false;
626
+ }
627
+
628
+ /**
629
+ * Handle the mouse wheel event on the field
630
+ */
631
+ function handleMouseWheelEventOnField(e, delta) {
632
+ var minValue = e.data.minValue;
633
+ var maxValue = e.data.maxValue;
634
+ var fieldName = e.data.fieldName;
635
+
636
+ // Handle key combinations
637
+ if (e.shiftKey || e.metaKey || e.ctrlKey) {
638
+ delta = delta * 10;
639
+ }
640
+
641
+ var newValue = parseInt($(this).val(), 10) + delta;
642
+ var decrement = false;
643
+ if (delta < 0) {
644
+ decrement = true;
645
+ }
646
+
647
+ // Only resize if field values are ok
648
+ if (plugin._updateFields(fieldName, newValue, decrement)) {
649
+ // Check if we are currently in cropping mode
650
+ if (typeof plugin.jcAPI !== 'undefined' && plugin.jcAPI !== null) {
651
+ plugin.setCropAreaByFieldValue();
652
+ } else {
653
+ plugin.setSizeByFieldValue();
654
+ }
655
+ }
656
+ return false;
657
+ }
658
+
659
+ /**
660
+ * Handle mousewheel,keyup actions on both fields
661
+ */
662
+ var $heightField = $('#' + plugin.ui.imgResizeHeightField.getInputId());
663
+ var heightEventData = {fieldName: 'height', maxValue: plugin.ui.imgResizeHeightField.maxValue, minValue: plugin.ui.imgResizeHeightField.minValue };
664
+ $heightField.live('keyup', heightEventData, handleKeyUpEventOnField);
665
+ $heightField.live('mousewheel', heightEventData, handleMouseWheelEventOnField);
666
+
667
+ var $widthField = $('#' + plugin.ui.imgResizeWidthField.getInputId());
668
+ var widthEventData = {fieldName: 'width', maxValue: plugin.ui.imgResizeWidthField.maxValue, minValue: plugin.ui.imgResizeWidthField.minValue};
669
+ $widthField.live('keyup', widthEventData, handleKeyUpEventOnField);
670
+ $widthField.live('mousewheel', widthEventData, handleMouseWheelEventOnField);
671
+
672
+ },
673
+
674
+ /**
675
+ * Manually set the given size for the current image
676
+ */
677
+ setSize: function (width, height) {
678
+
679
+ var plugin = this;
680
+ plugin.imageObj.width(width);
681
+ plugin.imageObj.height(height);
682
+ var $wrapper = plugin.imageObj.closest('.Aloha_Image_Resize');
683
+ $wrapper.height(height);
684
+ $wrapper.width(width);
685
+
686
+ plugin._onResize(plugin.imageObj);
687
+ plugin._onResized(plugin.imageObj);
688
+ },
689
+
690
+ /**
691
+ * This method will handle the mouseUp event on images (eg. within editables).
692
+ * It will if enabled activate the resizing action.
693
+ */
694
+ clickImage: function (e) {
695
+
696
+ var plugin = this;
697
+ plugin.endResize(); // removes previous resize handler
698
+ plugin.imageObj = jQuery(e.target);
699
+ var currentImage = plugin.imageObj;
700
+
701
+ // Ignore any images that are part of the ui (e.g. block edit and delete icons)
702
+ if (currentImage.hasClass('aloha-ui')) {
703
+ return;
704
+ }
705
+
706
+ plugin.ui.setScope();
707
+
708
+ var editable = currentImage.closest('.aloha-editable');
709
+
710
+ this.ui._imageCnrRatioButton.setState(this.keepAspectRatio);
711
+
712
+ // Disabling the content editable. This will disable the resizeHandles in internet explorer
713
+ // already done in resize on a smaller scope, this block next aloha-selection-change event
714
+ // to be thrown
715
+ // editable.contentEditable(false);
716
+
717
+ //Store the current props of the image
718
+ this.restoreProps.push({
719
+ obj : e.srcElement,
720
+ src : plugin.imageObj.attr('src'),
721
+ width : plugin.imageObj.width(),
722
+ height : plugin.imageObj.height()
723
+ });
724
+
725
+ // Update the resize input fields with the new width and height
726
+ var heightField = $('#' + plugin.ui.imgResizeHeightField.getInputId());
727
+ heightField.val(plugin.imageObj.height());
728
+ heightField.css('background-color', '');
729
+
730
+ var widthField = $('#' + plugin.ui.imgResizeWidthField.getInputId());
731
+ widthField.val(plugin.imageObj.width());
732
+ widthField.css('background-color', '');
733
+
734
+ if (plugin.settings.ui.meta) {
735
+ plugin.ui.imgSrcField.setTargetObject(plugin.imageObj, 'src');
736
+ plugin.ui.imgTitleField.setTargetObject(plugin.imageObj, 'title');
737
+ }
738
+ Aloha.Selection.preventSelectionChanged();
739
+ try {
740
+ plugin.ui.imgSrcField.focus();
741
+ } catch(e) {
742
+ // FIXME for some reason execution breaks at this point
743
+ }
744
+
745
+ //to handle switching between images, aspect ratio is recalculated on click
746
+ plugin.aspectRatioValue = plugin.imageObj.width() / plugin.imageObj.height();
747
+
748
+ if (plugin.settings.ui.resizable) {
749
+ plugin.startResize();
750
+ }
751
+
752
+ if (plugin.settings.autoResize) {
753
+ plugin.autoResize(true);
754
+ }
755
+ Aloha.Selection.preventSelectionChangedFlag = false;
756
+ Aloha.trigger('aloha-image-selected');
757
+ },
758
+
759
+ /**
760
+ * This method extracts determins if the range selection contains an image
761
+ *
762
+ * UNUSED as long as clickImage don't change the selection
763
+ * @see getPluginFocus instead
764
+ */
765
+ findImgMarkup: function (range) {
766
+
767
+ var plugin = this;
768
+ var config = this.config;
769
+ var result, targetObj;
770
+
771
+ if (typeof range === 'undefined') {
772
+ range = Aloha.Selection.getRangeObject();
773
+ }
774
+
775
+ targetObj = jQuery(range.startContainer);
776
+
777
+ try {
778
+ if (Aloha.activeEditable) {
779
+ if ((typeof range.startContainer !== 'undefined' &&
780
+ typeof range.startContainer.childNodes !== 'undefined' &&
781
+ typeof range.startOffset !== 'undefined' &&
782
+ typeof range.startContainer.childNodes[range.startOffset] !== 'undefined' &&
783
+ range.startContainer.childNodes[range.startOffset].nodeName.toLowerCase() === 'img' &&
784
+ range.startOffset + 1 === range.endOffset) ||
785
+ (targetObj.hasClass('Aloha_Image_Resize')))
786
+ {
787
+ result = targetObj.find('img')[0];
788
+ if (! result.css) {
789
+ result.css = '';
790
+ }
791
+
792
+ if (! result.title) {
793
+ result.title = '';
794
+ }
795
+
796
+ if (! result.src) {
797
+ result.src = '';
798
+ }
799
+ return result;
800
+ }
801
+ else {
802
+ return null;
803
+ }
804
+ }
805
+ } catch (e) {
806
+ Aloha.Log.debug(e, "Error finding img markup.");
807
+ }
808
+ return null;
809
+ },
810
+ /**
811
+ * Gets the plugin focus target
812
+ */
813
+ getPluginFocus: function () {
814
+ return this.imageObj;
815
+ },
816
+
817
+ /**
818
+ * Helper function that checks a field-input (of height or width), adjusts
819
+ * its value to conform to minimum/maximum values, and corrects the other field
820
+ * if the aspect ratio is to be kept
821
+ * @param primaryFieldName the field which is currently edited ('height' or 'width')
822
+ * @param newValue the value as it was entered into the primary field
823
+ * @param isDecrement true if value is being decreased (by key or mousewheel); prevents decreasing below minimum
824
+ * @return true if values are correct or have been corrected, and image can be resized
825
+ */
826
+ _updateFields: function (primaryFieldName, newValue, isDecrement) {
827
+ var plugin = this;
828
+
829
+ var primaryField = null;
830
+ var secondaryField = null;
831
+
832
+ var adjustedAspectRatio = null;
833
+ var primaryMin = null;
834
+ var primaryMax = null;
835
+ var secondaryMin = null;
836
+ var secondaryMax = null;
837
+
838
+ //depending on the field that is edited, primary and secondary values are set
839
+ if (primaryFieldName == 'width') {
840
+ primaryField = jQuery("#" + plugin.ui.imgResizeWidthField.getInputId());
841
+ secondaryField = jQuery("#" + plugin.ui.imgResizeHeightField.getInputId());
842
+ adjustedAspectRatio = ( 1 / plugin.aspectRatioValue );
843
+
844
+ primaryMin = plugin.settings.minWidth;
845
+ primaryMax = plugin.settings.maxWidth;
846
+ secondaryMin = plugin.settings.minHeight;
847
+ secondaryMax = plugin.settings.maxHeight;
848
+
849
+ } else if (primaryFieldName == 'height') {
850
+ primaryField = jQuery("#" + plugin.ui.imgResizeHeightField.getInputId());
851
+ secondaryField = jQuery("#" + plugin.ui.imgResizeWidthField.getInputId());
852
+ adjustedAspectRatio = plugin.aspectRatioValue;
853
+
854
+ primaryMin = plugin.settings.minHeight;
855
+ primaryMax = plugin.settings.maxHeight;
856
+ secondaryMin = plugin.settings.minWidth;
857
+ secondaryMax = plugin.settings.maxWidth;
858
+ } else {
859
+ //if primaryFieldName is neither width nor height, don't update the fields
860
+ return false;
861
+ }
862
+
863
+ if (isNaN(newValue)) {
864
+ primaryField.css('background-color', 'red');
865
+ // If the current value of the field can't be parsed it is not updated
866
+ return false;
867
+ }
868
+ else {
869
+ primaryField.val(newValue);
870
+ }
871
+
872
+ var correctPrimary = true;
873
+
874
+ if (newValue > primaryMax) {
875
+ // Auto correct out of bounds values
876
+ if (plugin.settings.autoCorrectManualInput) {
877
+ primaryField.val(primaryMax);
878
+ newValue = primaryField.val();
879
+ primaryField.css('background-color', '');
880
+ correctPrimary = true;
881
+ // Just notify the user, do nothing
882
+ } else {
883
+ primaryField.css('background-color', 'red');
884
+ correctPrimary = false;
885
+ }
886
+ } else if (newValue < primaryMin) {
887
+ // Don't let the user decrement values below minimum
888
+ if (isDecrement) {
889
+ primaryField.val(primaryMin);
890
+ newValue = primaryField.val();
891
+ correctPrimary = true;
892
+ // Auto correct out of bounds values
893
+ } else if (plugin.settings.autoCorrectManualInput) {
894
+ primaryField.css('background-color', 'wheat');
895
+ correctPrimary = false;
896
+ // Just notify the user, do nothing
897
+ } else {
898
+ primaryField.css('background-color', 'red');
899
+ correctPrimary = false;
900
+ }
901
+ } else {
902
+ primaryField.css('background-color', '');
903
+ correctPrimary = true;
904
+ }
905
+
906
+ var correctSecondary = true;
907
+
908
+ // if keep aspect ratio is enabled, the field that is not edited is updated as well
909
+ if ( plugin.keepAspectRatio ) {
910
+ var secondary = Math.round(newValue * adjustedAspectRatio);
911
+
912
+ if (secondary > secondaryMax) {
913
+ // Auto correct out of bounds values
914
+ if (plugin.settings.autoCorrectManualInput) {
915
+ secondaryField.val(secondaryMax);
916
+ primaryField.val(secondaryField.val() / adjustedAspectRatio);
917
+ newValue = primaryField.val();
918
+ primaryField.css('background-color', '');
919
+ secondaryField.css('background-color', '');
920
+ correctSecondary = true;
921
+ // Just notify the user, do nothing
922
+ } else {
923
+ secondary.css('background-color', 'red');
924
+ correctSecondary = false;
925
+ }
926
+ } else if (secondary < secondaryMin) {
927
+ // Don't let the user decrement values below minimum
928
+ if (isDecrement) {
929
+ secondaryField.val(secondaryMin);
930
+ primaryField.val(secondaryField.val() / adjustedAspectRatio);
931
+ newValue = primaryField.val();
932
+ correctPrimary = true;
933
+ // Auto correct out of bounds values
934
+ } else if (plugin.settings.autoCorrectManualInput) {
935
+ secondaryField.val(secondary);
936
+ secondaryField.css('background-color', 'wheat');
937
+ correctSecondary = false;
938
+ // Just notify the user, do nothing
939
+ } else {
940
+ secondaryField.css('background-color', 'red');
941
+ correctSecondary = false;
942
+ }
943
+ } else {
944
+ secondaryField.val(secondary);
945
+ secondaryField.css('background-color', '');
946
+ correctSecondary = true;
947
+ }
948
+ }
949
+
950
+ //Success if values are correct or have been adjusted accordingly
951
+ if (correctPrimary && correctSecondary) {
952
+ return true;
953
+ }
954
+ return false;
955
+ },
956
+
957
+ /**
958
+ * Helper function that will set the new image size using the field values
959
+ */
960
+ setSizeByFieldValue: function () {
961
+ var plugin = this;
962
+ var width = $('#' + plugin.ui.imgResizeWidthField.getInputId()).val();
963
+ var height = $('#' + plugin.ui.imgResizeHeightField.getInputId()).val();
964
+ plugin.setSize(width, height);
965
+ },
966
+
967
+ /**
968
+ * Helper function that will set the new crop area width and height using the field values
969
+ */
970
+ setCropAreaByFieldValue: function () {
971
+ var plugin = this;
972
+ var currentCropArea = plugin.jcAPI.tellSelect();
973
+
974
+ var width = $('#' + plugin.ui.imgResizeWidthField.getInputId()).val();
975
+ width = parseInt(width, 10);
976
+ var height = $('#' + plugin.ui.imgResizeHeightField.getInputId()).val();
977
+ height = parseInt(height, 10);
978
+
979
+ var selection = [currentCropArea['x'], currentCropArea['y'], currentCropArea['x'] + width,currentCropArea['y'] + height];
980
+ plugin.jcAPI.setSelect(selection);
981
+ },
982
+
983
+ /**
984
+ * This method will insert a new image dom element into the dom tree
985
+ */
986
+ insertImg: function () {
987
+ var range = Aloha.Selection.getRangeObject(),
988
+ config = this.getEditableConfig(Aloha.activeEditable.obj),
989
+ imagePluginUrl = Aloha.getPluginUrl('image'),
990
+ imagestyle, imagetag, newImg;
991
+
992
+ if (range.isCollapsed()) {
993
+ // TODO I would suggest to call the srcChange method. So all image src
994
+ // changes are on one single point.
995
+ imagestyle = "max-width: " + config.maxWidth + "; max-height: " + config.maxHeight;
996
+ imagetag = '<img style="' + imagestyle + '" src="' + imagePluginUrl + '/img/blank.jpg" title="" />';
997
+ newImg = jQuery(imagetag);
998
+ // add the click selection handler
999
+ //newImg.click( Aloha.Image.clickImage ); - Using delegate now
1000
+ GENTICS.Utils.Dom.insertIntoDOM(newImg, range, jQuery(Aloha.activeEditable.obj));
1001
+
1002
+ } else {
1003
+ Aloha.Log.error('img cannot markup a selection');
1004
+ // TODO the desired behavior could be me the selected content is
1005
+ // replaced by an image.
1006
+ // TODO it should be editor's choice, with an NON-Ext Dialog instead of alert
1007
+
1008
+ }
1009
+ },
1010
+
1011
+ srcChange: function () {
1012
+ // TODO the src changed. I suggest :
1013
+ // 1. set an loading image (I suggest set src base64 enc) to show the user
1014
+ // we are trying to load an image
1015
+ // 2. start a request to get the image
1016
+ // 3a. the image is ok change the src
1017
+ // 3b. the image is not availbable show an error.
1018
+ this.imageObj.attr('src', this.ui.imgSrcField.getValue()); // (the img tag)
1019
+ // jQuery(img).attr('src', this.imgSrcField.getQueryValue()); // (the query value in the inputfield)
1020
+ // this.imgSrcField.getItem(); // (optinal a selected resource item)
1021
+ // TODO additionally implement an srcChange Handler to let implementer
1022
+ // customize
1023
+ },
1024
+
1025
+ /**
1026
+ * Reposition the crop buttons below the crop area
1027
+ */
1028
+ positionCropButtons: function() {
1029
+
1030
+ var jt = jQuery('.jcrop-tracker:first'),
1031
+ off = jt.offset(),
1032
+ jtt = off.top,
1033
+ jtl = off.left,
1034
+ jth = jt.height(),
1035
+ jtw = jt.width();
1036
+
1037
+ var oldLeft = 0,
1038
+ oldTop = 0;
1039
+
1040
+ var btns = jQuery('#aloha-CropNResize-btns');
1041
+
1042
+ // Hack to hide the buttons when the user just clicked into the image
1043
+ if (jtt === 0 && jtl === 0) {
1044
+ btns.hide();
1045
+ }
1046
+
1047
+ // move the icons to the bottom right side
1048
+ jtt = parseInt(jtt + jth + 3, 10);
1049
+ jtl = parseInt(jtl + (jtw / 2) - (btns.width() / 2) + 10, 10);
1050
+
1051
+ // comparison to old values hinders flickering bug in FF
1052
+ if (oldLeft != jtl || oldTop != jtt) {
1053
+ btns.offset({top: jtt, left: jtl});
1054
+ }
1055
+
1056
+ oldLeft = jtl;
1057
+ oldTop = jtt;
1058
+ },
1059
+
1060
+ /**
1061
+ * Code imported from CropnResize Plugin
1062
+ *
1063
+ */
1064
+ initCropButtons: function() {
1065
+ var that = this,
1066
+ btns;
1067
+
1068
+ jQuery('body').append(
1069
+ '<div id="aloha-CropNResize-btns" display="none">' +
1070
+ '<button class="cnr-crop-apply" title="' + i18n.t('Accept') + '"></button>' +
1071
+ '<button class="cnr-crop-cancel" title="' + i18n.t('Cancel') + '"></button>' +
1072
+ '</div>'
1073
+ );
1074
+
1075
+ btns = jQuery('#aloha-CropNResize-btns');
1076
+
1077
+ btns.find('.cnr-crop-apply').click(function () {
1078
+ that.acceptCrop();
1079
+ });
1080
+
1081
+ btns.find('.cnr-crop-cancel').click(function () {
1082
+ that.endCrop();
1083
+ });
1084
+
1085
+ this.interval = setInterval(function () {
1086
+ that.positionCropButtons();
1087
+ }, 10);
1088
+ },
1089
+
1090
+ /**
1091
+ * Destroy crop confirm and cancel buttons
1092
+ */
1093
+ destroyCropButtons: function () {
1094
+ jQuery('#aloha-CropNResize-btns').remove();
1095
+ clearInterval(this.interval);
1096
+ },
1097
+
1098
+ /**
1099
+ * Helper function that will disable selectability of elements
1100
+ */
1101
+ _disableSelection: function (el) {
1102
+ el.find('*').attr('unselectable', 'on')
1103
+ .css({
1104
+ '-moz-user-select':'none',
1105
+ '-webkit-user-select':'none',
1106
+ 'user-select':'none'
1107
+ });
1108
+ /*
1109
+ .each(function() {
1110
+ this.onselectstart = function () { return false; };
1111
+ });
1112
+ */
1113
+
1114
+ },
1115
+
1116
+ /**
1117
+ * Initiate a crop action
1118
+ */
1119
+ crop: function () {
1120
+ var plugin = this;
1121
+ var config = this.config;
1122
+
1123
+ plugin.initCropButtons();
1124
+ if (plugin.settings.ui.resizable) {
1125
+ plugin.endResize();
1126
+ }
1127
+
1128
+ plugin.jcAPI = jQuery.Jcrop(plugin.imageObj, {
1129
+ onSelect : function () {
1130
+ plugin._onCropSelect();
1131
+ // ugly hack to keep scope :(
1132
+ window.setTimeout(function () {
1133
+ plugin.ui.setScope();
1134
+ }, 10);
1135
+ }
1136
+ });
1137
+
1138
+ plugin._disableSelection($('.jcrop-holder'));
1139
+ plugin._disableSelection($('#imageContainer'));
1140
+ plugin._disableSelection($('#aloha-CropNResize-btns'));
1141
+ $('body').trigger('aloha-image-crop-start', [plugin.imageObj]);
1142
+ },
1143
+
1144
+ /**
1145
+ * Internal on crop select method
1146
+ */
1147
+ _onCropSelect: function () {
1148
+ var plugin = this;
1149
+
1150
+ jQuery('#aloha-CropNResize-btns').fadeIn('slow');
1151
+
1152
+ // Hide the crop buttons when the one of the handles is clicked
1153
+ jQuery('.jcrop-handle').mousedown(function () {
1154
+ jQuery('#aloha-CropNResize-btns').hide();
1155
+ });
1156
+
1157
+ jQuery('.jcrop-tracker').mousedown(function () {
1158
+ jQuery('#aloha-CropNResize-btns').hide();
1159
+ });
1160
+
1161
+ // Update the width and height field using the initial active crop area values
1162
+ if (typeof plugin.jcAPI !== 'undefined' && plugin.jcAPI !== null) {
1163
+
1164
+ plugin.positionCropButtons();
1165
+ var currentCropArea = plugin.jcAPI.tellSelect();
1166
+
1167
+ var widthField = jQuery("#" + plugin.ui.imgResizeWidthField.getInputId()).val(currentCropArea['w']);
1168
+ var heightField = jQuery("#" + plugin.ui.imgResizeHeightField.getInputId()).val(currentCropArea['h']);
1169
+
1170
+ }
1171
+
1172
+ },
1173
+
1174
+
1175
+ /**
1176
+ * Terminates a crop
1177
+ */
1178
+ endCrop: function () {
1179
+ if (this.jcAPI) {
1180
+ this.jcAPI.destroy();
1181
+ this.jcAPI = null;
1182
+ }
1183
+
1184
+ this.destroyCropButtons();
1185
+ this.ui._imageCropButton.setState(false);
1186
+
1187
+ if (this.settings.ui.resizable) {
1188
+ this.startResize();
1189
+ }
1190
+
1191
+ $('body').trigger('aloha-image-crop-stop', [this.imageObj]);
1192
+
1193
+ //after cropping, field values are set to (once again) contain image width/height
1194
+ $('#' + this.ui.imgResizeHeightField.getInputId()).val(this.imageObj.height());
1195
+ $('#' + this.ui.imgResizeWidthField.getInputId()).val(this.imageObj.width());
1196
+
1197
+ },
1198
+
1199
+ /**
1200
+ * Accept the current cropping area and apply the crop
1201
+ */
1202
+ acceptCrop: function () {
1203
+ this._onCropped(this.imageObj, this.jcAPI.tellSelect());
1204
+ this.endCrop();
1205
+ },
1206
+
1207
+ /**
1208
+ * This method will activate the jquery-ui resize functionality for the current image
1209
+ */
1210
+ startResize: function () {
1211
+ var plugin = this;
1212
+ var currentImageObj = this.imageObj;
1213
+ var ratio = plugin.keepAspectRatio ? plugin.aspectRatioValue : false;
1214
+
1215
+ currentImageObj = this.imageObj.css({
1216
+ height : this.imageObj.height(),
1217
+ width : this.imageObj.width(),
1218
+ position : 'relative',
1219
+ 'max-height': '',
1220
+ 'max-width' : ''
1221
+ });
1222
+
1223
+ currentImageObj.resizable({
1224
+ maxHeight : plugin.settings.maxHeight,
1225
+ minHeight : plugin.settings.minHeight,
1226
+ maxWidth : plugin.settings.maxWidth,
1227
+ minWidth : plugin.settings.minWidth,
1228
+ aspectRatio : ratio,
1229
+ handles: plugin.settings.handles,
1230
+ grid : plugin.settings.grid,
1231
+ resize: function (event, ui) {
1232
+ resizing = true;
1233
+ plugin._onResize(plugin.imageObj);
1234
+ },
1235
+ stop : function (event, ui) {
1236
+ resizing = false;
1237
+
1238
+ plugin._onResized(plugin.imageObj);
1239
+
1240
+ // Workaround to finish cropping
1241
+ if (this.enableCrop) {
1242
+ window.setTimeout(function () {
1243
+ plugin.ui.setScope();
1244
+ that.done(event);
1245
+ }, 10);
1246
+ }
1247
+ }
1248
+
1249
+ });
1250
+
1251
+ currentImageObj.css('display', 'inline-block');
1252
+
1253
+ // this will prevent the user from resizing an image
1254
+ // using IE's resize handles
1255
+ // however I could not manage to hide them completely
1256
+ jQuery('.ui-wrapper')
1257
+ .attr('contentEditable', false)
1258
+ .addClass('aloha-image-box-active Aloha_Image_Resize aloha')
1259
+ .css({
1260
+ position: 'relative',
1261
+ display: 'inline-block',
1262
+ 'float': plugin.imageObj.css('float')
1263
+ })
1264
+ .bind('resizestart', function (e) {
1265
+ e.preventDefault();
1266
+ })
1267
+ .bind('mouseup', function (e) {
1268
+ e.originalEvent.stopSelectionUpdate = true;
1269
+ });
1270
+ },
1271
+
1272
+ /**
1273
+ * This method will end resizing and toggle buttons accordingly and remove all markup that has been added for cropping
1274
+ */
1275
+ endResize: function () {
1276
+ // Find the nearest contenteditable and reenable it since resizing is finished
1277
+ if (this.imageObj) {
1278
+ var editable = this.imageObj.closest('.aloha-editable');
1279
+ //this.imageObj.contentEditable(true);
1280
+ }
1281
+
1282
+ if (this.imageObj && this.imageObj.is(":ui-resizable")) {
1283
+ this.imageObj
1284
+ .resizable('destroy')
1285
+ .css({
1286
+ top : 0,
1287
+ left : 0
1288
+ });
1289
+ }
1290
+ },
1291
+
1292
+ resetSize: function () {
1293
+ var plugin = this,
1294
+ img = new Image();
1295
+ img.onload = function () {
1296
+ var myimage = plugin.getPluginFocus();
1297
+ if (plugin.settings.ui.resizable) {
1298
+ plugin.endResize();
1299
+ }
1300
+ jQuery(myimage).add(myimage.parent()).css({
1301
+ 'width': img.width + 'px',
1302
+ 'height': img.height + 'px',
1303
+ 'max-width': '',
1304
+ 'max-height': ''
1305
+ });
1306
+ if (plugin.settings.ui.resizable) {
1307
+ plugin.resize();
1308
+ }
1309
+ };
1310
+ img.src = plugin.getPluginFocus().attr('src');
1311
+ },
1312
+ /**
1313
+ * Reset the image to its original properties
1314
+ */
1315
+ reset: function () {
1316
+ if (this.settings.ui.crop) {
1317
+ this.endCrop();
1318
+ }
1319
+
1320
+ if (this.settings.ui.resizable) {
1321
+ this.endResize();
1322
+ }
1323
+
1324
+ if (this._onReset(this.imageObj)) {
1325
+ // the external reset procedure has already performed a reset, so there is no need to apply an internal reset
1326
+ return;
1327
+ }
1328
+
1329
+ for (var i = 0;i < this.restoreProps.length;i++) {
1330
+ // restore from restoreProps if there is a match
1331
+ if (this.imageObj.get(0) === this.restoreProps[i].obj) {
1332
+ this.imageObj.attr('src', this.restoreProps[i].src);
1333
+ this.imageObj.width(this.restoreProps[i].width);
1334
+ this.imageObj.height(this.restoreProps[i].height);
1335
+ return;
1336
+ }
1337
+ }
1338
+ }
1339
+ });
1340
+
1341
+ });