erp_app 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (909) hide show
  1. data/README.md +3 -0
  2. data/app/controllers/erp_app/application_controller.rb +1 -0
  3. data/app/controllers/erp_app/desktop/base_controller.rb +1 -1
  4. data/app/controllers/erp_app/desktop/configuration_management/base_controller.rb +180 -0
  5. data/app/controllers/erp_app/desktop/configuration_management/options_controller.rb +55 -0
  6. data/app/controllers/erp_app/desktop/configuration_management/types_controller.rb +129 -0
  7. data/app/controllers/erp_app/desktop/control_panel/application_management_controller.rb +1 -1
  8. data/app/controllers/erp_app/desktop/control_panel/desktop_management_controller.rb +1 -1
  9. data/app/controllers/erp_app/desktop/control_panel/profile_management_controller.rb +14 -16
  10. data/app/controllers/erp_app/desktop/file_manager/base_controller.rb +5 -7
  11. data/app/controllers/erp_app/desktop/system_management/application_role_management_controller.rb +1 -1
  12. data/app/controllers/erp_app/desktop/user_management/application_management_controller.rb +9 -9
  13. data/app/controllers/erp_app/desktop/user_management/base_controller.rb +1 -1
  14. data/app/controllers/erp_app/desktop/user_management/role_management_controller.rb +13 -8
  15. data/app/controllers/erp_app/mobile/base_controller.rb +21 -0
  16. data/app/controllers/erp_app/mobile/login_controller.rb +11 -0
  17. data/app/controllers/erp_app/mobile/user_management/base_controller.rb +24 -0
  18. data/app/controllers/erp_app/organizer/base_controller.rb +6 -5
  19. data/app/controllers/erp_app/organizer/crm/base_controller.rb +117 -15
  20. data/app/controllers/erp_app/public_controller.rb +73 -6
  21. data/app/controllers/erp_app/shared/configuration_controller.rb +53 -0
  22. data/app/controllers/erp_app/widget_proxy_controller.rb +1 -1
  23. data/app/models/app_container.rb +8 -2
  24. data/app/models/application.rb +1 -1
  25. data/app/models/configuration.rb +129 -0
  26. data/app/models/configuration_item.rb +45 -0
  27. data/app/models/configuration_item_type.rb +96 -0
  28. data/app/models/configuration_item_type_configuration_option.rb +10 -0
  29. data/app/models/configuration_option.rb +20 -0
  30. data/app/models/desktop.rb +7 -10
  31. data/app/models/extensions/user.rb +41 -2
  32. data/app/models/mobile.rb +10 -0
  33. data/app/models/mobile_application.rb +6 -0
  34. data/app/models/organizer.rb +3 -6
  35. data/app/models/preference.rb +2 -2
  36. data/app/models/preference_type.rb +1 -1
  37. data/app/models/user_preference.rb +3 -3
  38. data/app/models/valid_configuration.rb +4 -0
  39. data/app/models/valid_preference_type.rb +2 -2
  40. data/app/observers/user_app_container_observer.rb +7 -2
  41. data/app/views/erp_app/desktop/base/index.erb +25 -32
  42. data/app/views/erp_app/login/index.erb +3 -3
  43. data/app/views/erp_app/mobile/base/index.erb +37 -0
  44. data/app/views/erp_app/mobile/login/index.erb +22 -0
  45. data/app/views/erp_app/mobile/user_management/base/index.html.erb +28 -0
  46. data/app/views/erp_app/organizer/base/get_party_details.erb +19 -0
  47. data/app/views/erp_app/organizer/base/index.erb +20 -23
  48. data/app/views/erp_app/widget_proxy/index.erb +1 -1
  49. data/config/routes.rb +22 -0
  50. data/db/data_migrations/20110728201729_erp_app_setup.rb +3 -1
  51. data/db/data_migrations/20120229160222_add_userinfo_widget.rb +30 -0
  52. data/db/data_migrations/20120405193721_create_party_and_role_type_for_communication_events.rb +10 -0
  53. data/db/data_migrations/20120411180756_create_user_management_mobile_application.rb +18 -0
  54. data/db/data_migrations/20120413000515_create_mobile_containers.rb +13 -0
  55. data/db/data_migrations/20120418164215_create_configuration_management_desktop_application.rb +22 -0
  56. data/db/data_migrations/upgrade/20120213182651_add_true_north_background.rb +16 -0
  57. data/db/migrate/20080805000096_base_app_framework.rb +125 -33
  58. data/db/migrate/20120316152543_add_is_template_to_configurations.rb +5 -0
  59. data/db/migrate/20120320182253_update_app_container.rb +20 -0
  60. data/db/migrate/20120325123722_remove_file_system_loader_column.rb +9 -0
  61. data/db/migrate/20120411151848_add_base_url_to_application.rb +5 -0
  62. data/db/migrate/20120427000446_add_user_defined_to_config_option.rb +17 -0
  63. data/db/migrate/20120429130430_update_configuration_join_tables.rb +16 -0
  64. data/db/migrate/upgrade/20120208201934_add_configuration_models.rb +109 -0
  65. data/db/migrate/upgrade/20120209194251_add_user_defined_to_config_type.rb +5 -0
  66. data/db/migrate/upgrade/20120210172929_add_config_types_to_configs.rb +23 -0
  67. data/lib/erp_app/application_resource_loader/base_loader.rb +17 -0
  68. data/lib/erp_app/application_resource_loader/{file_system_loader.rb → desktop_organizer_loader.rb} +15 -29
  69. data/lib/erp_app/application_resource_loader/mobile_loader.rb +46 -0
  70. data/lib/erp_app/application_resource_loader/shared_loader.rb +26 -0
  71. data/lib/erp_app/application_resource_loader.rb +4 -0
  72. data/lib/erp_app/config.rb +2 -2
  73. data/lib/erp_app/engine.rb +7 -4
  74. data/lib/erp_app/extensions/railties/action_view/base.rb +12 -0
  75. data/lib/erp_app/extensions/railties/action_view/helpers/active_ext_helper.rb +17 -0
  76. data/lib/erp_app/extensions/railties/action_view/helpers/extjs_helper.rb +45 -0
  77. data/lib/erp_app/extensions/railties/action_view/helpers/include_helper.rb +134 -0
  78. data/lib/erp_app/extensions/railties/action_view/helpers/tag_helper.rb +27 -0
  79. data/lib/erp_app/extensions.rb +1 -2
  80. data/lib/erp_app/version.rb +8 -1
  81. data/lib/erp_app/widgets/base.rb +50 -43
  82. data/lib/erp_app/widgets/javascript_loader.rb +13 -20
  83. data/lib/erp_app/widgets/loader.rb +126 -0
  84. data/lib/erp_app/widgets/railties/action_view/base.rb +8 -0
  85. data/lib/erp_app/widgets/railties/action_view/helpers/widget_helper.rb +57 -0
  86. data/lib/erp_app/widgets.rb +2 -2
  87. data/lib/erp_app.rb +3 -1
  88. data/lib/generators/cms_widget/templates/engine/engine_template.rb +0 -4
  89. data/lib/generators/cms_widget/templates/javascript/base.js.erb +2 -1
  90. data/lib/generators/desktop_application/USAGE +1 -1
  91. data/lib/generators/desktop_application/templates/controllers/controller_template.rb +7 -5
  92. data/lib/generators/desktop_application/templates/migrate/migration_template.rb +0 -4
  93. data/lib/generators/mobile_application/USAGE +24 -0
  94. data/lib/generators/mobile_application/mobile_application_generator.rb +27 -0
  95. data/lib/generators/mobile_application/templates/INSTALL +25 -0
  96. data/lib/generators/mobile_application/templates/controllers/controller_template.rb +11 -0
  97. data/lib/generators/mobile_application/templates/migrate/migration_template.rb +14 -0
  98. data/lib/generators/mobile_application/templates/public/app.js.erb +35 -0
  99. data/lib/generators/mobile_application/templates/views/index.html.erb +28 -0
  100. data/lib/generators/organizer_application/templates/controllers/controller_template.rb +9 -11
  101. data/public/images/icons/apartment/apartment_16x16.png +0 -0
  102. data/public/images/icons/apartment/apartment_24x24.png +0 -0
  103. data/public/images/icons/apartment/apartment_32x32.png +0 -0
  104. data/public/images/icons/apartment/apartment_48x48.png +0 -0
  105. data/public/images/wallpaper/truenorth.png +0 -0
  106. data/public/javascripts/erp_app/authentication/widget_manager.js +23 -2
  107. data/public/javascripts/erp_app/ckeditor/ckeditor.js +113 -111
  108. data/public/javascripts/erp_app/ckeditor/contents.css +2 -2
  109. data/public/javascripts/erp_app/ckeditor/lang/_translationstatus.txt +59 -59
  110. data/public/javascripts/erp_app/ckeditor/lang/af.js +1 -1
  111. data/public/javascripts/erp_app/ckeditor/lang/ar.js +1 -1
  112. data/public/javascripts/erp_app/ckeditor/lang/bg.js +1 -1
  113. data/public/javascripts/erp_app/ckeditor/lang/bn.js +1 -1
  114. data/public/javascripts/erp_app/ckeditor/lang/bs.js +1 -1
  115. data/public/javascripts/erp_app/ckeditor/lang/ca.js +1 -1
  116. data/public/javascripts/erp_app/ckeditor/lang/cs.js +1 -1
  117. data/public/javascripts/erp_app/ckeditor/lang/cy.js +1 -1
  118. data/public/javascripts/erp_app/ckeditor/lang/da.js +1 -1
  119. data/public/javascripts/erp_app/ckeditor/lang/de.js +1 -1
  120. data/public/javascripts/erp_app/ckeditor/lang/el.js +1 -1
  121. data/public/javascripts/erp_app/ckeditor/lang/en-au.js +1 -1
  122. data/public/javascripts/erp_app/ckeditor/lang/en-ca.js +1 -1
  123. data/public/javascripts/erp_app/ckeditor/lang/en-gb.js +1 -1
  124. data/public/javascripts/erp_app/ckeditor/lang/en.js +1 -1
  125. data/public/javascripts/erp_app/ckeditor/lang/eo.js +1 -1
  126. data/public/javascripts/erp_app/ckeditor/lang/es.js +1 -1
  127. data/public/javascripts/erp_app/ckeditor/lang/et.js +1 -1
  128. data/public/javascripts/erp_app/ckeditor/lang/eu.js +1 -1
  129. data/public/javascripts/erp_app/ckeditor/lang/fa.js +1 -1
  130. data/public/javascripts/erp_app/ckeditor/lang/fi.js +1 -1
  131. data/public/javascripts/erp_app/ckeditor/lang/fo.js +1 -1
  132. data/public/javascripts/erp_app/ckeditor/lang/fr-ca.js +1 -1
  133. data/public/javascripts/erp_app/ckeditor/lang/fr.js +1 -1
  134. data/public/javascripts/erp_app/ckeditor/lang/gl.js +1 -1
  135. data/public/javascripts/erp_app/ckeditor/lang/gu.js +1 -1
  136. data/public/javascripts/erp_app/ckeditor/lang/he.js +1 -1
  137. data/public/javascripts/erp_app/ckeditor/lang/hi.js +1 -1
  138. data/public/javascripts/erp_app/ckeditor/lang/hr.js +1 -1
  139. data/public/javascripts/erp_app/ckeditor/lang/hu.js +1 -1
  140. data/public/javascripts/erp_app/ckeditor/lang/is.js +1 -1
  141. data/public/javascripts/erp_app/ckeditor/lang/it.js +1 -1
  142. data/public/javascripts/erp_app/ckeditor/lang/ja.js +1 -1
  143. data/public/javascripts/erp_app/ckeditor/lang/ka.js +1 -1
  144. data/public/javascripts/erp_app/ckeditor/lang/km.js +1 -1
  145. data/public/javascripts/erp_app/ckeditor/lang/ko.js +1 -1
  146. data/public/javascripts/erp_app/ckeditor/lang/lt.js +1 -1
  147. data/public/javascripts/erp_app/ckeditor/lang/lv.js +1 -1
  148. data/public/javascripts/erp_app/ckeditor/lang/mn.js +1 -1
  149. data/public/javascripts/erp_app/ckeditor/lang/ms.js +1 -1
  150. data/public/javascripts/erp_app/ckeditor/lang/nb.js +1 -1
  151. data/public/javascripts/erp_app/ckeditor/lang/nl.js +1 -1
  152. data/public/javascripts/erp_app/ckeditor/lang/no.js +1 -1
  153. data/public/javascripts/erp_app/ckeditor/lang/pl.js +1 -1
  154. data/public/javascripts/erp_app/ckeditor/lang/pt-br.js +1 -1
  155. data/public/javascripts/erp_app/ckeditor/lang/pt.js +1 -1
  156. data/public/javascripts/erp_app/ckeditor/lang/ro.js +1 -1
  157. data/public/javascripts/erp_app/ckeditor/lang/ru.js +1 -1
  158. data/public/javascripts/erp_app/ckeditor/lang/sk.js +1 -1
  159. data/public/javascripts/erp_app/ckeditor/lang/sl.js +1 -1
  160. data/public/javascripts/erp_app/ckeditor/lang/sr-latn.js +1 -1
  161. data/public/javascripts/erp_app/ckeditor/lang/sr.js +1 -1
  162. data/public/javascripts/erp_app/ckeditor/lang/sv.js +1 -1
  163. data/public/javascripts/erp_app/ckeditor/lang/th.js +1 -1
  164. data/public/javascripts/erp_app/ckeditor/lang/tr.js +1 -1
  165. data/public/javascripts/erp_app/ckeditor/lang/uk.js +1 -1
  166. data/public/javascripts/erp_app/ckeditor/lang/vi.js +1 -1
  167. data/public/javascripts/erp_app/ckeditor/lang/zh-cn.js +1 -1
  168. data/public/javascripts/erp_app/ckeditor/lang/zh.js +1 -1
  169. data/public/javascripts/erp_app/ckeditor/plugins/autogrow/plugin.js +1 -1
  170. data/public/javascripts/erp_app/ckeditor/plugins/docprops/dialogs/docprops.js +2 -2
  171. data/public/javascripts/erp_app/ckeditor/plugins/find/dialogs/find.js +5 -5
  172. data/public/javascripts/erp_app/ckeditor/plugins/flash/dialogs/flash.js +1 -1
  173. data/public/javascripts/erp_app/ckeditor/plugins/forms/dialogs/textarea.js +1 -1
  174. data/public/javascripts/erp_app/ckeditor/plugins/image/dialogs/image.js +1 -1
  175. data/public/javascripts/erp_app/ckeditor/plugins/link/dialogs/link.js +1 -1
  176. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/codemirror_config.js +85 -0
  177. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/editor.css +96 -0
  178. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/buttonbg.gif +0 -0
  179. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/cancel.png +0 -0
  180. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/highlight.png +0 -0
  181. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/redo.png +0 -0
  182. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/reindent.png +0 -0
  183. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/save.png +0 -0
  184. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/search.png +0 -0
  185. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/images/undo.png +0 -0
  186. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/config/nocolors.css +24 -0
  187. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/LICENSE +23 -0
  188. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/bigtest.html +1296 -0
  189. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/compress.html +169 -0
  190. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/css/csharpcolors.css +60 -0
  191. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/index.html +61 -0
  192. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/js/parsecsharp.js +329 -0
  193. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/csharp/js/tokenizecsharp.js +196 -0
  194. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/LICENSE +24 -0
  195. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/css/freemarkercolors.css +63 -0
  196. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/index.html +75 -0
  197. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/freemarker/js/parsefreemarker.js +380 -0
  198. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/groovy/index.html +57 -0
  199. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/LICENSE +20 -0
  200. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/css/javacolors.css +64 -0
  201. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/index.html +66 -0
  202. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/js/parsejava.js +285 -0
  203. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/java/js/tokenizejava.js +222 -0
  204. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/LICENSE +32 -0
  205. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/css/luacolors.css +63 -0
  206. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/index.html +68 -0
  207. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/lua/js/parselua.js +254 -0
  208. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/LICENSE +23 -0
  209. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/css/ometacolors.css +63 -0
  210. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/index.html +77 -0
  211. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/js/parseometa.js +364 -0
  212. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/ometa/js/tokenizeometa.js +209 -0
  213. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/LICENSE +37 -0
  214. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/css/phpcolors.css +114 -0
  215. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/index.html +310 -0
  216. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/js/parsephp.js +419 -0
  217. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/js/parsephphtmlmixed.js +116 -0
  218. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/php/js/tokenizephp.js +1208 -0
  219. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/LICENSE +22 -0
  220. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/css/plsqlcolors.css +57 -0
  221. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/index.html +67 -0
  222. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/plsql/js/parseplsql.js +233 -0
  223. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/LICENSE +32 -0
  224. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/css/pythoncolors.css +58 -0
  225. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/index.html +141 -0
  226. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/python/js/parsepython.js +541 -0
  227. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/css/js-regexcolors.css +214 -0
  228. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/css/regexcolors.css +214 -0
  229. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/index.html +114 -0
  230. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js/parsejavascript_and_regex.js +91 -0
  231. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js/parseregex-unicode.js +284 -0
  232. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js/parseregex.js +847 -0
  233. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/regex/js-regex.html +118 -0
  234. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/LICENSE +23 -0
  235. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/css/schemecolors.css +45 -0
  236. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/index.html +82 -0
  237. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/js/parsescheme.js +428 -0
  238. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/scheme/js/tokenizescheme.js +241 -0
  239. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/LICENSE +22 -0
  240. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/css/sqlcolors.css +59 -0
  241. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/index.html +56 -0
  242. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/sql/js/parsesql.js +267 -0
  243. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/LICENSE +13 -0
  244. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/css/xqcolors-dark.css +93 -0
  245. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/css/xqcolors.css +99 -0
  246. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/css/xqcolors2.css +96 -0
  247. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/index.html +552 -0
  248. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/js/parsexquery.js +234 -0
  249. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/contrib/xquery/js/tokenizexquery.js +457 -0
  250. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/baboon.png +0 -0
  251. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/baboon_vector.ai +965 -0
  252. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/csscolors.css +55 -0
  253. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/docs.css +158 -0
  254. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/font.js +15 -0
  255. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/jscolors.css +59 -0
  256. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/people.jpg +0 -0
  257. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/sparqlcolors.css +43 -0
  258. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/css/xmlcolors.css +55 -0
  259. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/csstest.html +60 -0
  260. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/faq.html +86 -0
  261. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/favicon.ico +0 -0
  262. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/googleb196c451afc2ee11.html +1 -0
  263. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/googlehostedservice.html +1 -0
  264. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/highlight.html +82 -0
  265. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/htmltest.html +53 -0
  266. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/index.html +254 -0
  267. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/codemirror.js +582 -0
  268. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/editor.js +1670 -0
  269. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/highlight.js +68 -0
  270. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/mirrorframe.js +81 -0
  271. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsecss.js +161 -0
  272. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsedummy.js +32 -0
  273. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsehtmlmixed.js +93 -0
  274. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsejavascript.js +359 -0
  275. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsesparql.js +162 -0
  276. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/parsexml.js +291 -0
  277. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/select.js +697 -0
  278. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/stringstream.js +159 -0
  279. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/tokenize.js +57 -0
  280. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/tokenizejavascript.js +174 -0
  281. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/undo.js +413 -0
  282. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/unittests.js +44 -0
  283. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/js/util.js +133 -0
  284. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/jstest.html +56 -0
  285. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/manual.html +806 -0
  286. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/mixedtest.html +52 -0
  287. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/sparqltest.html +41 -0
  288. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/story.html +672 -0
  289. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/unittests.html +125 -0
  290. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/editor/xhtmltest.xhtml +50 -0
  291. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/lang/de.js +20 -0
  292. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/codemirror/lang/en.js +20 -0
  293. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/dialogs/sourcepopup.js +102 -0
  294. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/lang/de.js +9 -0
  295. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/lang/en.js +9 -0
  296. data/public/javascripts/erp_app/ckeditor/plugins/sourcepopup/plugin.js +27 -0
  297. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/dialogs/specialchar.js +1 -1
  298. data/public/javascripts/erp_app/ckeditor/plugins/specialchar/lang/en.js +1 -1
  299. data/public/javascripts/erp_app/ckeditor/plugins/table/dialogs/table.js +4 -4
  300. data/public/javascripts/erp_app/ckeditor/plugins/wsc/dialogs/wsc.js +1 -1
  301. data/public/javascripts/erp_app/ckeditor/skins/kama/dialog.css +1 -1
  302. data/public/javascripts/erp_app/ckeditor/skins/kama/editor.css +3 -3
  303. data/public/javascripts/erp_app/ckeditor/skins/office2003/dialog.css +1 -1
  304. data/public/javascripts/erp_app/ckeditor/skins/office2003/editor.css +1 -1
  305. data/public/javascripts/erp_app/ckeditor/skins/v2/dialog.css +1 -1
  306. data/public/javascripts/erp_app/ckeditor/skins/v2/editor.css +1 -1
  307. data/public/javascripts/erp_app/ckeditor/themes/default/theme.js +2 -2
  308. data/public/javascripts/erp_app/ckeditor_example_config_override.js +44 -0
  309. data/public/javascripts/erp_app/desktop/applications/configuration_management/configuration_options_panel.js +229 -0
  310. data/public/javascripts/erp_app/desktop/applications/configuration_management/configuration_tree_panel.js +482 -0
  311. data/public/javascripts/erp_app/desktop/applications/configuration_management/configuration_types_panel.js +425 -0
  312. data/public/javascripts/erp_app/desktop/applications/configuration_management/module.js +95 -0
  313. data/public/javascripts/erp_app/desktop/applications/configuration_management/stores.0.js +68 -0
  314. data/public/javascripts/erp_app/desktop/applications/control_panel/application_management_panel.js +2 -1
  315. data/public/javascripts/erp_app/desktop/applications/control_panel/module.js +48 -47
  316. data/public/javascripts/erp_app/desktop/applications/control_panel/profile_management_panel.js +141 -84
  317. data/public/javascripts/erp_app/desktop/applications/file_manager/module.js +1 -2
  318. data/public/javascripts/erp_app/desktop/applications/scaffold/models_tree_panel.js +1 -2
  319. data/public/javascripts/erp_app/desktop/applications/system_management/application_role_management_panel.js +1 -2
  320. data/public/javascripts/erp_app/desktop/applications/user_management/module.js +10 -6
  321. data/public/javascripts/erp_app/desktop/applications/user_management/role_management_panel.js +3 -9
  322. data/public/javascripts/erp_app/desktop/applications/user_management/user_application_mgt_panel.js +4 -10
  323. data/public/javascripts/erp_app/ecommerce/credit_card_window.js +1 -1
  324. data/public/javascripts/erp_app/jquery_support.js +5 -5
  325. data/public/javascripts/erp_app/login/mobile.js +52 -0
  326. data/public/javascripts/erp_app/mobile/app.js +46 -0
  327. data/public/javascripts/erp_app/mobile/applications/user_management/app/model/user.js +14 -0
  328. data/public/javascripts/erp_app/mobile/applications/user_management/app/store/users.js +19 -0
  329. data/public/javascripts/erp_app/mobile/applications/user_management/app/view/templates.js +24 -0
  330. data/public/javascripts/erp_app/mobile/applications/user_management/app.js +168 -0
  331. data/public/javascripts/erp_app/mobile/mobile_base.js +10 -0
  332. data/public/javascripts/erp_app/organizer/applications/crm/base.js +415 -117
  333. data/public/javascripts/erp_app/organizer/applications/crm/contact_mechanism_grid.js +8 -1
  334. data/public/javascripts/erp_app/organizer/applications/crm/party_grid.js +33 -36
  335. data/public/javascripts/erp_app/organizer/applications/crm/userinfo.js +215 -0
  336. data/public/javascripts/erp_app/organizer/layout.js +9 -11
  337. data/public/javascripts/erp_app/shared/active_ext/active_ext_grid.js +1 -2
  338. data/public/javascripts/erp_app/shared/active_ext/active_ext_grid_panel.js +2 -3
  339. data/public/javascripts/erp_app/shared/compass_ckeditor.js +7 -6
  340. data/public/javascripts/erp_app/shared/compass_codemirror.js +161 -162
  341. data/public/javascripts/erp_app/shared/configuration/configuration_form.js +278 -0
  342. data/public/javascripts/erp_app/shared/configuration/configuration_panel.js +109 -0
  343. data/public/javascripts/erp_app/{coolclock → shared/coolclock}/coolclock.js +0 -0
  344. data/public/javascripts/erp_app/{coolclock → shared/coolclock}/moreskins.js +0 -0
  345. data/public/javascripts/erp_app/{coolclock → shared/coolclock}/tray_clock.js +0 -0
  346. data/public/javascripts/erp_app/shared/dynamic_editable_grid.js +29 -28
  347. data/public/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js +3 -3
  348. data/public/javascripts/erp_app/shared/file_manager_tree.js +41 -25
  349. data/public/javascripts/erp_app/shared/file_upload/Ext.ux.AwesomeUploader.js +1 -1
  350. data/public/javascripts/erp_app/shared/file_upload/Ext.ux.XHRUpload.js +1 -1
  351. data/public/javascripts/erp_app/shared/file_upload/upload_window.js +245 -242
  352. data/public/javascripts/erp_app/shared/google_map_panel.js +82 -83
  353. data/public/javascripts/erp_app/shared/notes_grid.js +1 -2
  354. data/public/javascripts/erp_app/shared/preference_form.js +3 -5
  355. data/public/javascripts/erp_app/tinymce/Ext.ux.TinyMCE.js +689 -0
  356. data/public/javascripts/erp_app/tinymce/center_region.js +611 -0
  357. data/public/javascripts/erp_app/utility.js +284 -246
  358. data/public/javascripts/erp_app/widgets.js +39 -35
  359. data/public/javascripts/extjs/Ext.ux.form.MultiSelect.js +422 -0
  360. data/public/javascripts/extjs/ext-all-debug.js +15973 -12927
  361. data/public/javascripts/extjs/ext-all.js +1 -1
  362. data/public/javascripts/extjs/overrides.js +61 -0
  363. data/public/javascripts/sencha_touch/sencha-touch-all-debug.js +78370 -0
  364. data/public/javascripts/sencha_touch/sencha-touch-all.js +15 -0
  365. data/public/stylesheets/erp_app/mobile/applications/user_management/main.css +5 -0
  366. data/public/stylesheets/erp_app/mobile/mobile.css +336 -0
  367. data/public/stylesheets/erp_app/{compass-ext-all.css → shared/compass-ext-all.css} +37 -1
  368. data/public/stylesheets/extjs/resources/css/ext-all-access.css +1 -1
  369. data/public/stylesheets/extjs/resources/css/ext-all-gray.css +1 -1
  370. data/public/stylesheets/extjs/resources/css/ext-all-scoped.css +1 -1
  371. data/public/stylesheets/extjs/resources/css/ext-all.css +1 -1
  372. data/public/stylesheets/extjs/resources/css/ext-ie-scoped.css +1 -1
  373. data/public/stylesheets/extjs/resources/css/ext-ie.css +1 -1
  374. data/public/stylesheets/extjs/resources/css/ext-sandbox.css +1 -1
  375. data/public/stylesheets/extjs/resources/css/ext-standard-scoped.css +1 -1
  376. data/public/stylesheets/extjs/resources/css/ext-standard.css +1 -1
  377. data/public/stylesheets/extjs/resources/sass/ext-all-access.scss +7 -0
  378. data/public/stylesheets/extjs/resources/sass/ext-all-gray.scss +6 -0
  379. data/public/stylesheets/extjs/resources/themes/images/access/boundlist/trigger-arrow.png +0 -0
  380. data/public/stylesheets/extjs/resources/themes/images/access/grid/refresh-disabled.gif +0 -0
  381. data/public/stylesheets/extjs/resources/themes/images/access/tab-bar/{tab-bar-bg.gif → tab-bar-default-bg.gif} +0 -0
  382. data/public/stylesheets/extjs/resources/themes/images/access/tree/drop-above.gif +0 -0
  383. data/public/stylesheets/extjs/resources/themes/images/access/tree/drop-append.gif +0 -0
  384. data/public/stylesheets/extjs/resources/themes/images/access/tree/drop-below.gif +0 -0
  385. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif +0 -0
  386. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif +0 -0
  387. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-large-pressed-corners.gif +0 -0
  388. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-medium-focus-corners.gif +0 -0
  389. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-medium-over-corners.gif +0 -0
  390. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-corners.gif +0 -0
  391. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif +0 -0
  392. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif +0 -0
  393. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif +0 -0
  394. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-corners.gif +0 -0
  395. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-corners.gif +0 -0
  396. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif +0 -0
  397. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif +0 -0
  398. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif +0 -0
  399. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-corners.gif +0 -0
  400. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif +0 -0
  401. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif +0 -0
  402. data/public/stylesheets/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif +0 -0
  403. data/public/stylesheets/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-corners.gif +0 -0
  404. data/public/stylesheets/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-sides.gif +0 -0
  405. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif +0 -0
  406. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif +0 -0
  407. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif +0 -0
  408. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif +0 -0
  409. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif +0 -0
  410. data/public/stylesheets/extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif +0 -0
  411. data/public/stylesheets/extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif +0 -0
  412. data/public/stylesheets/extjs/resources/themes/images/default/tip/tip-corners.gif +0 -0
  413. data/public/stylesheets/extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif +0 -0
  414. data/public/stylesheets/extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif +0 -0
  415. data/public/stylesheets/extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif +0 -0
  416. data/public/stylesheets/extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif +0 -0
  417. data/public/stylesheets/extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif +0 -0
  418. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/_all.scss +3 -0
  419. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/_mixins.scss +6 -3
  420. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/core/_core.scss +17 -17
  421. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/core/_reset.scss +17 -7
  422. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/layout/_layout.scss +10 -6
  423. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/mixins/_frame.scss +4 -4
  424. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/mixins/_reset-extras.scss +144 -0
  425. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/mixins/_theme-background-image.scss +8 -4
  426. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/util/_dragdrop.scss +3 -3
  427. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/util/_messagebox.scss +5 -5
  428. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/util/_resizable.scss +6 -6
  429. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/util/_splitter.scss +8 -8
  430. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/util/_tool.scss +1 -1
  431. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/variables/_core.scss +1 -1
  432. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/variables/_menu.scss +1 -0
  433. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_button.scss +38 -27
  434. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_datepicker.scss +7 -7
  435. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_drawcomponent.scss +1 -5
  436. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_grid.scss +56 -57
  437. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_loadmask.scss +1 -1
  438. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_menu.scss +22 -16
  439. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_panel.scss +10 -4
  440. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_progress-bar.scss +2 -1
  441. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_qtip.scss +1 -1
  442. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_slider.scss +9 -11
  443. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_tab.scss +68 -43
  444. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_tabbar.scss +1 -1
  445. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_toolbar.scss +3 -3
  446. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/_tree.scss +48 -31
  447. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_all.scss +4 -2
  448. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_checkbox.scss +3 -2
  449. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_checkboxgroup.scss +3 -2
  450. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_field.scss +3 -3
  451. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_fieldset.scss +1 -5
  452. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_htmleditor.scss +16 -15
  453. data/public/stylesheets/extjs/resources/themes/stylesheets/ext4/default/widgets/form/_triggerfield.scss +10 -10
  454. data/public/stylesheets/extjs/resources/themes/templates/resources/sass/config.rb +2 -4
  455. data/public/stylesheets/extjs/resources/themes/templates/resources/sass/my-ext-theme.scss +1 -0
  456. data/public/stylesheets/sencha_touch/resources/css/android.css +1 -0
  457. data/public/stylesheets/sencha_touch/resources/css/apple.css +1 -0
  458. data/public/stylesheets/sencha_touch/resources/css/bb6.css +1 -0
  459. data/public/stylesheets/sencha_touch/resources/css/sencha-touch.css +1 -0
  460. data/public/stylesheets/sencha_touch/resources/css/touch-charts.css +1 -0
  461. data/public/stylesheets/sencha_touch/resources/css-debug/android.css +6757 -0
  462. data/public/stylesheets/sencha_touch/resources/css-debug/apple.css +6766 -0
  463. data/public/stylesheets/sencha_touch/resources/css-debug/bb6.css +6352 -0
  464. data/public/stylesheets/sencha_touch/resources/css-debug/sencha-touch.css +6755 -0
  465. data/public/stylesheets/sencha_touch/resources/images/icon1.png +0 -0
  466. data/public/stylesheets/sencha_touch/resources/images/icon2.png +0 -0
  467. data/public/stylesheets/sencha_touch/resources/images/icon3.png +0 -0
  468. data/public/stylesheets/sencha_touch/resources/images/icon4.png +0 -0
  469. data/public/stylesheets/sencha_touch/resources/images/welcome.png +0 -0
  470. data/public/stylesheets/sencha_touch/resources/sass/android.scss +37 -0
  471. data/public/stylesheets/sencha_touch/resources/sass/apple.scss +39 -0
  472. data/public/stylesheets/sencha_touch/resources/sass/bb6.scss +66 -0
  473. data/public/stylesheets/sencha_touch/resources/sass/config-debug.rb +11 -0
  474. data/public/stylesheets/sencha_touch/resources/sass/config.rb +11 -0
  475. data/public/stylesheets/sencha_touch/resources/sass/sencha-touch.scss +18 -0
  476. data/public/stylesheets/sencha_touch/resources/themes/compass_init.rb +6 -0
  477. data/public/stylesheets/sencha_touch/resources/themes/images/default/check.png +0 -0
  478. data/public/stylesheets/sencha_touch/resources/themes/images/default/clear_icon.png +0 -0
  479. data/public/stylesheets/sencha_touch/resources/themes/images/default/disclosure.png +0 -0
  480. data/public/stylesheets/sencha_touch/resources/themes/images/default/disclosure2.png +0 -0
  481. data/public/stylesheets/sencha_touch/resources/themes/images/default/dotgrid.png +0 -0
  482. data/public/stylesheets/sencha_touch/resources/themes/images/default/loading.gif +0 -0
  483. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/action.png +0 -0
  484. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/add.png +0 -0
  485. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/add1.png +0 -0
  486. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/add_black.png +0 -0
  487. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/address_book.png +0 -0
  488. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/arrow_down.png +0 -0
  489. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/arrow_left.png +0 -0
  490. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/arrow_right.png +0 -0
  491. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/arrow_up.png +0 -0
  492. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/at.png +0 -0
  493. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/atom.png +0 -0
  494. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/attachment.png +0 -0
  495. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/attachment2.png +0 -0
  496. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/attachment3.png +0 -0
  497. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/attachment_black.png +0 -0
  498. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/backspace.png +0 -0
  499. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/battery_full.png +0 -0
  500. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/battery_low.png +0 -0
  501. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/battery_power.png +0 -0
  502. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/blank.png +0 -0
  503. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bolt.png +0 -0
  504. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bolt_side.png +0 -0
  505. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bookmark1.png +0 -0
  506. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bookmark2.png +0 -0
  507. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bookmark_black.png +0 -0
  508. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bookmarks.png +0 -0
  509. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/briefcase1.png +0 -0
  510. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/briefcase2.png +0 -0
  511. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/brightness1.png +0 -0
  512. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/brightness2.png +0 -0
  513. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/broadcast.png +0 -0
  514. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bug.png +0 -0
  515. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bulb.png +0 -0
  516. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bullseye1.png +0 -0
  517. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/bullseye2.png +0 -0
  518. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/calendar.png +0 -0
  519. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/calendar2.png +0 -0
  520. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/calendar_add.png +0 -0
  521. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/card1.png +0 -0
  522. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/card2.png +0 -0
  523. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chart1.png +0 -0
  524. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chart2.png +0 -0
  525. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chart3.png +0 -0
  526. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat.png +0 -0
  527. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat1.png +0 -0
  528. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat2.png +0 -0
  529. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat3.png +0 -0
  530. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat4.png +0 -0
  531. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat_black1.png +0 -0
  532. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/chat_black2.png +0 -0
  533. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/check1.png +0 -0
  534. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/check2.png +0 -0
  535. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/check_black1.png +0 -0
  536. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/check_black2.png +0 -0
  537. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/check_dotted.png +0 -0
  538. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/circle.png +0 -0
  539. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/circle2.png +0 -0
  540. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/clash.png +0 -0
  541. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud.png +0 -0
  542. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud_black.png +0 -0
  543. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud_black_upload1.png +0 -0
  544. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud_black_upload2.png +0 -0
  545. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud_bolt.png +0 -0
  546. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cloud_download.png +0 -0
  547. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/code1.png +0 -0
  548. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/code2.png +0 -0
  549. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/code3.png +0 -0
  550. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compass1.png +0 -0
  551. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compass2.png +0 -0
  552. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compass3.png +0 -0
  553. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compose.png +0 -0
  554. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compose1.png +0 -0
  555. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compose2.png +0 -0
  556. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compose3.png +0 -0
  557. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/compose_black.png +0 -0
  558. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/contract.png +0 -0
  559. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/cube.png +0 -0
  560. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/data.png +0 -0
  561. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/delete.png +0 -0
  562. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/delete1.png +0 -0
  563. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/delete_black1.png +0 -0
  564. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/delete_black2.png +0 -0
  565. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc.png +0 -0
  566. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc2.png +0 -0
  567. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_black.png +0 -0
  568. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_black_landscape.png +0 -0
  569. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_compose1.png +0 -0
  570. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_compose2.png +0 -0
  571. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_delete.png +0 -0
  572. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_down.png +0 -0
  573. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_drawer.png +0 -0
  574. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_list.png +0 -0
  575. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_new.png +0 -0
  576. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_send.png +0 -0
  577. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/doc_up.png +0 -0
  578. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/docs1.png +0 -0
  579. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/docs2.png +0 -0
  580. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/docs_black1.png +0 -0
  581. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/docs_black2.png +0 -0
  582. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/download.png +0 -0
  583. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/download1.png +0 -0
  584. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/download2.png +0 -0
  585. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/download_screen.png +0 -0
  586. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/eject.png +0 -0
  587. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/empty1.png +0 -0
  588. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/empty2.png +0 -0
  589. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/equalizer1.png +0 -0
  590. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/equalizer2.png +0 -0
  591. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/event_complete.png +0 -0
  592. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/expand.png +0 -0
  593. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/favorites.png +0 -0
  594. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/favorites1.png +0 -0
  595. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/favorites_circle.png +0 -0
  596. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/fforward.png +0 -0
  597. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/find.png +0 -0
  598. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/flag.png +0 -0
  599. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/flickr2.png +0 -0
  600. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder.png +0 -0
  601. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_add.png +0 -0
  602. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_black.png +0 -0
  603. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_black_open.png +0 -0
  604. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_delete.png +0 -0
  605. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_delete2.png +0 -0
  606. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_lock.png +0 -0
  607. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/folder_open2.png +0 -0
  608. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/font.png +0 -0
  609. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/forbidden.png +0 -0
  610. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/forward_black.png +0 -0
  611. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/globe1.png +0 -0
  612. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/globe2.png +0 -0
  613. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/globe_black.png +0 -0
  614. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/headphones.png +0 -0
  615. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/heart.png +0 -0
  616. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/heart_circle.png +0 -0
  617. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/help.png +0 -0
  618. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/help_black.png +0 -0
  619. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/home.png +0 -0
  620. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/home2.png +0 -0
  621. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/hot.png +0 -0
  622. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/inbox1.png +0 -0
  623. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/inbox2.png +0 -0
  624. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/inbox3.png +0 -0
  625. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/infinite.png +0 -0
  626. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/infinite2.png +0 -0
  627. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/info.png +0 -0
  628. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/info2.png +0 -0
  629. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/info_plain.png +0 -0
  630. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/info_plain2.png +0 -0
  631. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/json.png +0 -0
  632. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/lab.png +0 -0
  633. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/layout.png +0 -0
  634. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/link1.png +0 -0
  635. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/link2.png +0 -0
  636. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/link_black.png +0 -0
  637. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/list.png +0 -0
  638. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/locate.png +0 -0
  639. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/locate1.png +0 -0
  640. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/locate2.png +0 -0
  641. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/locate3.png +0 -0
  642. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/locate4.png +0 -0
  643. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/lock_closed.png +0 -0
  644. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/lock_open.png +0 -0
  645. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/look.png +0 -0
  646. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/loop.png +0 -0
  647. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/loop2.png +0 -0
  648. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/loop_circle.png +0 -0
  649. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/magic.png +0 -0
  650. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail.png +0 -0
  651. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail1.png +0 -0
  652. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail2.png +0 -0
  653. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail3.png +0 -0
  654. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail4.png +0 -0
  655. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mail5.png +0 -0
  656. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/maps.png +0 -0
  657. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mic.png +0 -0
  658. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/minus1.png +0 -0
  659. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/minus2.png +0 -0
  660. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/minus_black1.png +0 -0
  661. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/minus_black2.png +0 -0
  662. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/monitor1.png +0 -0
  663. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/monitor2.png +0 -0
  664. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/monitor3.png +0 -0
  665. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/monitor4.png +0 -0
  666. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/more.png +0 -0
  667. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/mouse.png +0 -0
  668. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/move.png +0 -0
  669. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/music1.png +0 -0
  670. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/music2.png +0 -0
  671. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/nodes1.png +0 -0
  672. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/nodes2.png +0 -0
  673. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/note1.png +0 -0
  674. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/note2.png +0 -0
  675. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/note3.png +0 -0
  676. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/note_black.png +0 -0
  677. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/nuclear.png +0 -0
  678. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/organize.png +0 -0
  679. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/outbox.png +0 -0
  680. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/pause.png +0 -0
  681. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/phone1.png +0 -0
  682. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/phone2.png +0 -0
  683. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/phone_black.png +0 -0
  684. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/phone_ring1.png +0 -0
  685. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/phone_ring2.png +0 -0
  686. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photo1.png +0 -0
  687. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photo2.png +0 -0
  688. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photo3.png +0 -0
  689. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photo_black1.png +0 -0
  690. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photo_black2.png +0 -0
  691. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photos1.png +0 -0
  692. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photos2.png +0 -0
  693. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/photos4.png +0 -0
  694. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/piechart.png +0 -0
  695. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/play1.png +0 -0
  696. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/play2.png +0 -0
  697. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/play_black1.png +0 -0
  698. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/play_black2.png +0 -0
  699. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/podcast.png +0 -0
  700. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/power socket.png +0 -0
  701. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/power_on.png +0 -0
  702. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/print.png +0 -0
  703. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/print2.png +0 -0
  704. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/quote1.png +0 -0
  705. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/quote2.png +0 -0
  706. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/quote_black1.png +0 -0
  707. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/quote_black2.png +0 -0
  708. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/quote_black3.png +0 -0
  709. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/refresh.png +0 -0
  710. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/refresh1.png +0 -0
  711. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/refresh2.png +0 -0
  712. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/refresh3.png +0 -0
  713. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/refresh5.png +0 -0
  714. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/reply.png +0 -0
  715. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/replytoall.png +0 -0
  716. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/resize.png +0 -0
  717. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/resize_black.png +0 -0
  718. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rewind.png +0 -0
  719. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/right.png +0 -0
  720. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/right2.png +0 -0
  721. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rss.png +0 -0
  722. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rss2.png +0 -0
  723. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rss_black.png +0 -0
  724. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rss_black1.png +0 -0
  725. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/rss_black2.png +0 -0
  726. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/screens.png +0 -0
  727. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/search.png +0 -0
  728. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/search1.png +0 -0
  729. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/search2.png +0 -0
  730. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/search_black.png +0 -0
  731. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/server.png +0 -0
  732. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/servers.png +0 -0
  733. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings.png +0 -0
  734. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings1.png +0 -0
  735. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings10.png +0 -0
  736. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings11.png +0 -0
  737. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings3.png +0 -0
  738. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings4.png +0 -0
  739. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings5.png +0 -0
  740. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings6.png +0 -0
  741. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings7.png +0 -0
  742. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings8.png +0 -0
  743. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings9.png +0 -0
  744. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/settings_black.png +0 -0
  745. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/share.png +0 -0
  746. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/shield1.png +0 -0
  747. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/shield2.png +0 -0
  748. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/shop1.png +0 -0
  749. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/shop2.png +0 -0
  750. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/shuffle.png +0 -0
  751. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_backforth.png +0 -0
  752. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_cross.png +0 -0
  753. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_leftright.png +0 -0
  754. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_leftright2.png +0 -0
  755. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_split.png +0 -0
  756. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_switch.png +0 -0
  757. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sign_uturn.png +0 -0
  758. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/spaces1.png +0 -0
  759. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/spaces2.png +0 -0
  760. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/speedometer1.png +0 -0
  761. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/speedometer2.png +0 -0
  762. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/speedometer_black1.png +0 -0
  763. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/speedometer_black2.png +0 -0
  764. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/star.png +0 -0
  765. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/stop.png +0 -0
  766. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/stop1.png +0 -0
  767. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/stop2.png +0 -0
  768. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/sync.png +0 -0
  769. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tabbed_book.png +0 -0
  770. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tag.png +0 -0
  771. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tag_black.png +0 -0
  772. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tags.png +0 -0
  773. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/team.png +0 -0
  774. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/team1.png +0 -0
  775. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/time.png +0 -0
  776. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/time_repeat.png +0 -0
  777. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/trash.png +0 -0
  778. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/trash2.png +0 -0
  779. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/trash_black.png +0 -0
  780. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tree.png +0 -0
  781. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tv.png +0 -0
  782. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/tweak.png +0 -0
  783. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/twitter1.png +0 -0
  784. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/twitter2.png +0 -0
  785. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/up1.png +0 -0
  786. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/up2.png +0 -0
  787. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/up_black.png +0 -0
  788. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/upload2.png +0 -0
  789. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user.png +0 -0
  790. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user3.png +0 -0
  791. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_add.png +0 -0
  792. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_business.png +0 -0
  793. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_fave.png +0 -0
  794. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_list.png +0 -0
  795. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_list2.png +0 -0
  796. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_remote1.png +0 -0
  797. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_remove2.png +0 -0
  798. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/user_send.png +0 -0
  799. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/video.png +0 -0
  800. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/video_black1.png +0 -0
  801. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/video_black2.png +0 -0
  802. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/volume.png +0 -0
  803. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/volume_black.png +0 -0
  804. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/volume_down.png +0 -0
  805. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/volume_mute.png +0 -0
  806. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/volume_up.png +0 -0
  807. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/warming_dotted.png +0 -0
  808. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/warning_black.png +0 -0
  809. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/wifi.png +0 -0
  810. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/wifi2.png +0 -0
  811. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/wifi3.png +0 -0
  812. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/wifi4.png +0 -0
  813. data/public/stylesheets/sencha_touch/resources/themes/images/default/pictos/window.png +0 -0
  814. data/public/stylesheets/sencha_touch/resources/themes/images/default/pullarrow.png +0 -0
  815. data/public/stylesheets/sencha_touch/resources/themes/images/default/select_mask.png +0 -0
  816. data/public/stylesheets/sencha_touch/resources/themes/images/default/tip.png +0 -0
  817. data/public/stylesheets/sencha_touch/resources/themes/images/default/tip_horizontal.png +0 -0
  818. data/public/stylesheets/sencha_touch/resources/themes/images/default/tip_right.png +0 -0
  819. data/public/stylesheets/sencha_touch/resources/themes/images/default/togglebg.png +0 -0
  820. data/public/stylesheets/sencha_touch/resources/themes/images/default/togglemask.png +0 -0
  821. data/public/stylesheets/sencha_touch/resources/themes/images/default/togglethumb.png +0 -0
  822. data/public/stylesheets/sencha_touch/resources/themes/images/default/togglethumbbg.png +0 -0
  823. data/public/stylesheets/sencha_touch/resources/themes/images/default/togglethumbmask.png +0 -0
  824. data/public/stylesheets/sencha_touch/resources/themes/images/default/trackmask_outer.png +0 -0
  825. data/public/stylesheets/sencha_touch/resources/themes/lib/theme_images.rb +18 -0
  826. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_all.scss +2 -0
  827. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_core.scss +3 -0
  828. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_global.scss +2 -0
  829. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_mixins.scss +196 -0
  830. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_variables.scss +116 -0
  831. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/_widgets.scss +16 -0
  832. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/core/_core.scss +189 -0
  833. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/core/_layout.scss +362 -0
  834. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/core/_reset.scss +62 -0
  835. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_buttons.scss +354 -0
  836. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_carousel.scss +113 -0
  837. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_form-sliders-basic.scss +102 -0
  838. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_form-sliders.scss +149 -0
  839. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_form.scss +608 -0
  840. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_img.scss +5 -0
  841. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_indexbar.scss +76 -0
  842. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_list.scss +401 -0
  843. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_loading-spinner.scss +121 -0
  844. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_map.scss +11 -0
  845. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_media.scss +21 -0
  846. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_msgbox.scss +94 -0
  847. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_panel.scss +79 -0
  848. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_picker.scss +154 -0
  849. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_sheets.scss +52 -0
  850. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_tabs.scss +269 -0
  851. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_toolbar-forms.scss +182 -0
  852. data/public/stylesheets/sencha_touch/resources/themes/stylesheets/sencha-touch/default/widgets/_toolbar.scss +156 -0
  853. data/public/stylesheets/sencha_touch/resources/themes/templates/project/manifest.rb +1 -0
  854. data/public/stylesheets/sencha_touch/resources/themes/templates/project/sencha-touch.scss +17 -0
  855. metadata +3251 -2688
  856. data/README.rdoc +0 -2
  857. data/config/initializers/erp_app.rb +0 -4
  858. data/lib/erp_app/extensions/active_record/acts_as_app_container.rb +0 -72
  859. data/lib/erp_app/extensions/railties/action_view.rb +0 -110
  860. data/lib/erp_app/widgets/railties/action_view.rb +0 -36
  861. data/lib/erp_app/widgets/railties/engine.rb +0 -55
  862. data/public/images/icons/add/Thumbs.db +0 -0
  863. data/public/images/icons/calendar/Thumbs.db +0 -0
  864. data/public/images/icons/copy/Thumbs.db +0 -0
  865. data/public/images/icons/cut/Thumbs.db +0 -0
  866. data/public/images/icons/delete/Thumbs.db +0 -0
  867. data/public/images/icons/edit/Thumbs.db +0 -0
  868. data/public/images/icons/folder/Thumbs.db +0 -0
  869. data/public/images/icons/gear/Thumbs.db +0 -0
  870. data/public/images/icons/globe/Thumbs.db +0 -0
  871. data/public/images/icons/grid/Thumbs.db +0 -0
  872. data/public/images/icons/help/Thumbs.db +0 -0
  873. data/public/images/icons/information/Thumbs.db +0 -0
  874. data/public/images/icons/key/Thumbs.db +0 -0
  875. data/public/images/icons/log_out/Thumbs.db +0 -0
  876. data/public/images/icons/mail/Thumbs.db +0 -0
  877. data/public/images/icons/new/Thumbs.db +0 -0
  878. data/public/images/icons/next/Thumbs.db +0 -0
  879. data/public/images/icons/open/Thumbs.db +0 -0
  880. data/public/images/icons/paste/Thumbs.db +0 -0
  881. data/public/images/icons/picture/Thumbs.db +0 -0
  882. data/public/images/icons/presentation/Thumbs.db +0 -0
  883. data/public/images/icons/preview/Thumbs.db +0 -0
  884. data/public/images/icons/previous/Thumbs.db +0 -0
  885. data/public/images/icons/print/Thumbs.db +0 -0
  886. data/public/images/icons/properties/Thumbs.db +0 -0
  887. data/public/images/icons/redo/Thumbs.db +0 -0
  888. data/public/images/icons/refresh/Thumbs.db +0 -0
  889. data/public/images/icons/remove/Thumbs.db +0 -0
  890. data/public/images/icons/rename/Thumbs.db +0 -0
  891. data/public/images/icons/save/Thumbs.db +0 -0
  892. data/public/images/icons/search/Thumbs.db +0 -0
  893. data/public/images/icons/send/Thumbs.db +0 -0
  894. data/public/images/icons/settings/Thumbs.db +0 -0
  895. data/public/images/icons/synchronize/Thumbs.db +0 -0
  896. data/public/images/icons/undo/Thumbs.db +0 -0
  897. data/public/images/icons/upload/Thumbs.db +0 -0
  898. data/public/images/icons/user/Thumbs.db +0 -0
  899. data/public/images/icons/zoom_in/Thumbs.db +0 -0
  900. data/public/images/icons/zoom_out/Thumbs.db +0 -0
  901. data/public/javascripts/erp_app/ckeditor/plugins/jwplayer/jwplayer/Thumbs.db +0 -0
  902. data/public/javascripts/erp_app/shared/ajax_pagination.js +0 -33
  903. data/public/stylesheets/extjs/resources/themes/images/access/tab-bar/tab-bar-bg.png +0 -0
  904. data/public/stylesheets/extjs/resources/themes/templates/resources/css/my-ext-theme.css +0 -59
  905. data/spec/dummy/db/schema.rb +0 -709
  906. data/spec/dummy/db/spec.sqlite3 +0 -0
  907. data/spec/dummy/log/RAILS_ENV=spec.log +0 -0
  908. data/spec/dummy/log/development.log +0 -0
  909. data/spec/dummy/log/spec.log +0 -52150
