erp_app 3.0.7 → 3.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (537) hide show
  1. data/README.md +23 -0
  2. data/app/controllers/erp_app/application_controller.rb +1 -0
  3. data/app/controllers/erp_app/desktop/file_manager/base_controller.rb +33 -23
  4. data/app/controllers/erp_app/public_controller.rb +2 -3
  5. data/app/controllers/erp_app/shared/configuration_controller.rb +1 -0
  6. data/app/controllers/erp_app/shared/notes_controller.rb +1 -0
  7. data/app/controllers/erp_app/shared/profile_management_controller.rb +22 -0
  8. data/app/controllers/erp_app/widget_proxy_controller.rb +2 -1
  9. data/app/models/configuration.rb +7 -0
  10. data/app/views/erp_app/desktop/base/index.erb +2 -3
  11. data/app/views/erp_app/login/index.erb +1 -1
  12. data/app/views/erp_app/mobile/base/index.erb +1 -0
  13. data/app/views/erp_app/organizer/base/index.erb +2 -3
  14. data/config/routes.rb +1 -1
  15. data/lib/active_ext/ext_helpers/column_builder.rb +118 -118
  16. data/lib/erp_app/config.rb +8 -4
  17. data/lib/erp_app/extensions/railties/action_view/base.rb +0 -1
  18. data/lib/erp_app/extensions/railties/action_view/helpers/include_helper.rb +18 -3
  19. data/lib/erp_app/version.rb +1 -1
  20. data/lib/erp_app/widgets/base.rb +5 -4
  21. data/lib/erp_app/widgets/loader.rb +2 -2
  22. data/public/images/btn/left_panel/left_panel_16x16.png +0 -0
  23. data/public/images/btn/left_right_panel/left_right_panel_16x16.png +0 -0
  24. data/public/images/btn/right_panel/right_panel_16x16.png +0 -0
  25. data/public/images/btn/save/save_16x16.png +0 -0
  26. data/public/images/btn/save_all/save_all_16x16.png +0 -0
  27. data/public/javascripts/erp_app/ckeditor/ckeditor.js +138 -135
  28. data/public/javascripts/erp_app/ckeditor/config.js +1 -1
  29. data/public/javascripts/erp_app/ckeditor/contents.css +1 -1
  30. data/public/javascripts/erp_app/ckeditor/lang/_languages.js +1 -1
  31. data/public/javascripts/erp_app/ckeditor/lang/_translationstatus.txt +62 -59
  32. data/public/javascripts/erp_app/ckeditor/lang/af.js +2 -2
  33. data/public/javascripts/erp_app/ckeditor/lang/ar.js +2 -2
  34. data/public/javascripts/erp_app/ckeditor/lang/bg.js +2 -2
  35. data/public/javascripts/erp_app/ckeditor/lang/bn.js +2 -2
  36. data/public/javascripts/erp_app/ckeditor/lang/bs.js +2 -2
  37. data/public/javascripts/erp_app/ckeditor/lang/ca.js +2 -2
  38. data/public/javascripts/erp_app/ckeditor/lang/cs.js +2 -2
  39. data/public/javascripts/erp_app/ckeditor/lang/cy.js +2 -2
  40. data/public/javascripts/erp_app/ckeditor/lang/da.js +2 -2
  41. data/public/javascripts/erp_app/ckeditor/lang/de.js +2 -2
  42. data/public/javascripts/erp_app/ckeditor/lang/el.js +2 -2
  43. data/public/javascripts/erp_app/ckeditor/lang/en-au.js +2 -2
  44. data/public/javascripts/erp_app/ckeditor/lang/en-ca.js +2 -2
  45. data/public/javascripts/erp_app/ckeditor/lang/en-gb.js +2 -2
  46. data/public/javascripts/erp_app/ckeditor/lang/en.js +2 -2
  47. data/public/javascripts/erp_app/ckeditor/lang/eo.js +2 -2
  48. data/public/javascripts/erp_app/ckeditor/lang/es.js +2 -2
  49. data/public/javascripts/erp_app/ckeditor/lang/et.js +2 -2
  50. data/public/javascripts/erp_app/ckeditor/lang/eu.js +2 -2
  51. data/public/javascripts/erp_app/ckeditor/lang/fa.js +2 -2
  52. data/public/javascripts/erp_app/ckeditor/lang/fi.js +2 -2
  53. data/public/javascripts/erp_app/ckeditor/lang/fo.js +2 -2
  54. data/public/javascripts/erp_app/ckeditor/lang/fr-ca.js +2 -2
  55. data/public/javascripts/erp_app/ckeditor/lang/fr.js +2 -2
  56. data/public/javascripts/erp_app/ckeditor/lang/gl.js +2 -2
  57. data/public/javascripts/erp_app/ckeditor/lang/gu.js +2 -2
  58. data/public/javascripts/erp_app/ckeditor/lang/he.js +2 -2
  59. data/public/javascripts/erp_app/ckeditor/lang/hi.js +2 -2
  60. data/public/javascripts/erp_app/ckeditor/lang/hr.js +2 -2
  61. data/public/javascripts/erp_app/ckeditor/lang/hu.js +2 -2
  62. data/public/javascripts/erp_app/ckeditor/lang/id.js +6 -0
  63. data/public/javascripts/erp_app/ckeditor/lang/is.js +2 -2
  64. data/public/javascripts/erp_app/ckeditor/lang/it.js +2 -2
  65. data/public/javascripts/erp_app/ckeditor/lang/ja.js +2 -2
  66. data/public/javascripts/erp_app/ckeditor/lang/ka.js +2 -2
  67. data/public/javascripts/erp_app/ckeditor/lang/km.js +2 -2
  68. data/public/javascripts/erp_app/ckeditor/lang/ko.js +2 -2
  69. data/public/javascripts/erp_app/ckeditor/lang/lt.js +2 -2
  70. data/public/javascripts/erp_app/ckeditor/lang/lv.js +2 -2
  71. data/public/javascripts/erp_app/ckeditor/lang/mk.js +6 -0
  72. data/public/javascripts/erp_app/ckeditor/lang/mn.js +2 -2
  73. data/public/javascripts/erp_app/ckeditor/lang/ms.js +2 -2
  74. data/public/javascripts/erp_app/ckeditor/lang/nb.js +2 -2
  75. data/public/javascripts/erp_app/ckeditor/lang/nl.js +2 -2
  76. data/public/javascripts/erp_app/ckeditor/lang/no.js +2 -2
  77. data/public/javascripts/erp_app/ckeditor/lang/pl.js +2 -2
  78. data/public/javascripts/erp_app/ckeditor/lang/pt-br.js +2 -2
  79. data/public/javascripts/erp_app/ckeditor/lang/pt.js +2 -2
  80. data/public/javascripts/erp_app/ckeditor/lang/ro.js +2 -2
  81. data/public/javascripts/erp_app/ckeditor/lang/ru.js +2 -2
  82. data/public/javascripts/erp_app/ckeditor/lang/sk.js +2 -2
  83. data/public/javascripts/erp_app/ckeditor/lang/sl.js +2 -2
  84. data/public/javascripts/erp_app/ckeditor/lang/sr-latn.js +2 -2
  85. data/public/javascripts/erp_app/ckeditor/lang/sr.js +2 -2
  86. data/public/javascripts/erp_app/ckeditor/lang/sv.js +2 -2
  87. data/public/javascripts/erp_app/ckeditor/lang/th.js +2 -2
  88. data/public/javascripts/erp_app/ckeditor/lang/tr.js +2 -2
  89. data/public/javascripts/erp_app/ckeditor/lang/ug.js +6 -0
  90. data/public/javascripts/erp_app/ckeditor/lang/uk.js +2 -2
  91. data/public/javascripts/erp_app/ckeditor/lang/vi.js +2 -2
  92. data/public/javascripts/erp_app/ckeditor/lang/zh-cn.js +2 -2
  93. data/public/javascripts/erp_app/ckeditor/lang/zh.js +2 -2
  94. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +1 -1
  95. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/_translationstatus.txt +25 -0
  96. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/cs.js +6 -0
  97. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/cy.js +6 -0
  98. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/da.js +6 -0
  99. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/de.js +6 -0
  100. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/el.js +6 -0
  101. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/en.js +2 -2
  102. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/eo.js +6 -0
  103. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/fa.js +6 -0
  104. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/fi.js +6 -0
  105. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/fr.js +6 -0
  106. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/gu.js +6 -0
  107. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/he.js +2 -2
  108. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/it.js +6 -0
  109. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/mk.js +6 -0
  110. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/nb.js +6 -0
  111. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/nl.js +6 -0
  112. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/no.js +6 -0
  113. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/pt-br.js +6 -0
  114. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/ro.js +6 -0
  115. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/tr.js +6 -0
  116. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/ug.js +6 -0
  117. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/vi.js +6 -0
  118. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/zh-cn.js +6 -0
  119. data/public/javascripts/erp_app/ckeditor/plugins/about/dialogs/about.js +1 -1
  120. data/public/javascripts/erp_app/ckeditor/plugins/adobeair/plugin.js +1 -1
  121. data/public/javascripts/erp_app/ckeditor/plugins/ajax/plugin.js +1 -1
  122. data/public/javascripts/erp_app/ckeditor/plugins/autogrow/plugin.js +2 -2
  123. data/public/javascripts/erp_app/ckeditor/plugins/bbcode/plugin.js +1 -1
  124. data/public/javascripts/erp_app/ckeditor/plugins/clipboard/dialogs/paste.js +2 -2
  125. data/public/javascripts/erp_app/ckeditor/plugins/colordialog/dialogs/colordialog.js +3 -3
  126. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/_translationstatus.txt +28 -0
  127. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/bg.js +6 -0
  128. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/cs.js +6 -0
  129. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/cy.js +6 -0
  130. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/da.js +6 -0
  131. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/de.js +6 -0
  132. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/el.js +6 -0
  133. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/en.js +1 -1
  134. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/eo.js +6 -0
  135. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/et.js +6 -0
  136. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/fa.js +6 -0
  137. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/fi.js +6 -0
  138. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/fr.js +6 -0
  139. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/gu.js +6 -0
  140. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/he.js +6 -0
  141. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/hr.js +6 -0
  142. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/it.js +6 -0
  143. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/nb.js +6 -0
  144. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/nl.js +6 -0
  145. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/no.js +6 -0
  146. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/pl.js +6 -0
  147. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/pt-br.js +6 -0
  148. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/tr.js +6 -0
  149. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/ug.js +6 -0
  150. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/uk.js +6 -0
  151. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/vi.js +6 -0
  152. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/zh-cn.js +6 -0
  153. data/public/javascripts/erp_app/ckeditor/plugins/devtools/plugin.js +2 -2
  154. data/public/javascripts/erp_app/ckeditor/plugins/dialog/dialogDefinition.js +1 -1
  155. data/public/javascripts/erp_app/ckeditor/plugins/div/dialogs/div.js +1 -1
  156. data/public/javascripts/erp_app/ckeditor/plugins/docprops/dialogs/docprops.js +1 -1
  157. data/public/javascripts/erp_app/ckeditor/plugins/docprops/plugin.js +1 -1
  158. data/public/javascripts/erp_app/ckeditor/plugins/find/dialogs/find.js +3 -3
  159. data/public/javascripts/erp_app/ckeditor/plugins/flash/dialogs/flash.js +4 -4
  160. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/button.js +1 -1
  161. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/checkbox.js +1 -1
  162. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/form.js +1 -1
  163. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/hiddenfield.js +1 -1
  164. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/radio.js +1 -1
  165. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/select.js +1 -1
  166. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/textarea.js +1 -1
  167. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/textfield.js +1 -1
  168. data/public/javascripts/erp_app/ckeditor/plugins/iframe/dialogs/iframe.js +1 -1
  169. data/public/javascripts/erp_app/ckeditor/plugins/iframedialog/plugin.js +1 -1
  170. data/public/javascripts/erp_app/ckeditor/plugins/image/dialogs/image.js +9 -9
  171. data/public/javascripts/erp_app/ckeditor/plugins/inlineeditsave/plugin.js +40 -0
  172. data/public/javascripts/erp_app/ckeditor/plugins/link/dialogs/anchor.js +2 -2
  173. data/public/javascripts/erp_app/ckeditor/plugins/link/dialogs/link.js +5 -5
  174. data/public/javascripts/erp_app/ckeditor/plugins/liststyle/dialogs/liststyle.js +1 -1
  175. data/public/javascripts/erp_app/ckeditor/plugins/pastefromword/filter/default.js +1 -1
  176. data/public/javascripts/erp_app/ckeditor/plugins/pastetext/dialogs/pastetext.js +1 -1
  177. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/dialogs/placeholder.js +1 -1
  178. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/_translationstatus.txt +27 -0
  179. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/bg.js +6 -0
  180. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/cs.js +6 -0
  181. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/cy.js +6 -0
  182. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/da.js +6 -0
  183. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/de.js +6 -0
  184. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/el.js +6 -0
  185. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/en.js +1 -1
  186. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/eo.js +6 -0
  187. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/et.js +6 -0
  188. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/fa.js +6 -0
  189. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/fi.js +6 -0
  190. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/fr.js +6 -0
  191. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/he.js +1 -1
  192. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/hr.js +6 -0
  193. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/it.js +6 -0
  194. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/nb.js +6 -0
  195. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/nl.js +6 -0
  196. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/no.js +6 -0
  197. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/pl.js +6 -0
  198. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/pt-br.js +6 -0
  199. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/tr.js +6 -0
  200. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/ug.js +6 -0
  201. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/uk.js +6 -0
  202. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/vi.js +6 -0
  203. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/zh-cn.js +6 -0
  204. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/plugin.js +2 -2
  205. data/public/javascripts/erp_app/ckeditor/plugins/preview/preview.html +10 -0
  206. data/public/javascripts/erp_app/ckeditor/plugins/scayt/dialogs/options.js +1 -1
  207. data/public/javascripts/erp_app/ckeditor/plugins/scayt/dialogs/toolbar.css +1 -1
  208. data/public/javascripts/erp_app/ckeditor/plugins/smiley/dialogs/smiley.js +1 -1
  209. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/specialchar.js +1 -1
  210. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/_translationstatus.txt +22 -0
  211. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/cs.js +6 -0
  212. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/cy.js +6 -0
  213. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/de.js +6 -0
  214. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/el.js +6 -0
  215. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/en.js +1 -1
  216. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/eo.js +6 -0
  217. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/et.js +6 -0
  218. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/fa.js +6 -0
  219. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/fi.js +6 -0
  220. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/fr.js +6 -0
  221. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/he.js +6 -0
  222. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/hr.js +6 -0
  223. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/it.js +6 -0
  224. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/nb.js +6 -0
  225. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/nl.js +6 -0
  226. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/no.js +6 -0
  227. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/pt-br.js +6 -0
  228. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/tr.js +6 -0
  229. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/ug.js +6 -0
  230. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/zh-cn.js +6 -0
  231. data/public/javascripts/erp_app/ckeditor/plugins/styles/styles/default.js +1 -1
  232. data/public/javascripts/erp_app/ckeditor/plugins/stylesheetparser/plugin.js +1 -1
  233. data/public/javascripts/erp_app/ckeditor/plugins/table/dialogs/table.js +5 -5
  234. data/public/javascripts/erp_app/ckeditor/plugins/tableresize/plugin.js +1 -1
  235. data/public/javascripts/erp_app/ckeditor/plugins/tabletools/dialogs/tableCell.js +3 -3
  236. data/public/javascripts/erp_app/ckeditor/plugins/templates/dialogs/templates.js +1 -1
  237. data/public/javascripts/erp_app/ckeditor/plugins/templates/templates/default.js +1 -1
  238. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/dialogs/uicolor.js +1 -1
  239. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/_translationstatus.txt +28 -0
  240. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/bg.js +6 -0
  241. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/cs.js +6 -0
  242. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/cy.js +6 -0
  243. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/da.js +6 -0
  244. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/de.js +6 -0
  245. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/el.js +6 -0
  246. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/en.js +1 -1
  247. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/eo.js +6 -0
  248. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/et.js +6 -0
  249. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/fa.js +6 -0
  250. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/fi.js +6 -0
  251. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/fr.js +6 -0
  252. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/he.js +1 -1
  253. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/hr.js +6 -0
  254. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/it.js +6 -0
  255. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/mk.js +6 -0
  256. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/nb.js +6 -0
  257. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/nl.js +6 -0
  258. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/no.js +6 -0
  259. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/pl.js +6 -0
  260. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/pt-br.js +6 -0
  261. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/tr.js +6 -0
  262. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/ug.js +6 -0
  263. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/uk.js +6 -0
  264. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/vi.js +6 -0
  265. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/zh-cn.js +6 -0
  266. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/plugin.js +2 -2
  267. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/yui/assets/yui.css +1 -1
  268. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/yui/yui.js +1 -1
  269. data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/ciframe.html +1 -1
  270. data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +1 -1
  271. data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/wsc.css +1 -1
  272. data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/wsc.js +1 -1
  273. data/public/javascripts/erp_app/ckeditor/plugins/xml/plugin.js +1 -1
  274. data/public/javascripts/erp_app/ckeditor/skins/kama/dialog.css +6 -6
  275. data/public/javascripts/erp_app/ckeditor/skins/kama/editor.css +1 -1
  276. data/public/javascripts/erp_app/ckeditor/skins/kama/skin.js +1 -1
  277. data/public/javascripts/erp_app/ckeditor/skins/kama/templates.css +1 -1
  278. data/public/javascripts/erp_app/ckeditor/skins/office2003/dialog.css +6 -5
  279. data/public/javascripts/erp_app/ckeditor/skins/office2003/editor.css +1 -1
  280. data/public/javascripts/erp_app/ckeditor/skins/office2003/skin.js +1 -1
  281. data/public/javascripts/erp_app/ckeditor/skins/office2003/templates.css +1 -1
  282. data/public/javascripts/erp_app/ckeditor/skins/v2/dialog.css +5 -5
  283. data/public/javascripts/erp_app/ckeditor/skins/v2/editor.css +1 -1
  284. data/public/javascripts/erp_app/ckeditor/skins/v2/skin.js +1 -1
  285. data/public/javascripts/erp_app/ckeditor/skins/v2/templates.css +1 -1
  286. data/public/javascripts/erp_app/ckeditor/themes/default/theme.js +1 -1
  287. data/public/javascripts/erp_app/ckeditor_example_config_override.js +2 -1
  288. data/public/javascripts/erp_app/codemirror/LICENSE +5 -1
  289. data/public/javascripts/erp_app/codemirror/README.md +6 -4
  290. data/public/javascripts/erp_app/codemirror/{css → doc}/baboon.png +0 -0
  291. data/public/javascripts/erp_app/codemirror/{css → doc}/baboon_vector.svg +0 -0
  292. data/public/javascripts/erp_app/codemirror/doc/compress.html +155 -0
  293. data/public/javascripts/erp_app/codemirror/{css → doc}/docs.css +0 -0
  294. data/public/javascripts/erp_app/codemirror/doc/internals.html +494 -0
  295. data/public/javascripts/erp_app/codemirror/{manual.html → doc/manual.html} +465 -167
  296. data/public/javascripts/erp_app/codemirror/doc/oldrelease.html +267 -0
  297. data/public/javascripts/erp_app/codemirror/doc/reporting.html +57 -0
  298. data/public/javascripts/erp_app/codemirror/doc/upgrade_v2.2.html +95 -0
  299. data/public/javascripts/erp_app/codemirror/keymap/emacs.js +29 -0
  300. data/public/javascripts/erp_app/codemirror/keymap/vim.js +785 -0
  301. data/public/javascripts/erp_app/codemirror/lib/codemirror.css +116 -14
  302. data/public/javascripts/erp_app/codemirror/lib/codemirror.js +2128 -1054
  303. data/public/javascripts/erp_app/codemirror/lib/util/closetag.js +164 -0
  304. data/public/javascripts/erp_app/codemirror/lib/util/dialog.css +27 -0
  305. data/public/javascripts/erp_app/codemirror/lib/util/dialog.js +67 -0
  306. data/public/javascripts/erp_app/codemirror/lib/util/foldcode.js +196 -0
  307. data/public/javascripts/erp_app/codemirror/lib/util/formatting.js +299 -0
  308. data/public/javascripts/erp_app/codemirror/lib/util/javascript-hint.js +134 -0
  309. data/public/javascripts/erp_app/codemirror/lib/util/loadmode.js +51 -0
  310. data/public/javascripts/erp_app/codemirror/lib/util/match-highlighter.js +44 -0
  311. data/public/javascripts/erp_app/codemirror/lib/util/multiplex.js +81 -0
  312. data/public/javascripts/erp_app/codemirror/lib/{overlay.js → util/overlay.js} +3 -2
  313. data/public/javascripts/erp_app/codemirror/lib/util/pig-hint.js +123 -0
  314. data/public/javascripts/erp_app/codemirror/lib/util/runmode.js +49 -0
  315. data/public/javascripts/erp_app/codemirror/lib/util/search.js +118 -0
  316. data/public/javascripts/erp_app/codemirror/lib/util/searchcursor.js +117 -0
  317. data/public/javascripts/erp_app/codemirror/lib/util/simple-hint.css +16 -0
  318. data/public/javascripts/erp_app/codemirror/lib/util/simple-hint.js +76 -0
  319. data/public/javascripts/erp_app/codemirror/lib/util/xml-hint.js +137 -0
  320. data/public/javascripts/erp_app/codemirror/mode/clike/clike.js +50 -17
  321. data/public/javascripts/erp_app/codemirror/mode/clike/index.html +4 -5
  322. data/public/javascripts/erp_app/codemirror/mode/clike/scala.html +765 -0
  323. data/public/javascripts/erp_app/codemirror/mode/clojure/clojure.js +207 -0
  324. data/public/javascripts/erp_app/codemirror/mode/clojure/index.html +66 -0
  325. data/public/javascripts/erp_app/codemirror/mode/coffeescript/coffeescript.js +101 -63
  326. data/public/javascripts/erp_app/codemirror/mode/coffeescript/index.html +9 -4
  327. data/public/javascripts/erp_app/codemirror/mode/css/css.js +4 -4
  328. data/public/javascripts/erp_app/codemirror/mode/css/index.html +3 -4
  329. data/public/javascripts/erp_app/codemirror/mode/diff/diff.js +24 -5
  330. data/public/javascripts/erp_app/codemirror/mode/diff/index.html +12 -7
  331. data/public/javascripts/erp_app/codemirror/mode/ecl/ecl.js +203 -0
  332. data/public/javascripts/erp_app/codemirror/mode/ecl/index.html +42 -0
  333. data/public/javascripts/erp_app/codemirror/mode/erlang/erlang.js +463 -0
  334. data/public/javascripts/erp_app/codemirror/mode/erlang/index.html +62 -0
  335. data/public/javascripts/erp_app/codemirror/mode/gfm/gfm.js +144 -0
  336. data/public/javascripts/erp_app/codemirror/mode/gfm/index.html +47 -0
  337. data/public/javascripts/erp_app/codemirror/mode/go/go.js +170 -0
  338. data/public/javascripts/erp_app/codemirror/mode/go/index.html +72 -0
  339. data/public/javascripts/erp_app/codemirror/mode/groovy/groovy.js +210 -0
  340. data/public/javascripts/erp_app/codemirror/mode/groovy/index.html +71 -0
  341. data/public/javascripts/erp_app/codemirror/mode/haskell/index.html +3 -3
  342. data/public/javascripts/erp_app/codemirror/mode/haxe/haxe.js +432 -0
  343. data/public/javascripts/erp_app/codemirror/mode/haxe/index.html +90 -0
  344. data/public/javascripts/erp_app/codemirror/mode/htmlembedded/htmlembedded.js +68 -0
  345. data/public/javascripts/erp_app/codemirror/mode/htmlembedded/index.html +49 -0
  346. data/public/javascripts/erp_app/codemirror/mode/htmlmixed/htmlmixed.js +8 -2
  347. data/public/javascripts/erp_app/codemirror/mode/htmlmixed/index.html +3 -4
  348. data/public/javascripts/erp_app/codemirror/mode/javascript/index.html +3 -4
  349. data/public/javascripts/erp_app/codemirror/mode/javascript/javascript.js +26 -13
  350. data/public/javascripts/erp_app/codemirror/mode/jinja2/index.html +37 -0
  351. data/public/javascripts/erp_app/codemirror/mode/jinja2/jinja2.js +42 -0
  352. data/public/javascripts/erp_app/codemirror/mode/less/index.html +618 -0
  353. data/public/javascripts/erp_app/codemirror/mode/less/less.js +232 -0
  354. data/public/javascripts/erp_app/codemirror/mode/lua/index.html +3 -3
  355. data/public/javascripts/erp_app/codemirror/mode/lua/lua.js +5 -3
  356. data/public/javascripts/erp_app/codemirror/mode/markdown/index.html +340 -0
  357. data/public/javascripts/erp_app/codemirror/mode/markdown/markdown.js +268 -0
  358. data/public/javascripts/erp_app/codemirror/mode/mysql/index.html +41 -0
  359. data/public/javascripts/erp_app/codemirror/mode/mysql/mysql.js +186 -0
  360. data/public/javascripts/erp_app/codemirror/mode/ntriples/index.html +32 -0
  361. data/public/javascripts/erp_app/codemirror/mode/ntriples/ntriples.js +172 -0
  362. data/public/javascripts/erp_app/codemirror/mode/ocaml/index.html +130 -0
  363. data/public/javascripts/erp_app/codemirror/mode/ocaml/ocaml.js +114 -0
  364. data/public/javascripts/erp_app/codemirror/mode/pascal/LICENSE +7 -0
  365. data/public/javascripts/erp_app/codemirror/mode/pascal/index.html +48 -0
  366. data/public/javascripts/erp_app/codemirror/mode/pascal/pascal.js +94 -0
  367. data/public/javascripts/erp_app/codemirror/mode/perl/LICENSE +19 -0
  368. data/public/javascripts/erp_app/codemirror/mode/perl/index.html +62 -0
  369. data/public/javascripts/erp_app/codemirror/mode/perl/perl.js +816 -0
  370. data/public/javascripts/erp_app/codemirror/mode/php/index.html +4 -5
  371. data/public/javascripts/erp_app/codemirror/mode/php/php.js +62 -27
  372. data/public/javascripts/erp_app/codemirror/mode/pig/index.html +42 -0
  373. data/public/javascripts/erp_app/codemirror/mode/pig/pig.js +172 -0
  374. data/public/javascripts/erp_app/codemirror/mode/plsql/index.html +3 -4
  375. data/public/javascripts/erp_app/codemirror/mode/plsql/plsql.js +2 -2
  376. data/public/javascripts/erp_app/codemirror/mode/properties/index.html +40 -0
  377. data/public/javascripts/erp_app/codemirror/mode/properties/properties.js +63 -0
  378. data/public/javascripts/erp_app/codemirror/mode/python/index.html +3 -4
  379. data/public/javascripts/erp_app/codemirror/mode/python/python.js +59 -42
  380. data/public/javascripts/erp_app/codemirror/mode/r/index.html +5 -5
  381. data/public/javascripts/erp_app/codemirror/mode/r/r.js +9 -2
  382. data/public/javascripts/erp_app/codemirror/mode/rpm/changes/changes.js +19 -0
  383. data/public/javascripts/erp_app/codemirror/mode/rpm/changes/index.html +53 -0
  384. data/public/javascripts/erp_app/codemirror/mode/rpm/spec/index.html +99 -0
  385. data/public/javascripts/erp_app/codemirror/mode/rpm/spec/spec.css +5 -0
  386. data/public/javascripts/erp_app/codemirror/mode/rpm/spec/spec.js +66 -0
  387. data/public/javascripts/erp_app/codemirror/mode/rst/index.html +4 -5
  388. data/public/javascripts/erp_app/codemirror/mode/rst/rst.js +15 -22
  389. data/public/javascripts/erp_app/codemirror/mode/ruby/index.html +3 -4
  390. data/public/javascripts/erp_app/codemirror/mode/ruby/ruby.js +49 -36
  391. data/public/javascripts/erp_app/codemirror/mode/rust/index.html +48 -0
  392. data/public/javascripts/erp_app/codemirror/mode/rust/rust.js +432 -0
  393. data/public/javascripts/erp_app/codemirror/mode/scheme/index.html +3 -4
  394. data/public/javascripts/erp_app/codemirror/mode/scheme/scheme.js +71 -23
  395. data/public/javascripts/erp_app/codemirror/mode/shell/index.html +50 -0
  396. data/public/javascripts/erp_app/codemirror/mode/shell/shell.js +118 -0
  397. data/public/javascripts/erp_app/codemirror/mode/smalltalk/index.html +3 -4
  398. data/public/javascripts/erp_app/codemirror/mode/smalltalk/smalltalk.js +137 -120
  399. data/public/javascripts/erp_app/codemirror/mode/smarty/index.html +82 -0
  400. data/public/javascripts/erp_app/codemirror/mode/smarty/smarty.js +148 -0
  401. data/public/javascripts/erp_app/codemirror/mode/sparql/index.html +3 -4
  402. data/public/javascripts/erp_app/codemirror/mode/stex/index.html +4 -5
  403. data/public/javascripts/erp_app/codemirror/mode/stex/stex.js +22 -7
  404. data/public/javascripts/erp_app/codemirror/mode/stex/test.html +263 -0
  405. data/public/javascripts/erp_app/codemirror/mode/tiddlywiki/index.html +140 -0
  406. data/public/javascripts/erp_app/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  407. data/public/javascripts/erp_app/codemirror/mode/tiddlywiki/tiddlywiki.js +384 -0
  408. data/public/javascripts/erp_app/codemirror/mode/tiki/index.html +82 -0
  409. data/public/javascripts/erp_app/codemirror/mode/tiki/tiki.css +26 -0
  410. data/public/javascripts/erp_app/codemirror/mode/tiki/tiki.js +316 -0
  411. data/public/javascripts/erp_app/codemirror/mode/vb/LICENSE.txt +21 -0
  412. data/public/javascripts/erp_app/codemirror/mode/vb/index.html +88 -0
  413. data/public/javascripts/erp_app/codemirror/mode/vb/vb.js +260 -0
  414. data/public/javascripts/erp_app/codemirror/mode/vbscript/index.html +42 -0
  415. data/public/javascripts/erp_app/codemirror/mode/vbscript/vbscript.js +26 -0
  416. data/public/javascripts/erp_app/codemirror/mode/velocity/index.html +3 -3
  417. data/public/javascripts/erp_app/codemirror/mode/verilog/index.html +210 -0
  418. data/public/javascripts/erp_app/codemirror/mode/verilog/verilog.js +194 -0
  419. data/public/javascripts/erp_app/codemirror/mode/xml/index.html +7 -5
  420. data/public/javascripts/erp_app/codemirror/mode/xml/xml.js +127 -32
  421. data/public/javascripts/erp_app/codemirror/mode/xquery/LICENSE +20 -0
  422. data/public/javascripts/erp_app/codemirror/mode/xquery/index.html +222 -0
  423. data/public/javascripts/erp_app/codemirror/mode/xquery/test/index.html +27 -0
  424. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testBase.js +42 -0
  425. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testEmptySequenceKeyword.js +16 -0
  426. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testMultiAttr.js +16 -0
  427. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testNamespaces.js +91 -0
  428. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testProcessingInstructions.js +16 -0
  429. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testQuotes.js +19 -0
  430. data/public/javascripts/erp_app/codemirror/mode/xquery/xquery.js +448 -0
  431. data/public/javascripts/erp_app/codemirror/mode/yaml/index.html +3 -4
  432. data/public/javascripts/erp_app/codemirror/package.json +29 -0
  433. data/public/javascripts/erp_app/codemirror/test/driver.js +42 -0
  434. data/public/javascripts/erp_app/codemirror/test/index.html +55 -0
  435. data/public/javascripts/erp_app/codemirror/test/mode_test.css +22 -0
  436. data/public/javascripts/erp_app/codemirror/test/mode_test.js +164 -0
  437. data/public/javascripts/erp_app/codemirror/test/test.js +467 -0
  438. data/public/javascripts/erp_app/codemirror/theme/ambiance.css +81 -0
  439. data/public/javascripts/erp_app/codemirror/theme/blackboard.css +25 -0
  440. data/public/javascripts/erp_app/codemirror/theme/cobalt.css +18 -0
  441. data/public/javascripts/erp_app/codemirror/theme/eclipse.css +25 -0
  442. data/public/javascripts/erp_app/codemirror/theme/elegant.css +3 -2
  443. data/public/javascripts/erp_app/codemirror/theme/erlang-dark.css +21 -0
  444. data/public/javascripts/erp_app/codemirror/theme/lesser-dark.css +44 -0
  445. data/public/javascripts/erp_app/codemirror/theme/monokai.css +28 -0
  446. data/public/javascripts/erp_app/codemirror/theme/neat.css +4 -3
  447. data/public/javascripts/erp_app/codemirror/theme/night.css +2 -1
  448. data/public/javascripts/erp_app/codemirror/theme/rubyblue.css +21 -0
  449. data/public/javascripts/erp_app/codemirror/theme/vibrant-ink.css +27 -0
  450. data/public/javascripts/erp_app/codemirror/theme/xq-dark.css +46 -0
  451. data/public/javascripts/erp_app/codemirror_highlight.js +17 -0
  452. data/public/javascripts/erp_app/desktop/applications/audit_log_viewer/module.js +1 -57
  453. data/public/javascripts/erp_app/desktop/applications/control_panel/application_management_panel.js +1 -2
  454. data/public/javascripts/erp_app/desktop/applications/control_panel/module.js +1 -1
  455. data/public/javascripts/erp_app/desktop/applications/file_manager/module.js +12 -1
  456. data/public/javascripts/erp_app/desktop/ext_ux_desktop_module.js +9 -1
  457. data/public/javascripts/erp_app/jquery_support.js +6 -1
  458. data/public/javascripts/erp_app/login/window.js +1 -1
  459. data/public/javascripts/erp_app/organizer/default_menu_tree_panel.js +3 -1
  460. data/public/javascripts/erp_app/organizer/layout.js +92 -79
  461. data/public/javascripts/erp_app/organizer/preference_window.js +1 -1
  462. data/public/javascripts/erp_app/{desktop/applications/audit_log_viewer → shared/audit_log}/audit_log_grid_panel.js +1 -0
  463. data/public/javascripts/erp_app/{desktop/applications/audit_log_viewer → shared/audit_log}/audit_log_item_grid_panel.js +0 -0
  464. data/public/javascripts/erp_app/shared/audit_log/audit_log_tab_panel.js +52 -0
  465. data/public/javascripts/erp_app/shared/compass_ckeditor.js +51 -1
  466. data/public/javascripts/erp_app/shared/compass_codemirror.js +2 -8
  467. data/public/javascripts/erp_app/shared/configuration/configuration_panel.js +24 -22
  468. data/public/javascripts/erp_app/shared/dynamic_editable_grid.js +1 -0
  469. data/public/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js +5 -1
  470. data/public/javascripts/erp_app/shared/file_manager_tree.js +358 -270
  471. data/public/javascripts/erp_app/shared/file_upload/Ext.ux.panel.UploadPanel.js +580 -0
  472. data/public/javascripts/erp_app/shared/file_upload/plupload.flash.swf +0 -0
  473. data/public/javascripts/erp_app/shared/file_upload/plupload.full.js +2 -0
  474. data/public/javascripts/erp_app/shared/file_upload/plupload.silverlight.xap +0 -0
  475. data/public/javascripts/erp_app/shared/file_upload/upload_window.js +19 -212
  476. data/public/javascripts/erp_app/{desktop/applications/control_panel → shared}/profile_management_panel.js +14 -23
  477. data/public/javascripts/erp_app/utility.js +340 -272
  478. data/public/javascripts/erp_app/widgets.js +2 -2
  479. data/public/javascripts/extjs/MultiCellSelectionModel.js +490 -0
  480. data/public/javascripts/jquery_plugins/jquery.address.min.js +21 -24
  481. data/public/stylesheets/erp_app/desktop/base.css +3 -1
  482. data/public/stylesheets/erp_app/shared/compass-ext-all.css +29 -0
  483. data/public/stylesheets/erp_app/shared/hover_finger.css +4 -0
  484. metadata +267 -71
  485. data/app/controllers/erp_app/desktop/control_panel/profile_management_controller.rb +0 -23
  486. data/app/models/extensions/party.rb +0 -39
  487. data/public/images/icons/add/Thumbs.db +0 -0
  488. data/public/images/icons/calendar/Thumbs.db +0 -0
  489. data/public/images/icons/copy/Thumbs.db +0 -0
  490. data/public/images/icons/cut/Thumbs.db +0 -0
  491. data/public/images/icons/delete/Thumbs.db +0 -0
  492. data/public/images/icons/edit/Thumbs.db +0 -0
  493. data/public/images/icons/folder/Thumbs.db +0 -0
  494. data/public/images/icons/gear/Thumbs.db +0 -0
  495. data/public/images/icons/globe/Thumbs.db +0 -0
  496. data/public/images/icons/grid/Thumbs.db +0 -0
  497. data/public/images/icons/help/Thumbs.db +0 -0
  498. data/public/images/icons/information/Thumbs.db +0 -0
  499. data/public/images/icons/key/Thumbs.db +0 -0
  500. data/public/images/icons/log_out/Thumbs.db +0 -0
  501. data/public/images/icons/mail/Thumbs.db +0 -0
  502. data/public/images/icons/new/Thumbs.db +0 -0
  503. data/public/images/icons/next/Thumbs.db +0 -0
  504. data/public/images/icons/open/Thumbs.db +0 -0
  505. data/public/images/icons/paste/Thumbs.db +0 -0
  506. data/public/images/icons/picture/Thumbs.db +0 -0
  507. data/public/images/icons/presentation/Thumbs.db +0 -0
  508. data/public/images/icons/preview/Thumbs.db +0 -0
  509. data/public/images/icons/previous/Thumbs.db +0 -0
  510. data/public/images/icons/print/Thumbs.db +0 -0
  511. data/public/images/icons/properties/Thumbs.db +0 -0
  512. data/public/images/icons/redo/Thumbs.db +0 -0
  513. data/public/images/icons/refresh/Thumbs.db +0 -0
  514. data/public/images/icons/remove/Thumbs.db +0 -0
  515. data/public/images/icons/rename/Thumbs.db +0 -0
  516. data/public/images/icons/save/Thumbs.db +0 -0
  517. data/public/images/icons/search/Thumbs.db +0 -0
  518. data/public/images/icons/send/Thumbs.db +0 -0
  519. data/public/images/icons/settings/Thumbs.db +0 -0
  520. data/public/images/icons/synchronize/Thumbs.db +0 -0
  521. data/public/images/icons/undo/Thumbs.db +0 -0
  522. data/public/images/icons/upload/Thumbs.db +0 -0
  523. data/public/images/icons/user/Thumbs.db +0 -0
  524. data/public/images/icons/zoom_in/Thumbs.db +0 -0
  525. data/public/images/icons/zoom_out/Thumbs.db +0 -0
  526. data/public/javascripts/erp_app/ckeditor/plugins/jwplayer/jwplayer/Thumbs.db +0 -0
  527. data/public/javascripts/erp_app/codemirror/lib/runmode.js +0 -27
  528. data/public/javascripts/erp_app/codemirror/mode/diff/diff.css +0 -3
  529. data/public/javascripts/erp_app/codemirror/mode/rst/rst.css +0 -75
  530. data/public/javascripts/erp_app/codemirror/mode/xmlpure/index.html +0 -60
  531. data/public/javascripts/erp_app/codemirror/mode/xmlpure/xmlpure.js +0 -481
  532. data/public/javascripts/erp_app/codemirror/theme/default.css +0 -19
  533. data/public/javascripts/erp_app/shared/file_upload/Ext.ux.AwesomeUploader.js +0 -511
  534. data/public/javascripts/erp_app/shared/file_upload/Ext.ux.AwesomeUploaderLocalization.js +0 -45
  535. data/public/javascripts/erp_app/shared/file_upload/Ext.ux.XHRUpload.js +0 -138
  536. data/public/javascripts/erp_app/tinymce/Ext.ux.TinyMCE.js +0 -689
  537. data/public/javascripts/erp_app/tinymce/center_region.js +0 -611
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <title>CodeMirror: User Manual</title>
5
5
  <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans:bold"/>
