fullstack-cms 0.2.13 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  source "http://rubygems.org"
6
6
 
7
- gem "fullstack-admin", '~> 0.1.42'
7
+ gem "fullstack-admin", '~> 0.1.43'
8
8
 
9
9
  gem "ars-permalink"
10
10
  gem "has-attached"
data/Gemfile.lock CHANGED
@@ -62,7 +62,7 @@ GEM
62
62
  railties (>= 3.0)
63
63
  builder (3.0.0)
64
64
  checkin (0.5.1)
65
- chosen-rails (0.9.8.2)
65
+ chosen-rails (0.9.8.3)
66
66
  railties (~> 3.0)
67
67
  thor (~> 0.14)
68
68
  chronic (0.6.7)
@@ -95,9 +95,9 @@ GEM
95
95
  rails (~> 3.0)
96
96
  formtastic (2.2.1)
97
97
  actionpack (>= 3.0)
98
- formtastic-bootstrap (1.1.1)
99
- formtastic
100
- rails (~> 3.1)
98
+ formtastic-bootstrap (2.0.0)
99
+ formtastic (~> 2.2)
100
+ formtastic-bootstrap
101
101
  friendly_id (4.0.8)
102
102
  fullstack (0.1.25)
103
103
  active_record_schema
@@ -126,7 +126,7 @@ GEM
126
126
  remotipart
127
127
  resource-presentation-helpers
128
128
  squeel
129
- fullstack-admin (0.1.42)
129
+ fullstack-admin (0.1.43)
130
130
  bootstrap-datepicker-rails
131
131
  bootstrap-helpers
132
132
  bootstrap-wysihtml5-rails
@@ -161,7 +161,7 @@ GEM
161
161
  rake
162
162
  rdoc
163
163
  journey (1.0.4)
164
- jquery-rails (2.1.1)
164
+ jquery-rails (2.1.2)
165
165
  railties (>= 3.1.0, < 5.0)
166
166
  thor (~> 0.14)
167
167
  json (1.7.4)
@@ -170,12 +170,12 @@ GEM
170
170
  activesupport (>= 3.0.0)
171
171
  kaminari-i18n (0.1.3)
172
172
  rails
173
- less (2.2.1)
173
+ less (2.2.2)
174
174
  commonjs (~> 0.2.6)
175
175
  less-rails (2.2.3)
176
176
  actionpack (>= 3.1)
177
177
  less (~> 2.2.0)
178
- less-rails-bootstrap (2.1.0)
178
+ less-rails-bootstrap (2.1.1)
179
179
  less-rails (~> 2.2.0)
180
180
  libv8 (3.3.10.4)
181
181
  mail (2.4.4)
@@ -226,7 +226,7 @@ GEM
226
226
  activesupport (= 3.2.8)
227
227
  bundler (~> 1.0)
228
228
  railties (= 3.2.8)
229
- rails-i18n (0.6.5)
229
+ rails-i18n (0.6.6)
230
230
  i18n (~> 0.5)
231
231
  rails-slow-assets-workaround (0.1.1)
232
232
  rails
@@ -289,7 +289,7 @@ DEPENDENCIES
289
289
  ars-permalink
290
290
  awesome_nested_set
291
291
  bluecloth
292
- fullstack-admin (~> 0.1.42)
292
+ fullstack-admin (~> 0.1.43)
293
293
  has-attached
294
294
  jeweler
295
295
  rails_i18n_gettext
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.13
1
+ 0.2.14
@@ -25,6 +25,7 @@ module MenusHelper
25
25
  end
26
26
 
27
27
  def menu_link_url(link)
28
+ return "#" unless link
28
29
  link.url.present? ? CGI::escape(link.url) : (link.linked ? page_path_for(link.linked) : "#")
29
30
  end
30
31
 
@@ -7,10 +7,11 @@ module PagesHelper
7
7
  def part(name, opts = {}, &block)
8
8
  if @current_page
