releaf 0.1.1 → 0.1.2

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 (201) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +15 -12
  3. data/Rakefile +8 -0
  4. data/app/assets/javascripts/releaf/controllers/base.js +0 -40
  5. data/app/assets/javascripts/releaf/include/field.type_date_or_datetime_or_time.js +43 -0
  6. data/app/assets/javascripts/releaf/include/nested_fields.js +58 -65
  7. data/app/assets/javascripts/releaf/include/sortable.js +19 -17
  8. data/app/assets/stylesheets/releaf/controllers/releaf/content.css.erb +6 -0
  9. data/app/assets/stylesheets/releaf/include/field.css.erb +37 -13
  10. data/app/controllers/releaf/admins_controller.rb +13 -6
  11. data/app/controllers/releaf/base_application_controller.rb +4 -1
  12. data/app/controllers/releaf/base_controller.rb +415 -154
  13. data/app/controllers/releaf/content_controller.rb +62 -45
  14. data/app/controllers/releaf/roles_controller.rb +11 -9
  15. data/app/controllers/releaf/sessions_controller.rb +23 -1
  16. data/app/controllers/releaf/translations_controller.rb +21 -25
  17. data/app/helpers/releaf/admin_helper.rb +0 -20
  18. data/app/models/releaf/admin.rb +9 -0
  19. data/app/models/releaf/blank_node_base.rb +29 -0
  20. data/app/models/releaf/node.rb +6 -5
  21. data/app/models/releaf/node_base.rb +9 -3
  22. data/app/models/releaf/role.rb +9 -2
  23. data/app/views/layouts/releaf/admin.html.haml +12 -6
  24. data/app/views/layouts/releaf/devise.html.haml +32 -0
  25. data/app/views/releaf/aliases/{_edit.body.haml → _edit.body.html.haml} +0 -0
  26. data/app/views/releaf/aliases/{_edit.header.haml → _edit.header.html.haml} +1 -1
  27. data/app/views/releaf/aliases/_index.row.html.haml +5 -0
  28. data/app/views/releaf/aliases/{_secondary_panel.haml → _secondary_panel.html.haml} +0 -0
  29. data/app/views/releaf/base/_edit.body.html.haml +11 -0
  30. data/app/views/releaf/base/_edit.field.html.haml +23 -0
  31. data/app/views/releaf/base/{_edit.field.type_autocomplete.haml → _edit.field_type_autocomplete.html.haml} +1 -1
  32. data/app/views/releaf/base/{_edit.field.type_checkbox.haml → _edit.field_type_boolean.html.haml} +1 -1
  33. data/app/views/releaf/base/{_edit.field.type_date.haml → _edit.field_type_date.html.haml} +0 -0
  34. data/app/views/releaf/base/{_edit.field.type_datetime.haml → _edit.field_type_datetime.html.haml} +0 -0
  35. data/app/views/releaf/base/{_edit.field.type_delete_nested.haml → _edit.field_type_delete_nested.html.haml} +0 -0
  36. data/app/views/releaf/base/{_edit.field.type_file.haml → _edit.field_type_file.html.haml} +0 -0
  37. data/app/views/releaf/base/_edit.field_type_image.html.haml +12 -0
  38. data/app/views/releaf/base/_edit.field_type_item.html.haml +31 -0
  39. data/app/views/releaf/base/{_edit.field.type_link.haml → _edit.field_type_link.html.haml} +0 -0
  40. data/app/views/releaf/base/_edit.field_type_link_i18n.html.haml +26 -0
  41. data/app/views/releaf/base/{_edit.field.type_password.haml → _edit.field_type_password.html.haml} +0 -0
  42. data/app/views/releaf/base/{_edit.field.type_richtext.haml → _edit.field_type_richtext.html.haml} +0 -0
  43. data/app/views/releaf/base/{_edit.field.type_richtext_i18n.haml → _edit.field_type_richtext_i18n.html.haml} +0 -0
  44. data/app/views/releaf/base/{_edit.field.type_text.haml → _edit.field_type_text.html.haml} +0 -0
  45. data/app/views/releaf/base/{_edit.field.type_text_i18n.haml → _edit.field_type_text_i18n.html.haml} +0 -0
  46. data/app/views/releaf/base/{_edit.field.type_textarea.haml → _edit.field_type_textarea.html.haml} +0 -0
  47. data/app/views/releaf/base/{_edit.field.type_textarea_i18n.haml → _edit.field_type_textarea_i18n.html.haml} +0 -0
  48. data/app/views/releaf/base/{_edit.field.type_time.haml → _edit.field_type_time.html.haml} +0 -0
  49. data/app/views/releaf/base/_edit.fields.association.html.haml +48 -0
  50. data/app/views/releaf/base/_edit.fields.has_many_template.html.haml +15 -0
  51. data/app/views/releaf/base/_edit.fields.html.haml +20 -0
  52. data/app/views/releaf/base/{_edit.footer.haml → _edit.footer.html.haml} +2 -2
  53. data/app/views/releaf/base/_edit.form.html.haml +4 -0
  54. data/app/views/releaf/base/_edit.header.html.haml +3 -0
  55. data/app/views/releaf/base/{_index.body.haml → _index.body.html.haml} +2 -2
  56. data/app/views/releaf/base/_index.cell.html.haml +20 -0
  57. data/app/views/releaf/base/_index.footer.html.haml +28 -0
  58. data/app/views/releaf/base/_index.header.html.haml +4 -0
  59. data/app/views/releaf/base/_index.row.html.haml +6 -0
  60. data/app/views/releaf/base/_index.search.html.haml +5 -0
  61. data/app/views/releaf/base/_index.table.html.haml +24 -0
  62. data/app/views/releaf/base/_secondary_panel.html.haml +10 -0
  63. data/app/views/releaf/base/_show.body.html.haml +3 -0
  64. data/app/views/releaf/base/_show.field.html.haml +20 -0
  65. data/app/views/releaf/base/_show.field_type_date.html.haml +9 -0
  66. data/app/views/releaf/base/_show.field_type_date_time.html.haml +9 -0
  67. data/app/views/releaf/base/_show.field_type_email.html.haml +6 -0
  68. data/app/views/releaf/base/_show.field_type_file.html.haml +7 -0
  69. data/app/views/releaf/base/_show.field_type_image.html.haml +10 -0
  70. data/app/views/releaf/base/_show.field_type_item.html.haml +11 -0
  71. data/app/views/releaf/base/_show.field_type_link.html.haml +14 -0
  72. data/app/views/releaf/base/_show.field_type_password.html.haml +6 -0
  73. data/app/views/releaf/base/_show.field_type_richtext.html.haml +6 -0
  74. data/app/views/releaf/base/_show.field_type_text.html.haml +6 -0
  75. data/app/views/releaf/base/_show.field_type_textarea.html.haml +6 -0
  76. data/app/views/releaf/base/_show.field_type_time.html.haml +9 -0
  77. data/app/views/releaf/base/_show.field_type_url.html.haml +7 -0
  78. data/app/views/releaf/base/_show.fields.association.html.haml +36 -0
  79. data/app/views/releaf/base/_show.fields.has_many_template.html.haml +12 -0
  80. data/app/views/releaf/base/_show.fields.html.haml +17 -0
  81. data/app/views/releaf/base/{_show.footer.haml → _show.footer.html.haml} +6 -4
  82. data/app/views/releaf/base/_show.header.html.haml +3 -0
  83. data/app/views/releaf/base/confirm_destroy.html.haml +17 -0
  84. data/app/views/releaf/base/edit.html.haml +1 -0
  85. data/app/views/releaf/base/index.html.haml +3 -0
  86. data/app/views/releaf/base/new.html.haml +1 -0
  87. data/app/views/releaf/base/show.html.haml +3 -0
  88. data/app/views/releaf/content/{_edit.body.haml → _edit.body.html.haml} +7 -6
  89. data/app/views/releaf/content/_edit.content_fields.html.haml +11 -0
  90. data/app/views/releaf/content/_edit.fields.html.haml +17 -0
  91. data/app/views/releaf/content/{_edit.slug.haml → _edit.slug.html.haml} +0 -0
  92. data/app/views/releaf/content/{_get_content_form.haml → _get_content_form.html.haml} +2 -2
  93. data/app/views/releaf/content/{_secondary_panel.haml → _secondary_panel.html.haml} +0 -0
  94. data/app/views/releaf/content/{_tree_level.haml → _tree_level.html.haml} +0 -0
  95. data/app/views/releaf/content/{ajax.new.haml → ajax.new.html.haml} +0 -0
  96. data/app/views/releaf/content/{index.haml → index.html.haml} +0 -0
  97. data/app/views/releaf/roles/_edit.field.permissions.html.haml +5 -0
  98. data/app/views/releaf/roles/{_show.field.default.haml → _show.field.default.html.haml} +1 -1
  99. data/app/views/releaf/roles/{_show.field.permissions.haml → _show.field.permissions.html.haml} +2 -2
  100. data/app/views/releaf/translations/{_edit.body.haml → _edit.body.html.haml} +0 -0
  101. data/app/views/releaf/translations/{_edit.header.haml → _edit.header.html.haml} +1 -1
  102. data/app/views/releaf/translations/_index.row.html.haml +5 -0
  103. data/app/views/releaf/translations/{_secondary_panel.haml → _secondary_panel.html.haml} +0 -0
  104. data/lib/generators/releaf/templates/initializers/releaf.rb +0 -39
  105. data/lib/generators/releaf/templates/initializers/releaf_i18n.rb +17 -0
  106. data/lib/generators/releaf/templates/javascripts/3rd_party/jquery.jcarousel.js +1058 -0
  107. data/lib/generators/releaf/templates/javascripts/lib/init_jcarousel.js +40 -0
  108. data/lib/generators/releaf/templates/migrations/create_releaf_roles.rb +1 -0
  109. data/lib/generators/releaf/templates/migrations/create_releaf_tinymce_assets.rb +1 -0
  110. data/lib/generators/releaf/templates/models/admin_ability.rb +1 -1
  111. data/lib/i18n/backend/releaf.rb +5 -4
  112. data/lib/i18n/backend/releaf/translation.rb +5 -0
  113. data/lib/i18n/backend/releaf/translation_data.rb +7 -0
  114. data/lib/i18n/backend/releaf/translation_group.rb +4 -0
  115. data/lib/releaf.rb +4 -0
  116. data/lib/releaf/boolean_at.rb +77 -0
  117. data/lib/releaf/globalize3/fallbacks.rb +19 -0
  118. data/lib/releaf/resources.rb +101 -0
  119. data/lib/releaf/slug.rb +99 -60
  120. data/lib/releaf/version.rb +1 -1
  121. data/spec/spec_helper.rb +6 -0
  122. data/templates/releaf/installer.rb +15 -4
  123. metadata +275 -329
  124. data/app/views/releaf/aliases/_index.row.haml +0 -5
  125. data/app/views/releaf/base/_edit.body.haml +0 -19
  126. data/app/views/releaf/base/_edit.field.haml +0 -96
  127. data/app/views/releaf/base/_edit.field.type_image.haml +0 -14
  128. data/app/views/releaf/base/_edit.field.type_select.haml +0 -11
  129. data/app/views/releaf/base/_edit.form.haml +0 -4
  130. data/app/views/releaf/base/_edit.has_many_associations.haml +0 -45
  131. data/app/views/releaf/base/_edit.header.haml +0 -3
  132. data/app/views/releaf/base/_index.cell.haml +0 -19
  133. data/app/views/releaf/base/_index.footer.haml +0 -22
  134. data/app/views/releaf/base/_index.header.haml +0 -4
  135. data/app/views/releaf/base/_index.row.haml +0 -6
  136. data/app/views/releaf/base/_index.search.haml +0 -5
  137. data/app/views/releaf/base/_index.table.haml +0 -8
  138. data/app/views/releaf/base/_secondary_panel.haml +0 -9
  139. data/app/views/releaf/base/_show.body.haml +0 -7
  140. data/app/views/releaf/base/_show.field.haml +0 -78
  141. data/app/views/releaf/base/_show.field.type_html.haml +0 -1
  142. data/app/views/releaf/base/_show.header.haml +0 -3
  143. data/app/views/releaf/base/confirm_destroy.haml +0 -10
  144. data/app/views/releaf/base/edit.haml +0 -1
  145. data/app/views/releaf/base/index.haml +0 -3
  146. data/app/views/releaf/base/new.haml +0 -1
  147. data/app/views/releaf/base/show.haml +0 -3
  148. data/app/views/releaf/content/_edit.content_fields.haml +0 -19
  149. data/app/views/releaf/content/_show.field.content.haml +0 -11
  150. data/app/views/releaf/roles/_edit.field.admins.haml +0 -0
  151. data/app/views/releaf/roles/_edit.field.permissions.haml +0 -5
  152. data/app/views/releaf/translations/_index.row.haml +0 -5
  153. data/spec/dummy/README.rdoc +0 -261
  154. data/spec/dummy/Rakefile +0 -7
  155. data/spec/dummy/app/assets/images/rails.png +0 -0
  156. data/spec/dummy/app/assets/javascripts/application.js +0 -15
  157. data/spec/dummy/app/assets/stylesheets/application.css +0 -13
  158. data/spec/dummy/app/controllers/application_controller.rb +0 -3
  159. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  160. data/spec/dummy/app/models/admin_ability.rb +0 -51
  161. data/spec/dummy/app/models/settings.rb +0 -2
  162. data/spec/dummy/app/views/layouts/application.html.haml +0 -10
  163. data/spec/dummy/config.ru +0 -4
  164. data/spec/dummy/config/application.rb +0 -68
  165. data/spec/dummy/config/boot.rb +0 -6
  166. data/spec/dummy/config/common_fields.yml.example +0 -17
  167. data/spec/dummy/config/database.yml +0 -42
  168. data/spec/dummy/config/environment.rb +0 -5
  169. data/spec/dummy/config/environments/development.rb +0 -37
  170. data/spec/dummy/config/environments/production.rb +0 -67
  171. data/spec/dummy/config/environments/test.rb +0 -37
  172. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  173. data/spec/dummy/config/initializers/devise.rb +0 -232
  174. data/spec/dummy/config/initializers/dragonfly.rb +0 -1
  175. data/spec/dummy/config/initializers/inflections.rb +0 -15
  176. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  177. data/spec/dummy/config/initializers/releaf.rb +0 -59
  178. data/spec/dummy/config/initializers/releaf_i18n.rb +0 -8
  179. data/spec/dummy/config/initializers/releaf_store_current_template.rb +0 -25
  180. data/spec/dummy/config/initializers/secret_token.rb +0 -7
  181. data/spec/dummy/config/initializers/session_store.rb +0 -8
  182. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  183. data/spec/dummy/config/locales/devise.en.yml +0 -58
  184. data/spec/dummy/config/locales/en.yml +0 -5
  185. data/spec/dummy/config/routes.rb +0 -11
  186. data/spec/dummy/db/migrate/20130204164516_create_settings.rb +0 -17
  187. data/spec/dummy/db/migrate/20130204164523_create_releaf_nodes.rb +0 -25
  188. data/spec/dummy/db/migrate/20130204164524_create_releaf_roles.rb +0 -11
  189. data/spec/dummy/db/migrate/20130204164525_create_releaf_translations.rb +0 -31
  190. data/spec/dummy/db/migrate/20130204164526_create_releaf_admins.rb +0 -53
  191. data/spec/dummy/db/schema.rb +0 -112
  192. data/spec/dummy/db/seeds.rb +0 -64
  193. data/spec/dummy/doc/README_FOR_APP +0 -2
  194. data/spec/dummy/log/development.log +0 -74
  195. data/spec/dummy/log/test.log +0 -129
  196. data/spec/dummy/public/404.html +0 -26
  197. data/spec/dummy/public/422.html +0 -26
  198. data/spec/dummy/public/500.html +0 -25
  199. data/spec/dummy/public/favicon.ico +0 -0
  200. data/spec/dummy/script/rails +0 -6
  201. data/spec/dummy/tmp/cache/9C5/660/settings%3Ai18n_updated_at +0 -1