@@ -0,0 +1,12 @@
1
+ #require all ActionView helper files
2
+ Dir.entries(File.join(File.dirname(__FILE__),"helpers")).delete_if{|name| name =~ /^\./}.each do |file|
3
+ require "erp_app/extensions/railties/action_view/helpers/#{file}"
4
+ end
5
+
6
+ ActionView::Base.class_eval do
7
+ include ErpApp::Extensions::Railties::ActionView::Helpers::IncludeHelper
8
+ include ErpApp::Extensions::Railties::ActionView::Helpers::TagHelper
9
+ include ErpApp::Extensions::Railties::ActionView::Helpers::ExtjsHelper
10
+ include ErpApp::Extensions::Railties::ActionView::Helpers::ActiveExtHelper
11
+
12
+ end
@@ -0,0 +1,17 @@
1
+ module ErpApp
2
+ module Extensions
3
+ module Railties
4
+ module ActionView
5
+ module Helpers
6
+ module ActiveExtHelper
7
+ #active_ext helper methods
8
+ def active_ext_close_button(options={})
9
+ raw "<input type=\"button\" class=\"#{options[:class]}\" value=\"Close\" onclick=\"parent.Compass.ErpApp.Shared.ActiveExt.closeWindow('#{@model.class.to_s.underscore + "_" + @model.id.to_s}')\" />"
10
+ end
11
+
12
+ end#ActiveExtHelper
13
+ end#Helpers
14
+ end#ActionView
15
+ end#Railties
16
+ end#Extensions
17
+ end#ErpApp
@@ -0,0 +1,45 @@
1
+ module ErpApp
2
+ module Extensions
3
+ module Railties
4
+ module ActionView
5
+ module Helpers
6
+ module ExtjsHelper
7
+
8
+ # example usage:
9
+ # <%= dynamic_extjs_grid({
10
+ # :title => 'Accounts',
11
+ # :renderTo => 'grid_target',
12
+ # :setupUrl => build_widget_url(:accounts_grid_setup),
13
+ # :dataUrl => build_widget_url(:accounts_grid_data),
14
+ # :width => 500,
15
+ # :height => 200,
16
+ # :page => true,
17
+ # :pageSize => 5,
18
+ # :displayMsg => 'Displaying {0} - {1} of {2}',
19
+ # :emptyMsg => 'Empty',
20
+ # :storeId => "my_unique_store_id" #this is an optional field
21
+ # }) %>
22
+ def dynamic_extjs_grid(options={})
23
+ options[:title] = '' if options[:title].blank?
24
+ options[:closable] = false if options[:closable].blank?
25
+ options[:collapsible] = false if options[:collapsible].blank?
26
+ options[:height] = 300 if options[:height].blank?
27
+
28
+ output = raw '<script type="text/javascript">'
29
+ output += raw "Compass.ErpApp.Utility.JsLoader.load([
30
+ '/javascripts/erp_app/shared/dynamic_editable_grid.js',
31
+ '/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js'],
32
+ function(){
33
+ Ext.create('Compass.ErpApp.Shared.DynamicEditableGridLoaderPanel', #{options.to_json} );
34
+ });"
35
+ output += raw '</script>'
36
+
37
+ output
38
+ end
39
+
40
+ end#ExtjsHelper
41
+ end#Helpers
42
+ end#ActionView
43
+ end#Railties
44
+ end#Extensions
45
+ end#ErpApp
@@ -0,0 +1,134 @@
1
+ module ErpApp
2
+ module Extensions
3
+ module Railties
4
+ module ActionView
5
+ module Helpers
6
+ module IncludeHelper
7
+
8
+ def static_javascript_include_tag(*srcs)
9
+ raw srcs.flatten.map{|src| "<script type=\"text/javascript\" src=\"/javascripts/#{src}\"></script>"}.join("")
10
+ end
11
+
12
+ def static_stylesheet_link_tag(*srcs)
13
+ raw srcs.flatten.map{|src| "<link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheets/#{src}\" />"}.join("")
14
+ end
15
+
16
+ def set_max_file_upload
17
+ raw "<script type='text/javascript'>Ext.ns('ErpApp.FileUpload'); ErpApp.FileUpload.maxSize = #{Rails.application.config.erp_tech_svcs.max_file_size_in_mb.megabytes};</script>"
18
+ end
19
+
20
+ def include_extjs(opt={})
21
+ resources = ''
22
+
23
+ if opt[:debug] or Rails.env != 'production'
24
+ resources << static_javascript_include_tag("extjs/ext-all-debug.js")
25
+ else
26
+ resources << static_javascript_include_tag("extjs/ext-all.js")
27
+ end
28
+
29
+ resources << static_javascript_include_tag("extjs/ext_ux_tab_close_menu.js")
30
+ resources << static_javascript_include_tag("extjs/Ext.ux.form.MultiSelect.js")
31
+
32
+ if opt[:theme] === false
33
+ #do nothing not theme loaded.
34
+ elsif opt[:theme]
35
+ resources << static_stylesheet_link_tag("extjs/resources/css/#{opt[:theme]}")
36
+ else
37
+ resources << static_stylesheet_link_tag("extjs/resources/css/ext-all.css")
38
+ end
39
+
40
+ raw resources
41
+ end
42
+
43
+ def include_sencha_touch(opt={})
44
+ resources = ''
45
+
46
+ if(opt[:debug])
47
+ resources << static_javascript_include_tag("sencha_touch/sencha-touch-all-debug.js")
48
+ else
49
+ resources << static_javascript_include_tag("sencha_touch/sencha-touch-all.js")
50
+ end
51
+
52
+ if opt[:theme] === false
53
+ #do nothing not theme loaded.
54
+ elsif opt[:theme]
55
+ resources << static_stylesheet_link_tag("sencha_touch/resources/css/#{opt[:theme]}")
56
+ else
57
+ resources << static_stylesheet_link_tag("sencha_touch/resources/css/sencha-touch.css")
58
+ resources << static_stylesheet_link_tag("sencha_touch/resources/css/apple.css")
59
+ end
60
+
61
+ raw resources
62
+ end
63
+
64
+ def include_highslide( options = {} )
65
+ raw case options[:version].to_s.downcase
66
+ when 'full'
67
+ static_javascript_include_tag("erp_app/highslide/highslide/highslide-full.js")
68
+ when 'gallery'
69
+ static_javascript_include_tag("erp_app/highslide/highslide/highslide-with-gallery.js")
70
+ when 'html'
71
+ static_javascript_include_tag("erp_app/highslide/highslide/highslide-with-html.js")
72
+ else
73
+ static_javascript_include_tag("erp_app/highslide/highslide/highslide.js")
74
+ end
75
+ end
76
+
77
+ def setup_js_authentication(user, app_container)
78
+ current_user = {
79
+ :username => user.username,
80
+ :lastloginAt => user.last_login_at,
81
+ :lastActivityAt => user.last_activity_at,
82
+ :failedLoginCount => user.failed_logins_count,
83
+ :email => user.email,
84
+ :roles => user.roles.collect{|role| role.internal_identifier},
85
+ :id => user.id,
86
+ :description => user.party.to_s
87
+ }
88
+ js_string = static_javascript_include_tag('erp_app/authentication/compass_user.js', 'erp_app/authentication/widget_manager.js')
89
+ js_string << (raw "<script type='text/javascript'>var applicationRoleManager = new ErpApp.CompassAccessNegotiator.ApplicationRoleManager(#{app_container.applications.collect{|application| application.to_access_hash}.to_json});var currentUser = new ErpApp.CompassAccessNegotiator.CompassUser(#{current_user.to_json}, applicationRoleManager);</script>")
90
+ js_string
91
+ end
92
+
93
+ def include_code_mirror_library
94
+ resources = static_javascript_include_tag("erp_app/codemirror/lib/codemirror.js")
95
+ resources << (raw "<link rel=\"stylesheet\" type=\"text/css\" href=\"/javascripts/erp_app/codemirror/lib/codemirror.css\" />")
96
+ resources << (raw "<link rel=\"stylesheet\" type=\"text/css\" href=\"/javascripts/erp_app/codemirror/theme/default.css\" />")
97
+ resources
98
+ end
99
+
100
+ def include_compass_ae_instance_about
101
+ compass_ae_instance = CompassAeInstance.first
102
+ json_hash = {
103
+ :version => compass_ae_instance.version,
104
+ :installedAt => compass_ae_instance.created_at.strftime("%B %d, %Y at %I:%M%p"),
105
+ :lastUpdateAt => compass_ae_instance.updated_at.strftime("%B %d, %Y at %I:%M%p"),
106
+ :installedEngines => compass_ae_instance.installed_engines
107
+ }
108
+ raw "<script type=\"text/javascript\">var compassAeInstance = #{json_hash.to_json};</script>"
109
+ end
110
+
111
+ def add_authenticity_token_to_extjs
112
+ raw "<script type='text/javascript'>Ext.Ajax.extraParams = { authenticity_token: '#{form_authenticity_token}' }; Compass.ErpApp.AuthentictyToken = '#{form_authenticity_token}';</script>"
113
+ end
114
+
115
+ def create_authenticity_token_sencha_touch_field
116
+ raw "<script type='text/javascript'>Compass.ErpApp.Mobile.AuthentictyTokenField = {xtype:'hiddenfield', name:'authenticity_token', value:'#{form_authenticity_token}'}; </script>"
117
+ end
118
+
119
+ def load_shared_application_resources(resource_type)
120
+ resource_type = resource_type.to_sym
121
+ case resource_type
122
+ when :javascripts
123
+ raw static_javascript_include_tag(ErpApp::ApplicationResourceLoader::SharedLoader.new.locate_shared_files(resource_type))
124
+ when :stylesheets
125
+ raw static_stylesheet_link_tag(ErpApp::ApplicationResourceLoader::SharedLoader.new.locate_shared_files(resource_type))
126
+ end
127
+ end
128
+
129
+ end#IncludeHelper
130
+ end#Helpers
131
+ end#ActionView
132
+ end#Railties
133
+ end#Extensions
134
+ end#ErpApp
@@ -0,0 +1,27 @@
1
+ module ErpApp
2
+ module Extensions
3
+ module Railties
4
+ module ActionView
5
+ module Helpers
6
+ module TagHelper
7
+ include ::ActionView::Helpers::UrlHelper
8
+ include ::ActionView::Helpers::TagHelper
9
+
10
+ def link_to_remote(name, url, options={})
11
+ options.merge!({:class => 'ajax_replace', :remote => true})
12
+ link_to name, url, options
13
+ end
14
+
15
+ def form_remote_tag(url, options={}, &block)
16
+ options.merge!({:class => 'ajax_replace', :remote => true})
17
+ form_tag url, options do
18
+ yield
19
+ end
20
+ end
21
+
22
+ end#TagHelper
23
+ end#Helpers
24
+ end#ActionView
25
+ end#Railties
26
+ end#Extensions
27
+ end#ErpApp
@@ -1,6 +1,5 @@
1
1
  #railties