6
- <link rel="stylesheet" type="text/css" href="css/docs.css"/>
6
+ <link rel="stylesheet" type="text/css" href="docs.css"/>
7
7
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
8
8
  <style>dl dl {margin: 0;}</style>
9
9
  </head>
@@ -12,7 +12,7 @@
12
12
  <h1><span class="logo-braces">{ }</span> <a href="http://codemirror.net/">CodeMirror</a></h1>
13
13
 
14
14
  <pre class="grey">
15
- <img src="css/baboon.png" class="logo" alt="logo"/>/* User manual and
15
+ <img src="baboon.png" class="logo" alt="logo"/>/* User manual and
16
16
  reference guide */
17
17
  </pre>
18
18
 
@@ -21,17 +21,19 @@
21
21
  <h2 id="overview">Overview</h2>
22
22
 
23
23
  <p>CodeMirror is a code-editor component that can be embedded in
24
- Web pages. It provides <em>only</em> the editor component, no
25
- accompanying buttons
26
- (see <a href="http://www.octolabs.com/javascripts/codemirror-ui/">CodeMirror
27
- UI</a> for a drop-in button bar), auto-completion, or other IDE
24
+ Web pages. The code library provides <em>only</em> the editor
25
+ component, no accompanying buttons, auto-completion, or other IDE
28
26
  functionality. It does provide a rich API on top of which such
