knitkit 2.1.15 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. checksums.yaml +7 -0
  2. data/app/controllers/knitkit/base_controller.rb +1 -1
  3. data/app/controllers/knitkit/comments_controller.rb +7 -2
  4. data/app/controllers/knitkit/erp_app/desktop/app_controller.rb +78 -98
  5. data/app/controllers/knitkit/erp_app/desktop/articles_controller.rb +65 -45
  6. data/app/controllers/knitkit/erp_app/desktop/content_controller.rb +22 -12
  7. data/app/controllers/knitkit/erp_app/desktop/file_assets_controller.rb +1 -1
  8. data/app/controllers/knitkit/erp_app/desktop/image_assets_controller.rb +28 -16
  9. data/app/controllers/knitkit/erp_app/desktop/inquiries_controller.rb +15 -49
  10. data/app/controllers/knitkit/erp_app/desktop/online_document_sections_controller.rb +4 -3
  11. data/app/controllers/knitkit/erp_app/desktop/position_controller.rb +69 -11
  12. data/app/controllers/knitkit/erp_app/desktop/theme_controller.rb +63 -60
  13. data/app/controllers/knitkit/erp_app/desktop/website_controller.rb +98 -82
  14. data/app/controllers/knitkit/erp_app/desktop/website_host_controller.rb +77 -0
  15. data/app/controllers/knitkit/erp_app/desktop/website_nav_controller.rb +64 -44
  16. data/app/controllers/knitkit/erp_app/desktop/website_nav_item_controller.rb +147 -0
  17. data/app/controllers/knitkit/erp_app/desktop/website_section_controller.rb +81 -45
  18. data/app/controllers/knitkit/mobile_controller.rb +15 -0
  19. data/app/controllers/knitkit/online_document_sections_controller.rb +2 -1
  20. data/app/controllers/knitkit/unauthorized_controller.rb +0 -1
  21. data/app/controllers/knitkit/website_sections_controller.rb +7 -4
  22. data/app/mailers/website_inquiry_mailer.rb +8 -7
  23. data/app/models/content.rb +11 -2
  24. data/app/models/document.rb +2 -17
  25. data/app/models/published_website.rb +96 -59
  26. data/app/models/theme.rb +100 -14
  27. data/app/models/website.rb +260 -28
  28. data/app/models/website_inquiry.rb +5 -12
  29. data/app/models/website_section.rb +9 -1
  30. data/app/views/knitkit/blogs/_add_comment.html.erb +44 -23
  31. data/app/views/knitkit/blogs/_comment.html.erb +4 -6
  32. data/app/views/knitkit/blogs/index.html.erb +63 -49
  33. data/app/views/knitkit/blogs/show.html.erb +17 -12
  34. data/app/views/knitkit/mobile/index.html.erb +162 -0
  35. data/app/views/knitkit/online_document_sections/index.html.erb +7 -5
  36. data/app/views/knitkit/unauthorized/index.html.erb +8 -4
  37. data/app/views/knitkit/website_sections/index.html.erb +8 -4
  38. data/app/views/layouts/knitkit/base.html.erb +79 -63
  39. data/app/views/layouts/knitkit/online_document_sections.html.erb +74 -52
  40. data/app/views/menus/knitkit/_default_menu.html.erb +4 -4
  41. data/app/views/menus/knitkit/_default_section_menu.html.erb +22 -23
  42. data/app/views/shared/knitkit/_bread_crumb.html.erb +10 -7
  43. data/app/views/shared/knitkit/_footer.html.erb +2 -2
  44. data/app/views/website_inquiry_mailer/inquiry.erb +23 -2
  45. data/app/widgets/contact_us/base.rb +25 -50
  46. data/app/widgets/contact_us/javascript/contact_us.js +7 -7
  47. data/app/widgets/contact_us/views/error.html.erb +6 -8
  48. data/app/widgets/contact_us/views/index.html.erb +28 -1
  49. data/app/widgets/contact_us/views/layouts/base.html.erb +9 -6
  50. data/app/widgets/contact_us/views/success.html.erb +3 -3
  51. data/app/widgets/google_map/views/index.html.erb +36 -36
  52. data/app/widgets/login/base.rb +1 -0
  53. data/app/widgets/login/javascript/login.js +3 -3
  54. data/app/widgets/login/views/index.html.erb +46 -26
  55. data/app/widgets/login/views/layouts/base.html.erb +15 -13
  56. data/app/widgets/login/views/login_header.html.erb +7 -9
  57. data/app/widgets/manage_profile/base.rb +116 -164
  58. data/app/widgets/manage_profile/views/_address.html.erb +184 -0
  59. data/app/widgets/manage_profile/views/_contact_information_form.html.erb +23 -192
  60. data/app/widgets/manage_profile/views/_email_address.html.erb +163 -0
  61. data/app/widgets/manage_profile/views/_password_form.html.erb +23 -20
  62. data/app/widgets/manage_profile/views/_phone_number.html.erb +165 -0
  63. data/app/widgets/manage_profile/views/_user_information_form.html.erb +49 -33
  64. data/app/widgets/manage_profile/views/error.html.erb +6 -0
  65. data/app/widgets/manage_profile/views/index.html.erb +44 -46
  66. data/app/widgets/manage_profile/views/layouts/base.html.erb +3 -1
  67. data/app/widgets/manage_profile/views/success.html.erb +5 -0
  68. data/app/widgets/reset_password/views/index.html.erb +33 -28
  69. data/app/widgets/reset_password/views/layouts/base.html.erb +10 -1
  70. data/app/widgets/search/base.rb +37 -25
  71. data/app/widgets/search/views/_inline_search_form.html.erb +12 -0
  72. data/app/widgets/search/views/_search_form.html.erb +41 -0
  73. data/app/widgets/search/views/index.html.erb +5 -3
  74. data/app/widgets/search/views/layouts/base.html.erb +13 -23
  75. data/app/widgets/search/views/show.html.erb +32 -47
  76. data/app/widgets/signup/base.rb +1 -1
  77. data/app/widgets/signup/javascript/signup.js +7 -9
  78. data/app/widgets/signup/views/_signup_form.html.erb +34 -29
  79. data/app/widgets/signup/views/error.html.erb +11 -11
  80. data/app/widgets/signup/views/index.html.erb +3 -2
  81. data/app/widgets/signup/views/layouts/base.html.erb +8 -5
  82. data/app/widgets/signup/views/success.html.erb +5 -4
  83. data/config/routes.rb +39 -28
  84. data/db/data_migrations/20120809020508_update_website_and_configuration.rb +3 -0
  85. data/db/migrate/20110211002317_setup_knitkit.rb +0 -1
  86. data/db/migrate/20131112013052_add_knitkit_missing_indexes.rb +33 -0
  87. data/db/migrate/20140622212723_update_website_inquiries.rb +22 -0
  88. data/db/migrate/20140911185022_add_publishing_to_website.rb +5 -0
  89. data/db/migrate/20141013073349_add_custom_fields_to_documents.rb +12 -0
  90. data/db/migrate/20141016101936_upgrade_remove_dynamic_attributes.rb +13 -0
  91. data/lib/knitkit.rb +0 -1
  92. data/lib/knitkit/engine.rb +1 -0
  93. data/lib/knitkit/extensions.rb +4 -0
  94. data/lib/knitkit/extensions/active_record/acts_as_commentable.rb +33 -0
  95. data/lib/knitkit/extensions/active_record/acts_as_document.rb +0 -12
  96. data/lib/knitkit/extensions/active_record/acts_as_publishable.rb +7 -10
  97. data/lib/knitkit/extensions/compass_ae/widgets/base.rb +2 -4
  98. data/lib/knitkit/extensions/compass_ae/widgets/widget_proxy_controller.rb +4 -1
  99. data/lib/knitkit/extensions/railties/action_view/helpers/blog_helper.rb +16 -13
  100. data/lib/knitkit/extensions/railties/action_view/helpers/content_helper.rb +10 -8
  101. data/lib/knitkit/extensions/railties/theme_support/asset_tag_helper.rb +123 -108
  102. data/lib/knitkit/extensions/will_paginate/link_renderer.rb +67 -0
  103. data/lib/knitkit/routing_filter/section_router.rb +10 -8
  104. data/lib/knitkit/syntax_validator.rb +2 -2
  105. data/lib/knitkit/version.rb +7 -3
  106. data/public/images/inline_edit/close.png +0 -0
  107. data/public/images/knitkit/close_window.png +0 -0
  108. data/public/images/knitkit/logo.png +0 -0
  109. data/public/images/knitkit/splash/images/add-site.png +0 -0
  110. data/public/images/knitkit/splash/images/adjust-site.png +0 -0
  111. data/public/images/knitkit/splash/images/browse-site.png +0 -0
  112. data/public/images/knitkit/splash/images/find-themes.png +0 -0
  113. data/public/images/knitkit/splash/images/settings.png +0 -0
  114. data/public/images/knitkit/splash/images/tutorials.png +0 -0
  115. data/public/images/knitkit/splash/splash.png +0 -0
  116. data/public/javascripts/erp_app/desktop/applications/knitkit/articles_grid_panel.js +656 -627
  117. data/public/javascripts/erp_app/desktop/applications/knitkit/center_region.js +444 -333
  118. data/public/javascripts/erp_app/desktop/applications/knitkit/{east_region.js → east_region/east_region.js} +33 -33
  119. data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/file_assets_panel.js +332 -0
  120. data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/image_assets_data_view.js +144 -0
  121. data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/image_assets_panel.js +335 -0
  122. data/public/javascripts/erp_app/desktop/applications/knitkit/{widgets_panel.js → east_region/widgets_panel.js} +55 -55
  123. data/public/javascripts/erp_app/desktop/applications/knitkit/inquiries_grid_panel.js +150 -37
  124. data/public/javascripts/erp_app/desktop/applications/knitkit/module.js +228 -96
  125. data/public/javascripts/erp_app/desktop/applications/knitkit/publish_window.js +89 -85
  126. data/public/javascripts/erp_app/desktop/applications/knitkit/published_grid_panel.js +238 -217
  127. data/public/javascripts/erp_app/desktop/applications/knitkit/select_roles_window.js +59 -54
  128. data/public/javascripts/erp_app/desktop/applications/knitkit/splash_screen.js +170 -0
  129. data/public/javascripts/erp_app/desktop/applications/knitkit/top_menu/main_menu.js +1168 -0
  130. data/public/javascripts/erp_app/desktop/applications/knitkit/top_menu/websites_combo.js +71 -0
  131. data/public/javascripts/erp_app/desktop/applications/knitkit/versions_grid_panel.js +301 -306
  132. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/article.js +216 -0
  133. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/document.js +182 -153
  134. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/host.js +48 -65
  135. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/menu.js +93 -94
  136. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/section.js +523 -197
  137. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/website_nav_items.js +20 -34
  138. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/hosts_tree_panel.js +74 -0
  139. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/menu_tree_panel.js +245 -0
  140. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/site_contents_tree_panel.js +360 -0
  141. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/themes_tree_panel.js +348 -0
  142. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/west_region.js +106 -1132
  143. data/public/javascripts/knitkit/bootstrap-datepicker.js +474 -0
  144. data/public/javascripts/knitkit/bootstrap.min.js +7 -0
  145. data/public/javascripts/knitkit/confirm-bootstrap.js +110 -0
  146. data/public/javascripts/knitkit/inline_editing.js +73 -50
  147. data/public/javascripts/knitkit/jquery.maskedinput.min.js +7 -0
  148. data/public/javascripts/knitkit/mobile/app/view/Main.js +108 -0
  149. data/public/javascripts/knitkit/mobile/ux/slidenavigation/View.js +734 -0
  150. data/public/javascripts/knitkit/theme.js +76 -0
  151. data/public/stylesheets/erp_app/desktop/applications/knitkit/knitkit.css +95 -35
  152. data/public/stylesheets/knitkit/bootstrap-responsive.min.css +10 -0
  153. data/public/stylesheets/knitkit/bootstrap.min.css +7 -0
  154. data/public/stylesheets/knitkit/custom.css +122 -0
  155. data/public/stylesheets/knitkit/datepicker.css +182 -0
  156. data/public/stylesheets/knitkit/inline_editing.css +58 -58
  157. data/spec/controllers/knitkit/erp_app/desktop/website_section_controller_spec.rb +1 -1
  158. data/spec/dummy/config/application.rb +1 -1
  159. data/spec/models/article_spec.rb +3 -3
  160. data/spec/models/content_spec.rb +9 -9
  161. data/spec/models/website_spec.rb +1 -1
  162. metadata +100 -114
  163. data/app/helpers/application_helper.rb +0 -134
  164. data/app/views/knitkit/articles/index.html.erb +0 -3
  165. data/app/views/knitkit/articles/show.html.erb +0 -4
  166. data/app/views/menus/knitkit/_default_sub_menu.html.erb +0 -43
  167. data/app/views/menus/knitkit/_default_sub_section_menu.html.erb +0 -47
  168. data/app/widgets/contact_us/views/_contact_form.html.erb +0 -36
  169. data/app/widgets/dynamic_forms/base.rb +0 -139
  170. data/app/widgets/dynamic_forms/javascript/dynamic_forms.js +0 -110
  171. data/app/widgets/dynamic_forms/views/error.html.erb +0 -5
  172. data/app/widgets/dynamic_forms/views/index.html.erb +0 -8
  173. data/app/widgets/dynamic_forms/views/success.html.erb +0 -4
  174. data/app/widgets/dynamic_grid/base.rb +0 -130
  175. data/app/widgets/dynamic_grid/helpers/controller/dynamic_grid_controller_helper.rb +0 -3
  176. data/app/widgets/dynamic_grid/helpers/view/dynamic_grid_view_helper.rb +0 -3
  177. data/app/widgets/dynamic_grid/javascript/dynamic_grid.js +0 -177
  178. data/app/widgets/dynamic_grid/views/index.html.erb +0 -14
  179. data/app/widgets/login/views/reset_password.html.erb +0 -26
  180. data/app/widgets/manage_profile/views/default_type_error.html.erb +0 -5
  181. data/app/widgets/scaffold/base.rb +0 -87
  182. data/app/widgets/scaffold/helpers/controller/scaffold_controller_helper.rb +0 -3
  183. data/app/widgets/scaffold/helpers/view/scaffold_view_helper.rb +0 -3
  184. data/app/widgets/scaffold/javascript/scaffold.js +0 -337
  185. data/app/widgets/scaffold/views/index.html.erb +0 -15
  186. data/app/widgets/search/views/_search.html.erb +0 -39
  187. data/public/images/knitkit/bullet.png +0 -0
  188. data/public/images/knitkit/close.png +0 -0
  189. data/public/images/knitkit/content.png +0 -0
  190. data/public/images/knitkit/footer.png +0 -0
  191. data/public/images/knitkit/graphic.png +0 -0
  192. data/public/images/knitkit/greyFadeDown.png +0 -0
  193. data/public/images/knitkit/link.png +0 -0
  194. data/public/images/knitkit/menu.png +0 -0
  195. data/public/images/knitkit/menu_select.png +0 -0
  196. data/public/images/knitkit/search.png +0 -0
  197. data/public/images/knitkit/tooltip.gif +0 -0
  198. data/public/javascripts/ajax_pagination.js +0 -33
  199. data/public/javascripts/datepicker.js +0 -445
  200. data/public/javascripts/erp_app/desktop/applications/knitkit/file_assets_panel.js +0 -341
  201. data/public/javascripts/erp_app/desktop/applications/knitkit/image_assets_data_view.js +0 -31
  202. data/public/javascripts/erp_app/desktop/applications/knitkit/image_assets_panel.js +0 -263
  203. data/public/javascripts/erp_app/desktop/applications/knitkit/section_articles_grid_panel.js +0 -722
  204. data/public/javascripts/erp_app/desktop/applications/knitkit/themes_tree_panel.js +0 -585
  205. data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/website.js +0 -155
  206. data/public/javascripts/knitkit/helpers.js +0 -26
  207. data/public/stylesheets/datepicker.css +0 -121
  208. data/public/stylesheets/extjs/resources/css/knitkit_extjs_4.css +0 -233
  209. data/public/stylesheets/knitkit/style.css +0 -426