9
9
  schema = opts.delete(:schema) || PagePart
10
-
11
- klass = schema.is_a?(Class) ? schema : "#{schema.to_s.camelize}PagePart".constantize
12
- p = klass.find_or_create_by_name_and_page_id("#{name}", @current_page)
13
10
 
11
+ klass = schema.is_a?(Class) ? schema : "#{schema.to_s.camelize}PagePart".constantize
12
+ p = klass.where(:name => "#{name}", :page_id => @current_page.id).first
13
+ p ||= klass.create!(:name => "#{name}", :page_id => @current_page.id)
14
+
14
15
  if block_given?
15
16
  capture do
16
17
  block.call(p)
data/app/models/link.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  class Link < ActiveRecord::Base
2
2
  validates_presence_of :label
3
3
 
4
- field :label, :string, :translatable => true
5
- field :description, :text, :translatable => true
4
+ field :label, :string
6
5
  include Positionable
7
-
6
+
7
+ field :description, :text
8
8
  has_attached :image
9
9
  has_attached :icon
10
10
 
data/app/models/page.rb CHANGED
@@ -59,6 +59,10 @@ class Page < ActiveRecord::Base
59
59
  }
60
60
  params
61
61
  end
62
+
63
+ def to_label
64
+ "#{name} - #{locale}"
65
+ end
62
66
 
63
67
  has_many :page_parts
64
68
  accepts_nested_attributes_for :page_parts, :allow_destroy => true
@@ -3,4 +3,6 @@ class PagePart < ActiveRecord::Base
3
3
  field :name
4
4
  belongs_to :page
5
5
  index [:name, :page_id], :unique => true
6
+ timestamps
7
+ default_scope order("created_at ASC")
6
8
  end
@@ -154,14 +154,23 @@ module Pageable
154
154
  end
155
155
 
156
156
  @pages ||= ActiveSupport::HashWithIndifferentAccess.new
157
- @pages[name] = _page
157
+
158
+ if locale
159
+ @pages["#{name}@#{locale}"] = _page
160
+ else
161
+ @pages[name] = _page
162
+ end
158
163
 
159
164
  end
160
165
 
161
166
  end
162
167
 
163
168
  def load_current_page
164
- @current_page.reload if @current_page = self.class.pages[action_name]
169
+ if Fullstack::Cms.config.localize
170
+ @current_page.reload if @current_page = self.class.pages["#{action_name}@#{I18n.locale}"]
171
+ else
172
+ @current_page.reload if @current_page = self.class.pages[action_name]
173
+ end
165
174
  end
166
175
 
167
176
  end
data/app/models/photo.rb CHANGED
@@ -14,12 +14,16 @@ class Photo < ActiveRecord::Base
14
14
  belongs_to :photographable, :polymorphic => :true
15
15
  delegate :url, :file_name, :to => :image
16
16
 
17
- field :caption, :text, :translatable => true
17
+ field :caption, :text
18
18
 
19
19
  def owner
20
20
  photographable.owner if photographable && photographable.respond_to?(:owner)
21
21
  end
22
-
22
+
23
23
  timestamps
24
24
 
25
+ def to_label
26
+ image_file_name
27
+ end
28
+
25
29
  end
@@ -15,12 +15,12 @@ class Setting < ActiveRecord::Base
15
15
  field :kind
16
16
  field :group
17
17
 
18
- field :integer_value, :integer, :translatable => true
19
- field :float_value, :float, :translatable => true
20
- field :text_value, :text, :translatable => true
21
- field :string_value, :string, :translatable => true
22
- field :datetime_value, :datetime, :translatable => true
23
- field :date_value, :date, :translatable => true
18
+ field :integer_value, :integer
19
+ field :float_value, :float
20
+ field :text_value, :text
21
+ field :string_value, :string
22
+ field :datetime_value, :datetime
23
+ field :date_value, :date
24
24
  has_attached :file_value
25
25
 
26
26
 