29
- functionality can be straightforwardly implemented.</p>
27
+ functionality can be straightforwardly implemented. See
28
+ the <a href="#addons">add-ons</a> included in the distribution,
29
+ and
30
+ the <a href="https://github.com/jagthedrummer/codemirror-ui">CodeMirror
31
+ UI</a> project, for reusable implementations of extra features.</p>
30
32
 
31
33
  <p>CodeMirror works with language-specific modes. Modes are
32
34
  JavaScript programs that help color (and optionally indent) text
33
- written in a given language. The distribution comes with a few
34
- modes (see the <code>mode/</code> directory), and it isn't hard
35
+ written in a given language. The distribution comes with a number
36
+ of modes (see the <code>mode/</code> directory), and it isn't hard
35
37
  to <a href="#modeapi">write new ones</a> for other languages.</p>
36
38
 
37
39
  <h2 id="usage">Basic Usage</h2>
@@ -40,18 +42,15 @@
40
42
  and style sheet found under <code>lib/</code> in the distribution,
41
43
  plus a mode script from one of the <code>mode/</code> directories
42
44
  and a theme stylesheet from <code>theme/</code>. (See
43
- also <a href="compress.html">the compresion helper</a>.) For
45
+ also <a href="compress.html">the compression helper</a>.) For
44
46
  example:</p>