@@ -46,7 +46,7 @@ module Releaf
46
46
  if parent_id
47
47
  url = parent.url + "/" + slug.to_s
48
48
  else
49
- url = slug.to_s
49
+ url = "/" + slug.to_s
50
50
  end
51
51
 
52
52
  url
@@ -56,16 +56,17 @@ module Releaf
56
56
  # Return node content object public controller
57
57
 
58
58
  def controller
59
- raise "Missing content object" if content_object.blank?
60
- return "#{content_type}_controller".classify.constantize
59
+ raise "Missing content object" if content_type.blank?
60
+ return "#{content_type.classify.pluralize}Controller".constantize
61
61
  end
62
62
 
63
63
  def self.get_object_from_path path, params = {}
64
+ raise ArgumentError, 'path must be String or Array' unless path.is_a?(String) || path.is_a?(Array)
64
65
  node = nil
65
66
  parent_node = nil
66
67
 
67
- if path.class == String
68
- path = path.split("/").reject(&:empty?)
68
+ if path.is_a? String
69
+ path = path.split('?').first.split("/").reject(&:empty?)
69
70
  end
70
71
 
71
72
  unless params[:locale].nil?
@@ -7,12 +7,18 @@ module Releaf
7
7
  return _node_classes(self).reject { |n| n.name =~ /^Releaf::/ }