2
- require 'erp_app/extensions/railties/action_view'
2
+ require 'erp_app/extensions/railties/action_view/base'
3
3
 
4
4
  #active record extensions
5
- require 'erp_app/extensions/active_record/acts_as_app_container'
6
5
  require 'erp_app/extensions/active_record/has_user_preferences'
@@ -1,3 +1,10 @@
1
1
  module ErpApp
2
- VERSION = "3.0.0"
2
+ module VERSION #:nodoc:
3
+ MAJOR = 3
4
+ MINOR = 0
5
+ TINY = 1
6
+
7
+ STRING = [MAJOR, MINOR, TINY].compact.join('.')
8
+ end
3
9
  end
10
+
@@ -16,49 +16,43 @@ module ErpApp
16
16
  include ActionController::Streaming
17
17
  include Rendering, Layouts, Helpers, Callbacks, Translation
18
18
  include ActionController::RequestForgeryProtection
19
-
19
+
20
20
  IGNORED_PARAMS = %w{action controller uuid widget_name widget_action dynamic_form_id dynamic_form_model_id model_name use_dynamic_form authenticity_token is_html_form commit utf8}
21
-
21
+
22
22
  delegate :config, :params, :session, :request, :logger, :logged_in?, :current_user, :flash, :update_div_id, :update_html, :current_theme_paths, :request, :send_data, :to => :controller