@@ -1,134 +0,0 @@
1
- # Methods added to this helper will be available to all templates in the application.
2
- =begin
3
- module ApplicationHelper
4
- def theme_stylesheet_path(theme, source)
5
- theme = @controller.website.themes.find_by_theme_id(theme) unless theme.is_a?(Theme)
6
- theme_compute_public_path(theme, source, theme.url + '/stylesheets', 'css')
7
- end
8
- alias_method :theme_path_to_stylesheet, :theme_stylesheet_path
9
-
10
- def theme_stylesheet_link_tag(theme_id, *sources)
11
- theme = @controller.website.themes.find_by_theme_id(theme_id)
12
- return("could not find theme with the id #{theme_id}") unless theme
13
-
14
- options = sources.extract_options!.stringify_keys
15
- cache = options.delete("cache")
16
- recursive = options.delete("recursive")
17
-
18
- if ActionController::Base.perform_caching && cache
19
- joined_stylesheet_name = (cache == true ? "all" : cache) + ".css"
20
- joined_stylesheet_path = File.join(theme.path + '/stylesheets', joined_stylesheet_name)
21
-
22
- paths = theme_compute_stylesheet_paths(theme, sources, recursive)
23
- theme_write_asset_file_contents(theme, joined_stylesheet_path, paths) unless File.exists?(joined_stylesheet_path)
24
- theme_stylesheet_tag(theme, joined_stylesheet_name, options)
25
- else
26
- theme_expand_stylesheet_sources(theme, sources, recursive).collect do |source|
27
- theme_stylesheet_tag(theme, source, options)
28
- end.join("\n")
29
- end
30
- end
31
-
32
- def theme_javascript_path(theme, source)
33
- theme = @controller.website.themes.find_by_theme_id(theme) unless theme.is_a?(Theme)
34
- theme_compute_public_path(theme, source, theme.url + '/javascripts', 'js')
35
- end
36
- alias_method :theme_path_to_javascript, :theme_javascript_path
37
-
38
- def theme_javascript_include_tag(theme_id, *sources)
39
- theme = @controller.website.themes.find_by_theme_id(theme_id)
40
- return("could not find theme with the id #{theme_id}") unless theme
41
-
42
- options = sources.extract_options!.stringify_keys
43
- cache = options.delete("cache")
44
- recursive = options.delete("recursive")
45
-
46
- if ActionController::Base.perform_caching && cache
47
- joined_javascript_name = (cache == true ? "all" : cache) + ".js"
48
- joined_javascript_path = File.join(theme.path + '/javascripts', joined_javascript_name)
49
-
50
- paths = theme_compute_javascript_paths(theme, sources, recursive)
51
- theme_write_asset_file_contents(theme, joined_javascript_path, paths) unless File.exists?(joined_javascript_path)
52
- theme_javascript_src_tag(theme, joined_javascript_name, options)
53
- else
54
- theme_expand_javascript_sources(theme, sources, recursive).collect do |source|
55
- theme_javascript_src_tag(theme, source, options)
56
- end.join("\n")
57
- end
58
- end
59
-
60
- private
61
- def theme_compute_public_path(theme, source, dir, ext = nil, include_host = true)
62
- has_request = @controller.respond_to?(:request)
63
-
64
- if ext && (File.extname(source).blank? || File.exist?(File.join(theme.path, dir, "#{source}.#{ext}")))
65
- source += ".#{ext}"
66
- end
67
-
68
- unless source =~ %r{^[-a-z]+://}
69
- source = "/#{dir}/#{source}" unless source[0] == ?/
70
-
71
- source = theme_rewrite_asset_path(theme, source)
72
-
73
- if has_request && include_host
74
- unless source =~ %r{^#{ActionController::Base.relative_url_root}/}
75
- source = "#{ActionController::Base.relative_url_root}#{source}"
76
- end
77
- end
78
- end
79
-
80
- if include_host && source !~ %r{^[-a-z]+://}
81
- host = compute_asset_host(source)
82
-
83
- if has_request && host.present? && host !~ %r{^[-a-z]+://}
84
- host = "#{@controller.request.protocol}#{host}"
85
- end
86
-
87
- "#{host}#{source}"
88
- else
89
- source
90
- end
91
- end
92
-
93
- def theme_stylesheet_tag(theme, source, options)
94
- options = { "rel" => "stylesheet", "type" => Mime::CSS, "media" => "screen",
95
- "href" => html_escape(theme_path_to_stylesheet(theme, source)) }.merge(options)
96
- tag("link", options, false, false)
97
- end
98
-
99
- def theme_javascript_src_tag(theme, source, options)
100
- options = { "type" => Mime::JS, "src" => theme_path_to_javascript(theme, source) }.merge(options)
101
- content_tag("script", "", options)
102
- end
103
-
104
- def theme_compute_stylesheet_paths(theme, *args)
105
- theme_expand_stylesheet_sources(theme, *args).collect do |source|
106
- theme_compute_public_path(theme, source, theme.url + '/stylesheets', 'css', false)
107
- end
108
- end
109
-
110
- def theme_compute_javascript_paths(theme, *args)
111
- theme_expand_javascript_sources(theme, *args).collect do |source|
112
- theme_compute_public_path(theme, source, theme.url + '/javascripts', 'js', false)
113
- end
114
- end
115
-
116
- def theme_expand_javascript_sources(theme, sources, recursive = false)
117
- if sources.include?(:all)
118
- all_javascript_files = collect_asset_files(theme.path + '/javascripts', ('**' if recursive), '*.js').uniq
119
- else
120
- sources.collect { |source| determine_source(source, {}) }.flatten
121
- end
122
- end
123
-
124
- def theme_expand_stylesheet_sources(theme, sources, recursive)
125
- if sources.first == :all
126
- collect_asset_files(theme.path + '/stylesheets', ('**' if recursive), '*.css')
127
- else
128
- sources.collect do |source|
129
- determine_source(source, {})
130
- end.flatten
131
- end
132
- end
133
- end
134
- =end
@@ -1,3 +0,0 @@
1
- <h3><%=h @contents.first.title %></h3>
2
- <p>Created at: <%= @contents.first.created_at.to_s(:long) %></p>
3
- <%= @contents.first.body_html %>
@@ -1,4 +0,0 @@
1
- <h3><%=h @content.title %></h3>
2
- <p>Created at: <%= @content.created_at.to_s(:long) %></p>
3
- <%= @content.body_html %>
4
-
@@ -1,43 +0,0 @@
1
- <%if !menu_items.nil? && menu_items.count > 0%>
2
- <div id="side_menu_container">
3
- <ul id="side_menu">
4
- <%
5
- menu_items.each do |menu_item|
6
- if menu_item.allow_access?(@current_user, :view)
7
- if menu_item_selected(menu_item) %>
8
- <li class="selected">
9
- <% selected_menu_item = menu_item
10
- else %>
11
- <li>
12
- <% end %>
13
- <a href="<%= menu_item.path %>"><span><%= menu_item.title %></span></a>
14
- </li>
15
-
16
- <% unless selected_menu_item.nil? %>
17
- <% unless selected_menu_item.positioned_children.nil? %>
18
- <ul class="side_menu_children">
19
- <% selected_menu_item.positioned_children.each do |child_menu_item|
20
- if child_menu_item.allow_access?(@current_user, :view)
21
- if menu_item_selected(child_menu_item) %>
22
- <li class="selected">
23
- <% else %>
24
- <li>
25
- <% end %>
26
- <a href="<%= child_menu_item.path %>"><span><%= child_menu_item.title %></span></a>
27
- </li>
28
- <% end %>
29
- <% end %>
30
- </ul>
31
- <%
32
- end
33
- selected_menu_item = nil
34
- end
35
- %>
36
- <% end %>
37
- <% end %>
38
-
39
- </ul>
40
- </div>
41
- <%end%>
42
-
43
-
@@ -1,47 +0,0 @@
1
-
2
- <% selected_section_parent = @website_section.nil? ? nil : @website_section.parent %>
3
- <% unless section.nil? %>
4
- <% section = section.root? ? section : section.root %>
5
- <% unless section.positioned_children.empty? %>
6
- <div id="side_menu_container">
7
- <ul id="side_menu">
8
- <% section.positioned_children.each do |child_section|
9
- if child_section.in_menu
10
- if child_section.allow_access?(@current_user, :view)
11
- if (!@website_section.nil? && child_section.id == @website_section.id) or (!selected_section_parent.nil? and selected_section_parent.id == child_section.id) %>
12
- <li class="selected">
13
- <% selected_section = child_section
14
- else %>
15
- <li>
16
- <% end %>
17
- <a href="<%= child_section.path %>"><span><%= child_section.title %></span></a>
18
- </li>
19
- <% end %>
20
- <% end %>
21
-
22
- <% if !selected_section.nil? and !selected_section.children.empty? %>
23
- <ul class="side_menu_children">
24
- <%
25
- selected_section.positioned_children.each do |child_section|
26
- %>
27
- <% if !@website_section.nil? && child_section.id == @website_section.id %>
28
- <li class="selected">
29
- <% else %>
30
- <li>
31
- <% end %>
32
- <a href="<%= child_section.path %>"><span><%= child_section.title %></span></a>
33
- </li>
34
- <% end %>
35
- </ul>
36
-
37
- <%
38
- selected_section = nil
39
- end
40
- %>
41
- <% end %>
42
- </ul>
43
- </div>
44
- <% end %>
45
- <% end %>
46
-
47
-
@@ -1,36 +0,0 @@
1
- <%if @use_dynamic_form%>
2
- <div id="<%=widget_result_id %>"></div>
3
-
4
- <%=raw render_dynamic_form('WebsiteInquiry', :width => 410) %>
5
-
6
- <div id="dynamic_form_target"></div>
7
- <%else%>
8
- <div id="<%=widget_result_id %>"></div>
9
- <div>
10
- <%= form_remote_tag build_widget_url(:new) do %>
11
- <div class="form_settings">
12
- <p>
13
- <span>First Name</span>
14
- <%= text_field_tag :first_name %>
15
- </p>
16
- <p>
17
- <span>Last Name</span>
18
- <%= text_field_tag :last_name %>
19
- </p>
20
- <p>
21
- <span>Email</span>
22
- <%= text_field_tag :email %>
23
- </p>
24
- <p>
25
- <span>Message</span>
26
- <%= text_area_tag :message, nil, :class => 'contact textarea', :rows => 8, :cols => 50 %>
27
- </p>
28
- <p style="padding-top: 15px">
29
- <span>&nbsp;</span>
30
- <%= submit_tag "Submit", :disable_with => "Please wait...", :class => "submit", :style => 'margin: 0 0 0 0px;' %>
31
- </p>
32
- <input type="hidden" name="is_html_form" value="<%=!@use_dynamic_form%>"/>
33
- </div>
34
- <% end %>
35
- </div>
36
- <%end%>
@@ -1,139 +0,0 @@
1
- module Widgets
2
- module DynamicForms
3
- class Base < ErpApp::Widgets::Base
4
- def index
5
- render
6
- end
7
-
8
- def new
9
- begin
10
- unless params[:file].nil?
11
- # size check
12
- if params[:file].tempfile.size > ErpTechSvcs::Config.max_file_size_in_mb.megabytes
13
- raise "File cannot be larger than #{ErpTechSvcs::Config.max_file_size_in_mb}MB"
14
- end
15
- end
16
- form_data = JSON.parse(params[:form_data_json])
17
- form_data[:dynamic_form_id] = params[:dynamic_form_id]
18
- form_data[:model_name] = params[:model_name]
19
- form_data.symbolize_keys!
20
- @website = Website.find_by_host(request.host_with_port)
21
-
22
- if form_data[:email_subject].blank?
23
- subject = "#{form_data[:model_name]} Submission from #{@website.title}"
24
- else
25
- subject = strip_tags(form_data[:email_subject])
26
- form_data.delete(:email_subject)
27
- end
28
-
29
- @myDynamicObject = DynamicFormModel.get_instance(form_data[:model_name])
30
-
31
- form_data[:created_by] = current_user unless current_user.nil?
32
- form_data[:created_with_form_id] = form_data[:dynamic_form_id] if form_data[:dynamic_form_id] and params[:is_html_form].blank?
33
- form_data[:website] = @website.title
34
-
35
- @myDynamicObject = @myDynamicObject.assign_all_attributes(form_data, ErpApp::Widgets::Base::IGNORED_PARAMS)
36
-
37
- # get dynamic for from form_data[:created_with_form_id]
38
- form = DynamicForm.find(form_data[:created_with_form_id])
39
-
40
- # check widget_action from dynamic form
41
- if !form.nil? and ['email', 'both'].include?(form.widget_action)
42
- # email data
43
- attachments = (params[:file].nil? ? [] : [params[:file]])
44
- send_email(form, @myDynamicObject, subject, attachments)
45
- end
46
-
47
- if form.nil? or (!form.nil? and ['save', 'both'].include?(form.widget_action))
48
- #save data
49
- @myDynamicObject.save
50
- save_file_asset(form_data) unless params[:file].nil?
51
- end
52
-
53
- output = render_to_string(:template => "success", :layout => false)
54
- render :inline => {
55
- :success => true,
56
- :response => (file_upload_request? ? ERB::Util.html_escape(output) : output)
57
- }.to_json
58
- rescue Exception => e
59
- Rails.logger.error e.message
60
- Rails.logger.error e.backtrace.join("\n")
61
- output = render_to_string(:template => "error", :layout => false, :locals => {:message => e.message})
62
- render :inline => {
63
- :success => false,
64
- :response => (file_upload_request? ? ERB::Util.html_escape(output) : output)
65
- }.to_json
66
- end
67
- end
68
-
69
- protected
70
- def file_upload_request?
71
- request.env['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest'
72
- end
73
-
74
- def save_file_asset(form_data)
75
- result = {}
76
- name = params[:file].original_filename
77
- data = params[:file].tempfile
78
- set_file_support
79
-
80
- begin
81
- @root_node = File.join(ErpTechSvcs::Config.file_assets_location, form_data[:model_name], @myDynamicObject.id.to_s)
82
- file = @myDynamicObject.add_file(data, File.join(@file_support.root, base_path, name))
83
-
84
- roles = ['admin', @myDynamicObject.role_iid]
85
- (@myDynamicObject.file_security_default == 'private') ? file.add_capability(:download, 'FileAsset', roles) : file.remove_all_capabilities
86
-
87
- return {:success => true}
88
- rescue Exception => e
89
- Rails.logger.error e.message
90
- Rails.logger.error e.backtrace
91
- raise "Error uploading file. #{e.message}"
92
- end
93
- end
94
-
95
- def base_path
96
- @base_path = (@root_node.nil? ? nil : File.join(@file_support.root, @root_node))
97
- end
98
-
99
- def set_file_support
100
- @file_support = ErpTechSvcs::FileSupport::Base.new(:storage => ErpTechSvcs::Config.file_storage)
101
- end
102
-
103
- def send_email(form, dynamicObject, subject='', attachments=[])
104
- begin
105
- DynamicFormMailer.widget_email_with_attachments(form, dynamicObject, subject, attachments).deliver
106
- rescue Exception => e
107
- Rails.logger.error e.message
108
- Rails.logger.error e.backtrace
109
- raise "Error sending email. #{e.message}"
110
- end
111
- end
112
-
113
- #should not be modified
114
- #modify at your own risk
115
- def locate
116
- File.dirname(__FILE__)
117
- end
118
-
119
- class << self
120
- def title
121
- "Dynamic Forms"
122
- end
123
-
124
- def widget_name
125
- File.basename(File.dirname(__FILE__))
126
- end
127
-
128
- def base_layout
129
- begin
130
- file = File.join(File.dirname(__FILE__),"/views/layouts/base.html.erb")
131
- IO.read(file)
132
- rescue
133
- return nil
134
- end
135
- end
136
- end
137
- end
138
- end
139
- end
@@ -1,110 +0,0 @@
1
- Compass.ErpApp.Widgets.DynamicForms = {
2
- template: new Ext.XTemplate(
3
- "<% # Optional Parameters:\n",
4
- " # internal_identifier: Models can have multiple forms\n",
5
- " # Leave blank if you want to use the default form\n",
6
- " # Specify internal_identifier to choose a specific form %>\n",
7
- "<%= render_widget :dynamic_forms,\n",
8
- " :params => {:model_name => '{WidgetDynamicFormModelName}',\n",
9
- " :internal_identifier => ''",
10
- '<tpl if="WidgetDynamicFormWidth">',
11
- ",\n :width => {WidgetDynamicFormWidth} ",
12
- '</tpl>',
13
- "} %>"),
14
-
15
- addDynamicForm: function () {
16
- var addDynamicFormWidgetWindow = Ext.create("Ext.window.Window", {
17
- layout: 'fit',
18
- width: 375,
19
- title: 'Add DynamicForm Widget',
20
- plain: true,
21
- buttonAlign: 'center',
22
- items: Ext.create("Ext.form.Panel", {
23
- labelWidth: 100,
24
- frame: false,
25
- bodyStyle: 'padding:5px 5px 0',
26
- defaults: {
27
- width: 325
28
- },
29
- items: [
30
- {
31
- xtype: 'combo',
32
- value: '',
33
- loadingText: 'Retrieving Dynamic Form Models ...',
34
- store: Ext.create('Ext.data.Store', {
35
- proxy: {
36
- type: 'ajax',
37
- reader: {
38
- type: 'json',
39
- root: 'dynamic_form_model'
40
- },
41
- url: '/erp_forms/erp_app/desktop/dynamic_forms/models/index'
42
- },
43
- fields: [
44
- {
45
- name: 'id'
46
- },
47
- {
48
- name: 'model_name'
49
- }
50
- ]
51
- }),
52
- forceSelection: true,
53
- editable: true,
54
- fieldLabel: 'Model Name',
55
- autoSelect: true,
56
- mode: 'remote',
57
- name: 'model_name',
58
- displayField: 'model_name',
59
- valueField: 'model_name',
60
- triggerAction: 'all',
61
- allowBlank: false,
62
- plugins: [new helpQtip("Dynamic Form Model Name (Class)")]
63
- },
64
- {
65
- xtype: 'textfield',
66
- fieldLabel: 'Form Width',
67
- name: 'form_width',
68
- allowBlank: true,
69
- plugins: [new helpQtip("Form Width in Pixels. Leave blank for auto width.")]
70
- }
71
- ]
72
- }),
73
- buttons: [
74
- {
75
- text: 'Submit',
76
- listeners: {
77
- 'click': function (button) {
78
- var formPanel = button.findParentByType('window').query('form').first(),
79
- basicForm = formPanel.getForm(),
80
- WidgetDynamicFormModelName = basicForm.findField('model_name'),
81
- WidgetDynamicFormWidth = basicForm.findField('form_width');
82
- if (basicForm.isValid()) {
83
- var data = {
84
- WidgetDynamicFormModelName: WidgetDynamicFormModelName.getValue(),
85
- WidgetDynamicFormWidth: WidgetDynamicFormWidth.getValue()
86
- };
87
-
88
- //add rendered template to center region editor
89
- Ext.getCmp('knitkitCenterRegion').addContentToActiveCodeMirror(Compass.ErpApp.Widgets.DynamicForms.template.apply(data));
90
- addDynamicFormWidgetWindow.close();
91
- }
92
- }
93
- }
94
- },
95
- {
96
- text: 'Close',
97
- handler: function () {
98
- addDynamicFormWidgetWindow.close();
99
- }
100
- }
101
- ]
102
- }).show();
103
- }
104
- };
105
-
106
- Compass.ErpApp.Widgets.AvailableWidgets.push({
107
- name: 'Dynamic Forms',
108
- iconUrl: '/images/icons/document_text/document_text_48x48.png',
109
- onClick: Compass.ErpApp.Widgets.DynamicForms.addDynamicForm
110
- });