8
8
  end
9
9
 
10
+ def self.releaf_fields_to_display action
11
+ column_names - %w[id created_at updated_at position]
12
+ end
13
+
14
+ def self.node_type
15
+ "Releaf::NodeBase"
16
+ end
17
+
10
18
  private
11
19
 
12
20
  def self._node_classes(klass)
13
- return [klass] if klass.subclasses.blank?
14
-
15
- classes = []
21
+ classes = [klass]
16
22
 
17
23
  klass.subclasses.each do |sublcass|
18
24
  classes += _node_classes(sublcass)
@@ -10,11 +10,16 @@ module Releaf
10
10
  before_save :update_permissions
11
11
  after_save :update_default_role
12
12
 
13
+ attr_accessible \
14
+ :name,
15
+ :default,
16
+ :default_controller
17
+
13
18
  alias_attribute :to_text, :name
14
19
 
15
20
  ::AdminAbility::PERMISSIONS.each do |perms|
16
21
  if perms.is_a? Array
17
- # attr_accessible :"#{perms[0]}_permissions"
22
+ attr_accessible :"#{perms[0]}_permissions"
18
23
  define_method :"#{perms[0]}_permissions=" do |p|
19
24
  return if p.nil?
20
25
  raise ArgumentError, "permission must be one of: #{perms[1].join(', ')}" unless perms[1].include? p.to_s
