erp_app 3.0.7 → 3.0.8

Sign up to get free protection for your applications and to get access to all the features.
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