releaf 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +15 -12
- data/Rakefile +8 -0
- data/app/assets/javascripts/releaf/controllers/base.js +0 -40
- data/app/assets/javascripts/releaf/include/field.type_date_or_datetime_or_time.js +43 -0
- data/app/assets/javascripts/releaf/include/nested_fields.js +58 -65
- data/app/assets/javascripts/releaf/include/sortable.js +19 -17
- data/app/assets/stylesheets/releaf/controllers/releaf/content.css.erb +6 -0
- data/app/assets/stylesheets/releaf/include/field.css.erb +37 -13
- data/app/controllers/releaf/admins_controller.rb +13 -6
- data/app/controllers/releaf/base_application_controller.rb +4 -1
- data/app/controllers/releaf/base_controller.rb +415 -154
- data/app/controllers/releaf/content_controller.rb +62 -45
- data/app/controllers/releaf/roles_controller.rb +11 -9
- data/app/controllers/releaf/sessions_controller.rb +23 -1
- data/app/controllers/releaf/translations_controller.rb +21 -25
- data/app/helpers/releaf/admin_helper.rb +0 -20
- data/app/models/releaf/admin.rb +9 -0
- data/app/models/releaf/blank_node_base.rb +29 -0
- data/app/models/releaf/node.rb +6 -5
- data/app/models/releaf/node_base.rb +9 -3
- data/app/models/releaf/role.rb +9 -2
- data/app/views/layouts/releaf/admin.html.haml +12 -6
- data/app/views/layouts/releaf/devise.html.haml +32 -0
- data/app/views/releaf/aliases/{_edit.body.haml → _edit.body.html.haml} +0 -0
- data/app/views/releaf/aliases/{_edit.header.haml → _edit.header.html.haml} +1 -1
- data/app/views/releaf/aliases/_index.row.html.haml +5 -0
- data/app/views/releaf/aliases/{_secondary_panel.haml → _secondary_panel.html.haml} +0 -0
- data/app/views/releaf/base/_edit.body.html.haml +11 -0
- data/app/views/releaf/base/_edit.field.html.haml +23 -0
- data/app/views/releaf/base/{_edit.field.type_autocomplete.haml → _edit.field_type_autocomplete.html.haml} +1 -1
- data/app/views/releaf/base/{_edit.field.type_checkbox.haml → _edit.field_type_boolean.html.haml} +1 -1
- data/app/views/releaf/base/{_edit.field.type_date.haml → _edit.field_type_date.html.haml} +0 -0
- data/app/views/releaf/base/{_edit.field.type_datetime.haml → _edit.field_type_datetime.html.haml} +0 -0
- data/app/views/releaf/base/{_edit.field.type_delete_nested.haml → _edit.field_type_delete_nested.html.haml} +0 -0
- data/app/views/releaf/base/{_edit.field.type_file.haml → _edit.field_type_file.html.haml} +0 -0
- data/app/views/releaf/base/_edit.field_type_image.html.haml +12 -0
- data/app/views/releaf/base/_edit.field_type_item.html.haml +31 -0
- data/app/views/releaf/base/{_edit.field.type_link.haml → _edit.field_type_link.html.haml} +0 -0
- data/app/views/releaf/base/_edit.field_type_link_i18n.html.haml +26 -0
- data/app/views/releaf/base/{_edit.field.type_password.haml → _edit.field_type_password.html.haml} +0 -0
- data/app/views/releaf/base/{_edit.field.type_richtext.haml → _edit.field_type_richtext.html.haml} +0 -0
- data/app/views/releaf/base/{_edit.field.type_richtext_i18n.haml → _edit.field_type_richtext_i18n.html.haml} +0 -0
- data/app/views/releaf/base/{_edit.field.type_text.haml → _edit.field_type_text.html.haml} +0 -0
- data/app/views/releaf/base/{_edit.field.type_text_i18n.haml → _edit.field_type_text_i18n.html.haml} +0 -0
- data/app/views/releaf/base/{_edit.field.type_textarea.haml → _edit.field_type_textarea.html.haml} +0 -0
- data/app/views/releaf/base/{_edit.field.type_textarea_i18n.haml → _edit.field_type_textarea_i18n.html.haml} +0 -0
- data/app/views/releaf/base/{_edit.field.type_time.haml → _edit.field_type_time.html.haml} +0 -0
- data/app/views/releaf/base/_edit.fields.association.html.haml +48 -0
- data/app/views/releaf/base/_edit.fields.has_many_template.html.haml +15 -0
- data/app/views/releaf/base/_edit.fields.html.haml +20 -0
- data/app/views/releaf/base/{_edit.footer.haml → _edit.footer.html.haml} +2 -2
- data/app/views/releaf/base/_edit.form.html.haml +4 -0
- data/app/views/releaf/base/_edit.header.html.haml +3 -0
- data/app/views/releaf/base/{_index.body.haml → _index.body.html.haml} +2 -2
- data/app/views/releaf/base/_index.cell.html.haml +20 -0
- data/app/views/releaf/base/_index.footer.html.haml +28 -0
- data/app/views/releaf/base/_index.header.html.haml +4 -0
- data/app/views/releaf/base/_index.row.html.haml +6 -0
- data/app/views/releaf/base/_index.search.html.haml +5 -0
- data/app/views/releaf/base/_index.table.html.haml +24 -0
- data/app/views/releaf/base/_secondary_panel.html.haml +10 -0
- data/app/views/releaf/base/_show.body.html.haml +3 -0
- data/app/views/releaf/base/_show.field.html.haml +20 -0
- data/app/views/releaf/base/_show.field_type_date.html.haml +9 -0
- data/app/views/releaf/base/_show.field_type_date_time.html.haml +9 -0
- data/app/views/releaf/base/_show.field_type_email.html.haml +6 -0
- data/app/views/releaf/base/_show.field_type_file.html.haml +7 -0
- data/app/views/releaf/base/_show.field_type_image.html.haml +10 -0
- data/app/views/releaf/base/_show.field_type_item.html.haml +11 -0
- data/app/views/releaf/base/_show.field_type_link.html.haml +14 -0
- data/app/views/releaf/base/_show.field_type_password.html.haml +6 -0
- data/app/views/releaf/base/_show.field_type_richtext.html.haml +6 -0
- data/app/views/releaf/base/_show.field_type_text.html.haml +6 -0
- data/app/views/releaf/base/_show.field_type_textarea.html.haml +6 -0
- data/app/views/releaf/base/_show.field_type_time.html.haml +9 -0
- data/app/views/releaf/base/_show.field_type_url.html.haml +7 -0
- data/app/views/releaf/base/_show.fields.association.html.haml +36 -0
- data/app/views/releaf/base/_show.fields.has_many_template.html.haml +12 -0
- data/app/views/releaf/base/_show.fields.html.haml +17 -0
- data/app/views/releaf/base/{_show.footer.haml → _show.footer.html.haml} +6 -4
- data/app/views/releaf/base/_show.header.html.haml +3 -0
- data/app/views/releaf/base/confirm_destroy.html.haml +17 -0
- data/app/views/releaf/base/edit.html.haml +1 -0
- data/app/views/releaf/base/index.html.haml +3 -0
- data/app/views/releaf/base/new.html.haml +1 -0
- data/app/views/releaf/base/show.html.haml +3 -0
- data/app/views/releaf/content/{_edit.body.haml → _edit.body.html.haml} +7 -6
- data/app/views/releaf/content/_edit.content_fields.html.haml +11 -0
- data/app/views/releaf/content/_edit.fields.html.haml +17 -0
- data/app/views/releaf/content/{_edit.slug.haml → _edit.slug.html.haml} +0 -0
- data/app/views/releaf/content/{_get_content_form.haml → _get_content_form.html.haml} +2 -2
- data/app/views/releaf/content/{_secondary_panel.haml → _secondary_panel.html.haml} +0 -0
- data/app/views/releaf/content/{_tree_level.haml → _tree_level.html.haml} +0 -0
- data/app/views/releaf/content/{ajax.new.haml → ajax.new.html.haml} +0 -0
- data/app/views/releaf/content/{index.haml → index.html.haml} +0 -0
- data/app/views/releaf/roles/_edit.field.permissions.html.haml +5 -0
- data/app/views/releaf/roles/{_show.field.default.haml → _show.field.default.html.haml} +1 -1
- data/app/views/releaf/roles/{_show.field.permissions.haml → _show.field.permissions.html.haml} +2 -2
- data/app/views/releaf/translations/{_edit.body.haml → _edit.body.html.haml} +0 -0
- data/app/views/releaf/translations/{_edit.header.haml → _edit.header.html.haml} +1 -1
- data/app/views/releaf/translations/_index.row.html.haml +5 -0
- data/app/views/releaf/translations/{_secondary_panel.haml → _secondary_panel.html.haml} +0 -0
- data/lib/generators/releaf/templates/initializers/releaf.rb +0 -39
- data/lib/generators/releaf/templates/initializers/releaf_i18n.rb +17 -0
- data/lib/generators/releaf/templates/javascripts/3rd_party/jquery.jcarousel.js +1058 -0
- data/lib/generators/releaf/templates/javascripts/lib/init_jcarousel.js +40 -0
- data/lib/generators/releaf/templates/migrations/create_releaf_roles.rb +1 -0
- data/lib/generators/releaf/templates/migrations/create_releaf_tinymce_assets.rb +1 -0
- data/lib/generators/releaf/templates/models/admin_ability.rb +1 -1
- data/lib/i18n/backend/releaf.rb +5 -4
- data/lib/i18n/backend/releaf/translation.rb +5 -0
- data/lib/i18n/backend/releaf/translation_data.rb +7 -0
- data/lib/i18n/backend/releaf/translation_group.rb +4 -0
- data/lib/releaf.rb +4 -0
- data/lib/releaf/boolean_at.rb +77 -0
- data/lib/releaf/globalize3/fallbacks.rb +19 -0
- data/lib/releaf/resources.rb +101 -0
- data/lib/releaf/slug.rb +99 -60
- data/lib/releaf/version.rb +1 -1
- data/spec/spec_helper.rb +6 -0
- data/templates/releaf/installer.rb +15 -4
- metadata +275 -329
- data/app/views/releaf/aliases/_index.row.haml +0 -5
- data/app/views/releaf/base/_edit.body.haml +0 -19
- data/app/views/releaf/base/_edit.field.haml +0 -96
- data/app/views/releaf/base/_edit.field.type_image.haml +0 -14
- data/app/views/releaf/base/_edit.field.type_select.haml +0 -11
- data/app/views/releaf/base/_edit.form.haml +0 -4
- data/app/views/releaf/base/_edit.has_many_associations.haml +0 -45
- data/app/views/releaf/base/_edit.header.haml +0 -3
- data/app/views/releaf/base/_index.cell.haml +0 -19
- data/app/views/releaf/base/_index.footer.haml +0 -22
- data/app/views/releaf/base/_index.header.haml +0 -4
- data/app/views/releaf/base/_index.row.haml +0 -6
- data/app/views/releaf/base/_index.search.haml +0 -5
- data/app/views/releaf/base/_index.table.haml +0 -8
- data/app/views/releaf/base/_secondary_panel.haml +0 -9
- data/app/views/releaf/base/_show.body.haml +0 -7
- data/app/views/releaf/base/_show.field.haml +0 -78
- data/app/views/releaf/base/_show.field.type_html.haml +0 -1
- data/app/views/releaf/base/_show.header.haml +0 -3
- data/app/views/releaf/base/confirm_destroy.haml +0 -10
- data/app/views/releaf/base/edit.haml +0 -1
- data/app/views/releaf/base/index.haml +0 -3
- data/app/views/releaf/base/new.haml +0 -1
- data/app/views/releaf/base/show.haml +0 -3
- data/app/views/releaf/content/_edit.content_fields.haml +0 -19
- data/app/views/releaf/content/_show.field.content.haml +0 -11
- data/app/views/releaf/roles/_edit.field.admins.haml +0 -0
- data/app/views/releaf/roles/_edit.field.permissions.haml +0 -5
- data/app/views/releaf/translations/_index.row.haml +0 -5
- data/spec/dummy/README.rdoc +0 -261
- data/spec/dummy/Rakefile +0 -7
- data/spec/dummy/app/assets/images/rails.png +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +0 -15
- data/spec/dummy/app/assets/stylesheets/application.css +0 -13
- data/spec/dummy/app/controllers/application_controller.rb +0 -3
- data/spec/dummy/app/helpers/application_helper.rb +0 -2
- data/spec/dummy/app/models/admin_ability.rb +0 -51
- data/spec/dummy/app/models/settings.rb +0 -2
- data/spec/dummy/app/views/layouts/application.html.haml +0 -10
- data/spec/dummy/config.ru +0 -4
- data/spec/dummy/config/application.rb +0 -68
- data/spec/dummy/config/boot.rb +0 -6
- data/spec/dummy/config/common_fields.yml.example +0 -17
- data/spec/dummy/config/database.yml +0 -42
- data/spec/dummy/config/environment.rb +0 -5
- data/spec/dummy/config/environments/development.rb +0 -37
- data/spec/dummy/config/environments/production.rb +0 -67
- data/spec/dummy/config/environments/test.rb +0 -37
- data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/dummy/config/initializers/devise.rb +0 -232
- data/spec/dummy/config/initializers/dragonfly.rb +0 -1
- data/spec/dummy/config/initializers/inflections.rb +0 -15
- data/spec/dummy/config/initializers/mime_types.rb +0 -5
- data/spec/dummy/config/initializers/releaf.rb +0 -59
- data/spec/dummy/config/initializers/releaf_i18n.rb +0 -8
- data/spec/dummy/config/initializers/releaf_store_current_template.rb +0 -25
- data/spec/dummy/config/initializers/secret_token.rb +0 -7
- data/spec/dummy/config/initializers/session_store.rb +0 -8
- data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/spec/dummy/config/locales/devise.en.yml +0 -58
- data/spec/dummy/config/locales/en.yml +0 -5
- data/spec/dummy/config/routes.rb +0 -11
- data/spec/dummy/db/migrate/20130204164516_create_settings.rb +0 -17
- data/spec/dummy/db/migrate/20130204164523_create_releaf_nodes.rb +0 -25
- data/spec/dummy/db/migrate/20130204164524_create_releaf_roles.rb +0 -11
- data/spec/dummy/db/migrate/20130204164525_create_releaf_translations.rb +0 -31
- data/spec/dummy/db/migrate/20130204164526_create_releaf_admins.rb +0 -53
- data/spec/dummy/db/schema.rb +0 -112
- data/spec/dummy/db/seeds.rb +0 -64
- data/spec/dummy/doc/README_FOR_APP +0 -2
- data/spec/dummy/log/development.log +0 -74
- data/spec/dummy/log/test.log +0 -129
- data/spec/dummy/public/404.html +0 -26
- data/spec/dummy/public/422.html +0 -26
- data/spec/dummy/public/500.html +0 -25
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +0 -6
- data/spec/dummy/tmp/cache/9C5/660/settings%3Ai18n_updated_at +0 -1
data/app/models/releaf/node.rb
CHANGED
@@ -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
|
60
|
-
return "#{content_type}
|
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.
|
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
|
-
|
14
|
-
|
15
|
-
classes = []
|
21
|
+
classes = [klass]
|
16
22
|
|
17
23
|
klass.subclasses.each do |sublcass|
|
18
24
|
classes += _node_classes(sublcass)
|
data/app/models/releaf/role.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
- [
|
14
|
-
- if File.exists?(_assets_path + "/stylesheets/releaf/controllers/#{controller_asset}"
|
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
|
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
|
-
-
|
51
|
-
|
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}"
|
File without changes
|
@@ -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 => @
|
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]
|
File without changes
|
@@ -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$/, ''))
|
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
|
|
File without changes
|
data/app/views/releaf/base/{_edit.field.type_datetime.haml → _edit.field_type_datetime.html.haml}
RENAMED
File without changes
|
File without changes
|
File without changes
|
@@ -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
|
File without changes
|
@@ -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
|
data/app/views/releaf/base/{_edit.field.type_password.haml → _edit.field_type_password.html.haml}
RENAMED
File without changes
|
data/app/views/releaf/base/{_edit.field.type_richtext.haml → _edit.field_type_richtext.html.haml}
RENAMED
File without changes
|
File without changes
|
File without changes
|
data/app/views/releaf/base/{_edit.field.type_text_i18n.haml → _edit.field_type_text_i18n.html.haml}
RENAMED
File without changes
|
data/app/views/releaf/base/{_edit.field.type_textarea.haml → _edit.field_type_textarea.html.haml}
RENAMED
File without changes
|
File without changes
|
File without changes
|
@@ -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
|
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] && !
|
12
|
-
%a.button{ :href => url_for( :action => 'confirm_destroy', :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')
|