data/app/models/text.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  class Text < ActiveRecord::Base
2
2
  include Content
3
- field :text, :text, :markup => true, :translatable => true
3
+ field :text, :text, :markup => true
4
4
  has_many :attachments, :as => :attachable
5
5
  accepts_nested_attributes_for :attachments
6
6
  end
@@ -1,3 +1,3 @@
1
1
  class TextPagePart < PagePart
2
- field :text, :text, :markup => true, :translatable => true
2
+ field :text, :text, :markup => true
3
3
  end
@@ -1,4 +1,4 @@
1
1
  class TextWithTitlePagePart < PagePart
2
- field :title, :string, :translatable => true
3
- field :text, :text, :markup => true, :translatable => true
2
+ field :title, :string
3
+ field :text, :text, :markup => true
4
4
  end
@@ -9,72 +9,4 @@
9
9
  <% end %>
10
10
 
11
11
  <hr/>
12
-
13
- <%= f.inputs :class => "linked-fields" do %>
14
- <%
15
- linkables_collection = [[t('fullstack.cms.url', :default => "Url"), ""]] + Linkable.linkable_class_names.map do |klass_name|
16
- [t("fullstack.admin.resources.#{klass_name.underscore}", :default => klass_name), klass_name]
17
- end
18
- %>
19
- <%= f.input :linked_type, :as => :radio, :collection => linkables_collection, :input_html => {:class => "linked-type-field"},
20
- :label => t('fullstack.cms.link_resource_or_url', :default => "Link resource or url")
21
- %>
22
- <div class="linked-id-field-placeholder" id="linked_id_field_placeholder_<%= @linked_id_field_placeholder_uid = 1 + (@linked_id_field_placeholder_uid || 0)
23
- %>" data-current-id="<%= f.object.linked_id %>" data-current-type="<%= f.object.linked_type %>">
24
- </div>
25
- <%= f.input :url, :label => false, :input_html => {:style => ("display: none" if f.object.persisted?), :class => "linked-url-field"} %>
26
- <% end %>
27
-
28
-
29
- <% unless @link_associated_fields_js_included %>
30
- <% @link_associated_fields_js_included = true %>
31
-
32
- <% content_for :javascripts do -%>
33
-
34
-
35
- <%= javascript_tag do %>
36
- <%= coffee_script do %>
37
-
38
- $(document).ready ->
39
-
40
- update_linked_fields = (linked_fields) ->
41
- linked_type_field = linked_fields.find(".linked-type-field")
42
- checked_linked_type_field = linked_fields.find(".linked-type-field:checked")
43
- linked_id_field_placeholder = linked_fields.find(".linked-id-field-placeholder")
44
- linked_url_field = linked_fields.find(".linked-url-field")
45
-
46
- linked_type = checked_linked_type_field.val()
47
-
48
- target_id = linked_id_field_placeholder.attr("id")
49
- linked_id_field_name = linked_type_field.attr("name").replace(/linked_type\]$/, "linked_id]")
50
-
51
-
52
- if linked_type
53
- $.get '<%= fields_admin_linkables_path %>',
54
- type: linked_type
55
- target: target_id
56
- field_name: linked_id_field_name
57
- current_type: linked_id_field_placeholder.data("current-type")
58
- current_id: linked_id_field_placeholder.data("current-id")
59
- linked_url_field.hide()
60
-
61
- else
62
- linked_id_field_placeholder.empty()
63
- linked_url_field.show()
64
-
65
- $(".linked-fields").each ->
66
- linked_fields = $(@)
67
- update_linked_fields(linked_fields)
68
-
69
- $(".linked-type-field").live "change", ->
70
- update_linked_fields($(@).closest(".linked-fields"))
71
-
72
-
73
- <% end %>
74
- <% end %>
75
- <% end -%>
76
-
77
- <% end %>
78
-
79
-
80
-
12
+ <%= render :partial => "linked_fields", :locals => {:f => f} %>
@@ -0,0 +1,65 @@
1
+ <%= f.inputs :class => "linked-fields" do %>
2
+ <%
3
+ linkables_collection = [[t('fullstack.cms.url', :default => "Url"), ""]] + Linkable.linkable_class_names.map do |klass_name|
4
+ [t("fullstack.admin.resources.#{klass_name.underscore}", :default => klass_name), klass_name]
5
+ end
6
+ %>
7
+ <%= f.input :linked_type, :as => :radio, :collection => linkables_collection, :input_html => {:class => "linked-type-field"},
8
+ :label => t('fullstack.cms.link_resource_or_url', :default => "Link resource or url")
9
+ %>
10
+ <div class="linked-id-field-placeholder" id="linked_id_field_placeholder_<%= @linked_id_field_placeholder_uid = 1 + (@linked_id_field_placeholder_uid || 0)
11
+ %>" data-current-id="<%= f.object.linked_id %>" data-current-type="<%= f.object.linked_type %>">
12
+ </div>
13
+ <%= f.input :url, :label => false, :input_html => {:style => ("display: none" if f.object.persisted?), :class => "linked-url-field"} %>
14
+ <% end %>
15
+
16
+
17
+ <% unless @link_associated_fields_js_included %>
18
+ <% @link_associated_fields_js_included = true %>
19
+
20
+ <% content_for :javascripts do -%>
21
+
22
+
23
+ <%= javascript_tag do %>
24
+ <%= coffee_script do %>
25
+
26
+ $(document).ready ->
27
+
28
+ update_linked_fields = (linked_fields) ->
29
+ linked_type_field = linked_fields.find(".linked-type-field")
30
+ checked_linked_type_field = linked_fields.find(".linked-type-field:checked")
31
+ linked_id_field_placeholder = linked_fields.find(".linked-id-field-placeholder")
32
+ linked_url_field = linked_fields.find(".linked-url-field")
33
+
34
+ linked_type = checked_linked_type_field.val()
35
+
36
+ target_id = linked_id_field_placeholder.attr("id")
37
+ linked_id_field_name = linked_type_field.attr("name").replace(/linked_type\]$/, "linked_id]")
38
+
39
+
40
+ if linked_type
41
+ $.get '<%= fields_admin_linkables_path %>',
42
+ type: linked_type
43
+ target: target_id
44
+ field_name: linked_id_field_name
45
+ current_type: linked_id_field_placeholder.data("current-type")
46
+ current_id: linked_id_field_placeholder.data("current-id")
47
+ linked_url_field.hide()
48
+
49
+ else
50
+ linked_id_field_placeholder.empty()
51
+ linked_url_field.show()
52
+
53
+ $(".linked-fields").each ->
54
+ linked_fields = $(@)
55
+ update_linked_fields(linked_fields)
56
+
57
+ $(".linked-type-field").live "change", ->
58
+ update_linked_fields($(@).closest(".linked-fields"))
59
+
60
+
61
+ <% end %>
62
+ <% end %>
63
+ <% end -%>
64
+
65
+ <% end %>
@@ -33,7 +33,7 @@
33
33
  <% current_resource.page_parts.each do |p| %>