45
47
 
46
48
  <pre>&lt;script src="lib/codemirror.js">&lt;/script>
47
- &lt;link rel="stylesheet" href="lib/codemirror.css">
48
- &lt;script src="mode/javascript/javascript.js">&lt;/script>
49
- &lt;link rel="stylesheet" href="theme/default.css"></pre>
49
+ &lt;link rel="stylesheet" href="../lib/codemirror.css">
50
+ &lt;script src="mode/javascript/javascript.js">&lt;/script></pre>
50
51
 
51
- <p>(If you use a them other than <code>default.css</code>, you
52
- also have to specify the
53
- <a href="#option_theme"><code>theme</code></a> option.) Having
54
- done this, an editor instance can be created like this:</p>
52
+ <p>Having done this, an editor instance can be created like
53
+ this:</p>
55
54
 
56
55
  <pre>var myCodeMirror = CodeMirror(document.body);</pre>
57
56
 
@@ -106,12 +105,6 @@
106
105
  <p>Options are not checked in any way, so setting bogus option
107
106
  values is bound to lead to odd errors.</p>
108
107
 
109
- <p><em>Note:</em> CodeMirror
110
- 2 <a href="internals.html#summary">does not support</a>
111
- line-wrapping. I would have very much liked to support it, but it
112
- combines extremely poorly with the way the editor is
113
- implemented.</p>
114
-
115
108
  <p>These are the supported options:</p>
116
109
 
117
110
  <dl>
@@ -137,52 +130,29 @@
137
130
  <dd>The theme to style the editor with. You must make sure the
138
131
  CSS file defining the corresponding <code>.cm-s-[name]</code>
139
132
  styles is loaded (see
140
- the <a href="theme/"><code>theme</code></a> directory in the
141
- distribution).</dd>
133
+ the <a href="../theme/"><code>theme</code></a> directory in the
134
+ distribution). The default is <code>"default"</code>, for which
135
+ colors are included in <code>codemirror.css</code>. It is
136
+ possible to use multiple theming classes at once—for
137
+ example <code>"foo bar"</code> will assign both
138
+ the <code>cm-s-foo</code> and the <code>cm-s-bar</code> classes
139
+ to the editor.</dd>
142
140
 
143
141
  <dt id="option_indentUnit"><code>indentUnit (integer)</code></dt>
144
142
  <dd>How many spaces a block (whatever that means in the edited
145
143
  language) should be indented. The default is 2.</dd>
146
144
 
147
- <dt id="option_indentWithTabs"><code>indentWithTabs (boolean)</code></dt>
148
- <dd>Whether, when indenting, the first N*8 spaces should be
149
- replaced by N tabs. Default is false.</dd>
145
+ <dt id="option_smartIndent"><code>smartIndent (boolean)</code></dt>
146
+ <dd>Whether to use the context-sensitive indentation that the
147
+ mode provides (or just indent the same as the line before).
148
+ Defaults to true.</dd>
150
149
 