@@ -30,9 +35,10 @@ module Releaf
30
35
  end
31
36
  return perms[1].first
32
37
  end
38
+ alias_method "#{perms[0]}_permissions?", "#{perms[0]}_permissions"
33
39
 
34
40
  elsif perms.is_a? String
35
- # attr_accessible :"#{perms}_permission"
41
+ attr_accessible :"#{perms}_permission"
36
42
  define_method "#{perms}_permission=" do |p|
37
43
  return if p.nil?
38
44
 
@@ -45,6 +51,7 @@ module Releaf
45
51
  return (iv == '1' || iv == true) unless iv.nil?
46
52
  permissions.include? perms
47
53
  end
54
+ alias_method "#{perms}_permission?", "#{perms}_permission"
48
55
  end
49
56
  end
50
57
 
@@ -10,9 +10,12 @@
10
10
  - _assets_path = __FILE__.split('/')[0...-1].join('/') + "/../../../assets"
11
11
 
12
12
  - controller_asset = params[:controller]
13
- - ['.css.scss.erb', '.scss.erb', '.css.scss', '.scss', '.css.erb', '.css'].each do |ext|
14
- - if File.exists?(_assets_path + "/stylesheets/releaf/controllers/#{controller_asset}" + ext)
13
+ - %w[css.scss.erb scss.erb css.scss scss css.erb css].each do |ext|
14
+ - if File.exists?(_assets_path + "/stylesheets/releaf/controllers/#{controller_asset}.#{ext}")
15
15
  = stylesheet_link_tag "releaf/controllers/#{controller_asset}"