23
23
 
24
- attr_accessor :controller
25
24
  attr_reader :state_name
26
- attr_accessor :name
27
- attr_accessor :div_id
28
- attr_accessor :html
29
- attr_accessor :view
30
- attr_accessor :uuid
31
- attr_accessor :widget_params
25
+ attr_accessor :controller, :name, :div_id,:html, :view, :uuid, :widget_params
32
26
  cattr_accessor :view_resolver_cache
33
-
27
+
34
28
  def log(*args); end
35
-
29
+
36
30
  def process(*) # defined in AC::Metal.
37
31
  self.response_body = super
38
32
  end
39
33
 
40
- def initialize(controller, name, view, uuid, widget_params)
34
+ def initialize(controller=nil, name=nil, view=nil, uuid=nil, widget_params=nil, website=nil)
35
+ ErpApp::Widgets::Base.view_resolver_cache = [] if ErpApp::Widgets::Base.view_resolver_cache.nil?
41
36
  self.name = name
42
37
  self.controller = controller
43
38
  self.view = view
44
39
  self.uuid = uuid
45
40
  self.widget_params = widget_params
41
+ add_view_paths
46
42
  store_widget_params
47
43
  merge_params
48
44
  end
49
45
 
50
46
  def render(opts={})
51
- ErpApp::Widgets::Base.view_resolver_cache = [] if ErpApp::Widgets::Base.view_resolver_cache.nil?
52
- add_view_paths
53
47
  render_view_for(opts, self.view)