151
- <dt id="option_tabMode"><code>tabMode (string)</code></dt>
152
- <dd>Determines what happens when the user presses the tab key.
153
- Must be one of the following:
154
- <dl>
155
- <dt><code>"classic" (the default)</code></dt>
156
- <dd>When nothing is selected, insert a tab. Otherwise,
157
- behave like the <code>"shift"</code> mode. (When shift is
158
- held, this behaves like the <code>"indent"</code> mode.)</dd>
159
- <dt><code>"shift"</code></dt>
160
- <dd>Indent all selected lines by
161
- one <a href="#option_indentUnit"><code>indentUnit</code></a>.
162
- If shift was held while pressing tab, un-indent all selected
163
- lines one unit.</dd>
164
- <dt><code>"indent"</code></dt>
165
- <dd>Indent the line the 'correctly', based on its syntactic
166
- context. Only works if the
167
- mode <a href="#indent">supports</a> it.</dd>
168
- <dt><code>"default"</code></dt>
169
- <dd>Do not capture tab presses, let the browser apply its
170
- default behaviour (which usually means it skips to the next
171
- control).</dd>
172
- </dl></dd>
150
+ <dt id="option_tabSize"><code>tabSize (integer)</code></dt>
151
+ <dd>The width of a tab character. Defaults to 4.</dd>
173
152
 
174
- <dt id="option_enterMode"><code>enterMode (string)</code></dt>
175
- <dd>Determines whether and how new lines are indented when the
176
- enter key is pressed. The following modes are supported:
177
- <dl>
178
- <dt><code>"indent" (the default)</code></dt>
179
- <dd>Use the mode's indentation rules to give the new line
180
- the correct indentation.</dd>
181
- <dt><code>"keep"</code></dt>
182
- <dd>Indent the line the same as the previous line.</dd>
183
- <dt><code>"flat"</code></dt>
184
- <dd>Do not indent the new line.</dd>
185
- </dl></dd>
153
+ <dt id="option_indentWithTabs"><code>indentWithTabs (boolean)</code></dt>
154
+ <dd>Whether, when indenting, the first N*<code>tabSize</code>
155
+ spaces should be replaced by N tabs. Default is false.</dd>
186
156
 
187
157
  <dt id="option_electricChars"><code>electricChars (boolean)</code></dt>
188
158
  <dd>Configures whether the editor should re-indent the current
@@ -190,10 +160,29 @@
190
160
  indentation (only works if the mode supports indentation).
191
161
  Default is true.</dd>
192
162
 
193
- <dt id="option_smartHome"><code>smartHome (boolean)</code></dt>
194
- <dd>Configures whether the home key takes you to the first
195
- non-whitespace character (unless already there) or to the start
196
- of the line. On by default.</dd>
163
+ <dt id="option_autoClearEmptyLines"><code>autoClearEmptyLines (boolean)</code></dt>
164
+ <dd>When turned on (default is off), this will clear
165
+ automatically clear lines consisting only of whitespace when the
166
+ cursor leaves them. This is mostly useful to prevent auto
167
+ indentation from introducing trailing whitespace in a file.</dd>
168
+
169
+ <dt id="option_keyMap"><code>keyMap (string)</code></dt>
170
+ <dd>Configures the keymap to use. The default
171
+ is <code>"default"</code>, which is the only keymap defined
172
+ in <code>codemirror.js</code> itself. Extra keymaps are found in
173
+ the <a href="../keymap/"><code>keymap</code></a> directory. See
174
+ the <a href="#keymaps">section on keymaps</a> for more
175
+ information.</dd>
176
+
177
+ <dt id="option_extraKeys"><code>extraKeys (object)</code></dt>
178
+ <dd>Can be used to specify extra keybindings for the editor,
179
+ alongside the ones defined
180
+ by <a href="#option_keyMap"><code>keyMap</code></a>. Should be
181
+ either null, or a valid <a href="#keymaps">keymap</a> value.</dd>
182
+
183
+ <dt id="option_lineWrapping"><code>lineWrapping (boolean)</code></dt>
184
+ <dd>Whether CodeMirror should scroll or wrap for long lines.
185
+ Defaults to <code>false</code> (scroll).</dd>
197
186
 
198
187
  <dt id="option_lineNumbers"><code>lineNumbers (boolean)</code></dt>
199
188
  <dd>Whether to show line numbers to the left of the editor.</dd>
@@ -201,31 +190,49 @@
201
190
  <dt id="option_firstLineNumber"><code>firstLineNumber (integer)</code></dt>
202
191
  <dd>At which number to start counting lines. Default is 1.</dd>
203
192
 
193
+ <dt id="option_lineNumberFormatter"><code>lineNumberFormatter (function(integer))</code></dt>
194
+ <dd>A function used to format line numbers. The function is passed the current line number. Default prints the line number verbatim.</dd>
195
+
204
196
  <dt id="option_gutter"><code>gutter (boolean)</code></dt>
205
197
  <dd>Can be used to force a 'gutter' (empty space on the left of
206
198
  the editor) to be shown even when no line numbers are active.
207
199
  This is useful for setting <a href="#setMarker">markers</a>.</dd>
208
200
 
201
+ <dt id="option_fixedGutter"><code>fixedGutter (boolean)</code></dt>
202
+ <dd>When enabled (off by default), this will make the gutter
203
+ stay visible when the document is scrolled horizontally.</dd>
204
+
209
205
  <dt id="option_readOnly"><code>readOnly (boolean)</code></dt>
210
- <dd>This disables editing of the editor content by the user.
211
- (Changes through API functions will still be possible.) If you
212
- also want to disable the cursor, use <code>"nocursor"</code> as
213
- a value for this option, instead of <code>true</code>.</dd>
206
+ <dd>This disables editing of the editor content by the user. If
207
+ the special value <code>"nocursor"</code> is given (instead of
208
+ simply <code>true</code>), focusing of the editor is also
209
+ disallowed.</dd>
214
210
 
215
211
  <dt id="option_onChange"><code>onChange (function)</code></dt>
216
212
  <dd>When given, this function will be called every time the
217
213
  content of the editor is changed. It will be given the editor
218
- instance as only argument.</dd>
214
+ instance as first argument, and an <code>{from, to, text, next}</code>
215
+ object containing information about the changes
216
+ that occurred as second argument. <code>from</code>
217
+ and <code>to</code> are the positions (in the pre-change
218
+ coordinate system) where the change started and
219
+ ended (for example, it might be <code>{ch:0, line:18}</code> if the
220
+ position is at the beginning of line #19). <code>text</code>
221
+ is an array of strings representing the text that replaced the changed
222
+ range (split by line). If multiple changes happened during a single
223
+ operation, the object will have a <code>next</code> property pointing to
224
+ another change object (which may point to another, etc).</dd>
219
225
 
220
226
  <dt id="option_onCursorActivity"><code>onCursorActivity (function)</code></dt>
221
- <dd>Like <code>onChange</code>, but will also be called when the
222
- cursor moves without any changes being made.</dd>
227
+ <dd>Will be called when the cursor or selection moves, or any
228
+ change is made to the editor content.</dd>
223
229
 
224
230
  <dt id="option_onGutterClick"><code>onGutterClick (function)</code></dt>
225
231
  <dd>When given, will be called whenever the editor gutter (the
226
232
  line-number area) is clicked. Will be given the editor instance
227
- as first argument, and the (zero-based) number of the line that
228
- was clicked as second argument.</dd>
233
+ as first argument, the (zero-based) number of the line that was
234
+ clicked as second argument, and the raw <code>mousedown</code>
235
+ event object as third argument.</dd>
229
236
 
230
237
  <dt id="option_onFocus"><code>onFocus, onBlur (function)</code></dt>
231
238
  <dd>The given functions will be called whenever the editor is
@@ -240,6 +247,9 @@
240
247
  this function (if given) will be called. It'll be given a single
241
248
  argument, the editor instance.</dd>
242
249
 
250
+ <dt id="option_onUpdate"><code>onUpdate (function)</code></dt>
251
+ <dd>Will be called whenever CodeMirror updates its DOM display.</dd>
252
+
243
253
  <dt id="option_matchBrackets"><code>matchBrackets (boolean)</code></dt>
244
254
  <dd>Determines whether brackets are matched whenever the cursor
245
255
  is moved next to a bracket.</dd>
@@ -251,6 +261,13 @@
251
261
  defaults are 200 and 300, you can change these options to make
252
262
  the highlighting more or less aggressive.</dd>
253
263
 
264
+ <dt id="option_pollInterval"><code>pollInterval (number)</code></dt>
265
+ <dd>Indicates how quickly CodeMirror should poll its input
266
+ textarea for changes. Most input is captured by events, but some
267
+ things, like IME input on some browsers, doesn't generate events
268
+ that allow CodeMirror to properly detect it. Thus, it polls.
269
+ Default is 100 milliseconds.</dd>
270
+
254
271
  <dt id="option_undoDepth"><code>undoDepth (integer)</code></dt>
255
272
  <dd>The maximum number of undo levels that the editor stores.
256
273
  Defaults to 40.</dd>
@@ -260,10 +277,25 @@
260
277
  index</a> to assign to the editor. If not given, no tab index
261
278
  will be assigned.</dd>
262
279
 
263
- <dt id="option_document"><code>document (DOM document)</code></dt>
264
- <dd>Use this if you want to display the editor in another DOM.
265
- By default it will use the global <code>document</code>
266
- object.</dd>
280
+ <dt id="option_autofocus"><code>autofocus (boolean)</code></dt>
281
+ <dd>Can be used to make CodeMirror focus itself on
282
+ initialization. Defaults to off.
283
+ When <a href="#fromTextArea"><code>fromTextArea</code></a> is
284
+ used, and no explicit value is given for this option, it will
285
+ inherit the setting from the textarea's <code>autofocus</code>
286
+ attribute.</dd>
287
+
288
+ <dt id="option_dragDrop"><code>dragDrop (boolean)</code></dt>
289
+ <dd>Controls whether drag-and-drop is enabled. On by default.</dd>
290
+
291
+ <dt id="option_onDragEvent"><code>onDragEvent (function)</code></dt>
292
+ <dd>When given, this will be called when the editor is handling
293
+ a <code>dragenter</code>, <code>dragover</code>,
294
+ or <code>drop</code> event. It will be passed the editor instance
295
+ and the event object as arguments. The callback can choose to
296
+ handle the event itself, in which case it should
297
+ return <code>true</code> to indicate that CodeMirror should not
298
+ do anything further.</dd>
267
299
 
268
300
  <dt id="option_onKeyEvent"><code>onKeyEvent (function)</code></dt>
269
301
  <dd>This provides a rather low-level hook into CodeMirror's key
@@ -285,6 +317,63 @@
285
317
  that need character data).</dd>
286
318
  </dl>
287
319
 