16
+ - if File.exists?(Rails.root.to_s + "/app/assets/stylesheets/controllers/#{controller_asset}.#{ext}")
17
+ = stylesheet_link_tag "controllers/#{controller_asset}"
18
+
16
19
  %body.yui3-skin-sam
17
20
  - if self.send(:"#{Releaf::ReleafDeviseHelper.devise_admin_model_name}_signed_in?")
18
21
  .main_menu
@@ -29,9 +32,9 @@
29
32
  = image_tag("releaf/module.png")
30
33
  %span.name_wrap= t(item, :scope => "admin.main_menu")
31
34
 
32
- #body_wrap{:class => "module-#{controller.controller_name} method-#{controller.action_name} controller-#{params[:controller].tr( '/', '-' )} action-#{controller.action_name} view-#{ controller.active_template.virtual_path.split('/').pop() if controller.active_template }"}
35
+ #body_wrap{:class => "#{current_feature}-feature module-#{controller.controller_name} method-#{controller.action_name} controller-#{params[:controller].tr( '/', '-' )} action-#{controller.action_name} view-#{ controller.active_template.virtual_path.split('/').pop() if controller.active_template }"}
33
36
  - if self.send(:"#{Releaf::ReleafDeviseHelper.devise_admin_model_name}_signed_in?")
34
- - if @panel_layout == true
37
+ - if @panel_layout
35
38
  .panel_layout
36
39
  .secondary_panel
37
40
  = controller.secondary_panel.html_safe
@@ -47,5 +50,8 @@
47
50
  .loading_icon
48
51
 
49
52
  = javascript_include_tag "releaf/application"