34
34
  <%= t.pane t(p.name, :scope => 'fullstack.cms.parts', :default => p.name.try(:humanize)) do %>
35
35
  <%= f.admin_fields_for :page_parts, p do |f| %>
36
- <%= f.resource_inputs :except => [:page_id, :name] %>
36
+ <%= f.resource_inputs :except => [:page, :name] %>
37
37
  <% end %>
38
38
  <% end %>
39
39
  <% end %>
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "fullstack-cms"
8
- s.version = "0.2.13"
8
+ s.version = "0.2.14"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["mcasimir"]
12
- s.date = "2012-09-05"
12
+ s.date = "2012-09-09"
13
13
  s.description = "CMS system built on fullstack"
14
14
  s.email = "maurizio.cas@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -58,6 +58,7 @@ Gem::Specification.new do |s|
58
58
  "app/views/admin/linkables/_fields.html.erb",
59
59
  "app/views/admin/linkables/fields.js.coffee",
60
60
  "app/views/admin/links/_associated_fields.html.erb",
61
+ "app/views/admin/links/_linked_fields.html.erb",
61
62
  "app/views/admin/menus/_collection.html.erb",
62
63
  "app/views/admin/pages/_collection.html.erb",
63
64
  "app/views/admin/pages/_form.html.erb",