320
+ <h2 id="keymaps">Keymaps</h2>
321
+
322
+ <p>Keymaps are ways to associate keys with functionality. A keymap
323
+ is an object mapping strings that identify the keys to functions
324
+ that implement their functionality.</p>
325
+
326
+ <p>Keys are identified either by name or by character.
327
+ The <code>CodeMirror.keyNames</code> object defines names for
328
+ common keys and associates them with their key codes. Examples of
329
+ names defined here are <code>Enter</code>, <code>F5</code>,
330
+ and <code>Q</code>. These can be prefixed
331
+ with <code>Shift-</code>, <code>Cmd-</code>, <code>Ctrl-</code>,
332
+ and <code>Alt-</code> (in that order!) to specify a modifier. So
333
+ for example, <code>Shift-Ctrl-Space</code> would be a valid key
334
+ identifier.</p>
335
+
336
+ <p>Alternatively, a character can be specified directly by
337
+ surrounding it in single quotes, for example <code>'$'</code>
338
+ or <code>'q'</code>. Due to limitations in the way browsers fire
339
+ key events, these may not be prefixed with modifiers.</p>
340
+
341
+ <p>The <code>CodeMirror.keyMap</code> object associates keymaps
342
+ with names. User code and keymap definitions can assign extra
343
+ properties to this object. Anywhere where a keymap is expected, a
344
+ string can be given, which will be looked up in this object. It
345
+ also contains the <code>"default"</code> keymap holding the
346
+ default bindings.</p>
347
+
348
+ <p>The values of properties in keymaps can be either functions of
349
+ a single argument (the CodeMirror instance), or strings. Such
350
+ strings refer to properties of the
351
+ <code>CodeMirror.commands</code> object, which defines a number of
352
+ common commands that are used by the default keybindings, and maps
353
+ them to functions. A key handler function may throw
354
+ <code>CodeMirror.Pass</code> to indicate that it has decided not
355
+ to handle the key, and other handlers (or the default behavior)
356
+ should be given a turn.</p>
357
+
358
+ <p>Keys mapped to command names that start with the
359
+ characters <code>"go"</code> (which should be used for
360
+ cursor-movement actions) will be fired even when an
361
+ extra <code>Shift</code> modifier is present (i.e. <code>"Up":
362
+ "goLineUp"</code> matches both up and shift-up). This is used to
363
+ easily implement shift-selection.</p>
364
+
365
+ <p>Keymaps can defer to each other by defining
366
+ a <code>fallthrough</code> property. This indicates that when a
367
+ key is not found in the map itself, one or more other maps should
368
+ be searched. It can hold either a single keymap or an array of
369
+ keymaps.</p>
370
+
371
+ <p>When a keymap contains a <code>nofallthrough</code> property
372
+ set to <code>true</code>, keys matched against that map will be
373
+ ignored if they don't match any of the bindings in the map (no
374
+ further child maps will be tried, and the default effect of
375
+ inserting a character will not occur).</p>
376
+
288
377
  <h2 id="styling">Customized Styling</h2>
289
378
 
290
379
  <p>Up to a certain extent, CodeMirror's look can be changed by
@@ -292,7 +381,7 @@
292
381
  simply provide the colors for that mode, and can be adapted in a
293
382
  very straightforward way. To style the editor itself, it is
294
383
  possible to alter or override the styles defined
295
- in <a href="lib/codemirror.css"><code>codemirror.css</code></a>.</p>
384
+ in <a href="../lib/codemirror.css"><code>codemirror.css</code></a>.</p>
296
385
 
297
386
  <p>Some care must be taken there, since a lot of the rules in this
298
387
  file are necessary to have CodeMirror function properly. Adjusting
@@ -302,16 +391,17 @@
302
391
 
303
392
  <dl>
304
393
  <dt id="class_CodeMirror"><code>CodeMirror</code></dt>
305
- <dd>The outer element of the editor. This should be used for
306
- borders and positioning. Can also be used to set styles that
307
- should hold for everything inside the editor (such as font
308
- and font size), or to set a background.</dd>
394
+ <dd>The outer element of the editor. This should be used for the
395
+ editor width, borders and positioning. Can also be used to set
396
+ styles that should hold for everything inside the editor (such
397
+ as font and font size), or to set a background.</dd>
309
398
 
310
399
  <dt id="class_CodeMirror_scroll"><code>CodeMirror-scroll</code></dt>
311
- <dd>This determines whether the editor scrolls (<code>overflow:
312
- auto</code> + fixed height). By default, it does. Giving
313
- this <code>height: auto; overflow: visible;</code> will cause
314
- the editor to resize to fit its content.</dd>
400
+ <dd>This determines the editor's height, and whether the editor
401
+ scrolls (<code>overflow: auto</code> + fixed height). By
402
+ default, it does. Giving this <code>height: auto; overflow:
403
+ visible;</code> will cause the editor to resize to fit its
404
+ content.</dd>
315
405
 
316
406
  <dt id="class_CodeMirror_focused"><code>CodeMirror-focused</code></dt>
317
407
  <dd>Whenever the editor is focused, the top element gets this
@@ -351,12 +441,18 @@
351
441
  <dd>These are used to style matched (or unmatched) brackets.</dd>
352
442
  </dl>
353
443
 
444
+ <p id="css-resize">So note carefully that, in order to resize the
445
+ editor, you should set a <code>width</code> on
446
+ the <a href="#getWrapperElement">wrapper</a>
447
+ (class <code>CodeMirror</code>) element, and a height on
448
+ the <a href="#getScrollerElement">scroller</a>
449
+ (class <code>CodeMirror-scroll</code>) element.</p>
450
+
354
451
  <p>The actual lines, as well as the cursor, are represented
355
452
  by <code>pre</code> elements. By default no text styling (such as
356
453
  bold) that might change line height is applied. If you do want
357
454
  such effects, you'll have to give <code>CodeMirror pre</code> a
358
- fixed height. Also, you must still take care that character width
359
- is constant.</p>
455
+ fixed height.</p>
360
456
 
361
457
  <p>If your page's style sheets do funky things to
362
458
  all <code>div</code> or <code>pre</code> elements (you probably
@@ -364,6 +460,10 @@
364
460
  effects out again for elements under the <code>CodeMirror</code>
365
461
  class.</p>
366
462
 
463
+ <p>Themes are also simply CSS files, which define colors for
464
+ various syntactic elements. See the files in
465
+ the <a href="../theme/"><code>theme</code></a> directory.</p>
466
+
367
467
  <h2 id="api">Programming API</h2>
368
468
 
369
469
  <p>A lot of CodeMirror features are only available through its API.
@@ -382,7 +482,9 @@
382
482
 
383
483
  <dl>
384
484
  <dt id="getValue"><code>getValue() → string</code></dt>
385
- <dd>Get the current editor content.</dd>
485
+ <dd>Get the current editor content. You can pass it an optional
486
+ argument to specify the string to be used to separate lines
487
+ (defaults to <code>"\n"</code>).</dd>
386
488
  <dt id="setValue"><code>setValue(string)</code></dt>
387
489
  <dd>Set the editor content.</dd>
388
490
 
@@ -391,8 +493,24 @@
391
493
  <dt id="replaceSelection"><code>replaceSelection(string)</code></dt>
392
494
  <dd>Replace the selection with the given string.</dd>
393
495
 
496
+ <dt id="setSize"><code>setSize(width, height)</code></dt>
497
+ <dd>Programatically set the size of the editor (overriding the
498
+ applicable <a href="#css-resize">CSS
499
+ rules</a>). <code>width</code> and <code>height</code> height
500
+ can be either numbers (interpreted as pixels) or CSS units
501
+ (<code>"100%"</code>, for example). You can
502
+ pass <code>null</code> for either of them to indicate that that
503
+ dimension should not be changed.</dd>
394
504
  <dt id="focus"><code>focus()</code></dt>
395
505
  <dd>Give the editor focus.</dd>
506
+ <dt id="scrollTo"><code>scrollTo(x, y)</code></dt>
507
+ <dd>Scroll the editor to a given (pixel) position. Both
508
+ arguments may be left as <code>null</code>
509
+ or <code>undefined</code> to have no effect.</dd>
510
+ <dt id="getScrollInfo"><code>getScrollInfo()</code></dt>
511
+ <dd>Get an <code>{x, y, width, height}</code> object that
512
+ represents the current scroll position and scrollable area size
513
+ of the editor.</dd>
396
514
 
397
515
  <dt id="setOption"><code>setOption(option, value)</code></dt>
398
516
  <dd>Change the configuration of the editor. <code>option</code>
@@ -403,13 +521,16 @@
403
521
  <dd>Retrieves the current value of the given option for this
404
522
  editor instance.</dd>
405
523
 
406
- <dt id="cursorCoords"><code>cursorCoords(start) → object</code></dt>
524
+ <dt id="cursorCoords"><code>cursorCoords(start, mode) → object</code></dt>
407
525
  <dd>Returns an <code>{x, y, yBot}</code> object containing the
408
- coordinates of the cursor relative to the top-left corner of the
526
+ coordinates of the cursor. If <code>mode</code>
527
+ is <code>"local"</code>, they will be relative to the top-left
528
+ corner of the editable document. If it is <code>"page"</code> or
529
+ not given, they are relative to the top-left corner of the
409
530
  page. <code>yBot</code> is the coordinate of the bottom of the
410
531
  cursor. <code>start</code> is a boolean indicating whether you
411
532
  want the start or the end of the selection.</dd>
412
- <dt id="charCoords"><code>charCoords(pos) → object</code></dt>
533
+ <dt id="charCoords"><code>charCoords(pos, mode) → object</code></dt>
413
534
  <dd>Like <code>cursorCoords</code>, but returns the position of
414
535
  an arbitrary characters. <code>pos</code> should be
415
536
  a <code>{line, ch}</code> object.</dd>
@@ -426,6 +547,17 @@
426
547
  <dd>Returns an object with <code>{undo, redo}</code> properties,
427
548
  both of which hold integers, indicating the amount of stored
428
549
  undo and redo operations.</dd>
550
+ <dt id="clearHistory"><code>clearHistory()</code></dt>
551
+ <dd>Clears the editor's undo history.</dd>
552
+ <dt id="getHistory"><code>getHistory() → object</code></dt>
553
+ <dd>Get a (JSON-serializeable) representation of the undo history.</dd>
554
+ <dt id="setHistory"><code>setHistory(object)</code></dt>
555
+ <dd>Replace the editor's undo history with the one provided,
556
+ which must be a value as returned
557
+ by <a href="#getHistory"><code>getHistory</code></a>. Note that
558
+ this will have entirely undefined results if the editor content
559
+ isn't also the same as it was when <code>getHistory</code> was
560
+ called.</dd>
429
561
 
430
562
  <dt id="indentLine"><code>indentLine(line, dir)</code></dt>
431
563
  <dd>Reset the given line's indentation to the indentation
@@ -434,37 +566,9 @@
434
566
  decreased (if false) by an <a href="#option_indentUnit">indent
435
567
  unit</a> instead.</dd>
436
568
 
437
- <dt id="getSearchCursor"><code>getSearchCursor(query, start, caseFold) → cursor</code></dt>
438
- <dd>Used to implement search/replace
439
- functionality. <code>query</code> can be a regular expression or
440
- a string (only strings will match across lines—if they contain
441
- newlines). <code>start</code> provides the starting position of
442
- the search. It can be a <code>{line, ch}</code> object, or can
443
- be left off to default to the start of the
444
- document. <code>caseFold</code> is only relevant when matching a
445
- string. It will cause the search to be case-insensitive. A
446
- search cursor has the following methods:
447
- <dl>
448
- <dt><code>findNext(), findPrevious() → boolean</code></dt>
449
- <dd>Search forward or backward from the current position.
450
- The return value indicates whether a match was found. If
451
- matching a regular expression, the return value will be the
452
- array returned by the <code>match</code> method, in case you
453
- want to extract matched groups.</dd>
454
- <dt><code>from(), to() → object</code></dt>
455
- <dd>These are only valid when the last call
456
- to <code>findNext</code> or <code>findPrevious</code> did
457
- not return false. They will return <code>{line, ch}</code>
458
- objects pointing at the start and end of the match.</dd>
459
- <dt><code>replace(text)</code></dt>
460
- <dd>Replaces the currently found match with the given text
461
- and adjusts the cursor position to reflect the
462
- replacement.</dd>
463
- </dl></dd>
464
-
465
569
  <dt id="getTokenAt"><code>getTokenAt(pos) → object</code></dt>
466
570
  <dd>Retrieves information about the token the current mode found
467
- at the given position (a <code>{line, ch}</code> object). The
571
+ before the given position (a <code>{line, ch}</code> object). The
468
572
  returned object has the following properties:
469
573
  <dl>
470
574
  <dt><code>start</code></dt><dd>The character (on the given line) at which the token starts.</dd>
@@ -475,11 +579,26 @@
475
579
  <dt><code>state</code></dt><dd>The mode's state at the end of this token.</dd>
476
580
  </dl></dd>
477
581
 
478
- <dt id="markText"><code>markText(from, to, className) → function</code></dt>
582
+ <dt id="markText"><code>markText(from, to, className) → object</code></dt>
479
583
  <dd>Can be used to mark a range of text with a specific CSS
480
584
  class name. <code>from</code> and <code>to</code> should
481
- be <code>{line, ch}</code> objects. The method will return a
482
- function that can be called to remove the marking.</dd>
585
+ be <code>{line, ch}</code> objects. The method will return an
586
+ object with two methods, <code>clear()</code>, which removes the
587
+ mark, and <code>find()</code>, which returns a <code>{from,
588
+ to}</code> (both document positions), indicating the current
589
+ position of the marked range.</dd>
590
+
591
+ <dt id="setBookmark"><code>setBookmark(pos) → object</code></dt>
592
+ <dd>Inserts a bookmark, a handle that follows the text around it
593
+ as it is being edited, at the given position. A bookmark has two
594
+ methods <code>find()</code> and <code>clear()</code>. The first
595
+ returns the current position of the bookmark, if it is still in
596
+ the document, and the second explicitly removes the
597
+ bookmark.</dd>
598
+
599
+ <dt id="findMarksAt"><code>findMarksAt(pos) → array</code></dt>
600
+ <dd>Returns an array of all the bookmarks and marked ranges
601
+ present at the given position.</dd>
483
602
 
484
603
  <dt id="setMarker"><code>setMarker(line, text, className) → lineHandle</code></dt>
485
604
  <dd>Add a gutter marker for the given line. Gutter markers are
@@ -500,17 +619,37 @@
500
619
  number or a handle returned by <code>setMarker</code> (since a
501
620
  number may now refer to a different line if something was added
502
621
  or deleted).</dd>
503
- <dt id="setLineClass"><code>setLineClass(line, className) → lineHandle</code></dt>
622
+ <dt id="setLineClass"><code>setLineClass(line, className, backgroundClassName) → lineHandle</code></dt>
504
623
  <dd>Set a CSS class name for the given line. <code>line</code>
505
624
  can be a number or a line handle (as returned
506
- by <code>setMarker</code> or this function).
507
- Pass <code>null</code> to clear the class for a line.</dd>
625
+ by <code>setMarker</code> or this
626
+ function). <code>className</code> will be used to style the text
627
+ for the line, and <code>backgroundClassName</code> to style its
628
+ background (which lies behind the selection).
629
+ Pass <code>null</code> to clear the classes for a line.</dd>
630
+ <dt id="hideLine"><code>hideLine(line) → lineHandle</code></dt>
631
+ <dd>Hide the given line (either by number or by handle). Hidden
632
+ lines don't show up in the editor, and their numbers are skipped
633
+ when <a href="#option_lineNumbers">line numbers</a> are enabled.
634
+ Deleting a region around them does delete them, and coping a
635
+ region around will include them in the copied text.</dd>
636
+ <dt id="showLine"><code>showLine(line) → lineHandle</code></dt>
637
+ <dd>The inverse of <code>hideLine</code>—re-shows a previously
638
+ hidden line, by number or by handle.</dd>
639
+
640
+ <dt id="onDeleteLine"><code>onDeleteLine(line, func)</code></dt>
641
+ <dd>Register a function that should be called when the line is
642
+ deleted from the document.</dd>
508
643
 