50
- - if File.exists?(_assets_path + "/javascripts/releaf/controllers/#{controller_asset}.js")
51
- = javascript_include_tag "releaf/controllers/#{controller_asset}"
53
+ - %w[js js.erb].each do |ext|
54
+ - if File.exists?(_assets_path + "/javascripts/releaf/controllers/#{controller_asset}.#{ext}")
55
+ = javascript_include_tag "releaf/controllers/#{controller_asset}"
56
+ - if File.exists?(Rails.root.to_s + "/app/assets/javascripts/controllers/#{controller_asset}.#{ext}")
57
+ = javascript_include_tag "controllers/#{controller_asset}"
@@ -0,0 +1,32 @@
1
+ !!! 5
2
+ %html
3
+ %head
4
+ %title re:leaf
5
+ = csrf_meta_tags
6
+ %link{ :rel =>"icon", :href => asset_path("releaf/favicon.ico"), :type => "image/x-icon" }
7
+
8
+ = stylesheet_link_tag "releaf/application"
9
+
10
+ - _assets_path = __FILE__.split('/')[0...-1].join('/') + "/../../../assets"
11
+
12
+ - controller_asset = params[:controller]
13
+ - %w[css.scss.erb scss.erb css.scss scss css.erb css].each do |ext|
14
+ - if File.exists?(_assets_path + "/stylesheets/releaf/controllers/#{controller_asset}.#{ext}")
15
+ = stylesheet_link_tag "releaf/controllers/#{controller_asset}"
16
+ - if File.exists?(Rails.root.to_s + "/app/assets/stylesheets/controllers/#{controller_asset}.#{ext}")
17
+ = stylesheet_link_tag "controllers/#{controller_asset}"
18
+
19
+ %body.yui3-skin-sam
20
+ #body_wrap{:class => "module-#{controller.controller_name} method-#{controller.action_name} controller-#{params[:controller].tr( '/', '-' )} action-#{controller.action_name} view-#{ controller.active_template.virtual_path.split('/').pop() if controller.active_template }"}
21
+ = yield
22
+
23
+ #preload_wrap
24
+ #preload
25
+ .loading_icon
26
+
27
+ = javascript_include_tag "releaf/application"
28
+ - %w[js js.erb].each do |ext|
29
+ - if File.exists?(_assets_path + "/javascripts/releaf/controllers/#{controller_asset}.#{ext}")
30
+ = javascript_include_tag "releaf/controllers/#{controller_asset}"
31
+ - if File.exists?(Rails.root.to_s + "/app/assets/javascripts/controllers/#{controller_asset}.#{ext}")
32
+ = javascript_include_tag "controllers/#{controller_asset}"
@@ -11,7 +11,7 @@
11
11
  .groupInfo
12
12
  .field
13
13
  %label{:for => "context"} Konteksts:
14
- %input#context{:name => "translation_group[scope]", :size => "50", :type => "text", :value => @item.scope}/
14
+ %input#context{:name => "translation_group[scope]", :size => "50", :type => "text", :value => @resource.scope}/
15
15
  .aliasesTable.aliasesTableHead
16
16
  .th.codeHeader{:style => "width: 208px; "}>< Nosaukums
17
17
  - Settings.i18n_locales.each do |locale|
@@ -0,0 +1,5 @@
1
+ %a.row{ 'data-id' => resource.id, :href => "#{url_for( :action => list_action, :id => resource.group_id )}#translation_#{resource.id}" }
2
+ %span= resource.translation_group.scope
3
+ %span= resource.key
4
+ - Settings.i18n_locales.each do |locale|
5
+ %span= resource.locales[locale]
@@ -0,0 +1,11 @@
1
+ .body.inset_box
2
+ .section
3
+ -#TODO: improve style/html
4
+ -if f.object.errors.any?
5
+ #error_explanation
6
+ %strong= "#{pluralize(f.object.errors.count, "error")} prohibited this news from being saved:"
7
+ %ul
8
+ - f.object.errors.full_messages.each do |msg|
9
+ %li= msg
10
+
11
+ = render 'edit.fields', :f => f, :fields => fields_to_display, :view_prefix => 'edit.field'
@@ -0,0 +1,23 @@
1
+ - name_without_id_or_type = name.sub(/_(id|type)$/, '')
2
+
3
+ - if f.object.class.reflect_on_association(name_without_id_or_type).try(:options).try('[]', :polymorphic) == true
4
+ -# name =~ /_id$/ is required to prevent user template from being renedred 2x times:
5
+ -# first time for _id field, second time for _type field
6
+ - if name =~ /_id$/ && has_template?( "_#{view_prefix}.#{name_without_id_or_type}" )
7
+ = render "#{view_prefix}.#{name_without_id_or_type}", :f => f, :name => name, :view_prefix => view_prefix
8
+
9
+ - else
10
+ - if has_template? "_#{view_prefix}.#{name}"
11
+ = render "#{view_prefix}.#{name}", :f => f, :name => name, :view_prefix => view_prefix
12
+ - else
13
+
14
+ - render_field_type, use_i18n = render_field_type(f.object, name)
15
+
16
+ - if use_i18n and has_template?( "_edit.field_type_#{render_field_type}_i18n" )
17
+ = render "edit.field_type_#{render_field_type}_i18n", :f => f, :name => name
18
+
19
+ - elsif has_template? "_edit.field_type_#{render_field_type}"
20
+ = render "edit.field_type_#{render_field_type}", :f => f, :name => name
21
+
22
+ - else
23
+ = render "edit.field_type_text", :f => f, :name => name
@@ -8,7 +8,7 @@
8
8
  - if can_create == true
9
9
  = f.text_field :"#{name}_text", :'data-autocomplete-url' => autocomplete_url
