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 +1 -1
- data/Gemfile.lock +10 -10
- data/VERSION +1 -1
- data/app/helpers/menus_helper.rb +1 -0
- data/app/helpers/pages_helper.rb +4 -3
- data/app/models/link.rb +3 -3
- data/app/models/page.rb +4 -0
- data/app/models/page_part.rb +2 -0
- data/app/models/pageable.rb +11 -2
- data/app/models/photo.rb +6 -2
- data/app/models/setting.rb +6 -6
- data/app/models/text.rb +1 -1
- data/app/models/text_page_part.rb +1 -1
- data/app/models/text_with_title_page_part.rb +2 -2
- data/app/views/admin/links/_associated_fields.html.erb +1 -69
- data/app/views/admin/links/_linked_fields.html.erb +65 -0
- data/app/views/admin/pages/_form.html.erb +1 -1
- data/fullstack-cms.gemspec +6 -5
- data/lib/generators/fullstack/cms/templates/rails/lib/support/content.rb +2 -2
- metadata +6 -5
data/Gemfile
CHANGED
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.
|
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 (
|
99
|
-
formtastic
|
100
|
-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
1
|
+
0.2.14
|
data/app/helpers/menus_helper.rb
CHANGED
data/app/helpers/pages_helper.rb
CHANGED
@@ -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
|
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
data/app/models/page_part.rb
CHANGED
data/app/models/pageable.rb
CHANGED
@@ -154,14 +154,23 @@ module Pageable
|
|
154
154
|
end
|
155
155
|
|
156
156
|
@pages ||= ActiveSupport::HashWithIndifferentAccess.new
|
157
|
-
|
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
|
-
|
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
|
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
|
data/app/models/setting.rb
CHANGED
@@ -15,12 +15,12 @@ class Setting < ActiveRecord::Base
|
|
15
15
|
field :kind
|
16
16
|
field :group
|
17
17
|
|
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
|
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
@@ -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
|
-
|
36
|
+
<%= f.resource_inputs :except => [:page, :name] %>
|
37
37
|
<% end %>
|
38
38
|
<% end %>
|
39
39
|
<% end %>
|
data/fullstack-cms.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "fullstack-cms"
|
8
|
-
s.version = "0.2.
|
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-
|
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.
|
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.
|
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.
|
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
|
12
|
-
field :excerpt, :as => :text
|
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.
|
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-
|
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.
|
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.
|
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:
|
335
|
+
hash: -3299776057597534333
|
335
336
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
336
337
|
none: false
|
337
338
|
requirements:
|