erp_app 3.1.16 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1634) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -5
  3. data/app/controllers/erp_app/desktop/configuration_management/base_controller.rb +2 -2
  4. data/app/controllers/erp_app/desktop/configuration_management/options_controller.rb +14 -14
  5. data/app/controllers/erp_app/desktop/configuration_management/types_controller.rb +3 -3
  6. data/app/controllers/erp_app/desktop/control_panel/application_management_controller.rb +2 -2
  7. data/app/controllers/erp_app/desktop/file_manager/base_controller.rb +1 -1
  8. data/app/controllers/erp_app/desktop/job_tracker/base_controller.rb +5 -6
  9. data/app/controllers/erp_app/desktop/security_management/base_controller.rb +7 -7
  10. data/app/controllers/erp_app/desktop/security_management/capabilities_controller.rb +37 -42
  11. data/app/controllers/erp_app/desktop/security_management/groups_controller.rb +70 -75
  12. data/app/controllers/erp_app/desktop/security_management/roles_controller.rb +63 -68
  13. data/app/controllers/erp_app/desktop/security_management/users_controller.rb +45 -50
  14. data/app/controllers/erp_app/login_controller.rb +20 -11
  15. data/app/controllers/erp_app/mobile/user_management/base_controller.rb +4 -5
  16. data/app/controllers/erp_app/organizer/application_management_controller.rb +47 -0
  17. data/app/controllers/erp_app/organizer/crm/contact_mechanisms_controller.rb +150 -0
  18. data/app/controllers/erp_app/organizer/crm/parties_controller.rb +326 -0
  19. data/app/controllers/erp_app/organizer/crm/relationship_controller.rb +28 -30
  20. data/app/controllers/erp_app/organizer/crm/users_controller.rb +250 -0
  21. data/app/controllers/erp_app/public_controller.rb +9 -2
  22. data/app/controllers/erp_app/shared/audit_log_controller.rb +68 -0
  23. data/app/controllers/erp_app/shared/configuration_controller.rb +3 -3
  24. data/app/controllers/erp_app/shared/notes_controller.rb +50 -40
  25. data/app/controllers/erp_app/widget_proxy_controller.rb +6 -4
  26. data/app/models/application.rb +8 -2
  27. data/app/models/configuration.rb +46 -24
  28. data/app/models/configuration_item.rb +8 -0
  29. data/app/models/desktop.rb +0 -14
  30. data/app/models/organizer.rb +0 -14
  31. data/app/models/widget.rb +0 -3
  32. data/app/views/erp_app/desktop/base/index.erb +28 -35
  33. data/app/views/erp_app/login/index.erb +5 -2
  34. data/app/views/erp_app/organizer/base/index.erb +22 -17
  35. data/app/views/erp_app/organizer/crm/parties/details.erb +89 -0
  36. data/app/views/erp_app/pixlr/close.erb +5 -0
  37. data/config/routes.rb +74 -42
  38. data/db/data_migrations/20130703181549_create_tail_desktop_application.rb +4 -7
  39. data/db/data_migrations/20131102171801_add_customer_role_type.rb +11 -0
  40. data/db/data_migrations/20131108191057_add_customer_employee_reln.rb +26 -0
  41. data/db/data_migrations/20140122205941_remove_theme_preference.rb +21 -0
  42. data/db/migrate/20131112013049_add_erp_app_missing_indexes.rb +31 -0
  43. data/db/migrate/20131129205550_add_precedence_to_configuration_item_types.rb +7 -0
  44. data/lib/active_ext/active_ext.rb +1 -1
  45. data/lib/active_ext/ext_helpers/field_builder.rb +140 -140
  46. data/lib/erp_app/application_resource_loader/desktop_organizer_loader.rb +1 -2
  47. data/lib/erp_app/engine.rb +0 -5
  48. data/lib/erp_app/extensions/active_record/has_user_preferences.rb +70 -69
  49. data/lib/erp_app/extensions/railties/action_view/helpers/include_helper.rb +29 -27
  50. data/lib/erp_app/version.rb +7 -3
  51. data/lib/erp_app/widgets/base.rb +21 -4
  52. data/lib/erp_app/widgets/loader.rb +2 -2
  53. data/lib/erp_app.rb +1 -0
  54. data/lib/generators/cms_widget/USAGE +0 -6
  55. data/lib/generators/cms_widget/templates/javascript/base.js.erb +1 -1
  56. data/lib/generators/desktop_application/templates/migrate/migration_template.erb +4 -6
  57. data/lib/generators/organizer_application/templates/controllers/controller_template.erb +1 -2
  58. data/lib/generators/organizer_application/templates/public/base.js.erb +21 -25
  59. data/public/images/art/compass-ae-logo-reverse-1.png +0 -0
  60. data/public/images/btn/save/save_16x16.png +0 -0
  61. data/public/images/btn/save_all/save_all_16x16.png +0 -0
  62. data/public/images/btn_light/add/add_16x16.png +0 -0
  63. data/public/images/btn_light/left_panel/left_panel_16x16.png +0 -0
  64. data/public/images/btn_light/left_right_panel/left_right_panel_16x16.png +0 -0
  65. data/public/images/btn_light/right_panel/right_panel_16x16.png +0 -0
  66. data/public/images/btn_light/save/save_16x16.png +0 -0
  67. data/public/images/btn_light/save_all/save_all_16x16.png +0 -0
  68. data/public/images/erp_app/desktop/applications/security_management/manage_capabilities.png +0 -0
  69. data/public/images/erp_app/desktop/applications/security_management/manage_groups.png +0 -0
  70. data/public/images/erp_app/desktop/applications/security_management/manage_roles.png +0 -0
  71. data/public/images/erp_app/desktop/applications/security_management/manage_users.png +0 -0
  72. data/public/images/erp_app/desktop/compass_logo_start_icon.png +0 -0
  73. data/public/images/erp_app/organizer/applications/crm/business.png +0 -0
  74. data/public/images/erp_app/organizer/applications/crm/business_64x64.png +0 -0
  75. data/public/images/erp_app/organizer/applications/crm/customer-contact.png +0 -0
  76. data/public/images/erp_app/organizer/applications/crm/customer_360_64x64.png +0 -0
  77. data/public/images/erp_app/organizer/applications/crm/people.png +0 -0
  78. data/public/images/erp_app/organizer/applications/crm/person.png +0 -0
  79. data/public/images/erp_app/organizer/applications/crm/toolbar_find.png +0 -0
  80. data/public/images/erp_app/organizer/applications/crm/vcard.png +0 -0
  81. data/public/images/icons/add/add_16x16.png +0 -0
  82. data/public/images/icons/add/add_light_16x16.png +0 -0
  83. data/public/images/icons/arrow_left_blue/arrow_left_blue_16x16.png +0 -0
  84. data/public/images/icons/arrow_left_blue/arrow_left_blue_32x32.png +0 -0
  85. data/public/images/icons/arrow_left_blue/arrow_left_blue_48x48.png +0 -0
  86. data/public/images/icons/arrow_right_blue/arrow_right_blue_16x16.png +0 -0
  87. data/public/images/icons/arrow_right_blue/arrow_right_blue_32x32.png +0 -0
  88. data/public/images/icons/arrow_right_blue/arrow_right_blue_48x48.png +0 -0
  89. data/public/images/icons/article/article_16x16.png +0 -0
  90. data/public/images/icons/blog/blog_16x16.png +0 -0
  91. data/public/images/icons/blog/blog_24x24.png +0 -0
  92. data/public/images/icons/blog/blog_32x32.png +0 -0
  93. data/public/images/icons/blog/blog_48x48.png +0 -0
  94. data/public/images/icons/book/book_16x16.png +0 -0
  95. data/public/images/icons/calendar/calendar_16x16.png +0 -0
  96. data/public/images/icons/calendar/calendar_64x64.png +0 -0
  97. data/public/images/icons/calendar/calendar_light_16x16.png +0 -0
  98. data/public/images/icons/code/code_16x16.png +0 -0
  99. data/public/images/icons/console/console_16x16.png +0 -0
  100. data/public/images/icons/console/console_64x64.png +0 -0
  101. data/public/images/icons/contact-us/contact-us_48x48.png +0 -0
  102. data/public/images/icons/content/content_16x16.png +0 -0
  103. data/public/images/icons/control_panel/control_panel_16x16.png +0 -0
  104. data/public/images/icons/control_panel/control_panel_48x48.png +0 -0
  105. data/public/images/icons/control_panel/control_panel_64x64.png +0 -0
  106. data/public/images/icons/copy/copy_16x16.png +0 -0
  107. data/public/images/icons/creditcards/creditcards_16x16.png +0 -0
  108. data/public/images/icons/creditcards/creditcards_24x24.png +0 -0
  109. data/public/images/icons/creditcards/creditcards_32x32.png +0 -0
  110. data/public/images/icons/creditcards/creditcards_48x48.png +0 -0
  111. data/public/images/icons/creditcards/creditcards_64x64.png +0 -0
  112. data/public/images/icons/crm/crm_16x16.png +0 -0
  113. data/public/images/icons/crm/crm_light_16x16.png +0 -0
  114. data/public/images/icons/csr/csr_16x16.png +0 -0
  115. data/public/images/icons/csr/csr_256x256.png +0 -0
  116. data/public/images/icons/csr/csr_500x500.png +0 -0
  117. data/public/images/icons/data/data_16x16.png +0 -0
  118. data/public/images/icons/data/data_64x64.png +0 -0
  119. data/public/images/icons/database/database_16x16.png +0 -0
  120. data/public/images/icons/database_column/database_column_16x16.png +0 -0
  121. data/public/images/icons/db_edit_data/db_edit_data_16x16.png +0 -0
  122. data/public/images/icons/db_table/db_table_16x16.png +0 -0
  123. data/public/images/icons/delete/delete_16x16.png +0 -0
  124. data/public/images/icons/doc_settings/doc_settings_16x16.png +0 -0
  125. data/public/images/icons/document/document_16x16.png +0 -0
  126. data/public/images/icons/document_lock/document_lock_16x16.png +0 -0
  127. data/public/images/icons/document_pulse/document_pulse_64x64.png +0 -0
  128. data/public/images/icons/edit/edit_16x16.png +0 -0
  129. data/public/images/icons/exit/exit_16x16.png +0 -0
  130. data/public/images/icons/eye/eye_16x16.png +0 -0
  131. data/public/images/icons/eye/eye_24x24.png +0 -0
  132. data/public/images/icons/eye/eye_32x32.png +0 -0
  133. data/public/images/icons/eye/eye_48x48.png +0 -0
  134. data/public/images/icons/fieldtypes/business_party.png +0 -0
  135. data/public/images/icons/fieldtypes/check.png +0 -0
  136. data/public/images/icons/fieldtypes/date.png +0 -0
  137. data/public/images/icons/fieldtypes/display.png +0 -0
  138. data/public/images/icons/fieldtypes/email.png +0 -0
  139. data/public/images/icons/fieldtypes/file.png +0 -0
  140. data/public/images/icons/fieldtypes/file_assets.png +0 -0
  141. data/public/images/icons/fieldtypes/image.png +0 -0
  142. data/public/images/icons/fieldtypes/money.png +0 -0
  143. data/public/images/icons/fieldtypes/number.png +0 -0
  144. data/public/images/icons/fieldtypes/password.png +0 -0
  145. data/public/images/icons/fieldtypes/question.png +0 -0
  146. data/public/images/icons/fieldtypes/radio.png +0 -0
  147. data/public/images/icons/fieldtypes/select.png +0 -0
  148. data/public/images/icons/fieldtypes/text.png +0 -0
  149. data/public/images/icons/fieldtypes/text.psd +0 -0
  150. data/public/images/icons/fieldtypes/text_area.png +0 -0
  151. data/public/images/icons/fieldtypes/time.png +0 -0
  152. data/public/images/icons/fieldtypes/yes_no.png +0 -0
  153. data/public/images/icons/file_manager/file_manager_16x16.png +0 -0
  154. data/public/images/icons/file_manager/file_manager_light_16x16.png +0 -0
  155. data/public/images/icons/folders/folders_64x64.png +0 -0
  156. data/public/images/icons/footprints/footprints_16x16.png +0 -0
  157. data/public/images/icons/footprints/footprints_light_16x16.png +0 -0
  158. data/public/images/icons/form/form_16x16.png +0 -0
  159. data/public/images/icons/form/form_light_16x16.png +0 -0
  160. data/public/images/icons/gantt/gantt_24x24.png +0 -0
  161. data/public/images/icons/gear/gear_16x16.png +0 -0
  162. data/public/images/icons/gear/gear_light_16x16.png +0 -0
  163. data/public/images/icons/globe/globe_16x16.png +0 -0
  164. data/public/images/icons/globe/globe_64x64.png +0 -0
  165. data/public/images/icons/globe/globe_light_16x16.png +0 -0
  166. data/public/images/icons/google-map/google-map_48x48.png +0 -0
  167. data/public/images/icons/grid/grid_16x16.png +0 -0
  168. data/public/images/icons/grid/grid_64x64.png +0 -0
  169. data/public/images/icons/hierarchy/hierarchy_16x16.png +0 -0
  170. data/public/images/icons/history/history_16x16.png +0 -0
  171. data/public/images/icons/history/history_64x64.png +0 -0
  172. data/public/images/icons/history/history_light_16x16.png +0 -0
  173. data/public/images/icons/home/home_16x16.png +0 -0
  174. data/public/images/icons/home/home_48x48.png +0 -0
  175. data/public/images/icons/ia/ia_16x16.png +0 -0
  176. data/public/images/icons/information/information_16x16.png +0 -0
  177. data/public/images/icons/invoicing/invoicing_48x48.png +0 -0
  178. data/public/images/icons/invoicing/invoicing_64x64.png +0 -0
  179. data/public/images/icons/key/key_16x16.png +0 -0
  180. data/public/images/icons/key/key_64x64.png +0 -0
  181. data/public/images/icons/knitkit/knitkit_16x16.png +0 -0
  182. data/public/images/icons/knitkit/knitkit_48x48.png +0 -0
  183. data/public/images/icons/knitkit/knitkit_light_16x16.png +0 -0
  184. data/public/images/icons/login/login_48x48.png +0 -0
  185. data/public/images/icons/magnifying-glass/magnifying-glass_48x48.png +0 -0
  186. data/public/images/icons/mail/mail_16x16.png +0 -0
  187. data/public/images/icons/mail/mail_24x24.png +0 -0
  188. data/public/images/icons/mail/mail_32x32.png +0 -0
  189. data/public/images/icons/mail/mail_48x48.png +0 -0
  190. data/public/images/icons/manage-profile/manage-profile_48x48.png +0 -0
  191. data/public/images/icons/menu/menu_16x16.png +0 -0
  192. data/public/images/icons/ordered_list/ordered_list_16x16.png +0 -0
  193. data/public/images/icons/package/package_16x16.png +0 -0
  194. data/public/images/icons/package/package_64x64.png +0 -0
  195. data/public/images/icons/package/package_light_16x16.png +0 -0
  196. data/public/images/icons/palette/palette_64x64.png +0 -0
  197. data/public/images/icons/person/person_16x16.png +0 -0
  198. data/public/images/icons/phone/phone_16x16.png +0 -0
  199. data/public/images/icons/phone/phone_64x64.png +0 -0
  200. data/public/images/icons/picture/picture_16x16.png +0 -0
  201. data/public/images/icons/play/play_16x16.png +0 -0
  202. data/public/images/icons/product/product_16x16.png +0 -0
  203. data/public/images/icons/product/product_64x64.png +0 -0
  204. data/public/images/icons/product/product_light_16x16.png +0 -0
  205. data/public/images/icons/query/query_16x16.png +0 -0
  206. data/public/images/icons/redo/redo_16x16.png +0 -0
  207. data/public/images/icons/refresh/refresh_16x16.png +0 -0
  208. data/public/images/icons/report/report_16x16.png +0 -0
  209. data/public/images/icons/reset-password/reset-password_48x48.png +0 -0
  210. data/public/images/icons/rowselect/rowselect_16x16.png +0 -0
  211. data/public/images/icons/save/save_16x16.png +0 -0
  212. data/public/images/icons/save_as/save_as_16x16.png +0 -0
  213. data/public/images/icons/scaffold/scaffold_16x16.png +0 -0
  214. data/public/images/icons/scaffold/scaffold_light_16x16.png +0 -0
  215. data/public/images/icons/search/search_16x16.png +0 -0
  216. data/public/images/icons/search/search_24x24.png +0 -0
  217. data/public/images/icons/search/search_32x32.png +0 -0
  218. data/public/images/icons/search/search_48x48.png +0 -0
  219. data/public/images/icons/search/search_light_16x16.png +0 -0
  220. data/public/images/icons/section/section_16x16.png +0 -0
  221. data/public/images/icons/section/section_24x24.png +0 -0
  222. data/public/images/icons/section/section_32x32.png +0 -0
  223. data/public/images/icons/section/section_48x48.png +0 -0
  224. data/public/images/icons/section_lock/section_lock_16x16.png +0 -0
  225. data/public/images/icons/section_lock/section_lock_24x24.png +0 -0
  226. data/public/images/icons/section_lock/section_lock_32x32.png +0 -0
  227. data/public/images/icons/section_lock/section_lock_48x48.png +0 -0
  228. data/public/images/icons/secure/secure_16x16.png +0 -0
  229. data/public/images/icons/settings/settings_16x16.png +0 -0
  230. data/public/images/icons/settings/settings_light_16x16.png +0 -0
  231. data/public/images/icons/shopping_cart/shopping_card_64x64.png +0 -0
  232. data/public/images/icons/shopping_cart/shopping_cart_32x32.png +0 -0
  233. data/public/images/icons/shopping_cart/shopping_cart_48x48.png +0 -0
  234. data/public/images/icons/sign_up/sign_up_32x32.png +0 -0
  235. data/public/images/icons/sign_up/sign_up_48x48.png +0 -0
  236. data/public/images/icons/sign_up/sign_up_64x64.png +0 -0
  237. data/public/images/icons/signup/signup_48x48.png +0 -0
  238. data/public/images/icons/simple_arrow/simple_arrow_16x16.png +0 -0
  239. data/public/images/icons/small_gear/small_gear_16x16.png +0 -0
  240. data/public/images/icons/sql/sql_16x16.png +0 -0
  241. data/public/images/icons/tables/tables_16x16.png +0 -0
  242. data/public/images/icons/theme/theme_16x16.png +0 -0
  243. data/public/images/icons/theme_upload/theme_upload_16x16.png +0 -0
  244. data/public/images/icons/ticket/tag_16x16.png +0 -0
  245. data/public/images/icons/undo/undo_16x16.png +0 -0
  246. data/public/images/icons/user/user_128x128.png +0 -0
  247. data/public/images/icons/user/user_16x16.png +0 -0
  248. data/public/images/icons/user/user_64x64.png +0 -0
  249. data/public/images/icons/user/user_light_16x16.png +0 -0
  250. data/public/images/icons/user_mgt/user_mgt_16x16.png +0 -0
  251. data/public/images/icons/user_mgt/user_mgt_light_16x16.png +0 -0
  252. data/public/images/icons/vcard/vcard_16x16.png +0 -0
  253. data/public/images/icons/view/view_16x16.png +0 -0
  254. data/public/images/icons/view/view_24x24.png +0 -0
  255. data/public/images/icons/view/view_32x32.png +0 -0
  256. data/public/images/icons/view/view_48x48.png +0 -0
  257. data/public/images/icons/warning/waring_16x16.png +0 -0
  258. data/public/images/icons/website/website_16x16.png +0 -0
  259. data/public/images/icons/website_download/website_download_16x16.png +0 -0
  260. data/public/images/icons/website_publications/website_publications_16x16.png +0 -0
  261. data/public/images/icons/website_upload/website_upload_16x16.png +0 -0
  262. data/public/images/loading_icon.gif +0 -0
  263. data/public/images/splash_screen/browse_docs_icon.png +0 -0
  264. data/public/images/splash_screen/desktop_icon.png +0 -0
  265. data/public/images/tab/tab-default-close.png +0 -0
  266. data/public/javascripts/erp_app/authentication/compass_user.js +77 -69
  267. data/public/javascripts/erp_app/ckeditor/ckeditor.js +927 -152
  268. data/public/javascripts/erp_app/ckeditor/config.js +12 -11
  269. data/public/javascripts/erp_app/ckeditor/contents.css +84 -6
  270. data/public/javascripts/erp_app/ckeditor/lang/en.js +3 -4
  271. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +10 -7
  272. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +25 -0
  273. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +9 -0
  274. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +9 -0
  275. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +10 -0
  276. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +10 -0
  277. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +9 -0
  278. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/da.js +9 -0
  279. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +10 -0
  280. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/el.js +10 -0
  281. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +9 -0
  282. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +10 -0
  283. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/es.js +10 -0
  284. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/et.js +9 -0
  285. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +9 -0
  286. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +10 -0
  287. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js +10 -0
  288. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +11 -0
  289. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js +10 -0
  290. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +9 -0
  291. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +9 -0
  292. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +9 -0
  293. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +9 -0
  294. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +10 -0
  295. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/id.js +9 -0
  296. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +10 -0
  297. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +9 -0
  298. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +9 -0
  299. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +10 -0
  300. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +9 -0
  301. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +11 -0
  302. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +9 -0
  303. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +9 -0
  304. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +9 -0
  305. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +10 -0
  306. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/no.js +9 -0
  307. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +10 -0
  308. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +9 -0
  309. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +10 -0
  310. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +9 -0
  311. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +9 -0
  312. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/si.js +8 -0
  313. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +10 -0
  314. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +10 -0
  315. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js +9 -0
  316. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js +9 -0
  317. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js +9 -0
  318. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +10 -0
  319. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/th.js +9 -0
  320. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +10 -0
  321. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +9 -0
  322. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +10 -0
  323. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +9 -0
  324. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +7 -0
  325. data/public/javascripts/erp_app/ckeditor/plugins/about/dialogs/about.js +7 -6
  326. data/public/javascripts/erp_app/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
  327. data/public/javascripts/erp_app/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  328. data/public/javascripts/erp_app/ckeditor/plugins/clipboard/dialogs/paste.js +11 -7
  329. data/public/javascripts/erp_app/ckeditor/plugins/codemirror/lang/en.js +12 -0
  330. data/public/javascripts/erp_app/ckeditor/plugins/codemirror/plugin.js +756 -59
  331. data/public/javascripts/erp_app/ckeditor/plugins/colordialog/dialogs/colordialog.js +13 -7
  332. data/public/javascripts/erp_app/ckeditor/plugins/dialog/dialogDefinition.js +4 -4
  333. data/public/javascripts/erp_app/ckeditor/plugins/div/dialogs/div.js +9 -8
  334. data/public/javascripts/erp_app/ckeditor/{images → plugins/fakeobjects/images}/spacer.gif +0 -0
  335. data/public/javascripts/erp_app/ckeditor/plugins/find/dialogs/find.js +24 -10
  336. data/public/javascripts/erp_app/ckeditor/plugins/flash/dialogs/flash.js +24 -9
  337. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/button.js +8 -6
  338. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/checkbox.js +8 -6
  339. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/form.js +8 -6
  340. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/hiddenfield.js +8 -6
  341. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/radio.js +8 -6
  342. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/select.js +20 -9
  343. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/textarea.js +8 -6
  344. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/textfield.js +10 -6
  345. data/public/javascripts/erp_app/ckeditor/plugins/icons.png +0 -0
  346. data/public/javascripts/erp_app/ckeditor/plugins/icons_hidpi.png +0 -0
  347. data/public/javascripts/erp_app/ckeditor/plugins/iframe/dialogs/iframe.js +10 -7
  348. data/public/javascripts/erp_app/ckeditor/plugins/image/dialogs/image.js +43 -13
  349. data/public/javascripts/erp_app/ckeditor/{skins/kama → plugins/image}/images/noimage.png +0 -0
  350. data/public/javascripts/erp_app/ckeditor/plugins/inlineeditsave/plugin.js +3 -1
  351. data/public/javascripts/erp_app/ckeditor/plugins/knitkitthemes/plugin.js +2 -5
  352. data/public/javascripts/erp_app/ckeditor/plugins/link/dialogs/anchor.js +8 -6
  353. data/public/javascripts/erp_app/ckeditor/plugins/link/dialogs/link.js +36 -12
  354. data/public/javascripts/erp_app/ckeditor/plugins/link/images/anchor.png +0 -0
  355. data/public/javascripts/erp_app/ckeditor/plugins/link/images/hidpi/anchor.png +0 -0
  356. data/public/javascripts/erp_app/ckeditor/plugins/liststyle/dialogs/liststyle.js +10 -7
  357. data/public/javascripts/erp_app/ckeditor/plugins/magicline/images/hidpi/icon.png +0 -0
  358. data/public/javascripts/erp_app/ckeditor/plugins/magicline/images/icon.png +0 -0
  359. data/public/javascripts/erp_app/ckeditor/plugins/pastefromword/filter/default.js +31 -11
  360. data/public/javascripts/erp_app/ckeditor/plugins/scayt/LICENSE.md +28 -0
  361. data/public/javascripts/erp_app/ckeditor/plugins/scayt/README.md +25 -0
  362. data/public/javascripts/erp_app/ckeditor/plugins/scayt/dialogs/options.js +20 -8
  363. data/public/javascripts/erp_app/ckeditor/plugins/scayt/dialogs/toolbar.css +70 -5
  364. data/public/javascripts/erp_app/ckeditor/plugins/smiley/dialogs/smiley.js +10 -7
  365. data/public/javascripts/erp_app/ckeditor/plugins/smiley/images/embarrassed_smile.gif +0 -0
  366. data/public/javascripts/erp_app/ckeditor/plugins/smiley/images/tongue_smile.gif +0 -0
  367. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +20 -0
  368. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/ar.js +13 -0
  369. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/bg.js +13 -0
  370. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/ca.js +14 -0
  371. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/cs.js +13 -0
  372. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/cy.js +14 -0
  373. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/de.js +13 -0
  374. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/el.js +13 -0
  375. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/en.js +13 -0
  376. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/eo.js +12 -0
  377. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/es.js +13 -0
  378. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/et.js +13 -0
  379. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/fa.js +12 -0
  380. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/fi.js +13 -0
  381. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js +10 -0
  382. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/fr.js +11 -0
  383. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/gl.js +13 -0
  384. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/he.js +13 -0
  385. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/hr.js +13 -0
  386. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/hu.js +12 -0
  387. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/id.js +13 -0
  388. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/it.js +14 -0
  389. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/ja.js +9 -0
  390. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/ku.js +13 -0
  391. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/lv.js +13 -0
  392. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/nb.js +11 -0
  393. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/nl.js +13 -0
  394. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/no.js +11 -0
  395. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/pl.js +12 -0
  396. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +11 -0
  397. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/pt.js +13 -0
  398. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/ru.js +13 -0
  399. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/si.js +13 -0
  400. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/sk.js +13 -0
  401. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/sl.js +12 -0
  402. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/sq.js +13 -0
  403. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/sv.js +11 -0
  404. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/th.js +13 -0
  405. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/tr.js +12 -0
  406. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/ug.js +13 -0
  407. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/uk.js +12 -0
  408. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/vi.js +13 -0
  409. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +9 -0
  410. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/specialchar.js +14 -7
  411. data/public/javascripts/erp_app/ckeditor/plugins/syntaxhighlight/dialogs/syntaxhighlight.js +418 -0
  412. data/public/javascripts/erp_app/ckeditor/plugins/syntaxhighlight/icons/syntaxhighlight.png +0 -0
  413. data/public/javascripts/erp_app/ckeditor/plugins/syntaxhighlight/lang/de.js +22 -0
  414. data/public/javascripts/erp_app/ckeditor/plugins/syntaxhighlight/lang/en.js +22 -0
  415. data/public/javascripts/erp_app/ckeditor/plugins/syntaxhighlight/lang/fr.js +22 -0
  416. data/public/javascripts/erp_app/ckeditor/plugins/syntaxhighlight/lang/zh-cn.js +22 -0
  417. data/public/javascripts/erp_app/ckeditor/plugins/syntaxhighlight/plugin.js +144 -0
  418. data/public/javascripts/erp_app/ckeditor/plugins/table/dialogs/table.js +21 -9
  419. data/public/javascripts/erp_app/ckeditor/plugins/tabletools/dialogs/tableCell.js +16 -8
  420. data/public/javascripts/erp_app/ckeditor/plugins/templates/dialogs/templates.css +84 -0
  421. data/public/javascripts/erp_app/ckeditor/plugins/templates/dialogs/templates.js +10 -7
  422. data/public/javascripts/erp_app/ckeditor/plugins/templates/templates/default.js +6 -6
  423. data/public/javascripts/erp_app/ckeditor/plugins/wsc/LICENSE.md +28 -0
  424. data/public/javascripts/erp_app/ckeditor/plugins/wsc/README.md +25 -0
  425. data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/ciframe.html +17 -0
  426. data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/tmp.html +131 -0
  427. data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/wsc.css +77 -1
  428. data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/wsc.js +67 -7
  429. data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/wsc_ie.js +11 -0
  430. data/public/javascripts/erp_app/ckeditor/skins/moono/dialog.css +5 -0
  431. data/public/javascripts/erp_app/ckeditor/skins/moono/dialog_ie.css +5 -0
  432. data/public/javascripts/erp_app/ckeditor/skins/moono/dialog_ie7.css +5 -0
  433. data/public/javascripts/erp_app/ckeditor/skins/moono/dialog_ie8.css +5 -0
  434. data/public/javascripts/erp_app/ckeditor/skins/moono/dialog_iequirks.css +5 -0
  435. data/public/javascripts/erp_app/ckeditor/skins/moono/dialog_opera.css +5 -0
  436. data/public/javascripts/erp_app/ckeditor/skins/moono/editor.css +20 -0
  437. data/public/javascripts/erp_app/ckeditor/skins/moono/editor_gecko.css +5 -0
  438. data/public/javascripts/erp_app/ckeditor/skins/moono/editor_ie.css +5 -0
  439. data/public/javascripts/erp_app/ckeditor/skins/moono/editor_ie7.css +5 -0
  440. data/public/javascripts/erp_app/ckeditor/skins/moono/editor_ie8.css +5 -0
  441. data/public/javascripts/erp_app/ckeditor/skins/moono/editor_iequirks.css +5 -0
  442. data/public/javascripts/erp_app/ckeditor/skins/moono/icons.png +0 -0
  443. data/public/javascripts/erp_app/ckeditor/skins/moono/icons_hidpi.png +0 -0
  444. data/public/javascripts/erp_app/ckeditor/skins/moono/images/arrow.png +0 -0
  445. data/public/javascripts/erp_app/ckeditor/skins/moono/images/close.png +0 -0
  446. data/public/javascripts/erp_app/ckeditor/skins/moono/images/hidpi/close.png +0 -0
  447. data/public/javascripts/erp_app/ckeditor/skins/moono/images/hidpi/lock-open.png +0 -0
  448. data/public/javascripts/erp_app/ckeditor/skins/moono/images/hidpi/lock.png +0 -0
  449. data/public/javascripts/erp_app/ckeditor/skins/moono/images/hidpi/refresh.png +0 -0
  450. data/public/javascripts/erp_app/ckeditor/skins/moono/images/lock-open.png +0 -0
  451. data/public/javascripts/erp_app/ckeditor/skins/moono/images/lock.png +0 -0
  452. data/public/javascripts/erp_app/ckeditor/skins/moono/images/refresh.png +0 -0
  453. data/public/javascripts/erp_app/ckeditor/skins/moono/readme.md +51 -0
  454. data/public/javascripts/erp_app/ckeditor/styles.js +111 -0
  455. data/public/javascripts/erp_app/codemirror/lib/codemirror.css +204 -106
  456. data/public/javascripts/erp_app/codemirror/lib/codemirror.js +55 -3165
  457. data/public/javascripts/erp_app/codemirror/theme/3024-day.css +34 -0
  458. data/public/javascripts/erp_app/codemirror/theme/3024-night.css +34 -0
  459. data/public/javascripts/erp_app/codemirror/theme/ambiance-mobile.css +5 -0
  460. data/public/javascripts/erp_app/codemirror/theme/ambiance.css +10 -17
  461. data/public/javascripts/erp_app/codemirror/theme/base16-dark.css +34 -0
  462. data/public/javascripts/erp_app/codemirror/theme/base16-light.css +34 -0
  463. data/public/javascripts/erp_app/codemirror/theme/blackboard.css +7 -4
  464. data/public/javascripts/erp_app/codemirror/theme/cobalt.css +7 -4
  465. data/public/javascripts/erp_app/codemirror/theme/eclipse.css +3 -5
  466. data/public/javascripts/erp_app/codemirror/theme/elegant.css +4 -1
  467. data/public/javascripts/erp_app/codemirror/theme/erlang-dark.css +19 -10
  468. data/public/javascripts/erp_app/codemirror/theme/lesser-dark.css +9 -10
  469. data/public/javascripts/erp_app/codemirror/theme/mbo.css +37 -0
  470. data/public/javascripts/erp_app/codemirror/theme/mdn-like.css +44 -0
  471. data/public/javascripts/erp_app/codemirror/theme/midnight.css +43 -0
  472. data/public/javascripts/erp_app/codemirror/theme/monokai.css +5 -4
  473. data/public/javascripts/erp_app/codemirror/theme/neat.css +3 -0
  474. data/public/javascripts/erp_app/codemirror/theme/neo.css +40 -0
  475. data/public/javascripts/erp_app/codemirror/theme/night.css +7 -4
  476. data/public/javascripts/erp_app/codemirror/theme/paraiso-dark.css +34 -0
  477. data/public/javascripts/erp_app/codemirror/theme/paraiso-light.css +34 -0
  478. data/public/javascripts/erp_app/codemirror/theme/pastel-on-dark.css +48 -0
  479. data/public/javascripts/erp_app/codemirror/theme/rubyblue.css +6 -6
  480. data/public/javascripts/erp_app/codemirror/theme/solarized.css +167 -0
  481. data/public/javascripts/erp_app/codemirror/theme/the-matrix.css +26 -0
  482. data/public/javascripts/erp_app/codemirror/theme/tomorrow-night-eighties.css +34 -0
  483. data/public/javascripts/erp_app/codemirror/theme/twilight.css +28 -0
  484. data/public/javascripts/erp_app/codemirror/theme/vibrant-ink.css +9 -6
  485. data/public/javascripts/erp_app/codemirror/theme/xq-dark.css +8 -5
  486. data/public/javascripts/erp_app/codemirror/theme/xq-light.css +43 -0
  487. data/public/javascripts/erp_app/codemirror_highlight.js +2 -2
  488. data/public/javascripts/erp_app/desktop/applications/audit_log_viewer/module.js +22 -32
  489. data/public/javascripts/erp_app/desktop/applications/configuration_management/configuration_options_panel.js +1 -1
  490. data/public/javascripts/erp_app/desktop/applications/configuration_management/module.js +2 -2
  491. data/public/javascripts/erp_app/desktop/applications/control_panel/module.js +66 -49
  492. data/public/javascripts/erp_app/desktop/applications/file_manager/module.js +109 -110
  493. data/public/javascripts/erp_app/desktop/applications/job_tracker/jobs_grid.js +3 -3
  494. data/public/javascripts/erp_app/desktop/applications/job_tracker/module.js +1 -1
  495. data/public/javascripts/erp_app/desktop/applications/scaffold/module.js +2 -2
  496. data/public/javascripts/erp_app/desktop/applications/security_management/capabilities_panel.js +49 -65
  497. data/public/javascripts/erp_app/desktop/applications/security_management/capabilities_widget.js +206 -218
  498. data/public/javascripts/erp_app/desktop/applications/security_management/common_widget.js +33 -0
  499. data/public/javascripts/erp_app/desktop/applications/security_management/groups_effective_security.js +1 -1
  500. data/public/javascripts/erp_app/desktop/applications/security_management/groups_panel.js +272 -287
  501. data/public/javascripts/erp_app/desktop/applications/security_management/groups_widget.js +206 -218
  502. data/public/javascripts/erp_app/desktop/applications/security_management/module.js +150 -46
  503. data/public/javascripts/erp_app/desktop/applications/security_management/north_panel.js +31 -0
  504. data/public/javascripts/erp_app/desktop/applications/security_management/roles_panel.js +284 -287
  505. data/public/javascripts/erp_app/desktop/applications/security_management/roles_widget.js +206 -218
  506. data/public/javascripts/erp_app/desktop/applications/security_management/south_panel.js +126 -0
  507. data/public/javascripts/erp_app/desktop/applications/security_management/users_effective_security.js +112 -105
  508. data/public/javascripts/erp_app/desktop/applications/security_management/users_panel.js +53 -85
  509. data/public/javascripts/erp_app/desktop/applications/security_management/users_widget.js +210 -218
  510. data/public/javascripts/erp_app/desktop/applications/tail/module.js +2 -2
  511. data/public/javascripts/erp_app/desktop/applications/user_management/module.js +50 -40
  512. data/public/javascripts/erp_app/desktop/applications/user_management/personal_info_panel.js +113 -113
  513. data/public/javascripts/erp_app/desktop/applications/web_navigator/module.js +18 -8
  514. data/public/javascripts/erp_app/desktop/ext_ux_desktop_module.js +937 -881
  515. data/public/javascripts/erp_app/jquery_support.js +19 -30
  516. data/public/javascripts/erp_app/login/window.js +121 -110
  517. data/public/javascripts/erp_app/organizer/applications/crm/base.js +54 -342
  518. data/public/javascripts/erp_app/organizer/layout.js +184 -95
  519. data/public/javascripts/erp_app/organizer/preference_window.js +66 -55
  520. data/public/javascripts/erp_app/shared/MoneyField.js +119 -0
  521. data/public/javascripts/erp_app/shared/PartySearchField.js +73 -0
  522. data/public/javascripts/erp_app/shared/TransitionCardLayout.js +156 -0
  523. data/public/javascripts/erp_app/shared/audit_log/GridPanel.js +214 -0
  524. data/public/javascripts/erp_app/shared/audit_log/ItemGridPanel.js +103 -0
  525. data/public/javascripts/erp_app/shared/audit_log/TabPanel.js +103 -0
  526. data/public/javascripts/erp_app/shared/compass_ckeditor.js +181 -101
  527. data/public/javascripts/erp_app/shared/compass_codemirror.js +399 -126
  528. data/public/javascripts/erp_app/shared/configuration/configuration_form.js +32 -49
  529. data/public/javascripts/erp_app/shared/configuration/configuration_panel.js +26 -8
  530. data/public/javascripts/erp_app/shared/coolclock/tray_clock2.js +121 -0
  531. data/public/javascripts/erp_app/shared/crm/ContactMechanismGrid.js +812 -0
  532. data/public/javascripts/erp_app/shared/crm/PartyDetailsPanel.js +344 -0
  533. data/public/javascripts/erp_app/shared/crm/PartyForm.js +321 -0
  534. data/public/javascripts/erp_app/shared/crm/PartyFormPanel.js +316 -0
  535. data/public/javascripts/erp_app/shared/crm/PartyGrid.js +591 -0
  536. data/public/javascripts/erp_app/shared/crm/UserForm.js +307 -0
  537. data/public/javascripts/erp_app/shared/crm/UsersGrid.js +492 -0
  538. data/public/javascripts/erp_app/shared/dynamic_editable_grid.js +55 -52
  539. data/public/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js +29 -36
  540. data/public/javascripts/erp_app/shared/dynamic_form_fields.js +99 -0
  541. data/public/javascripts/erp_app/shared/file_manager_tree.js +685 -658
  542. data/public/javascripts/erp_app/shared/google_map_panel.js +96 -68
  543. data/public/javascripts/erp_app/shared/notes_grid.js +317 -287
  544. data/public/javascripts/erp_app/shared/preferences/application_management_panel.js +137 -0
  545. data/public/javascripts/erp_app/shared/preferences/form.js +170 -0
  546. data/public/javascripts/erp_app/shared/profile_management_panel.js +62 -63
  547. data/public/javascripts/erp_app/utility.js +271 -65
  548. data/public/javascripts/erp_app/widgets.js +68 -70
  549. data/public/stylesheets/erp_app/desktop/applications/security_management/styles.css +12 -0
  550. data/public/stylesheets/erp_app/desktop/base.css +87 -11
  551. data/public/stylesheets/erp_app/organizer/base.css +6 -0
  552. data/public/stylesheets/erp_app/shared/compass-ext-all.css +335 -213
  553. data/public/stylesheets/erp_app/shared/crm.css +45 -0
  554. data/spec/controllers/organizer/crm/relationship_controller_spec.rb +1 -0
  555. metadata +545 -1272
  556. data/app/controllers/erp_app/desktop/audit_log_viewer/base_controller.rb +0 -55
  557. data/app/controllers/erp_app/organizer/crm/base_controller.rb +0 -333
  558. data/app/views/erp_app/organizer/base/get_party_details.erb +0 -19
  559. data/lib/erp_app/extensions/will_paginate_patch.rb +0 -26
  560. data/public/images/icons/about/about_16x16.png +0 -0
  561. data/public/images/icons/about/about_24x24.png +0 -0
  562. data/public/images/icons/about/about_32x32.png +0 -0
  563. data/public/images/icons/about/about_48x48.png +0 -0
  564. data/public/images/icons/add/add_24x24.png +0 -0
  565. data/public/images/icons/add/add_32x32.png +0 -0
  566. data/public/images/icons/add/add_48x48.png +0 -0
  567. data/public/images/icons/apartment/apartment_16x16.png +0 -0
  568. data/public/images/icons/apartment/apartment_24x24.png +0 -0
  569. data/public/images/icons/apartment/apartment_32x32.png +0 -0
  570. data/public/images/icons/apartment/apartment_48x48.png +0 -0
  571. data/public/images/icons/arrow_left_blue/arrow_left_blue_24x24.png +0 -0
  572. data/public/images/icons/arrow_right_blue/arrow_right_blue_24x24.png +0 -0
  573. data/public/images/icons/back/back_16x16.png +0 -0
  574. data/public/images/icons/back/back_24x24.png +0 -0
  575. data/public/images/icons/back/back_32x32.png +0 -0
  576. data/public/images/icons/back/back_48x48.png +0 -0
  577. data/public/images/icons/battery/battery_16x16.png +0 -0
  578. data/public/images/icons/battery/battery_24x24.png +0 -0
  579. data/public/images/icons/battery/battery_32x32.png +0 -0
  580. data/public/images/icons/battery/battery_48x48.png +0 -0
  581. data/public/images/icons/calendar/calendar_24x24.png +0 -0
  582. data/public/images/icons/calendar/calendar_32x32.png +0 -0
  583. data/public/images/icons/calendar/calendar_48x48.png +0 -0
  584. data/public/images/icons/clock/clock.png +0 -0
  585. data/public/images/icons/compass/compass_16x16.png +0 -0
  586. data/public/images/icons/compass/compass_24x24.png +0 -0
  587. data/public/images/icons/compass/compass_32x32.png +0 -0
  588. data/public/images/icons/compass/compass_48x48.png +0 -0
  589. data/public/images/icons/console/console_32x32.png +0 -0
  590. data/public/images/icons/console/console_48x48.png +0 -0
  591. data/public/images/icons/content/content_256x256.png +0 -0
  592. data/public/images/icons/content/content_32x32.png +0 -0
  593. data/public/images/icons/content/content_48x48.png +0 -0
  594. data/public/images/icons/control_panel/control_panel_24x24.png +0 -0
  595. data/public/images/icons/control_panel/control_panel_32x32.png +0 -0
  596. data/public/images/icons/copy/copy_24x24.png +0 -0
  597. data/public/images/icons/copy/copy_32x32.png +0 -0
  598. data/public/images/icons/copy/copy_48x48.png +0 -0
  599. data/public/images/icons/cut/cut_16x16.png +0 -0
  600. data/public/images/icons/cut/cut_24x24.png +0 -0
  601. data/public/images/icons/cut/cut_32x32.png +0 -0
  602. data/public/images/icons/cut/cut_48x48.png +0 -0
  603. data/public/images/icons/data/data_24x24.png +0 -0
  604. data/public/images/icons/data/data_48x48.png +0 -0
  605. data/public/images/icons/desktop/desktop_16x16.png +0 -0
  606. data/public/images/icons/desktop/desktop_24x24.png +0 -0
  607. data/public/images/icons/desktop/desktop_32x32.png +0 -0
  608. data/public/images/icons/desktop/desktop_48x48.png +0 -0
  609. data/public/images/icons/document_add/document_add_16x16.png +0 -0
  610. data/public/images/icons/document_add/document_add_24x24.png +0 -0
  611. data/public/images/icons/document_add/document_add_32x32.png +0 -0
  612. data/public/images/icons/document_add/document_add_48x48.png +0 -0
  613. data/public/images/icons/document_attachment/document_attachment_16x16.png +0 -0
  614. data/public/images/icons/document_attachment/document_attachment_24x24.png +0 -0
  615. data/public/images/icons/document_attachment/document_attachment_32x32.png +0 -0
  616. data/public/images/icons/document_attachment/document_attachment_48x48.png +0 -0
  617. data/public/images/icons/document_certificate/document_certificate_16x16.png +0 -0
  618. data/public/images/icons/document_certificate/document_certificate_24x24.png +0 -0
  619. data/public/images/icons/document_certificate/document_certificate_32x32.png +0 -0
  620. data/public/images/icons/document_certificate/document_certificate_48x48.png +0 -0
  621. data/public/images/icons/document_chart/document_chart_16x16.png +0 -0
  622. data/public/images/icons/document_chart/document_chart_24x24.png +0 -0
  623. data/public/images/icons/document_chart/document_chart_32x32.png +0 -0
  624. data/public/images/icons/document_chart/document_chart_48x48.png +0 -0
  625. data/public/images/icons/document_connection/document_connection_16x16.png +0 -0
  626. data/public/images/icons/document_connection/document_connection_24x24.png +0 -0
  627. data/public/images/icons/document_connection/document_connection_32x32.png +0 -0
  628. data/public/images/icons/document_connection/document_connection_48x48.png +0 -0
  629. data/public/images/icons/document_cup/document_cup_16x16.png +0 -0
  630. data/public/images/icons/document_cup/document_cup_24x24.png +0 -0
  631. data/public/images/icons/document_cup/document_cup_32x32.png +0 -0
  632. data/public/images/icons/document_cup/document_cup_48x48.png +0 -0
  633. data/public/images/icons/document_delete/document_delete_16x16.png +0 -0
  634. data/public/images/icons/document_delete/document_delete_24x24.png +0 -0
  635. data/public/images/icons/document_delete/document_delete_32x32.png +0 -0
  636. data/public/images/icons/document_delete/document_delete_48x48.png +0 -0
  637. data/public/images/icons/document_dirty/document_dirty_16x16.png +0 -0
  638. data/public/images/icons/document_dirty/document_dirty_24x24.png +0 -0
  639. data/public/images/icons/document_dirty/document_dirty_32x32.png +0 -0
  640. data/public/images/icons/document_dirty/document_dirty_48x48.png +0 -0
  641. data/public/images/icons/document_error/document_error_16x16.png +0 -0
  642. data/public/images/icons/document_error/document_error_24x24.png +0 -0
  643. data/public/images/icons/document_error/document_error_32x32.png +0 -0
  644. data/public/images/icons/document_error/document_error_48x48.png +0 -0
  645. data/public/images/icons/document_exchange/document_exchange_16x16.png +0 -0
  646. data/public/images/icons/document_exchange/document_exchange_24x24.png +0 -0
  647. data/public/images/icons/document_exchange/document_exchange_32x32.png +0 -0
  648. data/public/images/icons/document_exchange/document_exchange_48x48.png +0 -0
  649. data/public/images/icons/document_find/document_find_16x16.png +0 -0
  650. data/public/images/icons/document_find/document_find_24x24.png +0 -0
  651. data/public/images/icons/document_find/document_find_32x32.png +0 -0
  652. data/public/images/icons/document_find/document_find_48x48.png +0 -0
  653. data/public/images/icons/document_forbidden/document_forbidden_16x16.png +0 -0
  654. data/public/images/icons/document_forbidden/document_forbidden_24x24.png +0 -0
  655. data/public/images/icons/document_forbidden/document_forbidden_32x32.png +0 -0
  656. data/public/images/icons/document_forbidden/document_forbidden_48x48.png +0 -0
  657. data/public/images/icons/document_gear/document_gear_16x16.png +0 -0
  658. data/public/images/icons/document_gear/document_gear_24x24.png +0 -0
  659. data/public/images/icons/document_gear/document_gear_32x32.png +0 -0
  660. data/public/images/icons/document_gear/document_gear_48x48.png +0 -0
  661. data/public/images/icons/document_heart/document_heart_16x16.png +0 -0
  662. data/public/images/icons/document_heart/document_heart_24x24.png +0 -0
  663. data/public/images/icons/document_heart/document_heart_32x32.png +0 -0
  664. data/public/images/icons/document_heart/document_heart_48x48.png +0 -0
  665. data/public/images/icons/document_into/document_into_16x16.png +0 -0
  666. data/public/images/icons/document_into/document_into_24x24.png +0 -0
  667. data/public/images/icons/document_into/document_into_32x32.png +0 -0
  668. data/public/images/icons/document_into/document_into_48x48.png +0 -0
  669. data/public/images/icons/document_music/document_music_16x16.png +0 -0
  670. data/public/images/icons/document_music/document_music_24x24.png +0 -0
  671. data/public/images/icons/document_music/document_music_32x32.png +0 -0
  672. data/public/images/icons/document_music/document_music_48x48.png +0 -0
  673. data/public/images/icons/document_new/document_new_16x16.png +0 -0
  674. data/public/images/icons/document_new/document_new_24x24.png +0 -0
  675. data/public/images/icons/document_new/document_new_32x32.png +0 -0
  676. data/public/images/icons/document_new/document_new_48x48.png +0 -0
  677. data/public/images/icons/document_notebook/document_notebook_16x16.png +0 -0
  678. data/public/images/icons/document_notebook/document_notebook_24x24.png +0 -0
  679. data/public/images/icons/document_notebook/document_notebook_32x32.png +0 -0
  680. data/public/images/icons/document_notebook/document_notebook_48x48.png +0 -0
  681. data/public/images/icons/document_pinned/document_pinned_16x16.png +0 -0
  682. data/public/images/icons/document_pinned/document_pinned_24x24.png +0 -0
  683. data/public/images/icons/document_pinned/document_pinned_32x32.png +0 -0
  684. data/public/images/icons/document_pinned/document_pinned_48x48.png +0 -0
  685. data/public/images/icons/document_plain/document_plain_16x16.png +0 -0
  686. data/public/images/icons/document_plain/document_plain_24x24.png +0 -0
  687. data/public/images/icons/document_plain/document_plain_32x32.png +0 -0
  688. data/public/images/icons/document_plain/document_plain_48x48.png +0 -0
  689. data/public/images/icons/document_plain_new/document_plain_new_16x16.png +0 -0
  690. data/public/images/icons/document_plain_new/document_plain_new_24x24.png +0 -0
  691. data/public/images/icons/document_plain_new/document_plain_new_32x32.png +0 -0
  692. data/public/images/icons/document_plain_new/document_plain_new_48x48.png +0 -0
  693. data/public/images/icons/document_preferences/document_preferences_16x16.png +0 -0
  694. data/public/images/icons/document_preferences/document_preferences_24x24.png +0 -0
  695. data/public/images/icons/document_preferences/document_preferences_32x32.png +0 -0
  696. data/public/images/icons/document_preferences/document_preferences_48x48.png +0 -0
  697. data/public/images/icons/document_refresh/document_refresh_16x16.png +0 -0
  698. data/public/images/icons/document_refresh/document_refresh_24x24.png +0 -0
  699. data/public/images/icons/document_refresh/document_refresh_32x32.png +0 -0
  700. data/public/images/icons/document_refresh/document_refresh_48x48.png +0 -0
  701. data/public/images/icons/document_stop/document_stop_16x16.png +0 -0
  702. data/public/images/icons/document_stop/document_stop_24x24.png +0 -0
  703. data/public/images/icons/document_stop/document_stop_32x32.png +0 -0
  704. data/public/images/icons/document_stop/document_stop_48x48.png +0 -0
  705. data/public/images/icons/document_text/document_text_16x16.png +0 -0
  706. data/public/images/icons/document_text/document_text_24x24.png +0 -0
  707. data/public/images/icons/document_text/document_text_32x32.png +0 -0
  708. data/public/images/icons/document_text/document_text_48x48.png +0 -0
  709. data/public/images/icons/document_time/document_time_16x16.png +0 -0
  710. data/public/images/icons/document_time/document_time_24x24.png +0 -0
  711. data/public/images/icons/document_time/document_time_32x32.png +0 -0
  712. data/public/images/icons/document_time/document_time_48x48.png +0 -0
  713. data/public/images/icons/document_view/document_view_16x16.png +0 -0
  714. data/public/images/icons/document_view/document_view_24x24.png +0 -0
  715. data/public/images/icons/document_view/document_view_32x32.png +0 -0
  716. data/public/images/icons/document_view/document_view_48x48.png +0 -0
  717. data/public/images/icons/document_warning/document_warning_16x16.png +0 -0
  718. data/public/images/icons/document_warning/document_warning_24x24.png +0 -0
  719. data/public/images/icons/document_warning/document_warning_32x32.png +0 -0
  720. data/public/images/icons/document_warning/document_warning_48x48.png +0 -0
  721. data/public/images/icons/document_zoom_in/document_zoom_in_16x16.png +0 -0
  722. data/public/images/icons/document_zoom_in/document_zoom_in_24x24.png +0 -0
  723. data/public/images/icons/document_zoom_in/document_zoom_in_32x32.png +0 -0
  724. data/public/images/icons/document_zoom_in/document_zoom_in_48x48.png +0 -0
  725. data/public/images/icons/document_zoom_out/document_zoom_out_16x16.png +0 -0
  726. data/public/images/icons/document_zoom_out/document_zoom_out_24x24.png +0 -0
  727. data/public/images/icons/document_zoom_out/document_zoom_out_32x32.png +0 -0
  728. data/public/images/icons/document_zoom_out/document_zoom_out_48x48.png +0 -0
  729. data/public/images/icons/documents_gear/documents_gear_16x16.png +0 -0
  730. data/public/images/icons/documents_gear/documents_gear_24x24.png +0 -0
  731. data/public/images/icons/documents_gear/documents_gear_32x32.png +0 -0
  732. data/public/images/icons/documents_gear/documents_gear_48x48.png +0 -0
  733. data/public/images/icons/documents_new/documents_new_16x16.png +0 -0
  734. data/public/images/icons/documents_new/documents_new_24x24.png +0 -0
  735. data/public/images/icons/documents_new/documents_new_32x32.png +0 -0
  736. data/public/images/icons/documents_new/documents_new_48x48.png +0 -0
  737. data/public/images/icons/documents_preferences/documents_preferences_16x16.png +0 -0
  738. data/public/images/icons/documents_preferences/documents_preferences_24x24.png +0 -0
  739. data/public/images/icons/documents_preferences/documents_preferences_32x32.png +0 -0
  740. data/public/images/icons/documents_preferences/documents_preferences_48x48.png +0 -0
  741. data/public/images/icons/error/error_16x16.png +0 -0
  742. data/public/images/icons/error/error_24x24.png +0 -0
  743. data/public/images/icons/error/error_32x32.png +0 -0
  744. data/public/images/icons/error/error_48x48.png +0 -0
  745. data/public/images/icons/folder_gear/folder_gear_16x16.png +0 -0
  746. data/public/images/icons/folder_gear/folder_gear_24x24.png +0 -0
  747. data/public/images/icons/folder_gear/folder_gear_32x32.png +0 -0
  748. data/public/images/icons/folder_gear/folder_gear_48x48.png +0 -0
  749. data/public/images/icons/folders/folders_16x16.png +0 -0
  750. data/public/images/icons/folders/folders_24x24.png +0 -0
  751. data/public/images/icons/folders/folders_32x32.png +0 -0
  752. data/public/images/icons/folders/folders_48x48.png +0 -0
  753. data/public/images/icons/globe/globe_24x24.png +0 -0
  754. data/public/images/icons/globe/globe_32x32.png +0 -0
  755. data/public/images/icons/globe/globe_48x48.png +0 -0
  756. data/public/images/icons/grid/grid_32x32.gif +0 -0
  757. data/public/images/icons/grid/grid_48x48.gif +0 -0
  758. data/public/images/icons/grid/grid_48x48.png +0 -0
  759. data/public/images/icons/help/help_16x16.png +0 -0
  760. data/public/images/icons/help/help_24x24.png +0 -0
  761. data/public/images/icons/help/help_32x32.png +0 -0
  762. data/public/images/icons/help/help_48x48.png +0 -0
  763. data/public/images/icons/history/history_24x24.png +0 -0
  764. data/public/images/icons/history/history_32x32.png +0 -0
  765. data/public/images/icons/history/history_48x48.png +0 -0
  766. data/public/images/icons/house/house_16x16.png +0 -0
  767. data/public/images/icons/house/house_24x24.png +0 -0
  768. data/public/images/icons/house/house_32x32.png +0 -0
  769. data/public/images/icons/house/house_48x48.png +0 -0
  770. data/public/images/icons/information/information_24x24.png +0 -0
  771. data/public/images/icons/information/information_32x32.png +0 -0
  772. data/public/images/icons/information/information_48x48.png +0 -0
  773. data/public/images/icons/key/key_24x24.png +0 -0
  774. data/public/images/icons/key/key_32x32.png +0 -0
  775. data/public/images/icons/key/key_48x48.png +0 -0
  776. data/public/images/icons/keyboard/keyboard_16x16.png +0 -0
  777. data/public/images/icons/keyboard/keyboard_24x24.png +0 -0
  778. data/public/images/icons/keyboard/keyboard_32x32.png +0 -0
  779. data/public/images/icons/keyboard/keyboard_48x48.png +0 -0
  780. data/public/images/icons/knowledge/Knowledge_16x16.png +0 -0
  781. data/public/images/icons/knowledge/Knowledge_256x256.png +0 -0
  782. data/public/images/icons/knowledge/Knowledge_32x32.png +0 -0
  783. data/public/images/icons/knowledge/Knowledge_48x48.png +0 -0
  784. data/public/images/icons/laptop/laptop_16x16.png +0 -0
  785. data/public/images/icons/laptop/laptop_24x24.png +0 -0
  786. data/public/images/icons/laptop/laptop_32x32.png +0 -0
  787. data/public/images/icons/laptop/laptop_48x48.png +0 -0
  788. data/public/images/icons/log_out/log_out_16x16.png +0 -0
  789. data/public/images/icons/log_out/log_out_24x24.png +0 -0
  790. data/public/images/icons/log_out/log_out_32x32.png +0 -0
  791. data/public/images/icons/log_out/log_out_48x48.png +0 -0
  792. data/public/images/icons/message/message_16x16.png +0 -0
  793. data/public/images/icons/message/message_24x24.png +0 -0
  794. data/public/images/icons/message/message_32x32.png +0 -0
  795. data/public/images/icons/message/message_48x48.png +0 -0
  796. data/public/images/icons/monitor/monitor_16x16.png +0 -0
  797. data/public/images/icons/monitor/monitor_24x24.png +0 -0
  798. data/public/images/icons/monitor/monitor_32x32.png +0 -0
  799. data/public/images/icons/monitor/monitor_48x48.png +0 -0
  800. data/public/images/icons/mouse/mouse_16x16.png +0 -0
  801. data/public/images/icons/mouse/mouse_24x24.png +0 -0
  802. data/public/images/icons/mouse/mouse_32x32.png +0 -0
  803. data/public/images/icons/mouse/mouse_48x48.png +0 -0
  804. data/public/images/icons/music/music_16x16.png +0 -0
  805. data/public/images/icons/music/music_24x24.png +0 -0
  806. data/public/images/icons/music/music_32x32.png +0 -0
  807. data/public/images/icons/music/music_48x48.png +0 -0
  808. data/public/images/icons/nav_down_blue/nav_down_blue_16x16.png +0 -0
  809. data/public/images/icons/nav_down_blue/nav_down_blue_24x24.png +0 -0
  810. data/public/images/icons/nav_down_blue/nav_down_blue_32x32.png +0 -0
  811. data/public/images/icons/nav_down_blue/nav_down_blue_48x48.png +0 -0
  812. data/public/images/icons/nav_down_left_blue/nav_down_left_blue_16x16.png +0 -0
  813. data/public/images/icons/nav_down_left_blue/nav_down_left_blue_24x24.png +0 -0
  814. data/public/images/icons/nav_down_left_blue/nav_down_left_blue_32x32.png +0 -0
  815. data/public/images/icons/nav_down_left_blue/nav_down_left_blue_48x48.png +0 -0
  816. data/public/images/icons/nav_down_right_blue/nav_down_right_blue_16x16.png +0 -0
  817. data/public/images/icons/nav_down_right_blue/nav_down_right_blue_24x24.png +0 -0
  818. data/public/images/icons/nav_down_right_blue/nav_down_right_blue_32x32.png +0 -0
  819. data/public/images/icons/nav_down_right_blue/nav_down_right_blue_48x48.png +0 -0
  820. data/public/images/icons/nav_left_blue/nav_left_blue_16x16.png +0 -0
  821. data/public/images/icons/nav_left_blue/nav_left_blue_24x24.png +0 -0
  822. data/public/images/icons/nav_left_blue/nav_left_blue_32x32.png +0 -0
  823. data/public/images/icons/nav_left_blue/nav_left_blue_48x48.png +0 -0
  824. data/public/images/icons/nav_plain_blue/nav_plain_blue_16x16.png +0 -0
  825. data/public/images/icons/nav_plain_blue/nav_plain_blue_24x24.png +0 -0
  826. data/public/images/icons/nav_plain_blue/nav_plain_blue_32x32.png +0 -0
  827. data/public/images/icons/nav_plain_blue/nav_plain_blue_48x48.png +0 -0
  828. data/public/images/icons/nav_redo_blue/nav_redo_blue_16x16.png +0 -0
  829. data/public/images/icons/nav_redo_blue/nav_redo_blue_24x24.png +0 -0
  830. data/public/images/icons/nav_redo_blue/nav_redo_blue_32x32.png +0 -0
  831. data/public/images/icons/nav_redo_blue/nav_redo_blue_48x48.png +0 -0
  832. data/public/images/icons/nav_refresh_blue/nav_refresh_blue_16x16.png +0 -0
  833. data/public/images/icons/nav_refresh_blue/nav_refresh_blue_24x24.png +0 -0
  834. data/public/images/icons/nav_refresh_blue/nav_refresh_blue_32x32.png +0 -0
  835. data/public/images/icons/nav_refresh_blue/nav_refresh_blue_48x48.png +0 -0
  836. data/public/images/icons/nav_right_blue/nav_right_blue_16x16.png +0 -0
  837. data/public/images/icons/nav_right_blue/nav_right_blue_24x24.png +0 -0
  838. data/public/images/icons/nav_right_blue/nav_right_blue_32x32.png +0 -0
  839. data/public/images/icons/nav_right_blue/nav_right_blue_48x48.png +0 -0
  840. data/public/images/icons/nav_undo_blue/nav_undo_blue_16x16.png +0 -0
  841. data/public/images/icons/nav_undo_blue/nav_undo_blue_24x24.png +0 -0
  842. data/public/images/icons/nav_undo_blue/nav_undo_blue_32x32.png +0 -0
  843. data/public/images/icons/nav_undo_blue/nav_undo_blue_48x48.png +0 -0
  844. data/public/images/icons/nav_up_blue/nav_up_blue_16x16.png +0 -0
  845. data/public/images/icons/nav_up_blue/nav_up_blue_24x24.png +0 -0
  846. data/public/images/icons/nav_up_blue/nav_up_blue_32x32.png +0 -0
  847. data/public/images/icons/nav_up_blue/nav_up_blue_48x48.png +0 -0
  848. data/public/images/icons/nav_up_left_blue/nav_up_left_blue_16x16.png +0 -0
  849. data/public/images/icons/nav_up_left_blue/nav_up_left_blue_24x24.png +0 -0
  850. data/public/images/icons/nav_up_left_blue/nav_up_left_blue_32x32.png +0 -0
  851. data/public/images/icons/nav_up_left_blue/nav_up_left_blue_48x48.png +0 -0
  852. data/public/images/icons/nav_up_right_blue/nav_up_right_blue_16x16.png +0 -0
  853. data/public/images/icons/nav_up_right_blue/nav_up_right_blue_24x24.png +0 -0
  854. data/public/images/icons/nav_up_right_blue/nav_up_right_blue_32x32.png +0 -0
  855. data/public/images/icons/nav_up_right_blue/nav_up_right_blue_48x48.png +0 -0
  856. data/public/images/icons/new/new_16x16.png +0 -0
  857. data/public/images/icons/new/new_24x24.png +0 -0
  858. data/public/images/icons/new/new_32x32.png +0 -0
  859. data/public/images/icons/new/new_48x48.png +0 -0
  860. data/public/images/icons/note_add/note_add_16x16.png +0 -0
  861. data/public/images/icons/note_add/note_add_24x24.png +0 -0
  862. data/public/images/icons/note_add/note_add_32x32.png +0 -0
  863. data/public/images/icons/note_add/note_add_48x48.png +0 -0
  864. data/public/images/icons/note_delete/note_delete_16x16.png +0 -0
  865. data/public/images/icons/note_delete/note_delete_24x24.png +0 -0
  866. data/public/images/icons/note_delete/note_delete_32x32.png +0 -0
  867. data/public/images/icons/note_delete/note_delete_48x48.png +0 -0
  868. data/public/images/icons/note_edit/note_edit_16x16.png +0 -0
  869. data/public/images/icons/note_edit/note_edit_24x24.png +0 -0
  870. data/public/images/icons/note_edit/note_edit_32x32.png +0 -0
  871. data/public/images/icons/note_edit/note_edit_48x48.png +0 -0
  872. data/public/images/icons/note_error/note_error_16x16.png +0 -0
  873. data/public/images/icons/note_error/note_error_24x24.png +0 -0
  874. data/public/images/icons/note_error/note_error_32x32.png +0 -0
  875. data/public/images/icons/note_error/note_error_48x48.png +0 -0
  876. data/public/images/icons/note_find/note_find_16x16.png +0 -0
  877. data/public/images/icons/note_find/note_find_24x24.png +0 -0
  878. data/public/images/icons/note_find/note_find_32x32.png +0 -0
  879. data/public/images/icons/note_find/note_find_48x48.png +0 -0
  880. data/public/images/icons/note_information/note_information_16x16.png +0 -0
  881. data/public/images/icons/note_information/note_information_24x24.png +0 -0
  882. data/public/images/icons/note_information/note_information_32x32.png +0 -0
  883. data/public/images/icons/note_information/note_information_48x48.png +0 -0
  884. data/public/images/icons/note_new/note_new_16x16.png +0 -0
  885. data/public/images/icons/note_new/note_new_24x24.png +0 -0
  886. data/public/images/icons/note_new/note_new_32x32.png +0 -0
  887. data/public/images/icons/note_new/note_new_48x48.png +0 -0
  888. data/public/images/icons/note_ok/note_ok_16x16.png +0 -0
  889. data/public/images/icons/note_ok/note_ok_24x24.png +0 -0
  890. data/public/images/icons/note_ok/note_ok_32x32.png +0 -0
  891. data/public/images/icons/note_ok/note_ok_48x48.png +0 -0
  892. data/public/images/icons/note_pinned/note_pinned_16x16.png +0 -0
  893. data/public/images/icons/note_pinned/note_pinned_24x24.png +0 -0
  894. data/public/images/icons/note_pinned/note_pinned_32x32.png +0 -0
  895. data/public/images/icons/note_pinned/note_pinned_48x48.png +0 -0
  896. data/public/images/icons/note_plain/note_plain_16x16.png +0 -0
  897. data/public/images/icons/note_plain/note_plain_24x24.png +0 -0
  898. data/public/images/icons/note_plain/note_plain_32x32.png +0 -0
  899. data/public/images/icons/note_plain/note_plain_48x48.png +0 -0
  900. data/public/images/icons/note_view/note_view_16x16.png +0 -0
  901. data/public/images/icons/note_view/note_view_24x24.png +0 -0
  902. data/public/images/icons/note_view/note_view_32x32.png +0 -0
  903. data/public/images/icons/note_view/note_view_48x48.png +0 -0
  904. data/public/images/icons/note_warning/note_warning_16x16.png +0 -0
  905. data/public/images/icons/note_warning/note_warning_24x24.png +0 -0
  906. data/public/images/icons/note_warning/note_warning_32x32.png +0 -0
  907. data/public/images/icons/note_warning/note_warning_48x48.png +0 -0
  908. data/public/images/icons/open/open_16x16.png +0 -0
  909. data/public/images/icons/open/open_24x24.png +0 -0
  910. data/public/images/icons/open/open_32x32.png +0 -0
  911. data/public/images/icons/open/open_48x48.png +0 -0
  912. data/public/images/icons/palette/palette_16x16.png +0 -0
  913. data/public/images/icons/palette/palette_24x24.png +0 -0
  914. data/public/images/icons/palette/palette_32x32.png +0 -0
  915. data/public/images/icons/palette/palette_48x48.png +0 -0
  916. data/public/images/icons/paperclip/paperclip_16x16.png +0 -0
  917. data/public/images/icons/paperclip/paperclip_24x24.png +0 -0
  918. data/public/images/icons/paperclip/paperclip_32x32.png +0 -0
  919. data/public/images/icons/paperclip/paperclip_48x48.png +0 -0
  920. data/public/images/icons/paste/paste_16x16.png +0 -0
  921. data/public/images/icons/paste/paste_24x24.png +0 -0
  922. data/public/images/icons/paste/paste_32x32.png +0 -0
  923. data/public/images/icons/paste/paste_48x48.png +0 -0
  924. data/public/images/icons/picture/picture_24x24.png +0 -0
  925. data/public/images/icons/picture/picture_32x32.png +0 -0
  926. data/public/images/icons/picture/picture_48x48.png +0 -0
  927. data/public/images/icons/presentation/presentation_16x16.png +0 -0
  928. data/public/images/icons/presentation/presentation_24x24.png +0 -0
  929. data/public/images/icons/presentation/presentation_32x32.png +0 -0
  930. data/public/images/icons/presentation/presentation_48x48.png +0 -0
  931. data/public/images/icons/presentation_chart/presentation_chart_16x16.png +0 -0
  932. data/public/images/icons/presentation_chart/presentation_chart_24x24.png +0 -0
  933. data/public/images/icons/presentation_chart/presentation_chart_32x32.png +0 -0
  934. data/public/images/icons/presentation_chart/presentation_chart_48x48.png +0 -0
  935. data/public/images/icons/previous/previous_16x16.png +0 -0
  936. data/public/images/icons/previous/previous_24x24.png +0 -0
  937. data/public/images/icons/previous/previous_32x32.png +0 -0
  938. data/public/images/icons/previous/previous_48x48.png +0 -0
  939. data/public/images/icons/print/print_16x16.png +0 -0
  940. data/public/images/icons/print/print_24x24.png +0 -0
  941. data/public/images/icons/print/print_32x32.png +0 -0
  942. data/public/images/icons/print/print_48x48.png +0 -0
  943. data/public/images/icons/printer/printer_16x16.png +0 -0
  944. data/public/images/icons/printer/printer_24x24.png +0 -0
  945. data/public/images/icons/printer/printer_32x32.png +0 -0
  946. data/public/images/icons/printer/printer_48x48.png +0 -0
  947. data/public/images/icons/prodconfig/Prodconfig_16x16.png +0 -0
  948. data/public/images/icons/prodconfig/Prodconfig_256x256.png +0 -0
  949. data/public/images/icons/prodconfig/Prodconfig_32x32.png +0 -0
  950. data/public/images/icons/prodconfig/Prodconfig_48x48.png +0 -0
  951. data/public/images/icons/question_and_answer/question_and_answer_16x16.png +0 -0
  952. data/public/images/icons/question_and_answer/question_and_answer_24x24.png +0 -0
  953. data/public/images/icons/question_and_answer/question_and_answer_32x32.png +0 -0
  954. data/public/images/icons/question_and_answer/question_and_answer_48x48.png +0 -0
  955. data/public/images/icons/replace/replace_16x16.png +0 -0
  956. data/public/images/icons/replace/replace_24x24.png +0 -0
  957. data/public/images/icons/replace/replace_32x32.png +0 -0
  958. data/public/images/icons/replace/replace_48x48.png +0 -0
  959. data/public/images/icons/scroll/scroll_16x16.png +0 -0
  960. data/public/images/icons/scroll/scroll_24x24.png +0 -0
  961. data/public/images/icons/scroll/scroll_32x32.png +0 -0
  962. data/public/images/icons/scroll/scroll_48x48.png +0 -0
  963. data/public/images/icons/send/send_16x16.png +0 -0
  964. data/public/images/icons/send/send_24x24.png +0 -0
  965. data/public/images/icons/send/send_32x32.png +0 -0
  966. data/public/images/icons/send/send_48x48.png +0 -0
  967. data/public/images/icons/settings/settings_24x24.png +0 -0
  968. data/public/images/icons/settings/settings_32x32.png +0 -0
  969. data/public/images/icons/settings/settings_48x48.png +0 -0
  970. data/public/images/icons/shoppingbasket/shoppingbasket_16x16.png +0 -0
  971. data/public/images/icons/shoppingbasket/shoppingbasket_24x24.png +0 -0
  972. data/public/images/icons/shoppingbasket/shoppingbasket_32x32.png +0 -0
  973. data/public/images/icons/shoppingbasket/shoppingbasket_48x48.png +0 -0
  974. data/public/images/icons/shoppingbasket_add/shoppingbasket_add_16x16.png +0 -0
  975. data/public/images/icons/shoppingbasket_add/shoppingbasket_add_24x24.png +0 -0
  976. data/public/images/icons/shoppingbasket_add/shoppingbasket_add_32x32.png +0 -0
  977. data/public/images/icons/shoppingbasket_add/shoppingbasket_add_48x48.png +0 -0
  978. data/public/images/icons/shoppingbasket_delete/shoppingbasket_delete_16x16.png +0 -0
  979. data/public/images/icons/shoppingbasket_delete/shoppingbasket_delete_24x24.png +0 -0
  980. data/public/images/icons/shoppingbasket_delete/shoppingbasket_delete_32x32.png +0 -0
  981. data/public/images/icons/shoppingbasket_delete/shoppingbasket_delete_48x48.png +0 -0
  982. data/public/images/icons/shoppingbasket_edit/shoppingbasket_edit_16x16.png +0 -0
  983. data/public/images/icons/shoppingbasket_edit/shoppingbasket_edit_24x24.png +0 -0
  984. data/public/images/icons/shoppingbasket_edit/shoppingbasket_edit_32x32.png +0 -0
  985. data/public/images/icons/shoppingbasket_edit/shoppingbasket_edit_48x48.png +0 -0
  986. data/public/images/icons/shoppingbasket_full/shoppingbasket_full_16x16.png +0 -0
  987. data/public/images/icons/shoppingbasket_full/shoppingbasket_full_24x24.png +0 -0
  988. data/public/images/icons/shoppingbasket_full/shoppingbasket_full_32x32.png +0 -0
  989. data/public/images/icons/shoppingbasket_full/shoppingbasket_full_48x48.png +0 -0
  990. data/public/images/icons/shoppingcart/shoppingcart_16x16.png +0 -0
  991. data/public/images/icons/shoppingcart/shoppingcart_24x24.png +0 -0
  992. data/public/images/icons/shoppingcart/shoppingcart_32x32.png +0 -0
  993. data/public/images/icons/shoppingcart/shoppingcart_48x48.png +0 -0
  994. data/public/images/icons/shoppingcart_add/shoppingcart_add_16x16.png +0 -0
  995. data/public/images/icons/shoppingcart_add/shoppingcart_add_24x24.png +0 -0
  996. data/public/images/icons/shoppingcart_add/shoppingcart_add_32x32.png +0 -0
  997. data/public/images/icons/shoppingcart_add/shoppingcart_add_48x48.png +0 -0
  998. data/public/images/icons/shoppingcart_delete/shoppingcart_delete_16x16.png +0 -0
  999. data/public/images/icons/shoppingcart_delete/shoppingcart_delete_24x24.png +0 -0
  1000. data/public/images/icons/shoppingcart_delete/shoppingcart_delete_32x32.png +0 -0
  1001. data/public/images/icons/shoppingcart_delete/shoppingcart_delete_48x48.png +0 -0
  1002. data/public/images/icons/shoppingcart_edit/shoppingcart_edit_16x16.png +0 -0
  1003. data/public/images/icons/shoppingcart_edit/shoppingcart_edit_24x24.png +0 -0
  1004. data/public/images/icons/shoppingcart_edit/shoppingcart_edit_32x32.png +0 -0
  1005. data/public/images/icons/shoppingcart_edit/shoppingcart_edit_48x48.png +0 -0
  1006. data/public/images/icons/shoppingcart_full/shoppingcart_full_16x16.png +0 -0
  1007. data/public/images/icons/shoppingcart_full/shoppingcart_full_24x24.png +0 -0
  1008. data/public/images/icons/shoppingcart_full/shoppingcart_full_32x32.png +0 -0
  1009. data/public/images/icons/shoppingcart_full/shoppingcart_full_48x48.png +0 -0
  1010. data/public/images/icons/sort_ascending/sort_ascending_16x16.png +0 -0
  1011. data/public/images/icons/sort_ascending/sort_ascending_24x24.png +0 -0
  1012. data/public/images/icons/sort_ascending/sort_ascending_32x32.png +0 -0
  1013. data/public/images/icons/sort_ascending/sort_ascending_48x48.png +0 -0
  1014. data/public/images/icons/sort_az_ascending/sort_az_ascending_16x16.png +0 -0
  1015. data/public/images/icons/sort_az_ascending/sort_az_ascending_24x24.png +0 -0
  1016. data/public/images/icons/sort_az_ascending/sort_az_ascending_32x32.png +0 -0
  1017. data/public/images/icons/sort_az_ascending/sort_az_ascending_48x48.png +0 -0
  1018. data/public/images/icons/sort_az_descending/sort_az_descending_16x16.png +0 -0
  1019. data/public/images/icons/sort_az_descending/sort_az_descending_24x24.png +0 -0
  1020. data/public/images/icons/sort_az_descending/sort_az_descending_32x32.png +0 -0
  1021. data/public/images/icons/sort_az_descending/sort_az_descending_48x48.png +0 -0
  1022. data/public/images/icons/sort_descending/sort_descending_16x16.png +0 -0
  1023. data/public/images/icons/sort_descending/sort_descending_24x24.png +0 -0
  1024. data/public/images/icons/sort_descending/sort_descending_32x32.png +0 -0
  1025. data/public/images/icons/sort_descending/sort_descending_48x48.png +0 -0
  1026. data/public/images/icons/sort_down/sort_down_16x16.png +0 -0
  1027. data/public/images/icons/sort_down/sort_down_24x24.png +0 -0
  1028. data/public/images/icons/sort_down/sort_down_32x32.png +0 -0
  1029. data/public/images/icons/sort_down/sort_down_48x48.png +0 -0
  1030. data/public/images/icons/sort_up/sort_up_16x16.png +0 -0
  1031. data/public/images/icons/sort_up/sort_up_24x24.png +0 -0
  1032. data/public/images/icons/sort_up/sort_up_32x32.png +0 -0
  1033. data/public/images/icons/sort_up/sort_up_48x48.png +0 -0
  1034. data/public/images/icons/spellcheck/spellcheck_16x16.png +0 -0
  1035. data/public/images/icons/spellcheck/spellcheck_24x24.png +0 -0
  1036. data/public/images/icons/spellcheck/spellcheck_32x32.png +0 -0
  1037. data/public/images/icons/spellcheck/spellcheck_48x48.png +0 -0
  1038. data/public/images/icons/synchronize/synchronize_16x16.png +0 -0
  1039. data/public/images/icons/synchronize/synchronize_24x24.png +0 -0
  1040. data/public/images/icons/synchronize/synchronize_32x32.png +0 -0
  1041. data/public/images/icons/synchronize/synchronize_48x48.png +0 -0
  1042. data/public/images/icons/toolbar/class.png +0 -0
  1043. data/public/images/icons/toolbar/class_folder.png +0 -0
  1044. data/public/images/icons/toolbar/mixed_folder.png +0 -0
  1045. data/public/images/icons/toolbar/object_graph.png +0 -0
  1046. data/public/images/icons/toolbar/package_yellow.png +0 -0
  1047. data/public/images/icons/toolbar/table_go.png +0 -0
  1048. data/public/images/icons/undo/undo_24x24.png +0 -0
  1049. data/public/images/icons/undo/undo_32x32.png +0 -0
  1050. data/public/images/icons/undo/undo_48x48.png +0 -0
  1051. data/public/images/icons/upload/upload_16x16.png +0 -0
  1052. data/public/images/icons/upload/upload_24x24.png +0 -0
  1053. data/public/images/icons/upload/upload_32x32.png +0 -0
  1054. data/public/images/icons/upload/upload_48x48.png +0 -0
  1055. data/public/images/icons/user/user_24x24.png +0 -0
  1056. data/public/images/icons/user/user_32x32.png +0 -0
  1057. data/public/images/icons/user/user_48x48.png +0 -0
  1058. data/public/images/icons/warning/warning_16x16.png +0 -0
  1059. data/public/images/icons/warning/warning_24x24.png +0 -0
  1060. data/public/images/icons/warning/warning_32x32.png +0 -0
  1061. data/public/images/icons/warning/warning_48x48.png +0 -0
  1062. data/public/images/icons/zoom_in/zoom_in_16x16.png +0 -0
  1063. data/public/images/icons/zoom_in/zoom_in_24x24.png +0 -0
  1064. data/public/images/icons/zoom_in/zoom_in_32x32.png +0 -0
  1065. data/public/images/icons/zoom_in/zoom_in_48x48.png +0 -0
  1066. data/public/images/icons/zoom_out/zoom_out_16x16.png +0 -0
  1067. data/public/images/icons/zoom_out/zoom_out_24x24.png +0 -0
  1068. data/public/images/icons/zoom_out/zoom_out_32x32.png +0 -0
  1069. data/public/images/icons/zoom_out/zoom_out_48x48.png +0 -0
  1070. data/public/images/wallpaper/blue.gif +0 -0
  1071. data/public/javascripts/erp_app/authentication/widget_manager.js +0 -119
  1072. data/public/javascripts/erp_app/ckeditor/lang/_languages.js +0 -6
  1073. data/public/javascripts/erp_app/ckeditor/lang/_translationstatus.txt +0 -64
  1074. data/public/javascripts/erp_app/ckeditor/lang/af.js +0 -6
  1075. data/public/javascripts/erp_app/ckeditor/lang/ar.js +0 -6
  1076. data/public/javascripts/erp_app/ckeditor/lang/bg.js +0 -6
  1077. data/public/javascripts/erp_app/ckeditor/lang/bn.js +0 -6
  1078. data/public/javascripts/erp_app/ckeditor/lang/bs.js +0 -6
  1079. data/public/javascripts/erp_app/ckeditor/lang/ca.js +0 -6
  1080. data/public/javascripts/erp_app/ckeditor/lang/cs.js +0 -6
  1081. data/public/javascripts/erp_app/ckeditor/lang/cy.js +0 -6
  1082. data/public/javascripts/erp_app/ckeditor/lang/da.js +0 -6
  1083. data/public/javascripts/erp_app/ckeditor/lang/de.js +0 -6
  1084. data/public/javascripts/erp_app/ckeditor/lang/el.js +0 -6
  1085. data/public/javascripts/erp_app/ckeditor/lang/en-au.js +0 -6
  1086. data/public/javascripts/erp_app/ckeditor/lang/en-ca.js +0 -6
  1087. data/public/javascripts/erp_app/ckeditor/lang/en-gb.js +0 -6
  1088. data/public/javascripts/erp_app/ckeditor/lang/eo.js +0 -6
  1089. data/public/javascripts/erp_app/ckeditor/lang/es.js +0 -6
  1090. data/public/javascripts/erp_app/ckeditor/lang/et.js +0 -6
  1091. data/public/javascripts/erp_app/ckeditor/lang/eu.js +0 -6
  1092. data/public/javascripts/erp_app/ckeditor/lang/fa.js +0 -6
  1093. data/public/javascripts/erp_app/ckeditor/lang/fi.js +0 -6
  1094. data/public/javascripts/erp_app/ckeditor/lang/fo.js +0 -6
  1095. data/public/javascripts/erp_app/ckeditor/lang/fr-ca.js +0 -6
  1096. data/public/javascripts/erp_app/ckeditor/lang/fr.js +0 -6
  1097. data/public/javascripts/erp_app/ckeditor/lang/gl.js +0 -6
  1098. data/public/javascripts/erp_app/ckeditor/lang/gu.js +0 -6
  1099. data/public/javascripts/erp_app/ckeditor/lang/he.js +0 -6
  1100. data/public/javascripts/erp_app/ckeditor/lang/hi.js +0 -6
  1101. data/public/javascripts/erp_app/ckeditor/lang/hr.js +0 -6
  1102. data/public/javascripts/erp_app/ckeditor/lang/hu.js +0 -6
  1103. data/public/javascripts/erp_app/ckeditor/lang/id.js +0 -6
  1104. data/public/javascripts/erp_app/ckeditor/lang/is.js +0 -6
  1105. data/public/javascripts/erp_app/ckeditor/lang/it.js +0 -6
  1106. data/public/javascripts/erp_app/ckeditor/lang/ja.js +0 -6
  1107. data/public/javascripts/erp_app/ckeditor/lang/ka.js +0 -6
  1108. data/public/javascripts/erp_app/ckeditor/lang/km.js +0 -6
  1109. data/public/javascripts/erp_app/ckeditor/lang/ko.js +0 -6
  1110. data/public/javascripts/erp_app/ckeditor/lang/lt.js +0 -6
  1111. data/public/javascripts/erp_app/ckeditor/lang/lv.js +0 -6
  1112. data/public/javascripts/erp_app/ckeditor/lang/mk.js +0 -6
  1113. data/public/javascripts/erp_app/ckeditor/lang/mn.js +0 -6
  1114. data/public/javascripts/erp_app/ckeditor/lang/ms.js +0 -6
  1115. data/public/javascripts/erp_app/ckeditor/lang/nb.js +0 -6
  1116. data/public/javascripts/erp_app/ckeditor/lang/nl.js +0 -6
  1117. data/public/javascripts/erp_app/ckeditor/lang/no.js +0 -6
  1118. data/public/javascripts/erp_app/ckeditor/lang/pl.js +0 -6
  1119. data/public/javascripts/erp_app/ckeditor/lang/pt-br.js +0 -6
  1120. data/public/javascripts/erp_app/ckeditor/lang/pt.js +0 -6
  1121. data/public/javascripts/erp_app/ckeditor/lang/ro.js +0 -6
  1122. data/public/javascripts/erp_app/ckeditor/lang/ru.js +0 -6
  1123. data/public/javascripts/erp_app/ckeditor/lang/sk.js +0 -6
  1124. data/public/javascripts/erp_app/ckeditor/lang/sl.js +0 -6
  1125. data/public/javascripts/erp_app/ckeditor/lang/sr-latn.js +0 -6
  1126. data/public/javascripts/erp_app/ckeditor/lang/sr.js +0 -6
  1127. data/public/javascripts/erp_app/ckeditor/lang/sv.js +0 -6
  1128. data/public/javascripts/erp_app/ckeditor/lang/th.js +0 -6
  1129. data/public/javascripts/erp_app/ckeditor/lang/tr.js +0 -6
  1130. data/public/javascripts/erp_app/ckeditor/lang/ug.js +0 -6
  1131. data/public/javascripts/erp_app/ckeditor/lang/uk.js +0 -6
  1132. data/public/javascripts/erp_app/ckeditor/lang/vi.js +0 -6
  1133. data/public/javascripts/erp_app/ckeditor/lang/zh-cn.js +0 -6
  1134. data/public/javascripts/erp_app/ckeditor/lang/zh.js +0 -6
  1135. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/_translationstatus.txt +0 -25
  1136. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/cs.js +0 -6
  1137. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/cy.js +0 -6
  1138. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/da.js +0 -6
  1139. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/de.js +0 -6
  1140. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/el.js +0 -6
  1141. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/en.js +0 -6
  1142. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/eo.js +0 -6
  1143. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/fa.js +0 -6
  1144. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/fi.js +0 -6
  1145. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/fr.js +0 -6
  1146. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/gu.js +0 -6
  1147. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/he.js +0 -6
  1148. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/it.js +0 -6
  1149. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/mk.js +0 -6
  1150. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/nb.js +0 -6
  1151. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/nl.js +0 -6
  1152. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/no.js +0 -6
  1153. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/pt-br.js +0 -6
  1154. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/ro.js +0 -6
  1155. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/tr.js +0 -6
  1156. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/ug.js +0 -6
  1157. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/vi.js +0 -6
  1158. data/public/javascripts/erp_app/ckeditor/plugins/a11yhelp/lang/zh-cn.js +0 -6
  1159. data/public/javascripts/erp_app/ckeditor/plugins/adobeair/plugin.js +0 -6
  1160. data/public/javascripts/erp_app/ckeditor/plugins/ajax/plugin.js +0 -6
  1161. data/public/javascripts/erp_app/ckeditor/plugins/autogrow/plugin.js +0 -6
  1162. data/public/javascripts/erp_app/ckeditor/plugins/bbcode/plugin.js +0 -9
  1163. data/public/javascripts/erp_app/ckeditor/plugins/compassupload/plugin.js +0 -21
  1164. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/_translationstatus.txt +0 -28
  1165. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/bg.js +0 -6
  1166. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/cs.js +0 -6
  1167. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/cy.js +0 -6
  1168. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/da.js +0 -6
  1169. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/de.js +0 -6
  1170. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/el.js +0 -6
  1171. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/en.js +0 -6
  1172. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/eo.js +0 -6
  1173. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/et.js +0 -6
  1174. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/fa.js +0 -6
  1175. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/fi.js +0 -6
  1176. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/fr.js +0 -6
  1177. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/gu.js +0 -6
  1178. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/he.js +0 -6
  1179. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/hr.js +0 -6
  1180. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/it.js +0 -6
  1181. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/nb.js +0 -6
  1182. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/nl.js +0 -6
  1183. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/no.js +0 -6
  1184. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/pl.js +0 -6
  1185. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/pt-br.js +0 -6
  1186. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/tr.js +0 -6
  1187. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/ug.js +0 -6
  1188. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/uk.js +0 -6
  1189. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/vi.js +0 -6
  1190. data/public/javascripts/erp_app/ckeditor/plugins/devtools/lang/zh-cn.js +0 -6
  1191. data/public/javascripts/erp_app/ckeditor/plugins/devtools/plugin.js +0 -6
  1192. data/public/javascripts/erp_app/ckeditor/plugins/docprops/dialogs/docprops.js +0 -10
  1193. data/public/javascripts/erp_app/ckeditor/plugins/docprops/plugin.js +0 -6
  1194. data/public/javascripts/erp_app/ckeditor/plugins/iframedialog/plugin.js +0 -6
  1195. data/public/javascripts/erp_app/ckeditor/plugins/link/images/anchor.gif +0 -0
  1196. data/public/javascripts/erp_app/ckeditor/plugins/pastetext/dialogs/pastetext.js +0 -6
  1197. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/dialogs/placeholder.js +0 -6
  1198. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/_translationstatus.txt +0 -27
  1199. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/bg.js +0 -6
  1200. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/cs.js +0 -6
  1201. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/cy.js +0 -6
  1202. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/da.js +0 -6
  1203. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/de.js +0 -6
  1204. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/el.js +0 -6
  1205. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/en.js +0 -6
  1206. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/eo.js +0 -6
  1207. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/et.js +0 -6
  1208. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/fa.js +0 -6
  1209. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/fi.js +0 -6
  1210. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/fr.js +0 -6
  1211. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/he.js +0 -6
  1212. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/hr.js +0 -6
  1213. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/it.js +0 -6
  1214. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/nb.js +0 -6
  1215. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/nl.js +0 -6
  1216. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/no.js +0 -6
  1217. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/pl.js +0 -6
  1218. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/pt-br.js +0 -6
  1219. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/tr.js +0 -6
  1220. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/ug.js +0 -6
  1221. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/uk.js +0 -6
  1222. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/vi.js +0 -6
  1223. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/lang/zh-cn.js +0 -6
  1224. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/placeholder.gif +0 -0
  1225. data/public/javascripts/erp_app/ckeditor/plugins/placeholder/plugin.js +0 -6
  1226. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/codemirror_config.js +0 -85
  1227. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/editor.css +0 -96
  1228. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/buttonbg.gif +0 -0
  1229. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/cancel.png +0 -0
  1230. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/highlight.png +0 -0
  1231. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/redo.png +0 -0
  1232. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/reindent.png +0 -0
  1233. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/save.png +0 -0
  1234. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/search.png +0 -0
  1235. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/undo.png +0 -0
  1236. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/nocolors.css +0 -24
  1237. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/LICENSE +0 -23
  1238. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/bigtest.html +0 -1296
  1239. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/compress.html +0 -169
  1240. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/css/csharpcolors.css +0 -60
  1241. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/index.html +0 -61
  1242. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/js/parsecsharp.js +0 -329
  1243. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/js/tokenizecsharp.js +0 -196
  1244. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/LICENSE +0 -24
  1245. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/css/freemarkercolors.css +0 -63
  1246. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/index.html +0 -75
  1247. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/js/parsefreemarker.js +0 -380
  1248. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/groovy/index.html +0 -57
  1249. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/LICENSE +0 -20
  1250. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/css/javacolors.css +0 -64
  1251. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/index.html +0 -66
  1252. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/js/parsejava.js +0 -285
  1253. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/js/tokenizejava.js +0 -222
  1254. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/LICENSE +0 -32
  1255. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/css/luacolors.css +0 -63
  1256. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/index.html +0 -68
  1257. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/js/parselua.js +0 -254
  1258. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/LICENSE +0 -23
  1259. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/css/ometacolors.css +0 -63
  1260. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/index.html +0 -77
  1261. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/js/parseometa.js +0 -364
  1262. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/js/tokenizeometa.js +0 -209
  1263. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/LICENSE +0 -37
  1264. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/css/phpcolors.css +0 -114
  1265. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/index.html +0 -310
  1266. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/js/parsephp.js +0 -419
  1267. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/js/parsephphtmlmixed.js +0 -116
  1268. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/js/tokenizephp.js +0 -1208
  1269. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/LICENSE +0 -22
  1270. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/css/plsqlcolors.css +0 -57
  1271. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/index.html +0 -67
  1272. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/js/parseplsql.js +0 -233
  1273. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/LICENSE +0 -32
  1274. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/css/pythoncolors.css +0 -58
  1275. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/index.html +0 -141
  1276. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/js/parsepython.js +0 -541
  1277. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/css/js-regexcolors.css +0 -214
  1278. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/css/regexcolors.css +0 -214
  1279. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/index.html +0 -114
  1280. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js/parsejavascript_and_regex.js +0 -91
  1281. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js/parseregex-unicode.js +0 -284
  1282. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js/parseregex.js +0 -847
  1283. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js-regex.html +0 -118
  1284. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/LICENSE +0 -23
  1285. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/css/schemecolors.css +0 -45
  1286. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/index.html +0 -82
  1287. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/js/parsescheme.js +0 -428
  1288. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/js/tokenizescheme.js +0 -241
  1289. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/LICENSE +0 -22
  1290. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/css/sqlcolors.css +0 -59
  1291. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/index.html +0 -56
  1292. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/js/parsesql.js +0 -267
  1293. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/LICENSE +0 -13
  1294. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/css/xqcolors-dark.css +0 -93
  1295. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/css/xqcolors.css +0 -99
  1296. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/css/xqcolors2.css +0 -96
  1297. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/index.html +0 -552
  1298. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/js/parsexquery.js +0 -234
  1299. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/js/tokenizexquery.js +0 -457
  1300. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/baboon.png +0 -0
  1301. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/baboon_vector.ai +3 -962
  1302. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/csscolors.css +0 -55
  1303. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/docs.css +0 -158
  1304. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/font.js +0 -15
  1305. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/jscolors.css +0 -59
  1306. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/people.jpg +0 -0
  1307. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/sparqlcolors.css +0 -43
  1308. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/xmlcolors.css +0 -55
  1309. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/csstest.html +0 -60
  1310. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/faq.html +0 -86
  1311. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/favicon.ico +0 -0
  1312. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/googleb196c451afc2ee11.html +0 -1
  1313. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/googlehostedservice.html +0 -1
  1314. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/highlight.html +0 -82
  1315. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/htmltest.html +0 -53
  1316. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/index.html +0 -254
  1317. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/codemirror.js +0 -582
  1318. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/editor.js +0 -1670
  1319. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/highlight.js +0 -68
  1320. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/mirrorframe.js +0 -81
  1321. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsecss.js +0 -161
  1322. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsedummy.js +0 -32
  1323. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsehtmlmixed.js +0 -93
  1324. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsejavascript.js +0 -359
  1325. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsesparql.js +0 -162
  1326. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsexml.js +0 -291
  1327. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/select.js +0 -697
  1328. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/stringstream.js +0 -159
  1329. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/tokenize.js +0 -57
  1330. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/tokenizejavascript.js +0 -174
  1331. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/undo.js +0 -413
  1332. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/unittests.js +0 -44
  1333. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/util.js +0 -133
  1334. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/jstest.html +0 -56
  1335. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/manual.html +0 -806
  1336. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/mixedtest.html +0 -52
  1337. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/sparqltest.html +0 -41
  1338. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/story.html +0 -672
  1339. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/unittests.html +0 -125
  1340. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/xhtmltest.xhtml +0 -50
  1341. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/lang/de.js +0 -20
  1342. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/lang/en.js +0 -20
  1343. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/dialogs/sourcepopup.js +0 -102
  1344. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/lang/de.js +0 -9
  1345. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/lang/en.js +0 -9
  1346. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/plugin.js +0 -27
  1347. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/_translationstatus.txt +0 -22
  1348. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/cs.js +0 -6
  1349. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/cy.js +0 -6
  1350. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/de.js +0 -6
  1351. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/el.js +0 -6
  1352. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/en.js +0 -6
  1353. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/eo.js +0 -6
  1354. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/et.js +0 -6
  1355. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/fa.js +0 -6
  1356. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/fi.js +0 -6
  1357. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/fr.js +0 -6
  1358. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/he.js +0 -6
  1359. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/hr.js +0 -6
  1360. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/it.js +0 -6
  1361. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/nb.js +0 -6
  1362. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/nl.js +0 -6
  1363. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/no.js +0 -6
  1364. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/pt-br.js +0 -6
  1365. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/tr.js +0 -6
  1366. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/ug.js +0 -6
  1367. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/zh-cn.js +0 -6
  1368. data/public/javascripts/erp_app/ckeditor/plugins/styles/styles/default.js +0 -6
  1369. data/public/javascripts/erp_app/ckeditor/plugins/stylesheetparser/plugin.js +0 -6
  1370. data/public/javascripts/erp_app/ckeditor/plugins/tableresize/plugin.js +0 -7
  1371. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/dialogs/uicolor.js +0 -7
  1372. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/_translationstatus.txt +0 -28
  1373. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/bg.js +0 -6
  1374. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/cs.js +0 -6
  1375. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/cy.js +0 -6
  1376. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/da.js +0 -6
  1377. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/de.js +0 -6
  1378. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/el.js +0 -6
  1379. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/en.js +0 -6
  1380. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/eo.js +0 -6
  1381. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/et.js +0 -6
  1382. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/fa.js +0 -6
  1383. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/fi.js +0 -6
  1384. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/fr.js +0 -6
  1385. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/he.js +0 -6
  1386. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/hr.js +0 -6
  1387. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/it.js +0 -6
  1388. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/mk.js +0 -6
  1389. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/nb.js +0 -6
  1390. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/nl.js +0 -6
  1391. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/no.js +0 -6
  1392. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/pl.js +0 -6
  1393. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/pt-br.js +0 -6
  1394. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/tr.js +0 -6
  1395. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/ug.js +0 -6
  1396. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/uk.js +0 -6
  1397. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/vi.js +0 -6
  1398. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/lang/zh-cn.js +0 -6
  1399. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/plugin.js +0 -6
  1400. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  1401. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  1402. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  1403. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  1404. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  1405. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/yui/assets/yui.css +0 -6
  1406. data/public/javascripts/erp_app/ckeditor/plugins/uicolor/yui/yui.js +0 -76
  1407. data/public/javascripts/erp_app/ckeditor/plugins/xml/plugin.js +0 -6
  1408. data/public/javascripts/erp_app/ckeditor/skins/kama/dialog.css +0 -10
  1409. data/public/javascripts/erp_app/ckeditor/skins/kama/editor.css +0 -13
  1410. data/public/javascripts/erp_app/ckeditor/skins/kama/icons.png +0 -0
  1411. data/public/javascripts/erp_app/ckeditor/skins/kama/icons_rtl.png +0 -0
  1412. data/public/javascripts/erp_app/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  1413. data/public/javascripts/erp_app/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  1414. data/public/javascripts/erp_app/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  1415. data/public/javascripts/erp_app/ckeditor/skins/kama/images/mini.gif +0 -0
  1416. data/public/javascripts/erp_app/ckeditor/skins/kama/images/sprites.png +0 -0
  1417. data/public/javascripts/erp_app/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  1418. data/public/javascripts/erp_app/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  1419. data/public/javascripts/erp_app/ckeditor/skins/kama/skin.js +0 -7
  1420. data/public/javascripts/erp_app/ckeditor/skins/kama/templates.css +0 -6
  1421. data/public/javascripts/erp_app/ckeditor/skins/office2003/dialog.css +0 -10
  1422. data/public/javascripts/erp_app/ckeditor/skins/office2003/editor.css +0 -14
  1423. data/public/javascripts/erp_app/ckeditor/skins/office2003/icons.png +0 -0
  1424. data/public/javascripts/erp_app/ckeditor/skins/office2003/icons_rtl.png +0 -0
  1425. data/public/javascripts/erp_app/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  1426. data/public/javascripts/erp_app/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  1427. data/public/javascripts/erp_app/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  1428. data/public/javascripts/erp_app/ckeditor/skins/office2003/images/mini.gif +0 -0
  1429. data/public/javascripts/erp_app/ckeditor/skins/office2003/images/noimage.png +0 -0
  1430. data/public/javascripts/erp_app/ckeditor/skins/office2003/images/sprites.png +0 -0
  1431. data/public/javascripts/erp_app/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  1432. data/public/javascripts/erp_app/ckeditor/skins/office2003/skin.js +0 -6
  1433. data/public/javascripts/erp_app/ckeditor/skins/office2003/templates.css +0 -6
  1434. data/public/javascripts/erp_app/ckeditor/skins/v2/dialog.css +0 -9
  1435. data/public/javascripts/erp_app/ckeditor/skins/v2/editor.css +0 -13
  1436. data/public/javascripts/erp_app/ckeditor/skins/v2/icons.png +0 -0
  1437. data/public/javascripts/erp_app/ckeditor/skins/v2/icons_rtl.png +0 -0
  1438. data/public/javascripts/erp_app/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  1439. data/public/javascripts/erp_app/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  1440. data/public/javascripts/erp_app/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  1441. data/public/javascripts/erp_app/ckeditor/skins/v2/images/mini.gif +0 -0
  1442. data/public/javascripts/erp_app/ckeditor/skins/v2/images/noimage.png +0 -0
  1443. data/public/javascripts/erp_app/ckeditor/skins/v2/images/sprites.png +0 -0
  1444. data/public/javascripts/erp_app/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  1445. data/public/javascripts/erp_app/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  1446. data/public/javascripts/erp_app/ckeditor/skins/v2/skin.js +0 -6
  1447. data/public/javascripts/erp_app/ckeditor/skins/v2/templates.css +0 -6
  1448. data/public/javascripts/erp_app/ckeditor/themes/default/theme.js +0 -8
  1449. data/public/javascripts/erp_app/codemirror/LICENSE +0 -23
  1450. data/public/javascripts/erp_app/codemirror/README.md +0 -8
  1451. data/public/javascripts/erp_app/codemirror/doc/baboon.png +0 -0
  1452. data/public/javascripts/erp_app/codemirror/doc/baboon_vector.svg +0 -153
  1453. data/public/javascripts/erp_app/codemirror/doc/compress.html +0 -165
  1454. data/public/javascripts/erp_app/codemirror/doc/docs.css +0 -165
  1455. data/public/javascripts/erp_app/codemirror/doc/internals.html +0 -497
  1456. data/public/javascripts/erp_app/codemirror/doc/manual.html +0 -1231
  1457. data/public/javascripts/erp_app/codemirror/doc/oldrelease.html +0 -356
  1458. data/public/javascripts/erp_app/codemirror/doc/realworld.html +0 -72
  1459. data/public/javascripts/erp_app/codemirror/doc/reporting.html +0 -60
  1460. data/public/javascripts/erp_app/codemirror/doc/upgrade_v2.2.html +0 -98
  1461. data/public/javascripts/erp_app/codemirror/keymap/emacs.js +0 -29
  1462. data/public/javascripts/erp_app/codemirror/keymap/vim.js +0 -788
  1463. data/public/javascripts/erp_app/codemirror/lib/util/closetag.js +0 -164
  1464. data/public/javascripts/erp_app/codemirror/lib/util/dialog.css +0 -27
  1465. data/public/javascripts/erp_app/codemirror/lib/util/dialog.js +0 -70
  1466. data/public/javascripts/erp_app/codemirror/lib/util/foldcode.js +0 -196
  1467. data/public/javascripts/erp_app/codemirror/lib/util/formatting.js +0 -193
  1468. data/public/javascripts/erp_app/codemirror/lib/util/javascript-hint.js +0 -134
  1469. data/public/javascripts/erp_app/codemirror/lib/util/loadmode.js +0 -51
  1470. data/public/javascripts/erp_app/codemirror/lib/util/match-highlighter.js +0 -44
  1471. data/public/javascripts/erp_app/codemirror/lib/util/multiplex.js +0 -77
  1472. data/public/javascripts/erp_app/codemirror/lib/util/overlay.js +0 -59
  1473. data/public/javascripts/erp_app/codemirror/lib/util/pig-hint.js +0 -123
  1474. data/public/javascripts/erp_app/codemirror/lib/util/runmode-standalone.js +0 -90
  1475. data/public/javascripts/erp_app/codemirror/lib/util/runmode.js +0 -53
  1476. data/public/javascripts/erp_app/codemirror/lib/util/search.js +0 -118
  1477. data/public/javascripts/erp_app/codemirror/lib/util/searchcursor.js +0 -119
  1478. data/public/javascripts/erp_app/codemirror/lib/util/simple-hint.css +0 -16
  1479. data/public/javascripts/erp_app/codemirror/lib/util/simple-hint.js +0 -102
  1480. data/public/javascripts/erp_app/codemirror/lib/util/xml-hint.js +0 -137
  1481. data/public/javascripts/erp_app/codemirror/mode/clike/clike.js +0 -285
  1482. data/public/javascripts/erp_app/codemirror/mode/clike/index.html +0 -102
  1483. data/public/javascripts/erp_app/codemirror/mode/clike/scala.html +0 -766
  1484. data/public/javascripts/erp_app/codemirror/mode/clojure/clojure.js +0 -206
  1485. data/public/javascripts/erp_app/codemirror/mode/clojure/index.html +0 -67
  1486. data/public/javascripts/erp_app/codemirror/mode/coffeescript/LICENSE +0 -22
  1487. data/public/javascripts/erp_app/codemirror/mode/coffeescript/coffeescript.js +0 -346
  1488. data/public/javascripts/erp_app/codemirror/mode/coffeescript/index.html +0 -728
  1489. data/public/javascripts/erp_app/codemirror/mode/commonlisp/commonlisp.js +0 -101
  1490. data/public/javascripts/erp_app/codemirror/mode/commonlisp/index.html +0 -165
  1491. data/public/javascripts/erp_app/codemirror/mode/css/css.js +0 -448
  1492. data/public/javascripts/erp_app/codemirror/mode/css/index.html +0 -58
  1493. data/public/javascripts/erp_app/codemirror/mode/css/test.js +0 -501
  1494. data/public/javascripts/erp_app/codemirror/mode/diff/diff.js +0 -32
  1495. data/public/javascripts/erp_app/codemirror/mode/diff/index.html +0 -105
  1496. data/public/javascripts/erp_app/codemirror/mode/ecl/ecl.js +0 -203
  1497. data/public/javascripts/erp_app/codemirror/mode/ecl/index.html +0 -42
  1498. data/public/javascripts/erp_app/codemirror/mode/erlang/erlang.js +0 -463
  1499. data/public/javascripts/erp_app/codemirror/mode/erlang/index.html +0 -63
  1500. data/public/javascripts/erp_app/codemirror/mode/gfm/gfm.js +0 -94
  1501. data/public/javascripts/erp_app/codemirror/mode/gfm/index.html +0 -71
  1502. data/public/javascripts/erp_app/codemirror/mode/gfm/test.js +0 -225
  1503. data/public/javascripts/erp_app/codemirror/mode/go/go.js +0 -170
  1504. data/public/javascripts/erp_app/codemirror/mode/go/index.html +0 -73
  1505. data/public/javascripts/erp_app/codemirror/mode/groovy/groovy.js +0 -210
  1506. data/public/javascripts/erp_app/codemirror/mode/groovy/index.html +0 -72
  1507. data/public/javascripts/erp_app/codemirror/mode/haskell/haskell.js +0 -242
  1508. data/public/javascripts/erp_app/codemirror/mode/haskell/index.html +0 -61
  1509. data/public/javascripts/erp_app/codemirror/mode/haxe/haxe.js +0 -429
  1510. data/public/javascripts/erp_app/codemirror/mode/haxe/index.html +0 -91
  1511. data/public/javascripts/erp_app/codemirror/mode/htmlembedded/htmlembedded.js +0 -73
  1512. data/public/javascripts/erp_app/codemirror/mode/htmlembedded/index.html +0 -50
  1513. data/public/javascripts/erp_app/codemirror/mode/htmlmixed/htmlmixed.js +0 -84
  1514. data/public/javascripts/erp_app/codemirror/mode/htmlmixed/index.html +0 -52
  1515. data/public/javascripts/erp_app/codemirror/mode/javascript/index.html +0 -85
  1516. data/public/javascripts/erp_app/codemirror/mode/javascript/javascript.js +0 -409
  1517. data/public/javascripts/erp_app/codemirror/mode/javascript/typescript.html +0 -48
  1518. data/public/javascripts/erp_app/codemirror/mode/jinja2/index.html +0 -38
  1519. data/public/javascripts/erp_app/codemirror/mode/jinja2/jinja2.js +0 -42
  1520. data/public/javascripts/erp_app/codemirror/mode/less/index.html +0 -740
  1521. data/public/javascripts/erp_app/codemirror/mode/less/less.js +0 -266
  1522. data/public/javascripts/erp_app/codemirror/mode/lua/index.html +0 -73
  1523. data/public/javascripts/erp_app/codemirror/mode/lua/lua.js +0 -140
  1524. data/public/javascripts/erp_app/codemirror/mode/markdown/index.html +0 -343
  1525. data/public/javascripts/erp_app/codemirror/mode/markdown/markdown.js +0 -481
  1526. data/public/javascripts/erp_app/codemirror/mode/markdown/test.js +0 -1266
  1527. data/public/javascripts/erp_app/codemirror/mode/mysql/index.html +0 -42
  1528. data/public/javascripts/erp_app/codemirror/mode/mysql/mysql.js +0 -186
  1529. data/public/javascripts/erp_app/codemirror/mode/ntriples/index.html +0 -33
  1530. data/public/javascripts/erp_app/codemirror/mode/ntriples/ntriples.js +0 -172
  1531. data/public/javascripts/erp_app/codemirror/mode/ocaml/index.html +0 -130
  1532. data/public/javascripts/erp_app/codemirror/mode/ocaml/ocaml.js +0 -114
  1533. data/public/javascripts/erp_app/codemirror/mode/pascal/LICENSE +0 -7
  1534. data/public/javascripts/erp_app/codemirror/mode/pascal/index.html +0 -49
  1535. data/public/javascripts/erp_app/codemirror/mode/pascal/pascal.js +0 -94
  1536. data/public/javascripts/erp_app/codemirror/mode/perl/LICENSE +0 -19
  1537. data/public/javascripts/erp_app/codemirror/mode/perl/index.html +0 -63
  1538. data/public/javascripts/erp_app/codemirror/mode/perl/perl.js +0 -816
  1539. data/public/javascripts/erp_app/codemirror/mode/php/index.html +0 -49
  1540. data/public/javascripts/erp_app/codemirror/mode/php/php.js +0 -148
  1541. data/public/javascripts/erp_app/codemirror/mode/pig/index.html +0 -43
  1542. data/public/javascripts/erp_app/codemirror/mode/pig/pig.js +0 -172
  1543. data/public/javascripts/erp_app/codemirror/mode/plsql/index.html +0 -63
  1544. data/public/javascripts/erp_app/codemirror/mode/plsql/plsql.js +0 -217
  1545. data/public/javascripts/erp_app/codemirror/mode/properties/index.html +0 -41
  1546. data/public/javascripts/erp_app/codemirror/mode/properties/properties.js +0 -63
  1547. data/public/javascripts/erp_app/codemirror/mode/python/LICENSE.txt +0 -21
  1548. data/public/javascripts/erp_app/codemirror/mode/python/index.html +0 -123
  1549. data/public/javascripts/erp_app/codemirror/mode/python/python.js +0 -338
  1550. data/public/javascripts/erp_app/codemirror/mode/r/LICENSE +0 -24
  1551. data/public/javascripts/erp_app/codemirror/mode/r/index.html +0 -74
  1552. data/public/javascripts/erp_app/codemirror/mode/r/r.js +0 -141
  1553. data/public/javascripts/erp_app/codemirror/mode/rpm/changes/changes.js +0 -19
  1554. data/public/javascripts/erp_app/codemirror/mode/rpm/changes/index.html +0 -54
  1555. data/public/javascripts/erp_app/codemirror/mode/rpm/spec/index.html +0 -100
  1556. data/public/javascripts/erp_app/codemirror/mode/rpm/spec/spec.css +0 -5
  1557. data/public/javascripts/erp_app/codemirror/mode/rpm/spec/spec.js +0 -66
  1558. data/public/javascripts/erp_app/codemirror/mode/rst/index.html +0 -526
  1559. data/public/javascripts/erp_app/codemirror/mode/rst/rst.js +0 -326
  1560. data/public/javascripts/erp_app/codemirror/mode/ruby/LICENSE +0 -24
  1561. data/public/javascripts/erp_app/codemirror/mode/ruby/index.html +0 -172
  1562. data/public/javascripts/erp_app/codemirror/mode/ruby/ruby.js +0 -195
  1563. data/public/javascripts/erp_app/codemirror/mode/rust/index.html +0 -49
  1564. data/public/javascripts/erp_app/codemirror/mode/rust/rust.js +0 -432
  1565. data/public/javascripts/erp_app/codemirror/mode/scheme/index.html +0 -65
  1566. data/public/javascripts/erp_app/codemirror/mode/scheme/scheme.js +0 -230
  1567. data/public/javascripts/erp_app/codemirror/mode/shell/index.html +0 -50
  1568. data/public/javascripts/erp_app/codemirror/mode/shell/shell.js +0 -118
  1569. data/public/javascripts/erp_app/codemirror/mode/sieve/LICENSE +0 -23
  1570. data/public/javascripts/erp_app/codemirror/mode/sieve/index.html +0 -81
  1571. data/public/javascripts/erp_app/codemirror/mode/sieve/sieve.js +0 -156
  1572. data/public/javascripts/erp_app/codemirror/mode/smalltalk/index.html +0 -56
  1573. data/public/javascripts/erp_app/codemirror/mode/smalltalk/smalltalk.js +0 -139
  1574. data/public/javascripts/erp_app/codemirror/mode/smarty/index.html +0 -83
  1575. data/public/javascripts/erp_app/codemirror/mode/smarty/smarty.js +0 -148
  1576. data/public/javascripts/erp_app/codemirror/mode/sparql/index.html +0 -41
  1577. data/public/javascripts/erp_app/codemirror/mode/sparql/sparql.js +0 -143
  1578. data/public/javascripts/erp_app/codemirror/mode/stex/index.html +0 -98
  1579. data/public/javascripts/erp_app/codemirror/mode/stex/stex.js +0 -182
  1580. data/public/javascripts/erp_app/codemirror/mode/stex/test.js +0 -343
  1581. data/public/javascripts/erp_app/codemirror/mode/tiddlywiki/index.html +0 -141
  1582. data/public/javascripts/erp_app/codemirror/mode/tiddlywiki/tiddlywiki.css +0 -14
  1583. data/public/javascripts/erp_app/codemirror/mode/tiddlywiki/tiddlywiki.js +0 -384
  1584. data/public/javascripts/erp_app/codemirror/mode/tiki/index.html +0 -83
  1585. data/public/javascripts/erp_app/codemirror/mode/tiki/tiki.css +0 -26
  1586. data/public/javascripts/erp_app/codemirror/mode/tiki/tiki.js +0 -309
  1587. data/public/javascripts/erp_app/codemirror/mode/vb/LICENSE.txt +0 -21
  1588. data/public/javascripts/erp_app/codemirror/mode/vb/index.html +0 -89
  1589. data/public/javascripts/erp_app/codemirror/mode/vb/vb.js +0 -260
  1590. data/public/javascripts/erp_app/codemirror/mode/vbscript/index.html +0 -43
  1591. data/public/javascripts/erp_app/codemirror/mode/vbscript/vbscript.js +0 -26
  1592. data/public/javascripts/erp_app/codemirror/mode/velocity/index.html +0 -104
  1593. data/public/javascripts/erp_app/codemirror/mode/velocity/velocity.js +0 -146
  1594. data/public/javascripts/erp_app/codemirror/mode/verilog/index.html +0 -211
  1595. data/public/javascripts/erp_app/codemirror/mode/verilog/verilog.js +0 -194
  1596. data/public/javascripts/erp_app/codemirror/mode/xml/index.html +0 -45
  1597. data/public/javascripts/erp_app/codemirror/mode/xml/xml.js +0 -318
  1598. data/public/javascripts/erp_app/codemirror/mode/xquery/LICENSE +0 -20
  1599. data/public/javascripts/erp_app/codemirror/mode/xquery/index.html +0 -223
  1600. data/public/javascripts/erp_app/codemirror/mode/xquery/test/index.html +0 -27
  1601. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testBase.js +0 -42
  1602. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testEmptySequenceKeyword.js +0 -16
  1603. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testMultiAttr.js +0 -16
  1604. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testNamespaces.js +0 -91
  1605. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testProcessingInstructions.js +0 -16
  1606. data/public/javascripts/erp_app/codemirror/mode/xquery/test/testQuotes.js +0 -19
  1607. data/public/javascripts/erp_app/codemirror/mode/xquery/xquery.js +0 -451
  1608. data/public/javascripts/erp_app/codemirror/mode/yaml/index.html +0 -68
  1609. data/public/javascripts/erp_app/codemirror/mode/yaml/yaml.js +0 -95
  1610. data/public/javascripts/erp_app/codemirror/package.json +0 -21
  1611. data/public/javascripts/erp_app/codemirror/test/driver.js +0 -129
  1612. data/public/javascripts/erp_app/codemirror/test/index.html +0 -171
  1613. data/public/javascripts/erp_app/codemirror/test/lint/lint.js +0 -120
  1614. data/public/javascripts/erp_app/codemirror/test/lint/parse-js.js +0 -1372
  1615. data/public/javascripts/erp_app/codemirror/test/mode_test.css +0 -10
  1616. data/public/javascripts/erp_app/codemirror/test/mode_test.js +0 -203
  1617. data/public/javascripts/erp_app/codemirror/test/phantom_driver.js +0 -30
  1618. data/public/javascripts/erp_app/codemirror/test/run.js +0 -32
  1619. data/public/javascripts/erp_app/codemirror/test/test.js +0 -677
  1620. data/public/javascripts/erp_app/desktop/applications/control_panel/application_management_panel.js +0 -109
  1621. data/public/javascripts/erp_app/desktop/applications/control_panel/desktop_management_panel.js +0 -218
  1622. data/public/javascripts/erp_app/organizer/applications/crm/contact_mechanism_grid.js +0 -559
  1623. data/public/javascripts/erp_app/organizer/applications/crm/individual_windows.js +0 -237
  1624. data/public/javascripts/erp_app/organizer/applications/crm/organization_windows.js +0 -167
  1625. data/public/javascripts/erp_app/organizer/applications/crm/party_grid.js +0 -423
  1626. data/public/javascripts/erp_app/organizer/applications/crm/userinfo.js +0 -215
  1627. data/public/javascripts/erp_app/shared/audit_log/audit_log_grid_panel.js +0 -169
  1628. data/public/javascripts/erp_app/shared/audit_log/audit_log_item_grid_panel.js +0 -99
  1629. data/public/javascripts/erp_app/shared/audit_log/audit_log_tab_panel.js +0 -52
  1630. data/public/javascripts/erp_app/shared/coolclock/coolclock.js +0 -314
  1631. data/public/javascripts/erp_app/shared/coolclock/moreskins.js +0 -212
  1632. data/public/javascripts/erp_app/shared/coolclock/tray_clock.js +0 -145
  1633. data/public/javascripts/erp_app/shared/dynamic_forms/dynamic_form_fields.js +0 -99
  1634. data/public/javascripts/erp_app/shared/preference_form.js +0 -155