509
644
  <dt id="lineInfo"><code>lineInfo(line) → object</code></dt>
510
645
  <dd>Returns the line number, text content, and marker status of
511
646
  the given line, which can be either a number or a handle
512
647
  returned by <code>setMarker</code>. The returned object has the
513
- structure <code>{line, text, markerText, markerClass}</code>.</dd>
648
+ structure <code>{line, handle, text, markerText, markerClass,
649
+ lineClass, bgClass}</code>.</dd>
650
+
651
+ <dt id="getLineHandle"><code>getLineHandle(num) → lineHandle</code></dt>
652
+ <dd>Fetches the line handle for the given line number.</dd>
514
653
 
515
654
  <dt id="addWidget"><code>addWidget(pos, node, scrollIntoView)</code></dt>
516
655
  <dd>Puts <code>node</code>, which should be an absolutely
@@ -552,13 +691,24 @@
552
691
 
553
692
  <dt id="getRange"><code>getRange(from, to) → string</code></td>
554
693
  <dd>Get the text between the given points in the editor, which
555
- should be <code>{line, ch}</code> objects.</dd>
694
+ should be <code>{line, ch}</code> objects. An optional third
695
+ argument can be given to indicate the line separator string to
696
+ use (defaults to <code>"\n"</code>).</dd>
556
697
  <dt id="replaceRange"><code>replaceRange(string, from, to)</code></dt>
557
698
  <dd>Replace the part of the document between <code>from</code>
558
699
  and <code>to</code> with the given string. <code>from</code>
559
700
  and <code>to</code> must be <code>{line, ch}</code>
560
701
  objects. <code>to</code> can be left off to simply insert the
561
702
  string at position <code>from</code>.</dd>
703
+
704
+ <dt id="posFromIndex"><code>posFromIndex(index) → object</code></dt>
705
+ <dd>Calculates and returns a <code>{line, ch}</code> object for a
706
+ zero-based <code>index</code> who's value is relative to the start of the
707
+ editor's text. If the <code>index</code> is out of range of the text then
708
+ the returned object is clipped to start or end of the text
709
+ respectively.</dd>
710
+ <dt id="indexFromPos"><code>indexFromPos(object) → number</code></dt>
711
+ <dd>The reverse of <a href="#posFromIndex"><code>posFromIndex</code></a>.</dd>
562
712
  </dl>
563
713
 
564
714
  <p>The following are more low-level methods:</p>
@@ -574,6 +724,11 @@
574
724
  lot faster. The return value from this method will be the return
575
725
  value of your function.</dd>
576
726
 
727
+ <dt id="compoundChange"><code>compoundChange(func) → result</code></dt>
728
+ <dd>Will call the given function (and return its result),
729
+ combining all changes made while that function executes into a
730
+ single undo event.</dd>
731
+
577
732
  <dt id="refresh"><code>refresh()</code></dt>
578
733
  <dd>If your code does something to change the size of the editor
579
734
  element (window resizes are already listened for), or unhides
@@ -581,15 +736,17 @@
581
736
  ensure CodeMirror is still looking as intended.</dd>
582
737
 
583
738
  <dt id="getInputField"><code>getInputField() → textarea</code></dt>
584
- <dd>Returns the hiden textarea used to read input.</dd>
739
+ <dd>Returns the hidden textarea used to read input.</dd>
585
740
  <dt id="getWrapperElement"><code>getWrapperElement() → node</code></dt>
586
- <dd>Returns the DOM node that represents the editor. Remove this
587
- from your tree to delete an editor instance.</dd>
741
+ <dd>Returns the DOM node that represents the editor, and
742
+ controls its width. Remove this from your tree to delete an
743
+ editor instance. Set it's <code>width</code> style when
744
+ resizing.</dd>
588
745
  <dt id="getScrollerElement"><code>getScrollerElement() → node</code></dt>