10
10
  - else
11
- %input{:type => :text, :name => "_tmp_field_#{f.object.object_id}_#{rand(999999999)}", :'data-autocomplete-url' => autocomplete_url, :value => f.object.send(name.sub(/_id$/, '')).to_text }/
11
+ %input{:type => :text, :name => "_tmp_field_#{f.object.object_id}_#{rand(999999999)}", :'data-autocomplete-url' => autocomplete_url, :value => resource_to_text(f.object.send(name.sub(/_id$/, ''))) }/
12
12
  = image_tag 'releaf/input/autocompleteExpandIcon.png', :alt => '', :class => :autocomplete_expand_icon
13
13
  = f.hidden_field name
14
14
 
@@ -1,4 +1,4 @@
1
- .field.type_checkbox{ 'data-name' => name }
1
+ .field.type_boolean{ 'data-name' => name }
2
2
  .value
3
3
  = f.check_box name
4
4
  = f.label name, name.to_s.humanize
@@ -0,0 +1,12 @@
1
+ .field.type_text{ 'data-name' => name }
2
+ - field_name = name.sub(/_uid$/, '')
3
+
4
+ .label_wrap><= f.label field_name, field_name.to_s.humanize + ':'
5
+ .value><
6
+ = f.file_field field_name, :accept => 'image/png,image/jpeg,image/bmp,image/gif'
7
+ - unless f.object.send(name).blank?
8
+ .value_preview
9
+ = f.hidden_field "retained_#{field_name}"
10
+ - img_object = f.object.send(field_name)
11
+ = link_to image_tag(img_object.thumb('x128>').url, :alt => ''), img_object.url, :target => :_blank, :data => {:lightbox => true }
12
+ .clear
@@ -0,0 +1,31 @@
1
+ :ruby
2
+ select_params = [name]
3
+
4
+
5
+ if local_assigns.key? :select_options
6
+ select_params.push select_options
7
+ else
8
+ collection = f.object.class.reflect_on_association(name.sub(/_id$/, '').to_sym).try(:klass).try(:all)
9
+ select_params.push options_from_collection_for_select(collection, :id, resource_to_text_method(collection.first), f.object.send(name))
10
+ end
11
+
12
+ if local_assigns.key? :options
13
+ select_params.push options
14
+ end
15
+ if local_assigns.key? :html_options
16
+ select_params.push html_options
17
+ end
18
+
19
+ include_blank = true
20
+ f.object.class.validators_on(name).each do |validator|
21
+ if validator.is_a? ActiveModel::Validations::PresenceValidator
22
+ include_blank = f.object.new_record?
23
+ break
24
+ end
25
+ end
26
+ select_params.push Hash[:include_blank, include_blank]
27
+
28
+ .field.type_item{ 'data-name' => name }
29
+ .label_wrap><= f.label name, name.to_s.humanize + ':'
30
+ .value><= f.select *select_params
31
+ .clear
@@ -0,0 +1,26 @@
1
+ - default_locale = Settings.i18n_locales.first
2
+ .field.type_link.i18n{ :'data-name' => name }
3
+ - Settings.i18n_locales.each_with_index do |locale, i|
4
+ - translation = f.object.translations.find_or_initialize_by_locale(locale)
5
+ - is_default_locale = locale == default_locale
6
+
7
+ .localization{:"data-locale" => locale, :style => is_default_locale ? nil : 'display:none'}
8
+ = f.fields_for :"translations", translation, :child_index => i do |ff|
9
+ .label_wrap
10
+ = ff.label name, name.to_s.humanize + ':'
11
+ .value
12
+ - unless translation.new_record?
13
+ = ff.hidden_field :id
14
+ = ff.hidden_field :locale
15
+
16
+ - if is_default_locale
17
+ = f.hidden_field name, :class => :sync_field
18
+ = ff.text_field name, :class => :sync_field
19
+ - else
20
+ = ff.text_field name
21
+ .clear
22
+
23
+ .localization_buttons
24
+ - Settings.i18n_locales.each_with_index do |locale, i|
25
+ - is_default_locale = locale == default_locale
26
+ %button{:type => :button, :"data-locale" => locale, :class => is_default_locale ? :active : nil}= locale
@@ -0,0 +1,48 @@
1
+ - if has_template? "_#{view_prefix}.#{field}"
2
+ = render "#{view_prefix}.#{field}", :f => f, :name => field
3
+
4
+ - else
5
+ - new_view_prefix = "#{view_prefix}.#{field}"
6
+
7
+
8
+ - case reflection.macro
9
+ - when :has_many
10
+ - sortable_objects = reflection.klass.column_names.include?('position')
11
+ .nested_wrap{:'data-name' => field}
12
+ .nested_title= I18n.t(field)
13
+ .list{:'data-sortable' => sortable_objects ? '' : nil}
14
+
15
+ .item.template{:style => 'display:none;'}
16
+ = f.fields_for field, reflection.klass.new, :child_index => '_template_' do |ff|
17
+ = render 'edit.fields.has_many_template', :ff => ff, :sortable_objects => sortable_objects, :subfields => subfields, :view_prefix => new_view_prefix, :field => field
18
+
19
+ - f.object.send(field).each_with_index do |obj, i|
20
+ .item
21
+ = f.fields_for field, obj, :child_index => i do |ff|
22
+ = render 'edit.fields.has_many_template', :ff => ff, :sortable_objects => sortable_objects, :subfields => subfields, :view_prefix => new_view_prefix, :field => field
23
+
24
+
25
+ %button.add.new(type='button')
26
+ = image_tag 'releaf/icons/add.png', :atl => ''
27
+ %span= I18n.t("New")
28
+
29
+
30
+ - when :belongs_to
31
+ .nested_wrap{:'data-name' => field}
32
+ .nested_title= I18n.t(field)
33
+ .item
34
+ = f.fields_for field, f.object.send(field) do |ff|
35
+
36
+ - if subfields.is_a? Array
37
+ - subfields.each do |subfield|
38
+ - if has_template? "_#{new_view_prefix}.#{subfield}"
39
+ = render "#{new_view_prefix}.#{subfield}", :f => ff, :name => subfield
40
+ - else
41
+ = render 'edit.fields', :f => ff, :fields => subfields, :view_prefix => new_view_prefix
42
+
43
+ - elsif subfields.is_a? String or subfields.is_a? Symbol
44
+ - if has_template? "_#{new_view_prefix}.#{field}"
45
+ = render "_#{new_view_prefix}.#{field}", :f => ff, :name => field
46
+ - else
47
+ = render 'edit.field', :f => ff, :name => field
48
+
@@ -0,0 +1,15 @@
1
+ - if sortable_objects
2
+ = ff.hidden_field :position, :class => :position
3
+ .handle &nbsp;
4
+
5
+ - if subfields.is_a? Array
6
+
7
+ = render 'edit.fields', :f => ff, :fields => subfields, :view_prefix => view_prefix
8
+
9
+ - elsif subfields.is_a? String or subfields.is_a? Symbol
10
+ - if has_template? "_#{view_prefix}.#{field}"
11
+ = render "#{view_prefix}.#{field}", :f => ff, :name => field
12
+ - else
13
+ = render 'edit.field', :f => ff, :name => field, :view_prefix => view_prefix
14
+
15
+ = render 'edit.field_type_delete_nested', :f => ff
@@ -0,0 +1,20 @@
1
+ - fields.each do |field|
2
+ - if field.is_a?(String) or field.is_a?(Symbol)
3
+ -# = Rails.logger.debug "\n\n\n"
4
+ -# = Rails.logger.debug f.object.class
5
+ -# = Rails.logger.debug "\n\n\n"
6
+ - reflection = f.object.class.reflections[field.to_sym]
7
+
8
+ - if (field.is_a?(String) or field.is_a?(Symbol)) && !reflection
9
+ - if has_template? "_#{view_prefix}.#{field}"
10
+ = render "#{view_prefix}.#{field}", :f => f, :name => field
11
+ - else
12
+ = render 'edit.field', :f => f, :name => field, :view_prefix => view_prefix
13
+
14
+ - elsif field.is_a? Hash
15
+ - field.each_pair do |field, subfields|
16
+ - reflection = f.object.class.reflections[field.to_sym]
17
+ = render 'edit.fields.association', :f => f, :field => field, :subfields => subfields, :reflection => reflection, :view_prefix => view_prefix
18
+ - elsif reflection
19
+ - subfields = reflection.klass.column_names - %w[id created_at updated_at password password_confirmation encrypted_password position]
20
+ = render 'edit.fields.association', :f => f, :field => field, :subfields => subfields, :reflection => reflection, :view_prefix => view_prefix
@@ -8,7 +8,7 @@
8
8
  = image_tag("releaf/icons/disk.png", :alt => "") \
9
9
  = t('save')
10
10
  .block.right_block
11
- - if @features[:destroy] && !f.object.new_record?
12
- %a.button{ :href => url_for( :action => 'confirm_destroy', :id => f.object.id ) }
11
+ - if @features[:destroy] && !resource.new_record?
12
+ %a.button{ :href => url_for( :action => 'confirm_destroy', :id => resource.id ) }
13
13
  = image_tag('releaf/icons/bin_empty.png', :alt => '')
14
14
  %span= t('destroy')