@@ -1,672 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
- <html>
3
- <head>
4
- <title>Implementing a Syntax-Highlighting JavaScript Editor In JavaScript</title>
5
- <link rel="stylesheet" type="text/css" href="css/docs.css"/>
6
- <link rel="stylesheet" type="text/css" href="css/jscolors.css"/>
7
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
8
- </head>
9
- <body>
10
-
11
- <h1 style="letter-spacing: -2px; font-size: 2.7em;">Implementing a Syntax-Highlighting<br/> JavaScript Editor—In JavaScript</h1>
12
-
13
- <pre class="grey">
14
- <img src="css/baboon.png" class="logo" alt="logo"/>/* A brutal odyssey to the dark
15
- side of the DOM tree */
16
- </pre>
17
-
18
- <div class="clear"><div class="leftbig blk">
19
-
20
- <p>In one of his (very informative) <a
21
- href="http://www.learnwebdesignonline.com/videos/programming/javascript/yahoo-douglas-crockford">video
22
- lectures</a>, Douglas Crockford remarks that writing JavaScript
23
- for the web is 'programming in a hostile environment'. I had done
24
- my fair share of weird workarounds, and even occasonally gave up
25
- an on idea entirely because browsers just wouldn't support it, but
26
- before this project I never really realized just how powerless a
27
- programmer can be in the face of buggy, incompatible, and poorly
28
- designed platforms.</p>
29
-
30
- <p>The plan was not ridiculously ambitious. I wanted to 'enhance' a
31
- textarea to the point where writing code in it is pleasant. This meant
32
- automatic indentation and, if possible at all, syntax highlighting.</p>
33
-
34
- <p>In this document I describe the story of implementing this, for your
35
- education and amusement. A demonstration of the resulting program,
36
- along with the source code, can be found at <a
37
- href="http://codemirror.net/">the project website</a>.</p>
38
-
39
- <p style="color: #811; font-size: 90%; font-style: italic">Note:
40
- some of the details given here no longer apply to the current <a
41
- href="http://codemirror.net/">CodeMirror</a> codebase, which has
42
- evolved quite a bit in the meantime.</p>
43
-
44
- <h2 id="indent">Take one: Only indentation</h2>
45
-
46
- <p>The very first attempt merely added auto-indentation to a textarea
47
- element. It would scan backwards through the content of the area,
48
- starting from the cursor, until it had enough information to decide
49
- how to indent the current line. It took me a while to figure out a
50
- decent model for indenting JavaScript code, but in the end this seems
51
- to work:</p>
52
-
53
- <ul>
54
- <li>Code that sits inside a block is indented one unit (generally two
55
- spaces) more than the statement or brace that opened the block.</li>
56
- <li>A statement that is continued to the next line is indented one unit
57
- more than the line that starts the statement.</li>
58
- <li>When dealing with lists of arguments or the content of array and
59
- object literals there are two possible models. If there is any text
60
- directly after the opening brace, bracket, or parenthesis,
61
- subsequent lines are aligned with this opening character. If the
62
- opening character is followed by a newline (optionally with whitespace
63
- or comments before it), the next line is indented one unit further
64
- than the line that started the list.</li>
65
- <li>And, obviously, if a statement follows another statement it is
66
- indented the same amount as the one before it.</li>
67
- </ul>
68
-
69
- <p>When scanning backwards through code one has to take string values,
70
- comments, and regular expressions (which are delimited by slashes)
71
- into account, because braces and semicolons and such are not
72
- significant when they appear inside them. Single-line ('//') comments
73
- turned out to be rather inefficient to check for when doing a
74
- backwards scan, since every time you encounter a newline you have to
75
- go on to the next newline to determine whether this line ends in a
76
- comment or not. Regular expressions are even worse &#x2015; without
77
- contextual information they are impossible to distinguish from the
78
- division operator, and I didn't get them working in this first
79
- version.</p>
80
-
81
- <p>To find out which line to indent, and to make sure that adding or
82
- removing whitespace doesn't cause the cursor to jump in strange ways,
83
- it is necessary to determine which text the user has selected. Even
84
- though I was working with just a simple textarea at this point, this
85
- was already a bit of a headache.</p>
86
-
87
- <p>On W3C-standards-respecting browsers, textarea nodes have
88
- <code>selectionStart</code> and <code>selectionEnd</code>
89
- properties which nicely give you the amount of characters before
90
- the start and end of the selection. Great!</p>
91
-
92
- <p>Then, there is Internet Explorer. Internet Explorer also has an API
93
- for looking at and manipulating selections. It gives you information
94
- such as a detailed map of the space the selected lines take up on the
95
- screen, in pixels, and of course the text inside the selection. It
96
- does, however, not give you much of a clue on where the selection is
97
- located in the document.</p>
98
-
99
- <p>After some experimentation I managed to work out an elaborate
100
- method for getting something similar to the
101
- <code>selectionStart</code> and <code>selectionEnd</code> values
102
- in other browsers. It worked like this:</p>
103
-
104
- <ul>
105
- <li>Get the <code>TextRange</code> object corresponding to the selection.</li>
106
- <li>Record the length of the text inside it.</li>
107
- <li>Make another <code>TextRange</code> that covers the whole textarea element.</li>
108
- <li>Set the start of the first <code>TextRange</code> to the start of the second one.</li>
109
- <li>Again get the length of the text in the first object.</li>
110
- <li>Now <code>selectionEnd</code> is the second length, and <code>selectionStart</code> is
111
- the second minus the first one.</li>
112
- </ul>
113
-
114
- <p>That seemed to work, but when resetting the selection after modifying
115
- the content of the textarea I ran into another interesting feature of
116
- these <code>TextRange</code>s: You can move their endpoints by a given number of
117
- characters, which is useful when trying to set a cursor at the Nth
118
- character of a textarea, but in this context, newlines are <em>not</em>
119
- considered to be characters, so you'll always end up one character too
120
- far for every newline you passed. Of course, you can count newlines
121
- and compensate for this (though it is still not possible to position
122
- the cursor right in front of a newline). Sheesh.</p>
123
-
124
- <p>After ragging on Internet Explorer for a while, let us move on and rag
125
- on Firefox a bit. It turns out that, in Firefox, getting and setting
126
- the text content of a DOM element is unexplainably expensive,
127
- especially when there is a lot of text involved. As soon as I tried to
128
- use my indentation code to indent itself (some 400 lines), I found
129
- myself waiting for over four seconds every time I pressed enter. That
130
- seemed a little slow.</p>
131
-
132
- <h2 id="designmode">designMode it is</h2>
133
-
134
- <p>The solution was obvious: Since the text inside a textarea can only be
135
- manipulated as one single big string, I had to spread it out over
136
- multiple nodes. How do you spread editable content over multiple
137
- nodes? Right! <code>designMode</code> or <code>contentEditable</code>.</p>
138
-
139
- <p>Now I wasn't entirely naive about <code>designMode</code>, I had been looking
140
- into writing a non-messy WYSIWYG editor before, and at that time I had
141
- concluded two things:</p>
142
-
143
- <ul>
144
- <li>It is impossible to prevent the user from inserting whichever HTML
145
- junk he wants into the document.</li>
146
- <li>In Internet Explorer, it is extemely hard to get a good view
147
- on what nodes the user has selected.</li>
148
- </ul>
149
-
150
- <p>Basically, the good folks at Microsoft designed a really bad interface
151
- for putting editable documents in pages, and the other browsers, not
152
- wanting to be left behind, more or less copied that. And there isn't
153
- much hope for a better way to do this appearing anytime soon. Wise
154
- people probably use a Flash movie or (God forbid) a Java applet for
155
- these kind of things, though those are not without drawbacks either.</p>
156
-
157
- <p>Anyway, seeing how using an editable document would also make syntax
158
- highlighting possible, I foolishly went ahead. There is something
159
- perversely fascinating about trying to build a complicated system on a
160
- lousy, unsuitable platform.</p>
161
-
162
- <h2 id="parser">A parser</h2>
163
-
164
- <p>How does one do decent syntax highlighting? A very simple scanning can
165
- tell the difference between strings, comments, keywords, and other
166
- code. But this time I wanted to actually be able to recognize regular
167
- expressions, so that I didn't have any blatant incorrect behaviour
168
- anymore.</p>
169
-
170
- <p>That brought me to the idea of doing a serious parse on the code. This
171
- would not only make detecting regular expressions much easier, it
172
- would also give me detailed information about the code, which can be
173
- used to determine proper indentation levels, and to make subtle
174
- distinctions in colouring, for example the difference between variable
175
- names and property names.</p>
176
-
177
- <p>And hey, when we're parsing the whole thing, it would even be possible
178
- to make a distinction between local and global variables, and colour
179
- them differently. If you've ever programmed JavaScript you can
180
- probably imagine how useful this would be &#x2015; it is ridiculously easy
181
- to accidentally create global instead of local variables. I don't
182
- consider myself a JavaScript rookie anymore, but it was (embarrasingly
183
- enough) only this week that I realized that my habit of typing <code>for
184
- (name in object) ...</code> was creating a global variable <code>name</code>, and that
185
- I should be typing <code>for (var name in object) ...</code> instead.</p>
186
-
187
- <p>Re-parsing all the code the user has typed in every time he hits a key
188
- is obviously not feasible. So how does one combine on-the-fly
189
- highlighting with a serious parser? One option would be to split the
190
- code into top-level statements (functions, variable definitions, etc.)
191
- and parse these separately. This is horribly clunky though, especially
192
- considering the fact that modern JavaScripters often put all the code
193
- in a file in a single big object or function to prevent namespace
194
- pollution.</p>
195
-
196
- <p>I have always liked continuation-passing style and generators. So the
197
- idea I came up with is this: An interruptable, resumable parser. This
198
- is a parser that does not run through a whole document at once, but
199
- parses on-demand, a little bit at a time. At any moment you can create
200
- a copy of its current state, which can be resumed later. You start
201
- parsing at the top of the code, and keep going as long as you like,
202
- but throughout the document, for example at every end of line, you
203
- store a copy of the current parser state. Later on, when line 106
204
- changes, you grab the interrupted parser that was stored at the end of
205
- line 105, and use it to re-parse line 106. It still knows exactly what
206
- the context was at that point, which local variables were defined,
207
- which unfinished statements were encountered, and so on.</p>
208
-
209
- <p>But that, unfortunately, turned out to be not quite as easy as it
210
- sounds.</p>
211
-
212
- <h2 id="dom">The DOM nodes underfoot</h2>
213
-
214
- <p>Of course, when working inside an editable frame we don't just
215
- have to deal with text. The code will be represented by some kind
216
- of DOM tree. My first idea was to set the <code>white-space:
217
- pre</code> style for the frame and try to work with mostly text,
218
- with the occasional coloured <code>span</code> element. It turned
219
- out that support for <code>white-space: pre</code> in browsers,
220
- especially in editable frames, is so hopelessly glitchy that this
221
- was unworkable.</p>
222
-
223
- <p>Next I tried a series of <code>div</code> elements, one per
224
- line, with <code>span</code> elements inside them. This seemed to
225
- nicely reflect the structure of the code in a shallowly
226
- hierarchical way. I soon realized, however, that my code would be
227
- much more straightfoward when using no hierarchy whatsoever
228
- &#x2015; a series of <code>span</code>s, with <code>br</code> tags
229
- at the end of every line. This way, the DOM nodes form a flat
230
- sequence that corresponds to the sequence of the text &#x2015;
231
- just extract text from <code>span</code> nodes and substitute
232
- newlines for <code>br</code> nodes.</p>
233
-
234
- <p>It would be a shame if the editor would fall apart as soon as
235
- someone pastes some complicated HTML into it. I wanted it to be
236
- able to deal with whatever mess it finds. This means using some
237
- kind of HTML-normalizer that takes arbitrary HTML and flattens it
238
- into a series of <code>br</code>s and <code>span</code> elements
239
- that contain a single text node. Just like the parsing process, it
240
- would be best if this did not have to done to the entire buffer
241
- every time something changes.</p>
242
-
243
- <p>It took some banging my head against my keyboard, but I found a very
244
- nice way to model this. It makes heavy use of generators, for which I
245
- used <a href="http://www.mochikit.com">MochiKit</a>'s iterator
246
- framework. Bob Ippolito explains the concepts in this library very
247
- well in his <a
248
- href="http://bob.pythonmac.org/archives/2005/07/06/iteration-in-javascript/">blog
249
- post</a> about it. (Also notice some of the dismissive comments at the
250
- bottom of that post. They say "I don't think I really want to learn
251
- this, so I'll make up some silly reason to condemn it.")</p>
252
-
253
- <p>The highlighting process consists of the following elements:
254
- normalizing the DOM tree, extracting the text from the DOM tree,
255
- tokenizing this text, parsing the tokens, and finally adjusting the
256
- DOM nodes to reflect the structure of the code.</p>
257
-
258
- <p>The first two, I put into a single generator. It scans the DOM
259
- tree, fixing anything that is not a simple top-level
260
- <code>span</code> or <code>br</code>, and it produces the text
261
- content of the nodes (or a newline in case of a <code>br</code>)
262
- as its output &#x2015; each time it is called, it yields a string.
263
- Continuation passing style was a good way to model this process in
264
- an iterator, which has to be processed one step at a time. Look at
265
- this simplified version:</p>
266
-
267
- <pre class="code" style="width: 110%"><span class="js-keyword">function</span> <span class="js-variable">traverseDOM</span>(<span class="js-variabledef">start</span>){
268
- <span class="js-keyword">var</span> <span class="js-variabledef">cc</span> = <span class="js-keyword">function</span>(){<span class="js-keyword">return</span> <span class="js-variable">scanNode</span>(<span class="js-localvariable">start</span>, <span class="js-variable">stop</span>);};
269
- <span class="js-keyword">function</span> <span class="js-variabledef">stop</span>(){
270
- <span class="js-localvariable">cc</span> = <span class="js-localvariable">stop</span>;
271
- <span class="js-keyword">throw</span> <span class="js-variable">StopIteration</span>;
272
- }
273
- <span class="js-keyword">function</span> <span class="js-variabledef">yield</span>(<span class="js-variabledef">value</span>, <span class="js-variabledef">c</span>){
274
- <span class="js-localvariable">cc</span> = <span class="js-localvariable">c</span>;
275
- <span class="js-keyword">return</span> <span class="js-localvariable">value</span>;
276
- }
277
-
278
- <span class="js-keyword">function</span> <span class="js-variabledef">scanNode</span>(<span class="js-variabledef">node</span>, <span class="js-variabledef">c</span>){
279
- <span class="js-keyword">if</span> (<span class="js-localvariable">node</span>.<span class="js-property">nextSibling</span>)
280
- <span class="js-keyword">var</span> <span class="js-variabledef">nextc</span> = <span class="js-keyword">function</span>(){<span class="js-keyword">return</span> <span class="js-localvariable">scanNode</span>(<span class="js-localvariable">node</span>.<span class="js-property">nextSibling</span>, <span class="js-localvariable">c</span>);};
281
- <span class="js-keyword">else</span>
282
- <span class="js-keyword">var</span> <span class="js-variabledef">nextc</span> = <span class="js-localvariable">c</span>;
283
-
284
- <span class="js-keyword">if</span> (<span class="js-comment">/* node is proper span element */</span>)
285
- <span class="js-keyword">return</span> <span class="js-localvariable">yield</span>(<span class="js-localvariable">node</span>.<span class="js-property">firstChild</span>.<span class="js-property">nodeValue</span>, <span class="js-localvariable">nextc</span>);
286
- <span class="js-keyword">else</span> <span class="js-keyword">if</span> (<span class="js-comment">/* node is proper br element */</span>)
287
- <span class="js-keyword">return</span> <span class="js-localvariable">yield</span>(<span class="js-string">&quot;\n&quot;</span>, <span class="js-localvariable">nextc</span>);
288
- <span class="js-keyword">else</span>
289
- <span class="js-comment">/* flatten node, yield its textual content */</span>;
290
- }
291
-
292
- <span class="js-keyword">return</span> {<span class="js-property">next</span>: <span class="js-keyword">function</span>(){<span class="js-keyword">return</span> <span class="js-localvariable">cc</span>();}};
293
- }</pre>
294
-
295
- <p>The variable <code>c</code> stands for 'continuation', and <code>cc</code> for 'current
296
- continuation' &#x2015; that last variable is used to store the function to
297
- continue with, when yielding a value to the outside world. Every time
298
- control leaves this function, it has to make sure that <code>cc</code> is set to
299
- a suitable value, which is what <code>yield</code> and <code>stop</code> take care of.</p>
300
-
301
- <p>The object that is returned contains a <code>next</code> method, which is
302
- MochiKit's idea of an iterator, and the initial continuation just
303
- throws a <code>StopIteration</code>, which is how MochiKit signals that an
304
- iterator has reached its end.</p>
305
-
306
- <p>The first lines of <code>scanNode</code> extend the continuation with the task of
307
- scanning the next node, if there is a next node. The rest of the
308
- function decides what kind of value to <code>yield</code>. Note that this is a
309
- rather trivial example of this technique, since the process of going
310
- through these nodes is basically linear (it was much, much more
311
- complex in earlier versions), but still the trick with the
312
- continuations makes the code shorter and, for those in the know,
313
- clearer than the equivalent 'storing the iterator state in variables'
314
- approach.</p>
315
-
316
- <p>The next iterator that the input passes through is the
317
- tokenizer. Well, actually, there is another iterator in between
318
- that isolates the tokenizer from the fact that the DOM traversal
319
- yields a bunch of separate strings, and presents them as a single
320
- character stream (with a convenient <code>peek</code> operation),
321
- but this is not a very interesting one. What the tokenizer returns
322
- is a stream of token objects, each of which has a
323
- <code>value</code>, its textual content, a <code>type</code>, like
324
- <code>"variable"</code>, <code>"operator"</code>, or just itself,
325
- <code>"{"</code> for example, in the case of significant
326
- punctuation or special keywords. They also have a
327
- <code>style</code>, which is used later by the highlighter to give
328
- their <code>span</code> elements a class name (the parser will
329
- still adjust this in some cases).</p>
330
-
331
- <p>At first I assumed the parser would have to talk back to the
332
- tokenizer about the current context, in order to be able to
333
- distinguish those accursed regular expressions from divisions, but
334
- it seems that regular expressions are only allowed if the previous
335
- (non-whitespace, non-comment) token was either an operator, a
336
- keyword like <code>new</code> or <code>throw</code>, or a specific
337
- kind of punctuation (<code>"[{}(,;:"</code>) that indicates a new
338
- expression can be started here. This made things considerably
339
- easier, since the 'regexp or no regexp' question could stay
340
- entirely within the tokenizer.</p>
341
-
342
- <p>The next step, then, is the parser. It does not do a very
343
- thorough job because, firstly, it has to be fast, and secondly, it
344
- should not go to pieces when fed an incorrect program. So only
345
- superficial constructs are recognized, keywords that resemble each
346
- other in syntax, such as <code>while</code> and <code>if</code>,
347
- are treated in precisely the same way, as are <code>try</code> and
348
- <code>else</code> &#x2015; the parser doesn't mind if an
349
- <code>else</code> appears without an <code>if</code>. Stuff that
350
- binds variables, <code>var</code>, <code>function</code>, and
351
- <code>catch</code> to be precise, is treated with more care,
352
- because the parser wants to know about local variables.</p>
353
-
354
- <p>Inside the parser, three kinds of context are stored. Firstly, a set
355
- of known local variables, which is used to adjust the style of
356
- variable tokens. Every time the parser enters a function, a new set of
357
- variables is created. If there was already such a set (entering an
358
- inner function), a pointer to the old one is stored in the new one. At
359
- the end of the function, the current variable set is 'popped' off and
360
- the previous one is restored.</p>
361
-
362
- <p>The second kind of context is the lexical context, this keeps track of
363
- whether we are inside a statement, block, or list. Like the variable
364
- context, it also forms a stack of contexts, with each one containing a
365
- pointer to the previous ones so that they can be popped off again when
366
- they are finished. This information is used for indentation. Every
367
- time the parser encounters a newline token, it attaches the current
368
- lexical context and a 'copy' of itself (more about that later) to this
369
- token.</p>
370
-
371
- <p>The third context is a continuation context. This parser does not use
372
- straight continuation style, instead it uses a stack of actions that
373
- have to be performed. These actions are simple functions, a kind of
374
- minilanguage, they act on tokens, and decide what kind of new actions
375
- should be pushed onto the stack. Here are some examples:</p>
376
-
377
- <pre class="code" style="width: 110%"><span class="js-keyword">function</span> <span class="js-variable">expression</span>(<span class="js-variabledef">type</span>){
378
- <span class="js-keyword">if</span> (<span class="js-localvariable">type</span> in <span class="js-variable">atomicTypes</span>)
379
- <span class="js-variable">cont</span>(<span class="js-variable">maybeoperator</span>);
380
- <span class="js-keyword">else</span> <span class="js-keyword">if</span> (<span class="js-localvariable">type</span> == <span class="js-string">&quot;function&quot;</span>)
381
- <span class="js-variable">cont</span>(<span class="js-variable">functiondef</span>);
382
- <span class="js-keyword">else</span> <span class="js-keyword">if</span> (<span class="js-localvariable">type</span> == <span class="js-string">&quot;(&quot;</span>)
383
- <span class="js-variable">cont</span>(<span class="js-variable">pushlex</span>(<span class="js-string">&quot;list&quot;</span>), <span class="js-variable">expression</span>, <span class="js-variable">expect</span>(<span class="js-string">&quot;)&quot;</span>), <span class="js-variable">poplex</span>);
384
- <span class="js-keyword">else</span> <span class="js-keyword">if</span> (<span class="js-localvariable">type</span> == <span class="js-string">&quot;operator&quot;</span>)
385
- <span class="js-variable">cont</span>(<span class="js-variable">expression</span>);
386
- <span class="js-keyword">else</span> <span class="js-keyword">if</span> (<span class="js-localvariable">type</span> == <span class="js-string">&quot;[&quot;</span>)
387
- <span class="js-variable">cont</span>(<span class="js-variable">pushlex</span>(<span class="js-string">&quot;list&quot;</span>), <span class="js-variable">commasep</span>(<span class="js-variable">expression</span>), <span class="js-variable">expect</span>(<span class="js-string">&quot;]&quot;</span>), <span class="js-variable">poplex</span>);
388
- <span class="js-keyword">else</span> <span class="js-keyword">if</span> (<span class="js-localvariable">type</span> == <span class="js-string">&quot;{&quot;</span>)
389
- <span class="js-variable">cont</span>(<span class="js-variable">pushlex</span>(<span class="js-string">&quot;list&quot;</span>), <span class="js-variable">commasep</span>(<span class="js-variable">objprop</span>), <span class="js-variable">expect</span>(<span class="js-string">&quot;}&quot;</span>), <span class="js-variable">poplex</span>);
390
- <span class="js-keyword">else</span> <span class="js-keyword">if</span> (<span class="js-localvariable">type</span> == <span class="js-string">&quot;keyword c&quot;</span>)
391
- <span class="js-variable">cont</span>(<span class="js-variable">expression</span>);
392
- }
393
-
394
- <span class="js-keyword">function</span> <span class="js-variable">block</span>(<span class="js-variabledef">type</span>){
395
- <span class="js-keyword">if</span> (<span class="js-localvariable">type</span> == <span class="js-string">&quot;}&quot;</span>) <span class="js-variable">cont</span>();
396
- <span class="js-keyword">else</span> <span class="js-variable">pass</span>(<span class="js-variable">statement</span>, <span class="js-variable">block</span>);
397
- }</pre>
398
-
399
- <p>The function <code>cont</code> (for continue), will push the actions it is given
400
- onto the stack (in reverse order, so that the first one will be popped
401
- first). Actions such as <code>pushlex</code> and <code>poplex</code> merely adjust the
402
- lexical environment, while others, such as <code>expression</code> itself, do
403
- actual parsing. <code>pass</code>, as seen in <code>block</code>, is similar to <code>cont</code>, but
404
- it does not 'consume' the current token, so the next action will again
405
- see this same token. In <code>block</code>, this happens when the function
406
- determines that we are not at the end of the block yet, so it pushes
407
- the <code>statement</code> function which will interpret the current token as the
408
- start of a statement.</p>
409
-
410
- <p>These actions are called by a 'driver' function, which filters out the
411
- whitespace and comments, so that the parser actions do not have to
412
- think about those, and keeps track of some things like the indentation
413
- of the current line and the column at which the current token ends,
414
- which are stored in the lexical context and used for indentation.
415
- After calling an action, if the action called <code>cont</code>, this driver
416
- function will return the current token, if <code>pass</code> (or nothing) was
417
- called, it will immediately continue with the next action.</p>
418
-
419
- <p>This goes to show that it is viable to write a quite elaborate
420
- minilanguage in a macro-less language like JavaScript. I don't think
421
- it would be possible to do something like this without closures (or
422
- similarly powerful abstraction) though, I've certainly never seen
423
- anything like it in Java code.</p>
424
-
425
- <p>The way a 'copy' of the parser was produced shows a nice usage
426
- of closures. Like with the DOM transformer shown above, most of
427
- the local state of the parser is held in a closure produced by
428
- calling <code>parse(stream)</code>. The function
429
- <code>copy</code>, which is local to the parser function, produces
430
- a new closure, with copies of all the relevant variables:</p>
431
-
432
- <pre class="code"><span class="js-keyword">function</span> <span class="js-variable">copy</span>(){
433
- <span class="js-keyword">var</span> <span class="js-variabledef">_context</span> = <span class="js-variable">context</span>, <span class="js-variabledef">_lexical</span> = <span class="js-variable">lexical</span>,
434
- <span class="js-variabledef">_actions</span> = <span class="js-variable">copyArray</span>(<span class="js-variable">actions</span>);
435
-
436
- <span class="js-keyword">return</span> <span class="js-keyword">function</span>(<span class="js-variabledef">_tokens</span>){
437
- <span class="js-variable">context</span> = <span class="js-localvariable">_context</span>;
438
- <span class="js-variable">lexical</span> = <span class="js-localvariable">_lexical</span>;
439
- <span class="js-variable">actions</span> = <span class="js-variable">copyArray</span>(<span class="js-localvariable">_actions</span>);
440
- <span class="js-variable">tokens</span> = <span class="js-localvariable">_tokens</span>;
441
- <span class="js-keyword">return</span> <span class="js-variable">parser</span>;
442
- };
443
- }</pre>
444
-
445
- <p>Where <code>parser</code> is the object that contains the <code>next</code> (driver)
446
- function, and a reference to this <code>copy</code> function. When the function
447
- that <code>copy</code> produces is called with a token stream as argument, it
448
- updates the local variables in the parser closure, and returns the
449
- corresponding iterator object.</p>
450
-
451
- <p>Moving on, we get to the last stop in this chain of generators, the
452
- actual highlighter. You can view this one as taking two streams as
453
- input, on the one hand there is the stream of tokens from the parser,
454
- and on the other hand there is the DOM tree as left by the DOM
455
- transformer. If everything went correctly, these two should be
456
- synchronized. The highlighter can look at the current token, see if
457
- the <code>span</code> in the DOM tree corresponds to it (has the same text
458
- content, and the correct class), and if not it can chop up the DOM
459
- nodes to conform to the tokens.</p>
460
-
461
- <p>Every time the parser yields a newline token, the highligher
462
- encounters a <code>br</code> element in the DOM stream. It takes the copy of the
463
- parser and the lexical context from this token and attaches them to
464
- the DOM node. This way, a new highlighting process can be started from
465
- that node by re-starting the copy of the parser with a new token
466
- stream, which reads tokens from the DOM nodes starting at that <code>br</code>
467
- element, and the indentation code can use the lexical context
468
- information to determine the correct indentation at that point.</p>
469
-
470
- <h2 id="selection">Selection woes</h2>
471
-
472
- <p>All the above can be done using the DOM interface that all major
473
- browsers have in common, and which is relatively free of weird bugs
474
- and abberrations. However, when the user is typing in new code, this
475
- must also be highlighted. For this to happen, the program must know
476
- where the cursor currently is, and because it mucks up the DOM tree,
477
- it has to restore this cursor position after doing the highlighting.</p>
478
-
479
- <p>Re-highlighting always happens per line, because the copy of the
480
- parser is stored only at the end of lines. Doing this every time the
481
- user presses a key is terribly slow and obnoxious, so what I did was
482
- keep a list of 'dirty' nodes, and as soon as the user didn't type
483
- anyting for 300 milliseconds the program starts re-highlighting these
484
- nodes. If it finds more than ten lines must be re-parsed, it does only
485
- ten and waits another 300 milliseconds before it continues, this way
486
- the browser never freezes up entirely.</p>
487
-
488
- <p>As mentioned earlier, Internet Explorer's selection model is not the
489
- most practical one. My attempts to build a wrapper that makes it look
490
- like the W3C model all stranded. In the end I came to the conclusion
491
- that I only needed two operations:</p>
492
-
493
- <ul>
494
- <li>Creating a selection 'snapshot' that can be restored after
495
- highlighting, in such a way that it still works if some of the nodes
496
- that were selected are replaced by other nodes with the same
497
- size but a different structure.</li>
498
- <li>Finding the top-level node around or before the cursor, to mark it
499
- dirty or to insert indentation whitespace at the start of that line.</li>
500
- </ul>
501
-
502
- <p>It turns out that the pixel-based selection model that Internet
503
- Explorer uses, which always seemed completely ludricrous to me, is
504
- perfect for the first case. Since the DOM transformation (generally)
505
- does not change the position of things, storing the pixel offsets of
506
- the selection makes it possible to restore that same selection, never
507
- mind what happened to the underlying DOM structure.</p>
508
-
509
- <p>[Later addition: Note that this, due to the very random design
510
- of the <a
511
- href="http://msdn2.microsoft.com/en-us/library/ms535872(VS.85).aspx#">TextRange
512
- interface</a>, only really works when the whole selection falls
513
- within the visible part of the document.]</p>
514
-
515
- <p>Doing the same with the W3C selection model is a lot harder. What I
516
- ended up with was this:</p>
517
-
518
- <ul>
519
- <li>Create an object pointing to the nodes at the start and end of the
520
- selection, and the offset within those nodes. This is basically the
521
- information that the <code>Range</code> object gives you.</li>
522
- <li>Make references from these nodes back to that object.</li>
523
- <li>When replacing (part of) a node with another one, check for such a
524
- reference, and when it is present, check whether this new node will
525
- get the selection. If it does, move the reference from the old to the
526
- new node, if it does not, adjust the offset in the selection object to
527
- reflect the fact that part of the old node has been replaced.</li>
528
- </ul>
529
-
530
- <p>Now in the second case (getting the top-level node at the
531
- cursor) the Internet Explorer cheat does not work. In the W3C
532
- model this is rather easy, you have to do some creative parent-
533
- and sibling-pointer following to arrive at the correct top-level
534
- node, but nothing weird. In Internet Explorer, all we have to go
535
- on is the <code>parentElement</code> method on a
536
- <code>TextRange</code>, which gives the first element that
537
- completely envelops the selection. If the cursor is inside a text
538
- node, this is good, that text node tells us where we are. If the
539
- cursor is between nodes, for example between two <code>br</code>
540
- nodes, you get to top-level node itself back, which is remarkably
541
- useless. In cases like this I stoop to a rather ugly hack (which
542
- fortunately turned out to be acceptably fast) &#x2015; I create a
543
- temporary empty <code>span</code> with an ID inside the selection,
544
- get a reference to this <code>span</code> by ID, take its
545
- <code>previousSibling</code>, and remove it again.</p>
546
-
547
- <p>Unfortunately, Opera's selection implementation is buggy, and it
548
- will give wildly incorrect <code>Range</code> objects when the cursor
549
- is between two nodes. This is a bit of a showstopper, and until I find
550
- a workaround for that or it gets fixed, the highlighter doesn't work
551
- properly in Opera.</p>
552
-
553
- <p>Also, when one presses enter in a <code>designMode</code>
554
- document in Firefox or Opera, a <code>br</code> tag is inserted.
555
- In Internet Explorer, pressing enter causes some maniacal gnome to
556
- come out and start wrapping all the content before and after the
557
- cursor in <code>p</code> tags. I suppose there is something to be
558
- said for that, in principle, though if you saw the tag soup of
559
- <code>font</code>s and nested paragraphs Internet Explorer
560
- generates you would soon enough forget all about principle.
561
- Anyway, getting unwanted <code>p</code> tags slowed the
562
- highlighter down terribly &#x2015; it had to overhaul the whole
563
- DOM tree to remove them again, every time the user pressed enter.
564
- Fortunately I could fix this by capturing the enter presses and
565
- manually inserting a <code>br</code> tag at the cursor.</p>
566
-
567
- <p>On the subject of Internet Explorer's tag soup, here is an interesting
568
- anecdote: One time, when testing the effect that modifying the content
569
- of a selection had, I inspected the DOM tree and found a <code>"/B"</code>
570
- element. This was not a closing tag, there are no closing tags in the
571
- DOM tree, just elements. The <code>nodeName</code> of this element was actually
572
- <code>"/B"</code>. That was when I gave up any notions of ever understanding the
573
- profound mystery that is Internet Explorer.</p>
574
-
575
- <h2 id="closing">Closing thoughts</h2>
576
-
577
- <p>Well, I despaired at times, but I did end up with a working JavaScript
578
- editor. I did not keep track of the amount of time I wasted on this,
579
- but I would estimate it to be around fifty hours. Finding workarounds
580
- for browser bugs can be a terribly nonlinear process. I just spent
581
- half a day working on a weird glitch in Firefox that caused the cursor
582
- in the editable frame to be displayed 3/4 line too high when it was at
583
- the very end of the document. Then I found out that setting the
584
- style.display of the iframe to "block" fixed this (why not?). I'm
585
- amazed how often issues that seem hopeless do turn out to be
586
- avoidable, even if it takes hours of screwing around and some truly
587
- non-obvious ideas.</p>
588
-
589
- <p>For a lot of things, JavaScript + DOM elements are a surprisingly
590
- powerful platform. Simple interactive documents and forms can be
591
- written in browsers with very little effort, generally less than with
592
- most 'traditional' platforms (Java, Win32, things like WxWidgets).
593
- Libraries like Dojo (and a similar monster I once wrote myself) even
594
- make complex, composite widgets workable. However, when applications
595
- go sufficiently beyond the things that browsers were designed for, the
596
- available APIs do not give enough control, are nonstandard and buggy,
597
- and are often poorly designed. Because of this, writing such
598
- applications, when it is even possible, is <em>painful</em> process.</p>
599
-
600
- <p>And who likes pain? Sure, when finding that crazy workaround,
601
- subdueing the damn browser, and getting everything to work, there
602
- is a certain macho thrill. But one can't help wondering how much
603
- easier things like preventing the user from pasting pictures in
604
- his source code would be on another platform. Maybe something like
605
- Silverlight or whatever other new browser plugin gizmos people are
606
- pushing these days will become the way to solve things like this
607
- in the future. But, personally, I would prefer for those browser
608
- companies to put some real effort into things like cleaning up and
609
- standardising shady things like <code>designMode</code>, fixing
610
- their bugs, and getting serious about ECMAScript 4.</p>
611
-
612
- <p>Which is probably not realistically going to happen anytime soon.</p>
613
-
614
- <hr/>
615
-
616
- <p>Some interesting projects similar to this:</p>
617
-
618
- <ul>
619
- <li><a href="http://www.ymacs.org">Ymacs</a></li>
620
- <li><a href="http://gpl.internetconnection.net/vi/">vi clone</a></li>
621
- <li><a href="http://robrohan.com/projects/9ne/">Emacs clone</a></li>
622
- <li><a href="http://codepress.sourceforge.net/">CodePress</a></li>
623
- <li><a href="http://www.codeide.com">CodeIDE</a></li>
624
- <li><a href="http://www.cdolivet.net/editarea">EditArea</a></li>
625
- </ul>
626
-
627
- <hr/>
628
-
629
- <p>If you have any remarks, criticism, or hints related to the
630
- above, drop me an e-mail at <a
631
- href="mailto:marijnh@gmail.com">marijnh@gmail.com</a>. If you say
632
- something generally interesting, I'll include your reaction here
633
- at the bottom of this page.</p>
634
-
635
- </div><div class="rightsmall blk">
636
-
637
- <p style="font-size: 80%">
638
- <b>Topics</b>: JavaScript, advanced browser weirdness, cool programming techniques<br/>
639
- <b>Audience</b>: Programmers, especially JavaScript programmers<br/>
640
- <b>Author</b>: Marijn Haverbeke<br/>
641
- <b>Date</b>: May 24th 2007
642
- </p>
643
-
644
- <h2>Contents</h2>
645
-
646
- <ul>
647
- <li><a href="#indent">Only Indentation</a></li>
648
- <li><a href="#designmode"><code>designMode</code></a></li>
649
- <li><a href="#parser">A Parser</a></li>
650
- <li><a href="#dom">DOM Nodes</a></li>
651
- <li><a href="#selection">Selection Woes</a></li>
652
- <li><a href="#closing">Closing Thoughts</a></li>
653
- </ul>
654
-
655
- <h2>Site</h2>
656
-
657
- <ul>
658
- <li><a href="index.html">Front Page</a></li>
659
- <li><a href="manual.html">User Manual</a></li>
660
- <li><a href="faq.html">FAQ</a></li>
661
- <li><a href="http://groups.google.com/group/codemirror">Google Group</a></li>
662
- <li><a href="compress.html">Compression Helper</a></li>
663
- </ul>
664
-
665
- </div></div>
666
-
667
- <div style="height: 2em">&nbsp;</div>
668
-
669
- <script type="text/javascript" src="css/font.js"></script>
670
-
671
- </body>
672
- </html>