54
48
  end
55
-
49
+
56
50
  def render_view_for(opts, state)
57
51
  return '' if opts[:nothing]
58
-
52
+
59
53
  if opts[:update]
60
54
  update_opts = opts[:update]
61
- if opts[:text]
55
+ if update_opts[:text]
62
56
  js = update_opts[:text]
63
57
  else
64
58
  opts = defaultize_render_options_for(update_opts, state)
@@ -84,7 +78,7 @@ module ErpApp
84
78
  end
85
79
  sanitize_render_options(opts)
86
80
  end
87
-
81
+
88
82
  def find_family_view_for_state(state)
89
83
  missing_template_exception = nil
90
84
 
@@ -93,26 +87,32 @@ module ErpApp
93
87
  return template if template
94
88
  rescue ::ActionView::MissingTemplate => missing_template_exception
95
89
  end
96
-
90
+
97
91
  raise missing_template_exception
98
92
  end
99
-
93
+
100
94
  def defaultize_render_options_for(opts, state)
101
95
  opts[:view] ||= state
102
96
  opts
103
97
  end
104
-
98
+
105
99
  def sanitize_render_options(opts)
106
100
  opts.except!(:view)
107
101
  end
108
-
102
+
109
103
  protected
110
104
  #get location of this class that is being executed