589
- <dd>Returns the DOM node that is responsible for the sizing and
590
- the scrolling of the editor. You can change
591
- the <code>height</code> and <code>width</code> styles of this
592
- element to resize an editor. (You might have to call
746
+ <dd>Returns the DOM node that is responsible for the vertical
747
+ sizing and horizontal scrolling of the editor. You can change
748
+ the <code>height</code> style of this element to resize an
749
+ editor. (You might have to call
593
750
  the <a href="#refresh"><code>refresh</code></a> method
594
751
  afterwards.)</dd>
595
752
  <dt id="getGutterElement"><code>getGutterElement() → node</code></dt>
@@ -619,27 +776,163 @@
619
776
  <dt id="toTextArea"><code>toTextArea()</code></dt>
620
777
  <dd>Remove the editor, and restore the original textarea (with
621
778
  the editor's current content).</dd>
779
+
780
+ <dt id="getTextArea"><code>getTextArea() → textarea</code></dt>
781
+ <dd>Returns the textarea that the instance was based on.</dd>
622
782
  </dl>
623
783
 
624
- <p id="defineExtension">If you want define extra methods in terms
625
- of the CodeMirror API, is it possible to
784
+ <p id="defineExtension">If you want to define extra methods in terms
785
+ of the CodeMirror API, it is possible to
626
786
  use <code>CodeMirror.defineExtension(name, value)</code>. This
627
787
  will cause the given value (usually a method) to be added to all
628
788
  CodeMirror instances created from then on.</p>
629
789
 
630
- <h2 id="modeapi">Writing CodeMirror Modes</h2>
790
+ <h2 id="addons">Add-ons</h2>
791
+
792
+ <p>The <code>lib/util</code> directory in the distribution
793
+ contains a number of reusable components that implement extra
794
+ editor functionality. In brief, they are:</p>
795
+
796
+ <dl>
797
+ <dt id="util_dialog"><a href="../lib/util/dialog.js"><code>dialog.js</code></a></dt>
798
+ <dd>Provides a very simple way to query users for text input.
799
+ Adds an <code>openDialog</code> method to CodeMirror instances,
800
+ which can be called with an HTML fragment that provides the
801
+ prompt (should include an <code>input</code> tag), and a
802
+ callback function that is called when text has been entered.
803
+ Depends on <code>lib/util/dialog.css</code>.</dd>
804
+ <dt id="util_searchcursor"><a href="../lib/util/searchcursor.js"><code>searchcursor.js</code></a></dt>
805
+ <dd>Adds the <code>getSearchCursor(query, start, caseFold) →
806
+ cursor</code> method to CodeMirror instances, which can be used
807
+ to implement search/replace functionality. <code>query</code>
808
+ can be a regular expression or a string (only strings will match
809
+ across lines—if they contain newlines). <code>start</code>
810
+ provides the starting position of the search. It can be
811
+ a <code>{line, ch}</code> object, or can be left off to default
812
+ to the start of the document. <code>caseFold</code> is only
813
+ relevant when matching a string. It will cause the search to be
814
+ case-insensitive. A search cursor has the following methods:
815
+ <dl>
816
+ <dt><code>findNext(), findPrevious() → boolean</code></dt>
817
+ <dd>Search forward or backward from the current position.
818
+ The return value indicates whether a match was found. If
819
+ matching a regular expression, the return value will be the
820
+ array returned by the <code>match</code> method, in case you
821
+ want to extract matched groups.</dd>
822
+ <dt><code>from(), to() → object</code></dt>
823
+ <dd>These are only valid when the last call
824
+ to <code>findNext</code> or <code>findPrevious</code> did
825
+ not return false. They will return <code>{line, ch}</code>
826
+ objects pointing at the start and end of the match.</dd>
827
+ <dt><code>replace(text)</code></dt>
828
+ <dd>Replaces the currently found match with the given text
829
+ and adjusts the cursor position to reflect the
830
+ replacement.</dd>
831
+ </dl></dd>
631
832
 
632
- <p>Modes typically consist of a JavaScript file and a CSS file.
633
- The CSS file (see, for
634
- example <a href="mode/javascript/javascript.css"><code>javascript.css</code></a>)
635
- defines the classes that will be used to style the syntactic
636
- elements of the code, and the script contains the logic to
637
- actually assign these classes to the right pieces of text.</p>
833
+ <dt id="util_search"><a href="../lib/util/search.js"><code>search.js</code></a></dt>
834
+ <dd>Implements the search commands. CodeMirror has keys bound to
835
+ these by default, but will not do anything with them unless an
836
+ implementation is provided. Depends
837
+ on <code>searchcursor.js</code>, and will make use
838
+ of <a href="#util_dialog"><code>openDialog</code></a> when
839
+ available to make prompting for search queries less ugly.</dd>
840
+ <dt id="util_foldcode"><a href="../lib/util/foldcode.js"><code>foldcode.js</code></a></dt>
841
+ <dd>Helps with code folding.
842
+ See <a href="../demo/folding.html">the demo</a> for an example.
843
+ Call <code>CodeMirror.newFoldFunction</code> with a range-finder
844
+ helper function to create a function that will, when applied to
845
+ a CodeMirror instance and a line number, attempt to fold or
846
+ unfold the block starting at the given line. A range-finder is a
847
+ language-specific function that also takes an instance and a
848
+ line number, and returns an end line for the block, or null if
849
+ no block is started on that line. This file
850
+ provides <code>CodeMirror.braceRangeFinder</code>, which finds
851
+ blocks in brace languages (JavaScript, C, Java,
852
+ etc), <code>CodeMirror.indentRangeFinder</code>, for languages
853
+ where indentation determines block structure (Python, Haskell),
854
+ and <code>CodeMirror.tagRangeFinder</code>, for XML-style
855
+ languages.</dd>
856
+ <dt id="util_runmode"><a href="../lib/util/runmode.js"><code>runmode.js</code></a></dt>
857
+ <dd>Can be used to run a CodeMirror mode over text without
858
+ actually opening an editor instance.
859
+ See <a href="../demo/runmode.html">the demo</a> for an
860
+ example.</dd>
861
+ <dt id="util_overlay"><a href="../lib/util/overlay.js"><code>overlay.js</code></a></dt>
862
+ <dd>Mode combinator that can be used to extend a mode with an
863
+ 'overlay' — a secondary mode is run over the stream, along with
864
+ the base mode, and can color specific pieces of text without
865
+ interfering with the base mode.
866
+ Defines <code>CodeMirror.overlayMode</code>, which is used to
867
+ create such a mode. See <a href="../demo/mustache.html">this
868
+ demo</a> for a detailed example.</dd>
869
+ <dt id="util_multiplex"><a href="../lib/util/multiplex.js"><code>multiplex.js</code></a></dt>
870
+ <dd>Mode combinator that can be used to easily 'multiplex'
871
+ between several modes.
872
+ Defines <code>CodeMirror.multiplexingMode</code> which, when
873
+ given as first argument a mode object, and as other arguments
874
+ any number of <code>{open, close, mode [, delimStyle]}</code>
875
+ objects, will return a mode object that starts parsing using the
876
+ mode passed as first argument, but will switch to another mode
877
+ as soon as it encounters a string that occurs in one of
878
+ the <code>open</code> fields of the passed objects. When in a
879
+ sub-mode, it will go back to the top mode again when
880
+ the <code>close</code> string is encountered.
881
+ When <code>delimStyle</code> is specified, it will be the token
882
+ style returned for the delimiter tokens. The outer mode will not
883
+ see the content between the delimiters.
884
+ See <a href="../demo/multiplex.html">this demo</a> for an
885
+ example.</dd>
886
+ <dt id="util_simple-hint"><a href="../lib/util/simple-hint.js"><code>simple-hint.js</code></a></dt>
887
+ <dd>Provides a framework for showing autocompletion hints.
888
+ Defines <code>CodeMirror.simpleHint</code>, which takes a
889
+ CodeMirror instance and a hinting function, and pops up a widget
890
+ that allows the user to select a completion. Hinting functions
891
+ are function that take an editor instance, and return
892
+ a <code>{list, from, to}</code> object, where <code>list</code>
893
+ is an array of strings (the completions), and <code>from</code>
894
+ and <code>to</code> give the start and end of the token that is
895
+ being completed. Depends
896
+ on <code>lib/util/simple-hint.css</code>.</dd>
897
+ <dt id="util_javascript-hint"><a href="../lib/util/javascript-hint.js"><code>javascript-hint.js</code></a></dt>
898
+ <dd>Defines <code>CodeMirror.javascriptHint</code>
899
+ and <code>CodeMirror.coffeescriptHint</code>, which are simple
900
+ hinting functions for the JavaScript and CoffeeScript
901
+ modes.</dd>
902
+ <dt id="util_match-highlighter"><a href="../lib/util/match-highlighter.js"><code>match-highlighter.js</code></a></dt>
903
+ <dd>Adds a <code>matchHighlight</code> method to CodeMirror
904
+ instances that can be called (typically from
905
+ a <a href="#option_onCursorActivity"><code>onCursorActivity</code></a>
906
+ handler) to highlight all instances of a currently selected word
907
+ with the a classname given as a first argument to the method.
908
+ Depends on
909
+ the <a href="#util_searchcursor"><code>searchcursor</code></a>
910
+ add-on. Demo <a href="../demo/matchhighlighter.html">here</a>.</dd>
911
+ <dt id="util_closetag"><a href="../lib/util/closetag.js"><code>closetag.js</code></a></dt>
912
+ <dd>Provides utility functions for adding automatic tag closing
913
+ to XML modes. See
914
+ the <a href="../demo/closetag.html">demo</a>.</dd>
915
+ <dt id="util_loadmode"><a href="../lib/util/loadmode.js"><code>loadmode.js</code></a></dt>
916
+ <dd>Defines a <code>CodeMirror.requireMode(modename,
917
+ callback)</code> function that will try to load a given mode and
918
+ call the callback when it succeeded. You'll have to
919
+ set <code>CodeMirror.modeURL</code> to a string that mode paths
920
+ can be constructed from, for
921
+ example <code>"mode/%N/%N.js"</code>—the <code>%N</code>'s will
922
+ be replaced with the mode name. Also
923
+ defines <code>CodeMirror.autoLoadMode(instance, mode)</code>,
924
+ which will ensure the given mode is loaded and cause the given
925
+ editor instance to refresh its mode when the loading
926
+ succeeded. See the <a href="../demo/loadmode.html">demo</a>.</dd>
927
+ </dl>
928
+
929
+ <h2 id="modeapi">Writing CodeMirror Modes</h2>
638
930
 
639
- <p>You'll usually want to use some kind of prefix for your CSS
640
- classes, so that they are unlikely to clash with other classes,
641
- both those used by other modes and those defined by the page in
642
- which CodeMirror is embedded.</p>
931
+ <p>Modes typically consist of a single JavaScript file. This file
932
+ defines, in the simplest case, a lexer (tokenizer) for your
933
+ language—a function that takes a character stream as input,
934
+ advances it past a token, and returns a style for that token. More
935
+ advanced modes can also handle indentation for the language.</p>
643
936
 
644
937
  <p id="defineMode">The mode script should
645
938
  call <code>CodeMirror.defineMode</code> to register itself with
@@ -649,9 +942,10 @@
649
942
  mode (i.e. <code>"xml"</code> is defined <code>xml.js</code>). The
650
943
  second argument should be a function that, given a CodeMirror
651
944
  configuration object (the thing passed to
652
- the <code>CodeMirror</code> function) and a mode configuration
653
- object (as in the <a href="#option_mode"><code>mode</code></a>
654
- option), returns a mode object.</p>
945
+ the <code>CodeMirror</code> function) and an optional mode
946
+ configuration object (as in
947
+ the <a href="#option_mode"><code>mode</code></a> option), returns
948
+ a mode object.</p>
655
949
 
656
950
  <p>Typically, you should use this second argument
657
951
  to <code>defineMode</code> as your module scope function (modes
@@ -665,8 +959,8 @@
665
959
  meaning that they look at one element (<em>token</em>) of the code
666
960
  at a time, with no memory of what came before. Most, however, will
667
961
  need to remember something. This is done by using a <em>state
668
- object</em>, which is an object that can be mutated every time a
669
- new token is read.</p>
962
+ object</em>, which is an object that is always passed when
963
+ reading a token, and which can be mutated by the tokenizer.</p>
670
964
 
671
965
  <p id="startState">Modes that use a state must define
672
966
  a <code>startState</code> method on their mode object. This is a
@@ -680,8 +974,7 @@
680
974
  style string, or <code>null</code> for tokens that do not have to
681
975
  be styled. For your styles, you can either use the 'standard' ones
682
976
  defined in the themes (without the <code>cm-</code> prefix), or
683
- define your own (as the <a href="../mode/diff/index.html">diff</a>
684
- mode does) and have people include a custom theme for your
977
+ define your own and have people include a custom CSS file for your
685
978
  mode.<p>
686
979
 
687
980
  <p id="StringStream">The stream object encapsulates a line of code
@@ -721,7 +1014,9 @@
721
1014
  <dd>Moves the position to the end of the line.</dd>
722
1015
  <dt><code>skipTo(ch) → boolean</code></dt>
723
1016
  <dd>Skips to the next occurrence of the given character, if
724
- found. Returns true if the character was found.</dd>
1017
+ found on the current line (doesn't advance the stream if the
1018
+ character does not occur on the line). Returns true if the
1019
+ character was found.</dd>
725
1020
  <dt><code>match(pattern, consume, caseFold) → boolean</code></dt>
726
1021
  <dd>Act like a
727
1022
  multi-character <code>eat</code>—if <code>consume</code> is true
@@ -782,9 +1077,10 @@
782
1077
  reliable highlighting of bad closing tags, as an example.</p>
783
1078
 
784
1079
  <p id="indent">If you want your mode to provide smart indentation
785
- (see <a href="#option_enterMode"><code>entermode</code></a>
786
- and <a href="#option_tabMode"><code>tabMode</code></a> when they
787
- have a value of <code>"indent"</code>), you must define
1080
+ (though the <a href="#indentLine"><code>indentLine</code></a>
1081
+ method and the <code>indentAuto</code>
1082
+ and <code>newlineAndIndent</code> commands, which keys can be
1083
+ <a href="#option_extraKeys">bound</a> to), you must define
788
1084
  an <code>indent(state, textAfter)</code> method on your mode
789
1085
  object.</p>
790
1086
 
@@ -805,15 +1101,15 @@
805
1101
  <p>So, to summarize, a mode <em>must</em> provide
806
1102
  a <code>token</code> method, and it <em>may</em>
807
1103
  provide <code>startState</code>, <code>copyState</code>,
808
- and <code>indent</code> methods. For an example of a trivial mode,
809
- see the <a href="mode/diff/diff.js">diff mode</a>, for a more
810
- involved example, see
811
- the <a href="mode/javascript/javascript.js">JavaScript
1104
+ <code>compareStates</code>, and <code>indent</code> methods. For
1105
+ an example of a trivial mode, see
1106
+ the <a href="../mode/diff/diff.js">diff mode</a>, for a more involved
1107
+ example, see the <a href="../mode/clike/clike.js">C-like
812
1108
  mode</a>.</p>
813
1109
 
814
1110
  <p>Sometimes, it is useful for modes to <em>nest</em>—to have one
815
1111
  mode delegate work to another mode. An example of this kind of
816
- mode is the <a href="mode/htmlmixed/htmlmixed.js">mixed-mode HTML
1112
+ mode is the <a href="../mode/htmlmixed/htmlmixed.js">mixed-mode HTML
817
1113
  mode</a>. To implement such nesting, it is usually necessary to
818
1114
  create mode objects and copy states yourself. To create a mode
819
1115
  object, there are <code>CodeMirror.getMode(options,
@@ -851,8 +1147,10 @@
851
1147
  <li><a href="#overview">Overview</a></li>
852
1148
  <li><a href="#usage">Basic Usage</a></li>
853
1149
  <li><a href="#config">Configuration</a></li>
1150
+ <li><a href="#keymaps">Keymaps</a></li>
854
1151
  <li><a href="#styling">Customized Styling</a></li>
855
1152
  <li><a href="#api">Programming API</a></li>
1153
+ <li><a href="#addons">Add-ons</a></li>
856
1154
  <li><a href="#modeapi">Writing CodeMirror Modes</a></li>
857
1155
  </ul>
858
1156