releaf 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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')