111
105
  def locate
112
106
  File.dirname(__FILE__)
113
107
  end
114
108
 
109
+ #get the full file path for a view file relative to the widgets view path
110
+ def get_views_full_path(view)
111
+ find_template(view).identifier
112
+ end
113
+
115
114
  private
115
+
116
116
  def merge_params
117
117
  stored_widget_params = session[:widgets][self.uuid]
118
118
  unless stored_widget_params.nil?
@@ -126,38 +126,45 @@ module ErpApp
126
126
  end
127
127
 
128
128
  def add_view_paths
129
- #set default view paths
130
- cached_resolver = ErpApp::Widgets::Base.view_resolver_cache.find{|resolver| resolver.to_path == File.join(locate,"/views")}
131
- if cached_resolver.nil?
132
- resolver = ActionView::OptimizedFileSystemResolver.new(File.join(locate,"/views"))
133
- prepend_view_path(resolver)
134
- ErpApp::Widgets::Base.view_resolver_cache << resolver
135
- else
136
- prepend_view_path(cached_resolver)
129
+ widget = Rails.application.config.erp_app.widgets.find{|item| item[:name] == self.name}
130
+
131
+ widget[:view_paths].each do |view_path|
132
+ cached_resolver = ErpApp::Widgets::Base.view_resolver_cache.find{|resolver| resolver.to_path == view_path}
133
+ if cached_resolver.nil?
134
+ resolver = ActionView::OptimizedFileSystemResolver.new(view_path)
135
+ prepend_view_path(resolver)
136
+ ErpApp::Widgets::Base.view_resolver_cache << resolver
137
+ else
138
+ prepend_view_path(cached_resolver)
139
+ end
137
140
  end