@@ -133,7 +134,7 @@ Gem::Specification.new do |s|
133
134
  s.specification_version = 3
134
135
 
135
136
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
136
- s.add_runtime_dependency(%q<fullstack-admin>, ["~> 0.1.42"])
137
+ s.add_runtime_dependency(%q<fullstack-admin>, ["~> 0.1.43"])
137
138
  s.add_runtime_dependency(%q<ars-permalink>, [">= 0"])
138
139
  s.add_runtime_dependency(%q<has-attached>, [">= 0"])
139
140
  s.add_runtime_dependency(%q<acts-as-taggable-on>, [">= 0"])
@@ -146,7 +147,7 @@ Gem::Specification.new do |s|
146
147
  s.add_runtime_dependency(%q<bluecloth>, [">= 0"])
147
148
  s.add_development_dependency(%q<jeweler>, [">= 0"])
148
149
  else
149
- s.add_dependency(%q<fullstack-admin>, ["~> 0.1.42"])
150
+ s.add_dependency(%q<fullstack-admin>, ["~> 0.1.43"])
150
151
  s.add_dependency(%q<ars-permalink>, [">= 0"])
151
152
  s.add_dependency(%q<has-attached>, [">= 0"])
152
153
  s.add_dependency(%q<acts-as-taggable-on>, [">= 0"])
@@ -160,7 +161,7 @@ Gem::Specification.new do |s|
160
161
  s.add_dependency(%q<jeweler>, [">= 0"])
161
162
  end
162
163
  else
163
- s.add_dependency(%q<fullstack-admin>, ["~> 0.1.42"])
164
+ s.add_dependency(%q<fullstack-admin>, ["~> 0.1.43"])
164
165
  s.add_dependency(%q<ars-permalink>, [">= 0"])
165
166
  s.add_dependency(%q<has-attached>, [">= 0"])
166
167
  s.add_dependency(%q<acts-as-taggable-on>, [">= 0"])
@@ -8,8 +8,8 @@ module Content
8
8
  alias :keywords :tags
9
9
  permalink :title, :history => true
10
10
 
11
- field :title, :translatable => true
12
- field :excerpt, :as => :text, :translatable => true
11
+ field :title
12
+ field :excerpt, :as => :text
13
13
  alias_attribute :description, :excerpt
14
14
  end
15
15
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fullstack-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.13
4
+ version: 0.2.14
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-05 00:00:00.000000000 Z
12
+ date: 2012-09-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fullstack-admin
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.1.42
21
+ version: 0.1.43
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: 0.1.42
29
+ version: 0.1.43
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: ars-permalink
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -252,6 +252,7 @@ files:
252
252
  - app/views/admin/linkables/_fields.html.erb
253
253
  - app/views/admin/linkables/fields.js.coffee
254
254
  - app/views/admin/links/_associated_fields.html.erb
255
+ - app/views/admin/links/_linked_fields.html.erb
255
256
  - app/views/admin/menus/_collection.html.erb
256
257
  - app/views/admin/pages/_collection.html.erb
257
258
  - app/views/admin/pages/_form.html.erb
@@ -331,7 +332,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
331
332
  version: '0'
332
333
  segments:
333
334
  - 0
334
- hash: 2010351401597044343
335
+ hash: -3299776057597534333
335
336
  required_rubygems_version: !ruby/object:Gem::Requirement
336
337
  none: false
337
338
  requirements: