erp_app 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (909) hide show
  1. data/README.md +3 -0
  2. data/app/controllers/erp_app/application_controller.rb +1 -0
  3. data/app/controllers/erp_app/desktop/base_controller.rb +1 -1
  4. data/app/controllers/erp_app/desktop/configuration_management/base_controller.rb +180 -0
  5. data/app/controllers/erp_app/desktop/configuration_management/options_controller.rb +55 -0
  6. data/app/controllers/erp_app/desktop/configuration_management/types_controller.rb +129 -0
  7. data/app/controllers/erp_app/desktop/control_panel/application_management_controller.rb +1 -1
  8. data/app/controllers/erp_app/desktop/control_panel/desktop_management_controller.rb +1 -1
  9. data/app/controllers/erp_app/desktop/control_panel/profile_management_controller.rb +14 -16
  10. data/app/controllers/erp_app/desktop/file_manager/base_controller.rb +5 -7
  11. data/app/controllers/erp_app/desktop/system_management/application_role_management_controller.rb +1 -1
  12. data/app/controllers/erp_app/desktop/user_management/application_management_controller.rb +9 -9
  13. data/app/controllers/erp_app/desktop/user_management/base_controller.rb +1 -1
  14. data/app/controllers/erp_app/desktop/user_management/role_management_controller.rb +13 -8
  15. data/app/controllers/erp_app/mobile/base_controller.rb +21 -0
  16. data/app/controllers/erp_app/mobile/login_controller.rb +11 -0
  17. data/app/controllers/erp_app/mobile/user_management/base_controller.rb +24 -0
  18. data/app/controllers/erp_app/organizer/base_controller.rb +6 -5
  19. data/app/controllers/erp_app/organizer/crm/base_controller.rb +117 -15
  20. data/app/controllers/erp_app/public_controller.rb +73 -6
  21. data/app/controllers/erp_app/shared/configuration_controller.rb +53 -0
  22. data/app/controllers/erp_app/widget_proxy_controller.rb +1 -1
  23. data/app/models/app_container.rb +8 -2
  24. data/app/models/application.rb +1 -1
  25. data/app/models/configuration.rb +129 -0
  26. data/app/models/configuration_item.rb +45 -0
  27. data/app/models/configuration_item_type.rb +96 -0
  28. data/app/models/configuration_item_type_configuration_option.rb +10 -0
  29. data/app/models/configuration_option.rb +20 -0
  30. data/app/models/desktop.rb +7 -10
  31. data/app/models/extensions/user.rb +41 -2
  32. data/app/models/mobile.rb +10 -0
  33. data/app/models/mobile_application.rb +6 -0
  34. data/app/models/organizer.rb +3 -6
  35. data/app/models/preference.rb +2 -2
  36. data/app/models/preference_type.rb +1 -1
  37. data/app/models/user_preference.rb +3 -3
  38. data/app/models/valid_configuration.rb +4 -0
  39. data/app/models/valid_preference_type.rb +2 -2
  40. data/app/observers/user_app_container_observer.rb +7 -2
  41. data/app/views/erp_app/desktop/base/index.erb +25 -32
  42. data/app/views/erp_app/login/index.erb +3 -3
  43. data/app/views/erp_app/mobile/base/index.erb +37 -0
  44. data/app/views/erp_app/mobile/login/index.erb +22 -0
  45. data/app/views/erp_app/mobile/user_management/base/index.html.erb +28 -0
  46. data/app/views/erp_app/organizer/base/get_party_details.erb +19 -0
  47. data/app/views/erp_app/organizer/base/index.erb +20 -23
  48. data/app/views/erp_app/widget_proxy/index.erb +1 -1
  49. data/config/routes.rb +22 -0
  50. data/db/data_migrations/20110728201729_erp_app_setup.rb +3 -1
  51. data/db/data_migrations/20120229160222_add_userinfo_widget.rb +30 -0
  52. data/db/data_migrations/20120405193721_create_party_and_role_type_for_communication_events.rb +10 -0
  53. data/db/data_migrations/20120411180756_create_user_management_mobile_application.rb +18 -0
  54. data/db/data_migrations/20120413000515_create_mobile_containers.rb +13 -0
  55. data/db/data_migrations/20120418164215_create_configuration_management_desktop_application.rb +22 -0
  56. data/db/data_migrations/upgrade/20120213182651_add_true_north_background.rb +16 -0
  57. data/db/migrate/20080805000096_base_app_framework.rb +125 -33
  58. data/db/migrate/20120316152543_add_is_template_to_configurations.rb +5 -0
  59. data/db/migrate/20120320182253_update_app_container.rb +20 -0
  60. data/db/migrate/20120325123722_remove_file_system_loader_column.rb +9 -0
  61. data/db/migrate/20120411151848_add_base_url_to_application.rb +5 -0
  62. data/db/migrate/20120427000446_add_user_defined_to_config_option.rb +17 -0
  63. data/db/migrate/20120429130430_update_configuration_join_tables.rb +16 -0
  64. data/db/migrate/upgrade/20120208201934_add_configuration_models.rb +109 -0
  65. data/db/migrate/upgrade/20120209194251_add_user_defined_to_config_type.rb +5 -0
  66. data/db/migrate/upgrade/20120210172929_add_config_types_to_configs.rb +23 -0
  67. data/lib/erp_app/application_resource_loader/base_loader.rb +17 -0
  68. data/lib/erp_app/application_resource_loader/{file_system_loader.rb → desktop_organizer_loader.rb} +15 -29
  69. data/lib/erp_app/application_resource_loader/mobile_loader.rb +46 -0
  70. data/lib/erp_app/application_resource_loader/shared_loader.rb +26 -0
  71. data/lib/erp_app/application_resource_loader.rb +4 -0
  72. data/lib/erp_app/config.rb +2 -2
  73. data/lib/erp_app/engine.rb +7 -4
  74. data/lib/erp_app/extensions/railties/action_view/base.rb +12 -0
  75. data/lib/erp_app/extensions/railties/action_view/helpers/active_ext_helper.rb +17 -0
  76. data/lib/erp_app/extensions/railties/action_view/helpers/extjs_helper.rb +45 -0
  77. data/lib/erp_app/extensions/railties/action_view/helpers/include_helper.rb +134 -0
  78. data/lib/erp_app/extensions/railties/action_view/helpers/tag_helper.rb +27 -0
  79. data/lib/erp_app/extensions.rb +1 -2
  80. data/lib/erp_app/version.rb +8 -1
  81. data/lib/erp_app/widgets/base.rb +50 -43
  82. data/lib/erp_app/widgets/javascript_loader.rb +13 -20
  83. data/lib/erp_app/widgets/loader.rb +126 -0
  84. data/lib/erp_app/widgets/railties/action_view/base.rb +8 -0
  85. data/lib/erp_app/widgets/railties/action_view/helpers/widget_helper.rb +57 -0
  86. data/lib/erp_app/widgets.rb +2 -2
  87. data/lib/erp_app.rb +3 -1
  88. data/lib/generators/cms_widget/templates/engine/engine_template.rb +0 -4
  89. data/lib/generators/cms_widget/templates/javascript/base.js.erb +2 -1
  90. data/lib/generators/desktop_application/USAGE +1 -1
  91. data/lib/generators/desktop_application/templates/controllers/controller_template.rb +7 -5
  92. data/lib/generators/desktop_application/templates/migrate/migration_template.rb +0 -4
  93. data/lib/generators/mobile_application/USAGE +24 -0
  94. data/lib/generators/mobile_application/mobile_application_generator.rb +27 -0
  95. data/lib/generators/mobile_application/templates/INSTALL +25 -0
  96. data/lib/generators/mobile_application/templates/controllers/controller_template.rb +11 -0
  97. data/lib/generators/mobile_application/templates/migrate/migration_template.rb +14 -0
  98. data/lib/generators/mobile_application/templates/public/app.js.erb +35 -0
  99. data/lib/generators/mobile_application/templates/views/index.html.erb +28 -0
  100. data/lib/generators/organizer_application/templates/controllers/controller_template.rb +9 -11
  101. data/public/images/icons/apartment/apartment_16x16.png +0 -0
  102. data/public/images/icons/apartment/apartment_24x24.png +0 -0
  103. data/public/images/icons/apartment/apartment_32x32.png +0 -0
  104. data/public/images/icons/apartment/apartment_48x48.png +0 -0
  105. data/public/images/wallpaper/truenorth.png +0 -0
  106. data/public/javascripts/erp_app/authentication/widget_manager.js +23 -2
  107. data/public/javascripts/erp_app/ckeditor/ckeditor.js +113 -111
  108. data/public/javascripts/erp_app/ckeditor/contents.css +2 -2
  109. data/public/javascripts/erp_app/ckeditor/lang/_translationstatus.txt +59 -59
  110. data/public/javascripts/erp_app/ckeditor/lang/af.js +1 -1
  111. data/public/javascripts/erp_app/ckeditor/lang/ar.js +1 -1
  112. data/public/javascripts/erp_app/ckeditor/lang/bg.js +1 -1
  113. data/public/javascripts/erp_app/ckeditor/lang/bn.js +1 -1
  114. data/public/javascripts/erp_app/ckeditor/lang/bs.js +1 -1
  115. data/public/javascripts/erp_app/ckeditor/lang/ca.js +1 -1
  116. data/public/javascripts/erp_app/ckeditor/lang/cs.js +1 -1
  117. data/public/javascripts/erp_app/ckeditor/lang/cy.js +1 -1
  118. data/public/javascripts/erp_app/ckeditor/lang/da.js +1 -1
  119. data/public/javascripts/erp_app/ckeditor/lang/de.js +1 -1
  120. data/public/javascripts/erp_app/ckeditor/lang/el.js +1 -1
  121. data/public/javascripts/erp_app/ckeditor/lang/en-au.js +1 -1
  122. data/public/javascripts/erp_app/ckeditor/lang/en-ca.js +1 -1
  123. data/public/javascripts/erp_app/ckeditor/lang/en-gb.js +1 -1
  124. data/public/javascripts/erp_app/ckeditor/lang/en.js +1 -1
  125. data/public/javascripts/erp_app/ckeditor/lang/eo.js +1 -1
  126. data/public/javascripts/erp_app/ckeditor/lang/es.js +1 -1
  127. data/public/javascripts/erp_app/ckeditor/lang/et.js +1 -1
  128. data/public/javascripts/erp_app/ckeditor/lang/eu.js +1 -1
  129. data/public/javascripts/erp_app/ckeditor/lang/fa.js +1 -1
  130. data/public/javascripts/erp_app/ckeditor/lang/fi.js +1 -1
  131. data/public/javascripts/erp_app/ckeditor/lang/fo.js +1 -1
  132. data/public/javascripts/erp_app/ckeditor/lang/fr-ca.js +1 -1
  133. data/public/javascripts/erp_app/ckeditor/lang/fr.js +1 -1
  134. data/public/javascripts/erp_app/ckeditor/lang/gl.js +1 -1
  135. data/public/javascripts/erp_app/ckeditor/lang/gu.js +1 -1
  136. data/public/javascripts/erp_app/ckeditor/lang/he.js +1 -1
  137. data/public/javascripts/erp_app/ckeditor/lang/hi.js +1 -1
  138. data/public/javascripts/erp_app/ckeditor/lang/hr.js +1 -1
  139. data/public/javascripts/erp_app/ckeditor/lang/hu.js +1 -1
  140. data/public/javascripts/erp_app/ckeditor/lang/is.js +1 -1
  141. data/public/javascripts/erp_app/ckeditor/lang/it.js +1 -1
  142. data/public/javascripts/erp_app/ckeditor/lang/ja.js +1 -1
  143. data/public/javascripts/erp_app/ckeditor/lang/ka.js +1 -1
  144. data/public/javascripts/erp_app/ckeditor/lang/km.js +1 -1
  145. data/public/javascripts/erp_app/ckeditor/lang/ko.js +1 -1
  146. data/public/javascripts/erp_app/ckeditor/lang/lt.js +1 -1
  147. data/public/javascripts/erp_app/ckeditor/lang/lv.js +1 -1
  148. data/public/javascripts/erp_app/ckeditor/lang/mn.js +1 -1
  149. data/public/javascripts/erp_app/ckeditor/lang/ms.js +1 -1
  150. data/public/javascripts/erp_app/ckeditor/lang/nb.js +1 -1
  151. data/public/javascripts/erp_app/ckeditor/lang/nl.js +1 -1
  152. data/public/javascripts/erp_app/ckeditor/lang/no.js +1 -1
  153. data/public/javascripts/erp_app/ckeditor/lang/pl.js +1 -1
  154. data/public/javascripts/erp_app/ckeditor/lang/pt-br.js +1 -1
  155. data/public/javascripts/erp_app/ckeditor/lang/pt.js +1 -1
  156. data/public/javascripts/erp_app/ckeditor/lang/ro.js +1 -1
  157. data/public/javascripts/erp_app/ckeditor/lang/ru.js +1 -1
  158. data/public/javascripts/erp_app/ckeditor/lang/sk.js +1 -1
  159. data/public/javascripts/erp_app/ckeditor/lang/sl.js +1 -1
  160. data/public/javascripts/erp_app/ckeditor/lang/sr-latn.js +1 -1
  161. data/public/javascripts/erp_app/ckeditor/lang/sr.js +1 -1
  162. data/public/javascripts/erp_app/ckeditor/lang/sv.js +1 -1
  163. data/public/javascripts/erp_app/ckeditor/lang/th.js +1 -1
  164. data/public/javascripts/erp_app/ckeditor/lang/tr.js +1 -1
  165. data/public/javascripts/erp_app/ckeditor/lang/uk.js +1 -1
  166. data/public/javascripts/erp_app/ckeditor/lang/vi.js +1 -1
  167. data/public/javascripts/erp_app/ckeditor/lang/zh-cn.js +1 -1
  168. data/public/javascripts/erp_app/ckeditor/lang/zh.js +1 -1
  169. data/public/javascripts/erp_app/ckeditor/plugins/autogrow/plugin.js +1 -1
  170. data/public/javascripts/erp_app/ckeditor/plugins/docprops/dialogs/docprops.js +2 -2
  171. data/public/javascripts/erp_app/ckeditor/plugins/find/dialogs/find.js +5 -5
  172. data/public/javascripts/erp_app/ckeditor/plugins/flash/dialogs/flash.js +1 -1
  173. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/textarea.js +1 -1
  174. data/public/javascripts/erp_app/ckeditor/plugins/image/dialogs/image.js +1 -1
  175. data/public/javascripts/erp_app/ckeditor/plugins/link/dialogs/link.js +1 -1
  176. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/codemirror_config.js +85 -0
  177. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/editor.css +96 -0
  178. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/buttonbg.gif +0 -0
  179. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/cancel.png +0 -0
  180. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/highlight.png +0 -0
  181. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/redo.png +0 -0
  182. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/reindent.png +0 -0
  183. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/save.png +0 -0
  184. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/search.png +0 -0
  185. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/undo.png +0 -0
  186. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/nocolors.css +24 -0
  187. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/LICENSE +23 -0
  188. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/bigtest.html +1296 -0
  189. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/compress.html +169 -0
  190. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/css/csharpcolors.css +60 -0
  191. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/index.html +61 -0
  192. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/js/parsecsharp.js +329 -0
  193. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/js/tokenizecsharp.js +196 -0
  194. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/LICENSE +24 -0
  195. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/css/freemarkercolors.css +63 -0
  196. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/index.html +75 -0
  197. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/js/parsefreemarker.js +380 -0
  198. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/groovy/index.html +57 -0
  199. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/LICENSE +20 -0
  200. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/css/javacolors.css +64 -0
  201. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/index.html +66 -0
  202. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/js/parsejava.js +285 -0
  203. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/js/tokenizejava.js +222 -0
  204. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/LICENSE +32 -0
  205. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/css/luacolors.css +63 -0
  206. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/index.html +68 -0
  207. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/js/parselua.js +254 -0
  208. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/LICENSE +23 -0
  209. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/css/ometacolors.css +63 -0
  210. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/index.html +77 -0
  211. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/js/parseometa.js +364 -0
  212. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/js/tokenizeometa.js +209 -0
  213. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/LICENSE +37 -0
  214. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/css/phpcolors.css +114 -0
  215. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/index.html +310 -0
  216. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/js/parsephp.js +419 -0
  217. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/js/parsephphtmlmixed.js +116 -0
  218. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/js/tokenizephp.js +1208 -0
  219. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/LICENSE +22 -0
  220. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/css/plsqlcolors.css +57 -0
  221. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/index.html +67 -0
  222. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/js/parseplsql.js +233 -0
  223. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/LICENSE +32 -0
  224. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/css/pythoncolors.css +58 -0
  225. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/index.html +141 -0
  226. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/js/parsepython.js +541 -0
  227. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/css/js-regexcolors.css +214 -0
  228. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/css/regexcolors.css +214 -0
  229. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/index.html +114 -0
  230. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js/parsejavascript_and_regex.js +91 -0
  231. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js/parseregex-unicode.js +284 -0
  232. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js/parseregex.js +847 -0
  233. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js-regex.html +118 -0
  234. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/LICENSE +23 -0
  235. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/css/schemecolors.css +45 -0
  236. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/index.html +82 -0
  237. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/js/parsescheme.js +428 -0
  238. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/js/tokenizescheme.js +241 -0
  239. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/LICENSE +22 -0
  240. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/css/sqlcolors.css +59 -0
  241. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/index.html +56 -0
  242. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/js/parsesql.js +267 -0
  243. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/LICENSE +13 -0
  244. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/css/xqcolors-dark.css +93 -0
  245. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/css/xqcolors.css +99 -0
  246. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/css/xqcolors2.css +96 -0
  247. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/index.html +552 -0
  248. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/js/parsexquery.js +234 -0
  249. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/js/tokenizexquery.js +457 -0
  250. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/baboon.png +0 -0
  251. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/baboon_vector.ai +965 -0
  252. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/csscolors.css +55 -0
  253. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/docs.css +158 -0
  254. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/font.js +15 -0
  255. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/jscolors.css +59 -0
  256. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/people.jpg +0 -0
  257. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/sparqlcolors.css +43 -0
  258. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/xmlcolors.css +55 -0
  259. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/csstest.html +60 -0
  260. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/faq.html +86 -0
  261. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/favicon.ico +0 -0
  262. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/googleb196c451afc2ee11.html +1 -0
  263. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/googlehostedservice.html +1 -0
  264. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/highlight.html +82 -0
  265. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/htmltest.html +53 -0
  266. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/index.html +254 -0
  267. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/codemirror.js +582 -0
  268. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/editor.js +1670 -0
  269. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/highlight.js +68 -0
  270. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/mirrorframe.js +81 -0
  271. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsecss.js +161 -0
  272. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsedummy.js +32 -0
  273. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsehtmlmixed.js +93 -0
  274. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsejavascript.js +359 -0
  275. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsesparql.js +162 -0
  276. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsexml.js +291 -0
  277. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/select.js +697 -0
  278. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/stringstream.js +159 -0
  279. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/tokenize.js +57 -0
  280. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/tokenizejavascript.js +174 -0
  281. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/undo.js +413 -0
  282. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/unittests.js +44 -0
  283. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/util.js +133 -0
  284. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/jstest.html +56 -0
  285. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/manual.html +806 -0
  286. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/mixedtest.html +52 -0
  287. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/sparqltest.html +41 -0
  288. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/story.html +672 -0
  289. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/unittests.html +125 -0
  290. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/xhtmltest.xhtml +50 -0
  291. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/lang/de.js +20 -0
  292. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/lang/en.js +20 -0
  293. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/dialogs/sourcepopup.js +102 -0
  294. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/lang/de.js +9 -0
  295. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/lang/en.js +9 -0
  296. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/plugin.js +27 -0
  297. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/specialchar.js +1 -1
  298. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/en.js +1 -1
  299. data/public/javascripts/erp_app/ckeditor/plugins/table/dialogs/table.js +4 -4
  300. data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/wsc.js +1 -1
  301. data/public/javascripts/erp_app/ckeditor/skins/kama/dialog.css +1 -1
  302. data/public/javascripts/erp_app/ckeditor/skins/kama/editor.css +3 -3
  303. data/public/javascripts/erp_app/ckeditor/skins/office2003/dialog.css +1 -1
  304. data/public/javascripts/erp_app/ckeditor/skins/office2003/editor.css +1 -1
  305. data/public/javascripts/erp_app/ckeditor/skins/v2/dialog.css +1 -1
  306. data/public/javascripts/erp_app/ckeditor/skins/v2/editor.css +1 -1
  307. data/public/javascripts/erp_app/ckeditor/themes/default/theme.js +2 -2
  308. data/public/javascripts/erp_app/ckeditor_example_config_override.js +44 -0
  309. data/public/javascripts/erp_app/desktop/applications/configuration_management/configuration_options_panel.js +229 -0
  310. data/public/javascripts/erp_app/desktop/applications/configuration_management/configuration_tree_panel.js +482 -0
  311. data/public/javascripts/erp_app/desktop/applications/configuration_management/configuration_types_panel.js +425 -0
  312. data/public/javascripts/erp_app/desktop/applications/configuration_management/module.js +95 -0
  313. data/public/javascripts/erp_app/desktop/applications/configuration_management/stores.0.js +68 -0
  314. data/public/javascripts/erp_app/desktop/applications/control_panel/application_management_panel.js +2 -1
  315. data/public/javascripts/erp_app/desktop/applications/control_panel/module.js +48 -47
  316. data/public/javascripts/erp_app/desktop/applications/control_panel/profile_management_panel.js +141 -84
  317. data/public/javascripts/erp_app/desktop/applications/file_manager/module.js +1 -2
  318. data/public/javascripts/erp_app/desktop/applications/scaffold/models_tree_panel.js +1 -2
  319. data/public/javascripts/erp_app/desktop/applications/system_management/application_role_management_panel.js +1 -2
  320. data/public/javascripts/erp_app/desktop/applications/user_management/module.js +10 -6
  321. data/public/javascripts/erp_app/desktop/applications/user_management/role_management_panel.js +3 -9
  322. data/public/javascripts/erp_app/desktop/applications/user_management/user_application_mgt_panel.js +4 -10
  323. data/public/javascripts/erp_app/ecommerce/credit_card_window.js +1 -1
  324. data/public/javascripts/erp_app/jquery_support.js +5 -5
  325. data/public/javascripts/erp_app/login/mobile.js +52 -0
  326. data/public/javascripts/erp_app/mobile/app.js +46 -0
  327. data/public/javascripts/erp_app/mobile/applications/user_management/app/model/user.js +14 -0
  328. data/public/javascripts/erp_app/mobile/applications/user_management/app/store/users.js +19 -0
  329. data/public/javascripts/erp_app/mobile/applications/user_management/app/view/templates.js +24 -0
  330. data/public/javascripts/erp_app/mobile/applications/user_management/app.js +168 -0
  331. data/public/javascripts/erp_app/mobile/mobile_base.js +10 -0
  332. data/public/javascripts/erp_app/organizer/applications/crm/base.js +415 -117
  333. data/public/javascripts/erp_app/organizer/applications/crm/contact_mechanism_grid.js +8 -1
  334. data/public/javascripts/erp_app/organizer/applications/crm/party_grid.js +33 -36
  335. data/public/javascripts/erp_app/organizer/applications/crm/userinfo.js +215 -0
  336. data/public/javascripts/erp_app/organizer/layout.js +9 -11
  337. data/public/javascripts/erp_app/shared/active_ext/active_ext_grid.js +1 -2
  338. data/public/javascripts/erp_app/shared/active_ext/active_ext_grid_panel.js +2 -3
  339. data/public/javascripts/erp_app/shared/compass_ckeditor.js +7 -6
  340. data/public/javascripts/erp_app/shared/compass_codemirror.js +161 -162
  341. data/public/javascripts/erp_app/shared/configuration/configuration_form.js +278 -0
  342. data/public/javascripts/erp_app/shared/configuration/configuration_panel.js +109 -0
  343. data/public/javascripts/erp_app/{coolclock → shared/coolclock}/coolclock.js +0 -0
  344. data/public/javascripts/erp_app/{coolclock → shared/coolclock}/moreskins.js +0 -0
  345. data/public/javascripts/erp_app/{coolclock → shared/coolclock}/tray_clock.js +0 -0
  346. data/public/javascripts/erp_app/shared/dynamic_editable_grid.js +29 -28
  347. data/public/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js +3 -3
  348. data/public/javascripts/erp_app/shared/file_manager_tree.js +41 -25
  349. data/public/javascripts/erp_app/shared/file_upload/Ext.ux.AwesomeUploader.js +1 -1
  350. data/public/javascripts/erp_app/shared/file_upload/Ext.ux.XHRUpload.js +1 -1
  351. data/public/javascripts/erp_app/shared/file_upload/upload_window.js +245 -242
  352. data/public/javascripts/erp_app/shared/google_map_panel.js +82 -83
  353. data/public/javascripts/erp_app/shared/notes_grid.js +1 -2
  354. data/public/javascripts/erp_app/shared/preference_form.js +3 -5
  355. data/public/javascripts/erp_app/tinymce/Ext.ux.TinyMCE.js +689 -0
  356. data/public/javascripts/erp_app/tinymce/center_region.js +611 -0
  357. data/public/javascripts/erp_app/utility.js +284 -246
  358. data/public/javascripts/erp_app/widgets.js +39 -35
  359. data/public/javascripts/extjs/Ext.ux.form.MultiSelect.js +422 -0
  360. data/public/javascripts/extjs/ext-all-debug.js +15973 -12927
  361. data/public/javascripts/extjs/ext-all.js +1 -1
  362. data/public/javascripts/extjs/overrides.js +61 -0
  363. data/public/javascripts/sencha_touch/sencha-touch-all-debug.js +78370 -0
  364. data/public/javascripts/sencha_touch/sencha-touch-all.js +15 -0
  365. data/public/stylesheets/erp_app/mobile/applications/user_management/main.css +5 -0
  366. data/public/stylesheets/erp_app/mobile/mobile.css +336 -0
  367. data/public/stylesheets/erp_app/{compass-ext-all.css → shared/compass-ext-all.css} +37 -1
  368. data/public/stylesheets/extjs/resources/css/ext-all-access.css +1 -1
  369. data/public/stylesheets/extjs/resources/css/ext-all-gray.css +1 -1
  370. data/public/stylesheets/extjs/resources/css/ext-all-scoped.css +1 -1
  371. data/public/stylesheets/extjs/resources/css/ext-all.css +1 -1
  372. data/public/stylesheets/extjs/resources/css/ext-ie-scoped.css +1 -1
  373. data/public/stylesheets/extjs/resources/css/ext-ie.css +1 -1
  374. data/public/stylesheets/extjs/resources/css/ext-sandbox.css +1 -1
  375. data/public/stylesheets/extjs/resources/css/ext-standard-scoped.css +1 -1
  376. data/public/stylesheets/extjs/resources/css/ext-standard.css +1 -1
  377. data/public/stylesheets/extjs/resources/sass/ext-all-access.scss +7 -0
  378. data/public/stylesheets/extjs/resources/sass/ext-all-gray.scss +6 -0
  379. data/public/stylesheets/extjs/resources/themes/images/access/boundlist/trigger-arrow.png +0 -0
  380. data/public/stylesheets/extjs/resources/themes/images/access/grid/refresh-disabled.gif +0 -0
  381. data/public/stylesheets/extjs/resources/themes/images/access/tab-bar/{tab-bar-bg.gif → tab-bar-default-bg.gif} +0 -0
  382. data/public/stylesheets/extjs/resources/themes/images/access/tree/drop-above.gif +0 -0
  383. data/public/stylesheets/extjs/resources/themes/images/access/tree/drop-append.gif +0 -0
  384. data/public/stylesheets/extjs/resources/themes/images/access/tree/drop-below.gif +0 -0
  385. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif +0 -0
  386. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif +0 -0
  387. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-large-pressed-corners.gif +0 -0
  388. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-medium-focus-corners.gif +0 -0
  389. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-medium-over-corners.gif +0 -0
  390. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-corners.gif +0 -0
  391. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif +0 -0
  392. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif +0 -0
  393. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif +0 -0
  394. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-corners.gif +0 -0
  395. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-corners.gif +0 -0
  396. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif +0 -0
  397. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif +0 -0
  398. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif +0 -0
  399. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-corners.gif +0 -0
  400. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif +0 -0
  401. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif +0 -0
  402. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif +0 -0
  403. data/public/stylesheets/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-corners.gif +0 -0
  404. data/public/stylesheets/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-sides.gif +0 -0
  405. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif +0 -0
  406. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif +0 -0
  407. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif +0 -0
  408. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif +0 -0
  409. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif +0 -0
  410. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif +0 -0
  411. data/public/stylesheets/extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif +0 -0
  412. data/public/stylesheets/extjs/resources/themes/images/default/tip/tip-corners.gif +0 -0
  413. data/public/stylesheets/extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif +0 -0
  414. data/public/stylesheets/extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif +0 -0
  415. data/public/stylesheets/extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif +0 -0
  416. data/public/stylesheets/extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif +0 -0
  417. data/public/stylesheets/extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif +0 -0
  418. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/_all.scss +3 -0
  419. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/_mixins.scss +6 -3
  420. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/core/_core.scss +17 -17
  421. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/core/_reset.scss +17 -7
  422. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/layout/_layout.scss +10 -6
  423. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/mixins/_frame.scss +4 -4
  424. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/mixins/_reset-extras.scss +144 -0
  425. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/mixins/_theme-background-image.scss +8 -4
  426. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/util/_dragdrop.scss +3 -3
  427. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/util/_messagebox.scss +5 -5
  428. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/util/_resizable.scss +6 -6
  429. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/util/_splitter.scss +8 -8
  430. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/util/_tool.scss +1 -1
  431. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/variables/_core.scss +1 -1
  432. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/variables/_menu.scss +1 -0
  433. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_button.scss +38 -27
  434. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_datepicker.scss +7 -7
  435. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_drawcomponent.scss +1 -5
  436. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_grid.scss +56 -57
  437. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_loadmask.scss +1 -1
  438. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_menu.scss +22 -16
  439. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_panel.scss +10 -4
  440. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_progress-bar.scss +2 -1
  441. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_qtip.scss +1 -1
  442. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_slider.scss +9 -11
  443. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_tab.scss +68 -43
  444. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_tabbar.scss +1 -1
  445. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_toolbar.scss +3 -3
  446. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_tree.scss +48 -31
  447. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_all.scss +4 -2
  448. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_checkbox.scss +3 -2
  449. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_checkboxgroup.scss +3 -2
  450. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_field.scss +3 -3
  451. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_fieldset.scss +1 -5
  452. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_htmleditor.scss +16 -15
  453. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_triggerfield.scss +10 -10
  454. data/public/stylesheets/extjs/resources/themes/templates/resources/sass/config.rb +2 -4
  455. data/public/stylesheets/extjs/resources/themes/templates/resources/sass/my-ext-theme.scss +1 -0
  456. data/public/stylesheets/sencha_touch/resources/css/android.css +1 -0
  457. data/public/stylesheets/sencha_touch/resources/css/apple.css +1 -0
  458. data/public/stylesheets/sencha_touch/resources/css/bb6.css +1 -0
  459. data/public/stylesheets/sencha_touch/resources/css/sencha-touch.css +1 -0
  460. data/public/stylesheets/sencha_touch/resources/css/touch-charts.css +1 -0
  461. data/public/stylesheets/sencha_touch/resources/css-debug/android.css +6757 -0
  462. data/public/stylesheets/sencha_touch/resources/css-debug/apple.css +6766 -0
  463. data/public/stylesheets/sencha_touch/resources/css-debug/bb6.css +6352 -0
  464. data/public/stylesheets/sencha_touch/resources/css-debug/sencha-touch.css +6755 -0
  465. data/public/stylesheets/sencha_touch/resources/images/icon1.png +0 -0
  466. data/public/stylesheets/sencha_touch/resources/images/icon2.png +0 -0
  467. data/public/stylesheets/sencha_touch/resources/images/icon3.png +0 -0
  468. data/public/stylesheets/sencha_touch/resources/images/icon4.png +0 -0
  469. data/public/stylesheets/sencha_touch/resources/images/welcome.png +0 -0
  470. data/public/stylesheets/sencha_touch/resources/sass/android.scss +37 -0
  471. data/public/stylesheets/sencha_touch/resources/sass/apple.scss +39 -0
  472. data/public/stylesheets/sencha_touch/resources/sass/bb6.scss +66 -0
  473. data/public/stylesheets/sencha_touch/resources/sass/config-debug.rb +11 -0
  474. data/public/stylesheets/sencha_touch/resources/sass/config.rb +11 -0
  475. data/public/stylesheets/sencha_touch/resources/sass/sencha-touch.scss +18 -0
  476. data/public/stylesheets/sencha_touch/resources/themes/compass_init.rb +6 -0
  477. data/public/stylesheets/sencha_touch/resources/themes/images/default/check.png +0 -0
  478. data/public/stylesheets/sencha_touch/resources/themes/images/default/clear_icon.png +0 -0
  479. data/public/stylesheets/sencha_touch/resources/themes/images/default/disclosure.png +0 -0
  480. data/public/stylesheets/sencha_touch/resources/themes/images/default/disclosure2.png +0 -0
  481. data/public/stylesheets/sencha_touch/resources/themes/images/default/dotgrid.png +0 -0
  482. data/public/stylesheets/sencha_touch/resources/themes/images/default/loading.gif +0 -0
  483. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/action.png +0 -0
  484. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/add.png +0 -0
  485. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/add1.png +0 -0
  486. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/add_black.png +0 -0
  487. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/address_book.png +0 -0
  488. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/arrow_down.png +0 -0
  489. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/arrow_left.png +0 -0
  490. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/arrow_right.png +0 -0
  491. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/arrow_up.png +0 -0
  492. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/at.png +0 -0
  493. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/atom.png +0 -0
  494. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/attachment.png +0 -0
  495. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/attachment2.png +0 -0
  496. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/attachment3.png +0 -0
  497. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/attachment_black.png +0 -0
  498. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/backspace.png +0 -0
  499. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/battery_full.png +0 -0
  500. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/battery_low.png +0 -0
  501. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/battery_power.png +0 -0
  502. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/blank.png +0 -0
  503. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bolt.png +0 -0
  504. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bolt_side.png +0 -0
  505. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bookmark1.png +0 -0
  506. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bookmark2.png +0 -0
  507. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bookmark_black.png +0 -0
  508. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bookmarks.png +0 -0
  509. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/briefcase1.png +0 -0
  510. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/briefcase2.png +0 -0
  511. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/brightness1.png +0 -0
  512. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/brightness2.png +0 -0
  513. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/broadcast.png +0 -0
  514. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bug.png +0 -0
  515. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bulb.png +0 -0
  516. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bullseye1.png +0 -0
  517. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bullseye2.png +0 -0
  518. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/calendar.png +0 -0
  519. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/calendar2.png +0 -0
  520. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/calendar_add.png +0 -0
  521. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/card1.png +0 -0
  522. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/card2.png +0 -0
  523. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chart1.png +0 -0
  524. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chart2.png +0 -0
  525. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chart3.png +0 -0
  526. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat.png +0 -0
  527. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat1.png +0 -0
  528. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat2.png +0 -0
  529. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat3.png +0 -0
  530. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat4.png +0 -0
  531. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat_black1.png +0 -0
  532. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat_black2.png +0 -0
  533. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/check1.png +0 -0
  534. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/check2.png +0 -0
  535. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/check_black1.png +0 -0
  536. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/check_black2.png +0 -0
  537. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/check_dotted.png +0 -0
  538. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/circle.png +0 -0
  539. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/circle2.png +0 -0
  540. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/clash.png +0 -0
  541. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud.png +0 -0
  542. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud_black.png +0 -0
  543. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud_black_upload1.png +0 -0
  544. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud_black_upload2.png +0 -0
  545. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud_bolt.png +0 -0
  546. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud_download.png +0 -0
  547. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/code1.png +0 -0
  548. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/code2.png +0 -0
  549. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/code3.png +0 -0
  550. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compass1.png +0 -0
  551. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compass2.png +0 -0
  552. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compass3.png +0 -0
  553. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compose.png +0 -0
  554. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compose1.png +0 -0
  555. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compose2.png +0 -0
  556. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compose3.png +0 -0
  557. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compose_black.png +0 -0
  558. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/contract.png +0 -0
  559. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cube.png +0 -0
  560. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/data.png +0 -0
  561. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/delete.png +0 -0
  562. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/delete1.png +0 -0
  563. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/delete_black1.png +0 -0
  564. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/delete_black2.png +0 -0
  565. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc.png +0 -0
  566. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc2.png +0 -0
  567. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_black.png +0 -0
  568. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_black_landscape.png +0 -0
  569. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_compose1.png +0 -0
  570. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_compose2.png +0 -0
  571. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_delete.png +0 -0
  572. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_down.png +0 -0
  573. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_drawer.png +0 -0
  574. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_list.png +0 -0
  575. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_new.png +0 -0
  576. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_send.png +0 -0
  577. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_up.png +0 -0
  578. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/docs1.png +0 -0
  579. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/docs2.png +0 -0
  580. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/docs_black1.png +0 -0
  581. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/docs_black2.png +0 -0
  582. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/download.png +0 -0
  583. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/download1.png +0 -0
  584. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/download2.png +0 -0
  585. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/download_screen.png +0 -0
  586. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/eject.png +0 -0
  587. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/empty1.png +0 -0
  588. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/empty2.png +0 -0
  589. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/equalizer1.png +0 -0
  590. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/equalizer2.png +0 -0
  591. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/event_complete.png +0 -0
  592. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/expand.png +0 -0
  593. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/favorites.png +0 -0
  594. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/favorites1.png +0 -0
  595. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/favorites_circle.png +0 -0
  596. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/fforward.png +0 -0
  597. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/find.png +0 -0
  598. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/flag.png +0 -0
  599. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/flickr2.png +0 -0
  600. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder.png +0 -0
  601. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_add.png +0 -0
  602. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_black.png +0 -0
  603. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_black_open.png +0 -0
  604. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_delete.png +0 -0
  605. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_delete2.png +0 -0
  606. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_lock.png +0 -0
  607. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_open2.png +0 -0
  608. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/font.png +0 -0
  609. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/forbidden.png +0 -0
  610. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/forward_black.png +0 -0
  611. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/globe1.png +0 -0
  612. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/globe2.png +0 -0
  613. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/globe_black.png +0 -0
  614. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/headphones.png +0 -0
  615. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/heart.png +0 -0
  616. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/heart_circle.png +0 -0
  617. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/help.png +0 -0
  618. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/help_black.png +0 -0
  619. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/home.png +0 -0
  620. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/home2.png +0 -0
  621. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/hot.png +0 -0
  622. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/inbox1.png +0 -0
  623. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/inbox2.png +0 -0
  624. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/inbox3.png +0 -0
  625. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/infinite.png +0 -0
  626. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/infinite2.png +0 -0
  627. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/info.png +0 -0
  628. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/info2.png +0 -0
  629. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/info_plain.png +0 -0
  630. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/info_plain2.png +0 -0
  631. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/json.png +0 -0
  632. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/lab.png +0 -0
  633. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/layout.png +0 -0
  634. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/link1.png +0 -0
  635. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/link2.png +0 -0
  636. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/link_black.png +0 -0
  637. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/list.png +0 -0
  638. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/locate.png +0 -0
  639. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/locate1.png +0 -0
  640. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/locate2.png +0 -0
  641. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/locate3.png +0 -0
  642. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/locate4.png +0 -0
  643. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/lock_closed.png +0 -0
  644. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/lock_open.png +0 -0
  645. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/look.png +0 -0
  646. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/loop.png +0 -0
  647. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/loop2.png +0 -0
  648. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/loop_circle.png +0 -0
  649. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/magic.png +0 -0
  650. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail.png +0 -0
  651. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail1.png +0 -0
  652. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail2.png +0 -0
  653. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail3.png +0 -0
  654. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail4.png +0 -0
  655. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail5.png +0 -0
  656. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/maps.png +0 -0
  657. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mic.png +0 -0
  658. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/minus1.png +0 -0
  659. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/minus2.png +0 -0
  660. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/minus_black1.png +0 -0
  661. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/minus_black2.png +0 -0
  662. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/monitor1.png +0 -0
  663. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/monitor2.png +0 -0
  664. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/monitor3.png +0 -0
  665. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/monitor4.png +0 -0
  666. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/more.png +0 -0
  667. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mouse.png +0 -0
  668. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/move.png +0 -0
  669. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/music1.png +0 -0
  670. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/music2.png +0 -0
  671. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/nodes1.png +0 -0
  672. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/nodes2.png +0 -0
  673. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/note1.png +0 -0
  674. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/note2.png +0 -0
  675. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/note3.png +0 -0
  676. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/note_black.png +0 -0
  677. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/nuclear.png +0 -0
  678. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/organize.png +0 -0
  679. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/outbox.png +0 -0
  680. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/pause.png +0 -0
  681. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/phone1.png +0 -0
  682. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/phone2.png +0 -0
  683. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/phone_black.png +0 -0
  684. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/phone_ring1.png +0 -0
  685. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/phone_ring2.png +0 -0
  686. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photo1.png +0 -0
  687. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photo2.png +0 -0
  688. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photo3.png +0 -0
  689. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photo_black1.png +0 -0
  690. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photo_black2.png +0 -0
  691. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photos1.png +0 -0
  692. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photos2.png +0 -0
  693. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photos4.png +0 -0
  694. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/piechart.png +0 -0
  695. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/play1.png +0 -0
  696. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/play2.png +0 -0
  697. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/play_black1.png +0 -0
  698. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/play_black2.png +0 -0
  699. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/podcast.png +0 -0
  700. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/power socket.png +0 -0
  701. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/power_on.png +0 -0
  702. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/print.png +0 -0
  703. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/print2.png +0 -0
  704. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/quote1.png +0 -0
  705. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/quote2.png +0 -0
  706. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/quote_black1.png +0 -0
  707. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/quote_black2.png +0 -0
  708. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/quote_black3.png +0 -0
  709. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/refresh.png +0 -0
  710. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/refresh1.png +0 -0
  711. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/refresh2.png +0 -0
  712. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/refresh3.png +0 -0
  713. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/refresh5.png +0 -0
  714. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/reply.png +0 -0
  715. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/replytoall.png +0 -0
  716. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/resize.png +0 -0
  717. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/resize_black.png +0 -0
  718. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rewind.png +0 -0
  719. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/right.png +0 -0
  720. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/right2.png +0 -0
  721. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rss.png +0 -0
  722. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rss2.png +0 -0
  723. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rss_black.png +0 -0
  724. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rss_black1.png +0 -0
  725. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rss_black2.png +0 -0
  726. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/screens.png +0 -0
  727. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/search.png +0 -0
  728. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/search1.png +0 -0
  729. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/search2.png +0 -0
  730. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/search_black.png +0 -0
  731. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/server.png +0 -0
  732. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/servers.png +0 -0
  733. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings.png +0 -0
  734. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings1.png +0 -0
  735. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings10.png +0 -0
  736. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings11.png +0 -0
  737. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings3.png +0 -0
  738. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings4.png +0 -0
  739. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings5.png +0 -0
  740. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings6.png +0 -0
  741. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings7.png +0 -0
  742. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings8.png +0 -0
  743. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings9.png +0 -0
  744. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings_black.png +0 -0
  745. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/share.png +0 -0
  746. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/shield1.png +0 -0
  747. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/shield2.png +0 -0
  748. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/shop1.png +0 -0
  749. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/shop2.png +0 -0
  750. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/shuffle.png +0 -0
  751. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_backforth.png +0 -0
  752. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_cross.png +0 -0
  753. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_leftright.png +0 -0
  754. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_leftright2.png +0 -0
  755. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_split.png +0 -0
  756. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_switch.png +0 -0
  757. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_uturn.png +0 -0
  758. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/spaces1.png +0 -0
  759. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/spaces2.png +0 -0
  760. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/speedometer1.png +0 -0
  761. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/speedometer2.png +0 -0
  762. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/speedometer_black1.png +0 -0
  763. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/speedometer_black2.png +0 -0
  764. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/star.png +0 -0
  765. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/stop.png +0 -0
  766. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/stop1.png +0 -0
  767. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/stop2.png +0 -0
  768. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sync.png +0 -0
  769. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tabbed_book.png +0 -0
  770. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tag.png +0 -0
  771. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tag_black.png +0 -0
  772. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tags.png +0 -0
  773. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/team.png +0 -0
  774. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/team1.png +0 -0
  775. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/time.png +0 -0
  776. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/time_repeat.png +0 -0
  777. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/trash.png +0 -0
  778. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/trash2.png +0 -0
  779. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/trash_black.png +0 -0
  780. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tree.png +0 -0
  781. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tv.png +0 -0
  782. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tweak.png +0 -0
  783. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/twitter1.png +0 -0
  784. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/twitter2.png +0 -0
  785. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/up1.png +0 -0
  786. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/up2.png +0 -0
  787. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/up_black.png +0 -0
  788. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/upload2.png +0 -0
  789. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user.png +0 -0
  790. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user3.png +0 -0
  791. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_add.png +0 -0
  792. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_business.png +0 -0
  793. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_fave.png +0 -0
  794. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_list.png +0 -0
  795. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_list2.png +0 -0
  796. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_remote1.png +0 -0
  797. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_remove2.png +0 -0
  798. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_send.png +0 -0
  799. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/video.png +0 -0
  800. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/video_black1.png +0 -0
  801. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/video_black2.png +0 -0
  802. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/volume.png +0 -0
  803. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/volume_black.png +0 -0
  804. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/volume_down.png +0 -0
  805. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/volume_mute.png +0 -0
  806. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/volume_up.png +0 -0
  807. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/warming_dotted.png +0 -0
  808. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/warning_black.png +0 -0
  809. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/wifi.png +0 -0
  810. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/wifi2.png +0 -0
  811. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/wifi3.png +0 -0
  812. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/wifi4.png +0 -0
  813. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/window.png +0 -0
  814. data/public/stylesheets/sencha_touch/resources/themes/images/default/pullarrow.png +0 -0
  815. data/public/stylesheets/sencha_touch/resources/themes/images/default/select_mask.png +0 -0
  816. data/public/stylesheets/sencha_touch/resources/themes/images/default/tip.png +0 -0
  817. data/public/stylesheets/sencha_touch/resources/themes/images/default/tip_horizontal.png +0 -0
  818. data/public/stylesheets/sencha_touch/resources/themes/images/default/tip_right.png +0 -0
  819. data/public/stylesheets/sencha_touch/resources/themes/images/default/togglebg.png +0 -0
  820. data/public/stylesheets/sencha_touch/resources/themes/images/default/togglemask.png +0 -0
  821. data/public/stylesheets/sencha_touch/resources/themes/images/default/togglethumb.png +0 -0
  822. data/public/stylesheets/sencha_touch/resources/themes/images/default/togglethumbbg.png +0 -0
  823. data/public/stylesheets/sencha_touch/resources/themes/images/default/togglethumbmask.png +0 -0
  824. data/public/stylesheets/sencha_touch/resources/themes/images/default/trackmask_outer.png +0 -0
  825. data/public/stylesheets/sencha_touch/resources/themes/lib/theme_images.rb +18 -0
  826. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_all.scss +2 -0
  827. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_core.scss +3 -0
  828. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_global.scss +2 -0
  829. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_mixins.scss +196 -0
  830. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_variables.scss +116 -0
  831. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_widgets.scss +16 -0
  832. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/core/_core.scss +189 -0
  833. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/core/_layout.scss +362 -0
  834. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/core/_reset.scss +62 -0
  835. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_buttons.scss +354 -0
  836. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_carousel.scss +113 -0
  837. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_form-sliders-basic.scss +102 -0
  838. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_form-sliders.scss +149 -0
  839. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_form.scss +608 -0
  840. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_img.scss +5 -0
  841. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_indexbar.scss +76 -0
  842. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_list.scss +401 -0
  843. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_loading-spinner.scss +121 -0
  844. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_map.scss +11 -0
  845. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_media.scss +21 -0
  846. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_msgbox.scss +94 -0
  847. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_panel.scss +79 -0
  848. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_picker.scss +154 -0
  849. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_sheets.scss +52 -0
  850. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_tabs.scss +269 -0
  851. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_toolbar-forms.scss +182 -0
  852. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_toolbar.scss +156 -0
  853. data/public/stylesheets/sencha_touch/resources/themes/templates/project/manifest.rb +1 -0
  854. data/public/stylesheets/sencha_touch/resources/themes/templates/project/sencha-touch.scss +17 -0
  855. metadata +3251 -2688
  856. data/README.rdoc +0 -2
  857. data/config/initializers/erp_app.rb +0 -4
  858. data/lib/erp_app/extensions/active_record/acts_as_app_container.rb +0 -72
  859. data/lib/erp_app/extensions/railties/action_view.rb +0 -110
  860. data/lib/erp_app/widgets/railties/action_view.rb +0 -36
  861. data/lib/erp_app/widgets/railties/engine.rb +0 -55
  862. data/public/images/icons/add/Thumbs.db +0 -0
  863. data/public/images/icons/calendar/Thumbs.db +0 -0
  864. data/public/images/icons/copy/Thumbs.db +0 -0
  865. data/public/images/icons/cut/Thumbs.db +0 -0
  866. data/public/images/icons/delete/Thumbs.db +0 -0
  867. data/public/images/icons/edit/Thumbs.db +0 -0
  868. data/public/images/icons/folder/Thumbs.db +0 -0
  869. data/public/images/icons/gear/Thumbs.db +0 -0
  870. data/public/images/icons/globe/Thumbs.db +0 -0
  871. data/public/images/icons/grid/Thumbs.db +0 -0
  872. data/public/images/icons/help/Thumbs.db +0 -0
  873. data/public/images/icons/information/Thumbs.db +0 -0
  874. data/public/images/icons/key/Thumbs.db +0 -0
  875. data/public/images/icons/log_out/Thumbs.db +0 -0
  876. data/public/images/icons/mail/Thumbs.db +0 -0
  877. data/public/images/icons/new/Thumbs.db +0 -0
  878. data/public/images/icons/next/Thumbs.db +0 -0
  879. data/public/images/icons/open/Thumbs.db +0 -0
  880. data/public/images/icons/paste/Thumbs.db +0 -0
  881. data/public/images/icons/picture/Thumbs.db +0 -0
  882. data/public/images/icons/presentation/Thumbs.db +0 -0
  883. data/public/images/icons/preview/Thumbs.db +0 -0
  884. data/public/images/icons/previous/Thumbs.db +0 -0
  885. data/public/images/icons/print/Thumbs.db +0 -0
  886. data/public/images/icons/properties/Thumbs.db +0 -0
  887. data/public/images/icons/redo/Thumbs.db +0 -0
  888. data/public/images/icons/refresh/Thumbs.db +0 -0
  889. data/public/images/icons/remove/Thumbs.db +0 -0
  890. data/public/images/icons/rename/Thumbs.db +0 -0
  891. data/public/images/icons/save/Thumbs.db +0 -0
  892. data/public/images/icons/search/Thumbs.db +0 -0
  893. data/public/images/icons/send/Thumbs.db +0 -0
  894. data/public/images/icons/settings/Thumbs.db +0 -0
  895. data/public/images/icons/synchronize/Thumbs.db +0 -0
  896. data/public/images/icons/undo/Thumbs.db +0 -0
  897. data/public/images/icons/upload/Thumbs.db +0 -0
  898. data/public/images/icons/user/Thumbs.db +0 -0
  899. data/public/images/icons/zoom_in/Thumbs.db +0 -0
  900. data/public/images/icons/zoom_out/Thumbs.db +0 -0
  901. data/public/javascripts/erp_app/ckeditor/plugins/jwplayer/jwplayer/Thumbs.db +0 -0
  902. data/public/javascripts/erp_app/shared/ajax_pagination.js +0 -33
  903. data/public/stylesheets/extjs/resources/themes/images/access/tab-bar/tab-bar-bg.png +0 -0
  904. data/public/stylesheets/extjs/resources/themes/templates/resources/css/my-ext-theme.css +0 -59
  905. data/spec/dummy/db/schema.rb +0 -709
  906. data/spec/dummy/db/spec.sqlite3 +0 -0
  907. data/spec/dummy/log/RAILS_ENV=spec.log +0 -0
  908. data/spec/dummy/log/development.log +0 -0
  909. data/spec/dummy/log/spec.log +0 -52150
@@ -0,0 +1,806 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html>
3
+ <head>
4
+ <title>CodeMirror: User Manual</title>
5
+ <link rel="stylesheet" type="text/css" href="css/docs.css"/>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
+ </head>
8
+ <body>
9
+
10
+ <h1><span class="logo-braces">{ }</span> <a href="http://codemirror.net/">CodeMirror</a></h1>
11
+
12
+ <pre class="grey">
13
+ <img src="css/baboon.png" class="logo" alt="logo"/>/* User manual and
14
+ reference guide */
15
+ </pre>
16
+
17
+ <div class="clear"><div class="leftbig blk">
18
+
19
+ <h2 id="usage">Basic Usage</h2>
20
+
21
+ <p>Inside the editor, the tab key is used to re-indent the current
22
+ selection (or the current line when nothing is selected), and
23
+ pressing enter will, apart from inserting a line break,
24
+ automatically indent the new line. Pressing control-enter will
25
+ cause the whole buffer to be re-coloured, which can be helpful
26
+ when some colouring has become out-of-date without the editor
27
+ noticing it.</p>
28
+
29
+ <p>The editor sports an undo/redo system, accessible with
30
+ control-z (undo) and control-y (redo). Safari will not allow
31
+ client scripts to capture control-z presses, but you can use
32
+ control-backspace instead on that browser.</p>
33
+
34
+ <p>The key-combination control-[ triggers a paren-blink: If the
35
+ cursor is directly after a '(', ')', '[', ']', '{', or '}', the
36
+ editor looks for the matching character, and highlights these
37
+ characters for a moment. There is an option to enable this to
38
+ happen any time the user types something or moves the cursor.</p>
39
+
40
+ <p>To use CodeMirror in a document, you should add a script tag to
41
+ load <a href="js/codemirror.js"><code>codemirror.js</code></a>. This
42
+ adds two objects to your environment, <code>CodeMirror</code> and
43
+ <code>CodeMirrorConfig</code>. The first is the interface to the
44
+ editor, the second can be used to configure it. (Note that this is
45
+ the only name-space pollution you can expect from CodeMirror --
46
+ all other cruft is kept inside the IFRAMEs that it creates when
47
+ you open an editor.)</p>
48
+
49
+ <p>To add an editor to a document, you must choose a place, a
50
+ parser, and a style-sheet for it. For example, to append an
51
+ XML editor to the body of the document, you do:</p>
52
+
53
+ <pre class="code">var editor = new CodeMirror(document.body, {
54
+ parserfile: "parsexml.js",
55
+ stylesheet: "xmlcolors.css"
56
+ });</pre>
57
+
58
+ <p>The first argument to the <code>CodeMirror</code> constructor
59
+ can be a DOM node, in which case the editor gets appended to that
60
+ node, or a function, which will be called with the IFRAME node as
61
+ argument, and which is expected to place that node somewhere in
62
+ the document.</p>
63
+
64
+ <p>The second (optional) argument is an object that specifies
65
+ options. A set of default options (see below) is present in the
66
+ <code>CodeMirrorConfig</code> object, but each instance of the
67
+ editor can be given a set of specific options to override these
68
+ defaults. In this case, we specified that the parser should be
69
+ loaded from the <a
70
+ href="js/parsexml.js"><code>"parsexml.js"</code></a> file, and
71
+ that <a href="css/xmlcolors.css"><code>"xmlcolors.css"</code></a>
72
+ should be used to specify the colours of the code.</p>
73
+
74
+ <p>Another example:</p>
75
+
76
+ <pre class="code">var editor = new CodeMirror(CodeMirror.replace("inputfield"), {
77
+ parserfile: ["tokenizejavascript.js", "parsejavascript.js"],
78
+ path: "lib/codemirror/js/",
79
+ stylesheet: "lib/codemirror/css/jscolors.css",
80
+ content: document.getElementById("inputfield").value
81
+ });</pre>
82
+
83
+ <p>Here we use the utility function
84
+ <code>CodeMirror.replace</code> to create a function that will
85
+ replace a node in the current document (given either directly or
86
+ by ID) with the editor. We also select the JavaScript parser this
87
+ time, and give a <code>path</code> option to tell the editor that
88
+ its files are not located in the same directory as the current
89
+ HTML page, but in <code>"lib/codemirror/"</code>.</p>
90
+
91
+ <p>There is a function
92
+ <code>CodeMirror.isProbablySupported()</code> that causes some
93
+ 1998-style browser detection to happen, returning
94
+ <code>false</code> if CodeMirror is probably not supported on the
95
+ browser, <code>true</code> if it probably is, and
96
+ <code>null</code> if it has no idea. As the name suggests, this is
97
+ not something you can rely on, but it's usually better than
98
+ nothing.</p>
99
+
100
+ <p>Another utility function, <code>CodeMirror.fromTextArea</code>,
101
+ will, given a textarea node or the id of such a node, hide the
102
+ textarea and replace it with a CodeMirror frame. If the textarea
103
+ was part of a form, an <code>onsubmit</code> handler will be
104
+ registered with this form, which will load the content of the
105
+ editor into the textarea, so that it can be submitted as normal.
106
+ This function optionally takes a configuration object as second
107
+ argument.</p>
108
+
109
+ <pre class="code">var editor = CodeMirror.fromTextArea("inputfield", {
110
+ parserfile: ["tokenizejavascript.js", "parsejavascript.js"],
111
+ path: "lib/codemirror/js/",
112
+ stylesheet: "lib/codemirror/css/jscolors.css"
113
+ });</pre>
114
+
115
+ <p>Instances created like this will have a
116
+ <code>toTextArea()</code> method which removes them and restores
117
+ the text area they were based on, and a <code>save()</code> method
118
+ which simply updates the textarea with the content of the
119
+ editor.</p>
120
+
121
+ <p>The reason that the script path has to be configured is that
122
+ CodeMirror will load in a bunch of extra files when an editor is
123
+ created (the parser script, among others). To be able to do this,
124
+ it has to know where to find them. These are all the JavaScript
125
+ files that are part of CodeMirror itself:</p>
126
+
127
+ <dl>
128
+ <dt><a href="js/codemirror.js"><code>codemirror.js</code></a></dt>
129
+ <dd>Main interface, takes care of default configuration and the
130
+ definition of editor frames. Include this in your HTML
131
+ document.</dd>
132
+ <dt><a href="js/editor.js"><code>editor.js</code></a></dt> <dd>The
133
+ code that takes care of reacting to user input, colouring text,
134
+ and indenting lines.</dd>
135
+ <dt><a href="js/util.js"><code>util.js</code></a></dt> <dd>A few
136
+ generic utility functions.</dd>
137
+ <dt><a
138
+ href="js/undo.js"><code>undo.js</code></a></dt>
139
+ <dd>Implements the undo history for the editor.</dd>
140
+ <dt><a
141
+ href="js/stringstream.js"><code>stringstream.js</code></a></dt>
142
+ <dd>Objects for wrapping the textual input to the parser.</dd>
143
+ <dt><a href="js/select.js"><code>select.js</code></a></dt> <dd>Some
144
+ helper utilities for working with selected text and cursor
145
+ positions.</dd>
146
+ <dt><a href="js/tokenize.js"><code>tokenize.js</code></a></dt>
147
+ <dd>Helper framework for writing tokenisers.</dd>
148
+ </dl>
149
+
150
+ <p>Most of these are rather full of comments, which can be useful
151
+ when you are trying to figure out how they work, but wastes a lot
152
+ of bandwidth in a production system. Take a look at the
153
+ description of the <code>basefiles</code> option below if you want
154
+ to concatenate and minimise the library (see the <a href="compress.html">compression API</a>).</p>
155
+
156
+ <p>Apart from these, there are files that implement the various
157
+ parsers. These all start with either <code>parse</code> or
158
+ <code>tokenize</code>.</p>
159
+
160
+ <h2 id="configuration">Configuration</h2>
161
+
162
+ <p>There are three ways to configure CodeMirror:</p>
163
+
164
+ <ul>
165
+ <li>If you define a global <code>CodeMirrorConfig</code> object
166
+ before loading <a
167
+ href="js/codemirror.js"><code>codemirror.js</code></a>, the
168
+ configuration options in that object will override the
169
+ defaults.</li>
170
+ <li>By assigning to the properties of the
171
+ <code>CodeMirrorConfig</code> object, configuration defaults can
172
+ be overridden after loading <a
173
+ href="js/codemirror.js"><code>codemirror.js</code></a>.</li>
174
+ <li>The <code>CodeMirror</code> constructor can be given a second
175
+ argument, an object, which will override some options for just
176
+ that editor. Options not mentioned in this object will default to
177
+ the values in the <code>CodeMirrorConfig</code> object.</li>
178
+ </ul>
179
+
180
+ <p>The options that can be specified are these (most have sensible
181
+ defaults specified in <a
182
+ href="js/codemirror.js"><code>codemirror.js</code></a>):</p>
183
+
184
+ <dl>
185
+
186
+ <dt><code>stylesheet</code></dt><dd>The file name of the
187
+ style-sheet, or style-sheets, that should be used to colour the
188
+ code in the editor frame. Can be a string or an array of
189
+ strings. See <a
190
+ href="css/jscolors.css"><code>jscolors.css</code></a> for an
191
+ example. The set of active stylesheets can be changed in a
192
+ running editor with the <code>setStylesheet</code> method, which
193
+ also takes a string or array of strings as argument.</dd>
194
+
195
+ <dt><code>path</code></dt><dd>The path that is prefixed to
196
+ script file names when they are loaded into an IFRAME. (Note that
197
+ this is not applied to the style-sheet file name.)</dd>
198
+
199
+ <dt><code>parserfile</code></dt><dd>A file name string, or an
200
+ array of strings that name the files containing the parser. See
201
+ below for the interface that such a parser should
202
+ implement.</dd>
203
+
204
+ <dt><code>basefiles</code></dt><dd>An array of strings naming
205
+ the files containing the base CodeMirror functionality. Defaults
206
+ to <code>["util.js", "stringstream.js", "select.js", "undo.js",
207
+ "editor.js", "tokenize.js"]</code>, but if you put them all into
208
+ a single file to reduce latency, or add some functionality, you
209
+ might have to adjust that.</dd>
210
+
211
+ <dt><code>iframeClass</code></dt><dd>Set this to a string to
212
+ give the IFRAME node created for the editor a custom CSS class.
213
+ Defaults to <code>null</code>.</dd>
214
+
215
+ <dt><code>passDelay</code></dt><dd>Gives the amount of
216
+ milliseconds between colouring passes. Defaults to 200.</dd>
217
+
218
+ <dt><code>passTime</code></dt><dd>Specifies the maximum amount
219
+ of time that the highlighter will spend in one shot. Setting
220
+ this too high will cause the editor to 'freeze' the browser for
221
+ noticeable intervals. Defaults to 50.</dd>
222
+
223
+ <dt><code>continuousScanning</code></dt><dd>Configure continuous
224
+ scanning of the document. When <code>false</code>, scanning is
225
+ disabled. When set to a number, say <code>N</code>, a
226
+ 'background' process will scan the document for
227
+ <code>passTime</code> (see above) milliseconds every
228
+ <code>N</code> milliseconds, regardless of whether anything
229
+ changed. This makes sure non-local changes propagate through the
230
+ document, and will help keep everything consistent. It does add
231
+ extra processing cost, even for an idle editor. Default value is
232
+ <code>false</code>.</dd>
233
+
234
+ <dt><code>autoMatchParens</code></dt><dd>When <code>true</code>,
235
+ will cause parens to be matched every time a key is pressed or
236
+ the user clicks on the document. Defaults to <code>false</code>.
237
+ Might be expensive for big documents.</dd>
238
+
239
+ <dt><code>markParen</code>,<code>unmarkParen</code></dt>
240
+ <dd>Can be used to customise the way brackets are marked (and
241
+ unmarked) when matched. The simplest way to do this is to simply
242
+ set <code>markParen</code> to a string, the name of the CSS
243
+ class that should be added to the bracket elements when they are
244
+ matched. Alternatively, you can provide an array of two strings,
245
+ where the first will be used for successful matches, and the
246
+ second for failing matches. You'll have to include some CSS file
247
+ (using the <code>stylesheet</code> option) that defines these
248
+ classes. Alternatively, you can provide both
249
+ <code>markParen</code> and <code>unmarkParen</code>, and set
250
+ them to functions that will be called to style the bracket's
251
+ <code>SPAN</code> elements. Both will get this element as their
252
+ first argument, and <code>markParen</code> gets a second boolean
253
+ argument indicating whether a successful match was found. The
254
+ default behaviour, if these options are not supplied, is to make
255
+ the brackets bold and green (or red, if not matched).</dd>
256
+
257
+ <dt><code>saveFunction</code></dt><dd>If given a function
258
+ value, that function will be invoked when the user presses
259
+ control-s. You should advise your Opera users to use
260
+ control-shift-s instead, since plain control-s will bring up the
261
+ 'save page' dialog. Defaults to <code>null</code>.</dd>
262
+
263
+ <dt><code>undoDepth</code></dt><dd>Maximum length of the undo
264
+ history. Default is 50. This setting is changeable with the
265
+ <code>setUndoDepth(depth)</code> method on CodeMirror
266
+ instances.</dd>
267
+
268
+ <dt><code>onChange</code></dt><dd>An optional function of zero
269
+ arguments that gets called whenever the document is changed.
270
+ Happens at undo-commit time, not instantaniously.</dd>
271
+
272
+ <dt><code>undoDelay</code></dt><dd>When nothing is done in the
273
+ editor for this amount of milliseconds, pending changes get
274
+ added to the undo history. Setting this lower will give the undo
275
+ functionality a finer granularity. Defaults to 800.</dd>
276
+
277
+ <dt><code>width</code>, <code>height</code></dt><dd>The size of
278
+ the editor frame, given as a style-sheet quantities (for example
279
+ <code>"600px"</code> or <code>"100%"</code>). When
280
+ <code>height</code> is set to <code>dynamic</code>, the editor
281
+ will automatically resize to fit its contents. In this case, the
282
+ <code>minHeight</code> option (an integer) is used to determine
283
+ the minimum height in pixels.</dd>
284
+
285
+ <dt><code>disableSpellcheck</code></dt><dd>Should the editor
286
+ disable spell-checking on browsers that support it (Firefox 2+).
287
+ Default is <code>true</code>, since for most code spell-checking
288
+ is useless. Can be changed with the
289
+ <code>setSpellCheck(on)</code> method.</dd>
290
+
291
+ <dt><code>textWrapping</code></dt><dd>Can be used to disable or
292
+ enable text-wrapping in the editor frame. Default is
293
+ <code>true</code>. Changeable with the
294
+ <code>setTextWrapping(on)</code> method.</dd>
295
+
296
+ <dt><code>lineNumbers</code></dt><dd>Show line numbers to the
297
+ left of the editor. This requires you to specify a style for the
298
+ <code>CodeMirror-line-numbers</code> CSS class (in the outer
299
+ document) to configure the width, font, colors, etcetera for the
300
+ line-number DIV. You have to make sure that lines in the
301
+ numbering element have the same height as lines in the editor.
302
+ This is most easily done by giving them both the same font and
303
+ an absolute ('pt' or 'px') font size. This option defaults to
304
+ <code>false</code>. Changeable with the
305
+ <code>setLineNumbers(on)</code> method.</dd>
306
+
307
+ <dt><code>firstLineNumber</code></dt><dd>When
308
+ <code>lineNumbers</code> is enabled, this determines the number
309
+ given to the first line. Default is <code>1</code>.</dd>
310
+
311
+ <dt><code>lineNumberDelay</code>,
312
+ <code>lineNumberTime</code></dt><dd>When both line numbers are
313
+ and text wrapping are turned on, updating line numbers can be
314
+ expensive. These settings can be used to control how fast the
315
+ updating happens &#x2015; they work in the same way as
316
+ <code>passDelay</code> and <code>passTime</code>.</dd>
317
+
318
+ <dt><code>onLineNumberClick</code></dt><dd>If given a function
319
+ value, this function will be called when the user clicks a line
320
+ number, with the number of the line and the DIV used to display
321
+ that number as its arguments.</dd>
322
+
323
+ <dt><code>styleNumbers</code></dt><dd>A (somewhat awkward) hook
324
+ that allows your code to change the style of the line numbers
325
+ for certain lines (to, for example, highlight them). Whenever
326
+ the line numbers are updated, the function value given through
327
+ this option is called with three arguments: <code>(numberDIV,
328
+ lineNode, lineNum)</code>. It can then update the style of the
329
+ <code>numberDIV</code> element based on either the BR node at
330
+ the start of the line (<code>lineNode</code>, which is
331
+ <code>null</code> for the first line), or the actual line number
332
+ (<code>lineNum</code>). Note that it might get passed DIVs that
333
+ were already styled before (the DIVs are reused), so it has to
334
+ 'reset' the style to the default for lines that don't need to be
335
+ styled.</dd>
336
+
337
+ <dt><code>indentUnit</code></dt><dd>An integer that specifies
338
+ the amount of spaces one 'level' of indentation should add.
339
+ Default is <code>2</code>. Changeable in a running editor using
340
+ the <code>setIndentUnit(spaces)</code> method.</dd>
341
+
342
+ <dt><code>tabMode</code></dt><dd>Determines what the effect of
343
+ pressing tab is. Possibilities are:
344
+ <dl>
345
+ <dt><code>"indent"</code></dt><dd>The default. Causes tab to
346
+ adjust the indentation of the selection or current line using
347
+ the parser's rules.</dd>
348
+ <dt><code>"spaces"</code></dt><dd>Pressing tab simply inserts
349
+ four spaces.</dd>
350
+ <dt><code>"default"</code></dt><dd>CodeMirror does not
351
+ interfere with the tab key, but leaves it to the browser to
352
+ handle it. Binds shift-space to regular indentation
353
+ behaviour.</dd>
354
+ <dt><code>"shift"</code></dt><dd>Pressing tab indents the
355
+ current line (or selection) one <code>indentUnit</code>
356
+ deeper, pressing shift-tab, un-indents it.</dd>
357
+ </dl>
358
+ This option can be changed at run-time using the
359
+ <code>setTabMode(mode)</code> method.</dd>
360
+
361
+ <dt><code>enterMode</code></dt><dd>Determines how a new line
362
+ created by pressing enter is indented. Supported modes are:
363
+ <dl>
364
+ <dt><code>"indent"</code></dt><dd>The default. Causes the new
365
+ line to be intented by the rules of the parser.</dd>
366
+ <dt><code>"keep"</code></dt><dd>Keeps the indentation of the
367
+ previous line.</dd>
368
+ <dt><code>"flat"</code></dt><dd>Never indents new lines.</dd>
369
+ </dl>
370
+ The <code>setEnterMode</code> method can be used to change this
371
+ option in a running editor.</dd>
372
+
373
+ <dt><code>electricChars</code></dt><dd>A boolean that can be
374
+ used to turn "electric chars" (characters that cause the current
375
+ line to be reindented when typed, such as <code>{</code> and
376
+ <code>}</code> in C-like languages) on and off. Default is
377
+ on.</dd>
378
+
379
+ <dt><code>reindentOnLoad</code></dt><dd>When <code>true</code>,
380
+ this causes the content of the editor to be reindented
381
+ immediately when the editor loads. Defaults to
382
+ <code>false</code>.</dd>
383
+
384
+ <dt><code>readOnly</code></dt><dd>When set to <code>true</code>,
385
+ the document is not editable.</dd>
386
+
387
+ <dt><code>domain</code></dt><dd>Can be set to the value
388
+ <code>document.domain</code> should have inside of the iframe.
389
+ Used to prevent access issues in IE, where this value isn't
390
+ automatically inherited by iframes.</dd>
391
+
392
+ <dt><code>noScriptCaching</code></dt><dd>The scripts loaded
393
+ inside the editor frame are not affected by, for example,
394
+ ctrl-F5 on Firefox, and will often be cached even though you
395
+ don't want them to. During development, you can set this option
396
+ to <code>true</code> to cause CodeMirror to add a changing dummy
397
+ parameter to the script URLs, which will force browsers to
398
+ reload them every time.</dd>
399
+
400
+ <dt><code>onLoad</code></dt><dd>If set to a function, this
401
+ will be called (with the editor object as its argument) after
402
+ the editor has finished initialising.</dd>
403
+
404
+ <dt><code>onCursorActivity</code></dt><dd>A function that is
405
+ called every time the cursor moves, with the top-level node that
406
+ the cursor is inside or next to as an argument. Can be used to
407
+ have some controls react to the context of the cursor.</dd>
408
+
409
+ <dt><code>activeTokens</code></dt><dd>Can be set to a function
410
+ that will be called with <code>(spanNode, tokenObject,
411
+ editor)</code> arguments whenever a new token node is being
412
+ added to the document. Can be used to do things like add event
413
+ handlers to nodes. Should <em>not</em> change the DOM structure
414
+ of the node (so no turning the span into a link), since this
415
+ will greatly confuse the editor.</dd>
416
+
417
+ <dt id="parserConfig"><code>parserConfig</code></dt><dd>An
418
+ object value that is passed along to the parser to configure it.
419
+ What this object should look like depends on the parser
420
+ used.</dd>
421
+
422
+ <dt><code>content</code></dt><dd>The starting content of the
423
+ editor. You'll probably not want to provide a global default for
424
+ this, but add it to the <code>options</code> object passed to
425
+ individual editors as they are created.</dd>
426
+
427
+ </dl>
428
+
429
+ <h2 id="parsers">Parsers</h2>
430
+
431
+ <p>(If you want to use a CodeMirror parser to highlight a piece of
432
+ text, without creating an editor, see <a
433
+ href="highlight.html">this example</a>, and the <code><a
434
+ href="js/highlight.js">highlight.js</a></code> script.)</p>
435
+
436
+ <p>The following parsers come with the distribution of CodeMirror:</p>
437
+
438
+ <dl>
439
+ <dt><code><a href="js/parsexml.js">parsexml.js</a></code> (<a
440
+ href="htmltest.html">demo</a>)</dt><dd>A HTML/XML parser. Takes
441
+ a <code>useHTMLKludges</code> configuration option (see the
442
+ <code><a href="#parserConfig">parserConfig</a></code> option
443
+ above), which specifies whether the content of the editor is
444
+ HTML or XML, and things like self-closing tags (<code>br</code>,
445
+ <code>img</code>) exist. This defaults to <code>true</code>.
446
+ Example colours for the styles that this parser uses are defined
447
+ in <code><a
448
+ href="css/xmlcolors.css">css/xmlcolors.css</a></code>.</dd>
449
+
450
+ <dt><code><a
451
+ href="js/tokenizejavascript.js">tokenizejavascript.js</a></code>,
452
+ <code><a
453
+ href="js/parsejavascript.js">parseejavascript.js</a></code> (<a
454
+ href="jstest.html">demo</a>)</dt><dd>The JavaScript parser.
455
+ Example colours in <code><a
456
+ href="css/jscolors.css">css/jscolors.css</a></code>. Takes one
457
+ configuration option, <code>json</code>, that can be set when
458
+ the editor content is JSON data. It causes every opening brace
459
+ to be treated as the start of an object, rather than a
460
+ block.</dd>
461
+
462
+ <dt><code><a href="js/parsecss.js">parsecss.js</a></code> (<a
463
+ href="csstest.html">demo</a>)</dt><dd>A CSS parser. Styles in
464
+ <code><a
465
+ href="css/csscolors.css">css/csscolors.css</a></code></dd>
466
+
467
+ <dt><code><a
468
+ href="js/parsehtmlmixed.js">parsehtmlmixed.js</a></code> (<a
469
+ href="mixedtest.html">demo</a>)</dt><dd>A mixed-mode HTML
470
+ parser. By default, requires the XML, JavaScript, and CSS
471
+ parsers to also be loaded, so your <code>parserfile</code>
472
+ option looks something like <code>["parsexml.js", "parsecss.js",
473
+ "tokenizejavascript.js", "parsejavascript.js",
474
+ "parsehtmlmixed.js"]</code>. This parser accepts a configuration
475
+ object with a <code>triggers</code> property to configure which
476
+ parser should be invoked for which tag. The default looks like
477
+ this (property names are tags, values are parser names):
478
+ <code>{script: "JSParser", style: "CSSParser"}</code></dd>
479
+
480
+ <dt><code><a href="js/parsesparql.js">parsesparql.js</a></code>
481
+ (<a href="sparqltest.html">demo</a>)</dt><dd>Parses the <a
482
+ href="http://en.wikipedia.org/wiki/SPARQL">SPARQL</a> query
483
+ language. Example styles in <code><a
484
+ href="css/sparqlcolors.css">css/sparqlcolors.css</a></code></dd>
485
+
486
+ <dt><code><a
487
+ href="js/parsedummy.js">parsedummy.js</a></code></dt><dd>A
488
+ 'dummy' parser to make it possible to edit plain text, or
489
+ documents for which no suitable parser exists.</dd>
490
+
491
+ <dt><code><a
492
+ href="contrib/php/js/parsephp.js">contrib/php/js/parsephp.js</a></code>
493
+ (<a href="contrib/php/index.html">demo</a>)</dt><dd>PHP parser.
494
+ There is also <code><a
495
+ href="contrib/php/js/parsephphtmlmixed.js">contrib/php/js/parsephphtmlmixed.js</a></code>,
496
+ which wraps this parser to allow mixed-mode HTML + PHP parsing.
497
+ This one takes a configuration parameter <code>opening</code>,
498
+ which should contain an array of XML processing instruction
499
+ openings (<code>&lt;?php</code>, <code>&lt;?</code> etc) which
500
+ can be used to open a PHP block. Default is
501
+ <code>["&lt;?php"]</code>.</dd>
502
+
503
+ <dt><code><a
504
+ href="contrib/python/js/parsepython.js">contrib/python/js/parsepython.js</a></code>
505
+ (<a href="contrib/python/index.html">demo</a>)</dt><dd>Python
506
+ parser.</dd>
507
+
508
+ <dt><code><a href="contrib/lua/js/parselua.js">contrib/lua/js/parselua.js</a></code>
509
+ (<a href="contrib/lua/index.html">demo</a>)</dt><dd>Lua
510
+ parser.</dd>
511
+
512
+ </dl>
513
+
514
+ <h2 id="programming">Programming Interface</h2>
515
+
516
+ <p>To be as flexible as possible, CodeMirror implements a very
517
+ plain editable field, without any accompanying buttons, bells, and
518
+ whistles. <code>CodeMirror</code> objects do, however, provide a
519
+ number of methods and properties that make it possible to add
520
+ extra functionality around the editor. <a
521
+ href="js/mirrorframe.js"><code>mirrorframe.js</code></a> provides
522
+ a basic example of their usage.</p>
523
+
524
+ <h3 id="properties">Properties</h3>
525
+
526
+ <dl>
527
+ <dt><code>frame</code></dt><dd>The editable frame.</dd>
528
+ <dt><code>win</code></dt><dd>The window of the editable frame.
529
+ Mostly useful for attaching event handlers.</dd>
530
+ <dt><code>wrapping</code></dt><dd>The <code>DIV</code> element
531
+ wrapped around the frame. This always has a CSS class of
532
+ <code>CodeMirror-wrapping</code>.</dd>
533
+ </dl>
534
+
535
+ <h3 id="methods">Methods</h3>
536
+
537
+ <dl>
538
+ <dt><code>getCode()</code> &#8594;
539
+ <code>string</code></dt><dd>Returns the current content of the
540
+ editor, as a string.</dd>
541
+
542
+ <dt><code>setCode(string)</code></dt><dd>Replaces the current
543
+ content of the editor with the given value.</dd>
544
+
545
+ <dt><code>focus()</code></dt><dd>Gives focus to the editor
546
+ frame.</dd>
547
+
548
+ <dt><code>selection()</code> &#8594;
549
+ <code>string</code></dt><dd>Returns the text that is currently
550
+ selected in the editor.</dd>
551
+
552
+ <dt><code>replaceSelection(string)</code></dt><dd>Replaces the
553
+ currently selected text with the given string. Will also cause
554
+ the editor frame to gain focus.</dd>
555
+
556
+ <dt><code>reindent()</code></dt><dd>Automatically re-indent the
557
+ whole document.</dd>
558
+
559
+ <dt><code>reindentSelection()</code></dt><dd>Automatically
560
+ re-indent the selected lines.</dd>
561
+
562
+ <dt><code>getSearchCursor(pattern, startPos, caseFold)</code>
563
+ &#8594; <code>cursor</code></dt><dd>The first argument provides
564
+ the pattern that should be searched for. It can be a string or a
565
+ regular expression (with the caveat that regexps won't match
566
+ across line boundaries, whereas strings will). The second
567
+ determines where to start searching. It can
568
+ be <code>false</code> (or left off) for the start of the
569
+ document, <code>true</code> for the current cursor position, or
570
+ a <code>{line, character}</code> object (as returned
571
+ by <code>cursorPosition</code>, or created yourself using a line
572
+ handle and a number) to set a random position. The third
573
+ argument, a boolean, determines whether the search will be
574
+ case-sensitive. If it is not provided, the search will only be
575
+ case-sensitive if the search string contains uppercase
576
+ characters. Returns an object that provides an interface for
577
+ searching. Call its <code>findNext()</code> and
578
+ <code>findPrevious()</code> methods to search for an occurrence.
579
+ This returns <code>true</code> if something is found, or
580
+ <code>false</code> if the end or start of the document was
581
+ reached. When an occurrence has been found, you can call
582
+ <code>select()</code> to select it, or
583
+ <code>replace(string)</code> to replace it with a given string
584
+ (you can use \1 placeholders in this string if you matched a
585
+ regular expression). To find out where the match was found, call
586
+ the <code>position()</code> method, which returns a <code>{line,
587
+ character}</code> object. Note that letting the user change the
588
+ document, or programmatically changing it in any way except for
589
+ calling <code>replace</code> on the cursor itself, might cause a
590
+ cursor object to skip back to the beginning of the
591
+ document.</dd>
592
+
593
+ <dt><code>undo()</code></dt><dd>Undo one changeset, if available.</dd>
594
+ <dt><code>redo()</code></dt><dd>Redo one changeset, if available.</dd>
595
+ <dt><code>historySize() &#8594; object</code></dt><dd>Get a
596
+ <code>{undo, redo}</code> object holding the sizes of the undo
597
+ and redo histories.</dd>
598
+ <dt><code>clearHistory()</code></dt><dd>Drop all history
599
+ information.</dd>
600
+
601
+ <dt><code>grabKeys(callback, filter)</code></dt><dd>Route
602
+ keyboard input in the editor to a callback function. This
603
+ function is given a slightly normalised (see
604
+ <code>normalizeEvent</code> in <a
605
+ href="js/util.js"><code>util.js</code></a>) <code>keydown</code>
606
+ event object. If a second argument is given, this will be used
607
+ to determine which events to apply the callback to. It should
608
+ take a key code (as in <code>event.keyCode</code>), and return a
609
+ boolean, where <code>true</code> means the event should be
610
+ routed to the callback, and <code>false</code> leaves the key to
611
+ perform its normal behaviour.</dd>
612
+ <dt><code>ungrabKeys()</code></dt><dd>Revert the effect of
613
+ <code>grabKeys</code>.</dd>
614
+
615
+ <dt><code>setParser(name, parserConfig)</code></dt><dd>Change
616
+ the active parser. To use this you'll have to load more than one
617
+ parser (put the one you want to use as default at the end of the
618
+ list). Then call this function with a string containing the name
619
+ of the parser you want to switch to (see the parser script file
620
+ to find the name, it'll be something like
621
+ <code>CSSParser</code>). The second argument is optional, and
622
+ can be used to pass a new parser configuration object.</dd>
623
+
624
+ <dt><code>cursorCoords(start)</code></dt><dd>Get the coordinates
625
+ of the cursor in the editor, relative to the top-left corner of
626
+ the outer document. Normally returns an object with
627
+ <code>x</code>, <code>y</code>, and <code>yBot</code> (the
628
+ bottom of the cursor) properties. May return <code>null</code>
629
+ if the cursor position could not be determined (for example, if
630
+ the editor is not focused).</dd>
631
+ </dl>
632
+
633
+ <h3 id="lines">Line Manipulation</h3>
634
+
635
+ <p>For detailed interaction with the content of the editor,
636
+ CodeMirror exposes a line-oriented interface, which allows you to
637
+ inspect and manipulate the document line by line. Line handles
638
+ should be considered opaque (they are in fact the <code>BR</code>
639
+ nodes at the start of the line), except that the value
640
+ <code>false</code> (but <em>not</em> <code>null</code>) always
641
+ denotes an invalid value. Since changing the document might cause
642
+ some line handles to become invalid, every function that takes
643
+ them as argument can throw
644
+ <code>CodeMirror.InvalidLineHandle</code>. These are the relevant
645
+ methods:</p>
646
+
647
+ <dl>
648
+ <dt><code>cursorPosition(start)</code> &#8594;
649
+ <code>object</code></dt><dd>Retrieve a <code>{line,
650
+ character}</code> object representing the cursor position.
651
+ <code>start</code> defaults to <code>true</code> and determines
652
+ if the startpoint or the endpoint of the selection is used.</dd>
653
+ <dt><code>cursorLine()</code> &#8594;
654
+ <code>handle</code></dt><dd>Returns the line on which the cursor
655
+ is currently sitting.</dd>
656
+ <dt><code>firstLine()</code> &#8594;
657
+ <code>handle</code></dt><dd>Get the first line of the
658
+ document.</dd>
659
+ <dt><code>lastLine()</code> &#8594;
660
+ <code>handle</code></dt><dd>The last line.</dd>
661
+ <dt><code>nextLine(handle)</code> &#8594;
662
+ <code>handle</code></dt><dd>Get the line after the given one, or
663
+ <code>false</code> if that was the last line.</dd>
664
+ <dt><code>prevLine(handle)</code> &#8594;
665
+ <code>handle</code></dt><dd>Find the line before the given one,
666
+ return <code>false</code> if that was the first line.</dd>
667
+ <dt><code>nthLine(number)</code> &#8594;
668
+ <code>handle</code></dt><dd>Find the Nth line of the document.
669
+ Note that the first line counts as one, not zero. Returns
670
+ <code>false</code> if there is no such line.</dd>
671
+ <dt><code>lineContent(handle)</code> &#8594;
672
+ <code>string</code></dt><dd>Retrieve the content of the
673
+ line.</dd>
674
+ <dt><code>setLineContent(handle, string)</code></dt><dd>Replace
675
+ the content of the line with the given string.</dd>
676
+ <dt><code>removeLine(handle)</code></dt><dd>Remove the given
677
+ line from the editor. The handle will stay valid after this
678
+ operation, and now refers to the next line.</dd>
679
+ <dt><code>lineNumber(handle)</code> &#8594;
680
+ <code>number</code></dt><dd>Ask which line of the document
681
+ (1-based) the given line is.</dd>
682
+ <dt><code>jumpToLine(handle)</code></dt><dd>Moves the cursor to
683
+ the start of the given line.</dd>
684
+ <dt><code>selectLines(startHandle, startOffset,
685
+ endHandle, endOffset)</code></dt><dd>Move the selection to a
686
+ specific point. <code>endHandle</code> and
687
+ <code>endOffset</code> can be omitted to just place the cursor
688
+ somewhere without selecting any text.</dd>
689
+ <dt><code>insertIntoLine(handle, position,
690
+ text)</code></dt><dd>Insert a piece of text into a line.
691
+ <code>position</code> can be an integer, specifying the position
692
+ in the line where the text should be inserted, or the string
693
+ <code>"end"</code>, for the end of the line.</dd>
694
+ </dl>
695
+
696
+ <h2 id="writeparser">Writing a Parser</h2>
697
+
698
+ <p>A parser is implemented by one or more files (see
699
+ <code>parserfile</code> above) which, when loaded, add a
700
+ <code>Parser</code> property to the <code>Editor</code> object
701
+ defined by <a href="js/editor.js"><code>editor.js</code></a>. This
702
+ object must support the following interface:</p>
703
+
704
+ <dl>
705
+
706
+ <dt><code>make(stream)</code></dt><dd>A function that, given a
707
+ string stream (see <a
708
+ href="js/stringstream.js"><code>stringstream.js</code></a>),
709
+ creates a parser. The behaviour of this parser is described
710
+ below.</dd>
711
+
712
+ <dt><code>electricChars</code></dt><dd>An optional string
713
+ containing the characters that, when typed, should cause the
714
+ indentation of the current line to be recomputed (for example
715
+ <code>"{}"</code> for c-like languages).</dd>
716
+
717
+ <dt><code>configure(object)</code></dt><dd>An optional function
718
+ that can be used to configure the parser. If it exists, and an
719
+ editor is given a <code>parserConfig</code> option, it will be
720
+ called with the value of that option.</dd>
721
+
722
+ <dt><code>firstIndentation(chars, current,
723
+ direction)</code></dt><dd>An optional function that is used to
724
+ determine the proper indentation of the first line of a
725
+ document. When not provided, <code>0</code> is used.</dd>
726
+ </dl>
727
+
728
+ <p>When the <code>make</code> method is called with a string
729
+ stream, it should return a MochiKit-style iterator: an object with
730
+ a <code>next</code> method, which will raise
731
+ <code>StopIteration</code> when it is at its end (see <a
732
+ href="http://bob.pythonmac.org/archives/2005/07/06/iteration-in-javascript/">this</a>
733
+ for details). This iterator, when called, will consume input from
734
+ the string stream, and produce a token object.</p>
735
+
736
+ <p>Token objects represent a single significant piece of the text
737
+ that is being edited. A token object must have a
738
+ <code>value</code> property holding the text it stands for, and a
739
+ <code>style</code> property with the CSS class that should be used
740
+ to colour this element. This can be anything, except that any
741
+ whitespace at the start of a line should <em>always</em> have
742
+ class <code>"whitespace"</code>: The editor must be able to
743
+ recognize these when it indents lines. Furthermore, each newline
744
+ character <em>must</em> have its own separate token, which has an
745
+ <code>indentation</code> property holding a function that can be
746
+ used to determine the proper indentation level for the next line.
747
+ This function optionally takes the text in the first token of the
748
+ next line, the current indentation of the line, and the
749
+ 'direction' of the indentation as arguments, which it can use to
750
+ adjust the indentation level. The direction argument is only
751
+ useful for modes in which lines do not have a fixed indentation,
752
+ and can be modified by multiple tab presses. It is
753
+ <code>null</code> for 'default' indentations (like what happens
754
+ when the user presses enter), <code>true</code> for regular tab
755
+ presses, and <code>false</code> for control-tab or shift-tab.</p>
756
+
757
+ <p>So far this should be pretty easy. The hard part is that this
758
+ iterator must also have a <code>copy</code> method. This method,
759
+ called without arguments, returns a function representing the
760
+ current state of the parser. When this state function is later
761
+ called with a string stream as its argument, it returns a parser
762
+ object that resumes parsing using the old state and the new input
763
+ stream. It may assume that only one parser is active at a time,
764
+ and can clobber the state of the old parser if it wants.</p>
765
+
766
+ <p>For examples, see <a
767
+ href="js/parsejavascript.js"><code>parsejavascript.js</code></a>,
768
+ <a href="js/parsexml.js"><code>parsexml.js</code></a>, and <a
769
+ href="js/parsecss.js"><code>parsecss.js</code></a>.</p>
770
+
771
+ </div><div class="rightsmall blk">
772
+
773
+ <h2>Contents</h2>
774
+
775
+ <ul>
776
+ <li><a href="#usage">Basic Usage</a></li>
777
+ <li><a href="#configuration">Configuration</a></li>
778
+ <li><a href="#parsers">Parsers</a></li>
779
+ <li><a href="#programming">Programming Interface</a>
780
+ <ul>
781
+ <li><a href="#properties">Properties</a></li>
782
+ <li><a href="#methods">Methods</a></li>
783
+ <li><a href="#lines">Line Manipulation</a></li>
784
+ </ul>
785
+ </li>
786
+ <li><a href="#writeparser">Writing a Parser</a></li>
787
+ </ul>
788
+
789
+ <h2>Site</h2>
790
+
791
+ <ul>
792
+ <li><a href="index.html">Front Page</a></li>
793
+ <li><a href="faq.html">FAQ</a></li>
794
+ <li><a href="http://groups.google.com/group/codemirror">Google Group</a></li>
795
+ <li><a href="compress.html">Compression Helper</a></li>
796
+ <li><a href="story.html">War Story</a></li>
797
+ </ul>
798
+
799
+ </div></div>
800
+
801
+ <div style="height: 2em">&nbsp;</div>
802
+
803
+ <script type="text/javascript" src="css/font.js"></script>
804
+
805
+ </body>
806
+ </html>