138
141
  end
139
-
140
- class << self
141
- def views_location
142
- File.join(File.dirname(__FILE__),"/views")
143
- end
144
142
 
143
+ class << self
145
144
  def widget_name
146
145
  File.basename(File.dirname(__FILE__))
147
146
  end
148
-
147
+
149
148
  def installed_widgets
150
- locate_widgets
149
+ self.locate_widgets
151
150
  end
152
-
151
+
152
+ def find_template(view)
153
+ resolvers = []
154
+ widget = Rails.application.config.erp_app.widgets.find{|item| item[:name] == self.widget_name}
155
+ widget[:view_paths].each do |view_path|
156
+ resolvers << ActionView::OptimizedFileSystemResolver.new(view_path)
157
+ end
158
+ end
159
+
153
160
  private
154
-
161
+
155
162
  def locate_widgets
156
163
  widgets = []
157
164
  #get all widgets in root
158
165
  widget_path = File.join(Rails.root.to_s,"/app/widgets/")
159
166
  widgets = widgets | Dir.entries(widget_path) if File.exists? widget_path
160
-
167
+
161
168
  #get all widgets in engines
162
169
  Rails::Application::Railties.engines.each do |engine|
163
170
  #exclude widgets path in erp_app it defines are widgets
@@ -171,6 +178,6 @@ module ErpApp
171
178
  end
172
179
  end
173
180
 
174
- end
175
- end
176
- end
181
+ end#Base
182
+ end#Widgets
183
+ end#ErpApp
@@ -1,20 +1,13 @@
1
- class ErpApp::Widgets::JavascriptLoader
2
- def self.glob_javascript
3
- dirs = [Rails.root]
4
- dirs = dirs | Rails::Application::Railties.engines.map{|p| p.config.root.to_s}
5
-
6
- files = []
7
- dirs.each do |possible_widget_dir|
8
- files = files | Dir.glob(File.join(possible_widget_dir,"/app/widgets/*/javascript/*.js"))
9
- end
10
-
11
- js_code = '<script type="text/javascript">'
12
- files.each do |file|
13
- js_code << IO.read(file)
14
- end
15
- js_code << '</script>'
16
-
17
- js_code
18
- end
19
-
20
- end
1
+ module ErpApp
2
+ module Widgets
3
+ class JavascriptLoader
4
+
5
+ def self.glob_javascript
6
+ files = Rails.application.config.erp_app.widgets.collect{|widget|Dir.glob(File.join(widget[:path],"javascript/*.js"))}.flatten
7
+
8
+ "<script type='text/javascript'>#{Uglifier.compile(files.collect{|file| IO.read(file)}.join(''))}</script>"
9
+ end
10
+
11
+ end#JavascriptLoader
12
+ end#Widgets
13
+ end#ErpApp
@@ -0,0 +1,126 @@
1
+ module ErpApp
2
+ module Widgets
3
+ class Loader
4
+ class << self
5
+ def load_compass_ae_widgets(engine)
6
+ require_widgets_and_helpers(engine.root)
7
+ load_widget_extensions(engine)
8
+ end
9
+
10
+ def load_root_widgets
11
+ require_widgets_and_helpers(Rails.root.to_s)
12
+ end
13
+
14
+ private
15
+
16
+ def require_widgets_and_helpers(path)
17
+ widgets = []
18
+ widgets_path = File.join(path,"/app/widgets/")
19
+ widgets = Dir.entries(widgets_path) if File.exists? widgets_path
20
+ widgets.delete_if{|name| name =~ /^\./}
21
+ widgets.each do |widget_name|
22
+ widget_hash = Rails.application.config.erp_app.widgets.find{|item| item[:name] == widget_name}
23
+ if widget_hash.nil?
24
+ widget_hash = {
25
+ :name => widget_name,
26
+ :path => File.join(widgets_path,widget_name),
27
+ :view_paths => [File.join(widgets_path,widget_name,'views')],
28
+ :view_files => []
29
+ }
30
+ Rails.application.config.erp_app.widgets << widget_hash
31
+ end
32
+
33
+ load File.join(widget_hash[:path],'base.rb')
34
+ #load helpers
35
+ if File.exists? File.join(widget_hash[:path],'helpers')
36
+ load_widget_view_helpers File.join(widget_hash[:path],'helpers','view') if File.directory? File.join(widget_hash[:path],'helpers','view')
37
+ load_widget_controller_helpers(File.join(widget_hash[:path],'helpers','controller'),widget_hash) if File.directory? File.join(widget_hash[:path],'helpers','controller')
38
+ end
39
+ #get all view files for theme generation
40
+ get_widget_view_files(widget_hash, widget_hash[:view_paths].first)
41
+ #load any rails root extensions
42
+ load_root_widget_extensions(widget_hash)
43
+ end
44
+ end
45
+
46
+ def load_widget_view_helpers(path)
47
+ helpers = Dir.entries(path)
48
+ helpers.delete_if{|name| name =~ /^\./}
49
+ helpers.each do |helper|
50
+ load File.join(path,helper)
51
+ ActionView::Base.send(:include, File.basename(helper, ".rb").classify.constantize)
52
+ end
53
+ end
54
+
55
+ def load_widget_controller_helpers(path, widget_hash)
56
+ helpers = Dir.entries(path)
57
+ helpers.delete_if{|name| name =~ /^\./}
58
+ helpers.each do |helper|
59
+ load File.join(path,helper)
60
+ "Widgets::#{widget_hash[:name].classify}::Base".constantize.send(:include, File.basename(helper, ".rb").classify.constantize)
61
+ end
62
+ end
63
+
64
+ def get_widget_view_files(widget_hash, view_path)
65
+ file_support = ErpTechSvcs::FileSupport::Base.new
66
+ file_support.build_tree(view_path)[:children].each do |node|
67
+ if node[:leaf]
68
+ view_file = widget_hash[:view_files].find{|item| item[:name] == node[:text]}
69
+ if view_file.nil?
70
+ widget_hash[:view_files] << {:name => node[:text], :path => node[:id]}
71
+ else
72
+ view_file[:path] = node[:id]
73
+ end
74
+ else
75
+ get_widget_view_files(widget_hash, node[:id])
76
+ end
77
+ end
78
+ end
79
+
80
+ def load_widget_extensions(engine)
81
+ widgets_path = File.join(engine.root,"lib",engine.railtie_name,"extensions/widgets")
82
+ widgets = File.directory?(widgets_path) ? Dir.entries(widgets_path) : []
83
+ widgets.delete_if{|name| name =~ /^\./}
84
+
85
+ widgets.each do |widget_name|
86
+ widget_hash = Rails.application.config.erp_app.widgets.find{|item| item[:name] == widget_name}
87
+ #load any extensions to existing widgets
88
+ Dir.glob(File.join(widgets_path,widget_name,"*.rb")).each do |file|
89
+ load file
90
+ end
91
+
92
+ #add any additional view paths to widgets
93
+ if File.directory?(File.join(widgets_path,widget_name,'views'))
94
+ view_path = File.join(widgets_path,widget_name,'views')
95
+ widget_hash[:view_paths] << view_path
96
+ #get all view files for theme generation
97
+ get_widget_view_files(widget_hash, view_path)
98
+ end
99
+
100
+ #overwrite with any extensions in rails root
101
+ load_root_widget_extensions(widget_hash)
102
+ end
103
+
104
+ end
105
+
106
+ def load_root_widget_extensions(widget_hash)
107
+ if File.directory?(File.join(Rails.root,"lib/extensions/widgets",widget_hash[:name]))
108
+ Dir.glob(File.join(Rails.root,"lib/extensions/widgets",widget_hash[:name],"*.rb")).each do |file|
109
+ load file
110
+ end
111
+
112
+ #add any additional view paths to widgets
113
+ if File.directory?(File.join(Rails.root,"lib/extensions/widgets",widget_hash[:name],'views'))
114
+ view_path = File.join(Rails.root,"lib/extensions/widgets",widget_hash[:name],'views')
115
+ widget_hash = Rails.application.config.erp_app.widgets.find{|item| item[:name] == widget_hash[:name]}
116
+ widget_hash[:view_paths] << view_path
117
+ #get all view files for theme generation
118
+ get_widget_view_files(widget_hash, view_path)
119
+ end
120
+ end#make sure folder exists
121
+ end
122
+
123
+ end#self
124
+ end#Loader
125
+ end#Widgets
126
+ end#ErpApp
@@ -0,0 +1,8 @@
1
+ #require all ActionView helper files
2
+ Dir.entries(File.join(File.dirname(__FILE__),"helpers")).delete_if{|name| name =~ /^\./}.each do |file|
3
+ require "erp_app/widgets/railties/action_view/helpers/#{file}"
4
+ end
5
+
6
+ ActionView::Base.class_eval do
7
+ include ErpApp::Widgets::Railties::ActionView::Helpers::WidgetHelper
8
+ end
@@ -0,0 +1,57 @@
1
+ module ErpApp
2
+ module Widgets
3
+ module Railties
4
+ module ActionView
5
+ module Helpers
6
+ module WidgetHelper
7
+
8
+ def render_widget(name, opts={})
9
+ action = opts[:action] || :index
10
+ params = opts[:params].nil? ? '{}' : opts[:params].to_json
11
+
12
+ uuid = Digest::SHA1.hexdigest(Time.now.to_s + rand(10000).to_s)
13
+
14
+ raw "<div id=\"#{uuid}\">Loading ...<script type=\"text/javascript\">Compass.ErpApp.Widgets.setup('#{uuid}', '#{name}', '#{action}', #{params}, true);</script></div>"
15
+ end
16
+
17
+ def build_widget_url(action,id=nil,params={})
18
+ url = if id
19
+ "/erp_app/widgets/#{@name}/#{action}/#{@uuid}/#{id}"
20
+ else
21
+ "/erp_app/widgets/#{@name}/#{action}/#{@uuid}"
22
+ end
23
+
24
+ if params
25
+ url = "#{url}?"
26
+ params.each do |k,v|
27
+ url += "#{k.to_s}=#{v.to_s}&"
28
+ end
29
+ url = url[0...url.length - 1]
30
+ end
31
+
32
+ url
33
+ end
34
+
35
+ def widget_result_id
36
+ "#{@uuid}_result"
37
+ end
38
+
39
+ def include_widgets
40
+ raw ErpApp::Widgets::JavascriptLoader.glob_javascript
41
+ end
42
+
43
+ def get_widget_action
44
+ params[:widget_action] || 'index'
45
+ end
46
+
47
+ def set_widget_params(widget_params={})
48
+ widget_params.merge!(params.symbolize_keys)
49
+ widget_params
50
+ end
51
+
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end