refinerycms-portfolio 0.9.3.6 → 0.9.3.7
Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,7 @@
|
|
1
1
|
class Admin::PortfolioEntriesController < Admin::BaseController
|
2
2
|
|
3
3
|
crudify :portfolio_entry, :order => 'position ASC', :conditions => "parent_id IS NULL"
|
4
|
+
before_filter :find_portfolio_entries_for_parents_list, :only => [:new, :create, :edit, :update]
|
4
5
|
|
5
6
|
def emancipate
|
6
7
|
if (entry = PortfolioEntry.find(params[:id])).present?
|
@@ -10,4 +11,18 @@ class Admin::PortfolioEntriesController < Admin::BaseController
|
|
10
11
|
redirect_to :action => "index"
|
11
12
|
end
|
12
13
|
|
14
|
+
protected
|
15
|
+
|
16
|
+
# This finds all of the entries that could possibly be assigned as the current entry's parent.
|
17
|
+
def find_portfolio_entries_for_parents_list
|
18
|
+
@portfolio_entries_for_parents_list = PortfolioEntry.find(:all, :order => "parent_id, position ASC")
|
19
|
+
|
20
|
+
# We need to remove all references to the current entry or any of its decendants or we get a nightmare.
|
21
|
+
unless @portfolio_entry.nil? or @portfolio_entry.new_record?
|
22
|
+
@portfolio_entries_for_parents_list.reject! do |entry|
|
23
|
+
entry.id == @portfolio_entry.id or @portfolio_entry.descendants.include?(entry)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
13
28
|
end
|
@@ -1,28 +1,32 @@
|
|
1
1
|
class PortfolioEntry < ActiveRecord::Base
|
2
|
-
|
2
|
+
|
3
3
|
validates_presence_of :title
|
4
|
-
|
4
|
+
|
5
5
|
# call to gems included in refinery.
|
6
6
|
has_friendly_id :title, :use_slug => true, :strip_diacritics => true
|
7
7
|
acts_as_tree :order => "position"
|
8
|
-
|
8
|
+
|
9
9
|
has_and_belongs_to_many :images
|
10
10
|
|
11
11
|
def content
|
12
12
|
self.body
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
def content=(value)
|
16
16
|
self.body = value
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def image_ids=(ids)
|
20
20
|
self.images.clear
|
21
|
-
|
21
|
+
|
22
22
|
ids.reject{|id| id.blank? }.each do |image_id|
|
23
23
|
image = Image.find(image_id.to_i) rescue nil
|
24
24
|
self.images << image unless image.nil?
|
25
25
|
end
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
|
+
def indented_title
|
29
|
+
"#{"--" * self.ancestors.size} #{self.title}".chomp
|
30
|
+
end
|
31
|
+
|
28
32
|
end
|
@@ -26,6 +26,12 @@
|
|
26
26
|
<%= f.label :body, 'Content' %>
|
27
27
|
<%= f.text_area :body, :class => "wymeditor", :rows => 7 %>
|
28
28
|
</div>
|
29
|
+
<% if @portfolio_entries_for_parents_list.any? %>
|
30
|
+
<div class='field'>
|
31
|
+
<%= f.label :parent_id %>
|
32
|
+
<%= f.collection_select :parent_id, @portfolio_entries_for_parents_list, :id, :indented_title, :include_blank => true %>
|
33
|
+
</div>
|
34
|
+
<% end %>
|
29
35
|
<div class='form-actions'>
|
30
36
|
<%= f.submit 'Save', :class => "wymupdate" %>
|
31
37
|
or
|
data/rails/init.rb
CHANGED
@@ -3,7 +3,7 @@ Refinery::Plugin.register do |plugin|
|
|
3
3
|
plugin.title = "Portfolio"
|
4
4
|
plugin.description = "Manage a portfolio"
|
5
5
|
plugin.url = "/admin/#{plugin.title.downcase}"
|
6
|
-
plugin.version = '0.9.3.
|
6
|
+
plugin.version = '0.9.3.7'
|
7
7
|
plugin.menu_match = /admin\/portfolio(_entries)?/
|
8
8
|
plugin.activity = {
|
9
9
|
:class => PortfolioEntry,
|
data/readme.md
CHANGED
@@ -23,13 +23,13 @@ Then run:
|
|
23
23
|
refinerycms-portfolio-install /path/to/your/refinery/application
|
24
24
|
|
25
25
|
Then place in your config/environment.rb (or config/application.rb for refinery 0.9.6.x) file before all other Refinery gem calls:
|
26
|
-
config.gem "refinerycms-portfolio", :version => ">= 0.9.3.
|
26
|
+
config.gem "refinerycms-portfolio", :version => ">= 0.9.3.7", :lib => "portfolio", :source => "http://gemcutter.org"
|
27
27
|
|
28
28
|
..and follow the instructions!
|
29
29
|
|
30
30
|
### Method Two
|
31
31
|
Place in your config/environment.rb (or config/application.rb for refinery 0.9.6.x) file before all other Refinery gem calls:
|
32
|
-
config.gem "refinerycms-portfolio", :version => ">= 0.9.3.
|
32
|
+
config.gem "refinerycms-portfolio", :version => ">= 0.9.3.7", :lib => "portfolio", :source => "http://gemcutter.org"
|
33
33
|
|
34
34
|
Then run in your application's directory:
|
35
35
|
rake gems:install
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refinerycms-portfolio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 9
|
8
|
+
- 3
|
9
|
+
- 7
|
10
|
+
version: 0.9.3.7
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Resolve Digital
|
@@ -10,7 +16,7 @@ autorequire:
|
|
10
16
|
bindir: bin
|
11
17
|
cert_chain: []
|
12
18
|
|
13
|
-
date: 2010-02-
|
19
|
+
date: 2010-02-27 00:00:00 +13:00
|
14
20
|
default_executable: refinerycms-portfolio-install
|
15
21
|
dependencies: []
|
16
22
|
|
@@ -61,18 +67,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
61
67
|
requirements:
|
62
68
|
- - ">="
|
63
69
|
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 0
|
64
72
|
version: "0"
|
65
|
-
version:
|
66
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
74
|
requirements:
|
68
75
|
- - ">="
|
69
76
|
- !ruby/object:Gem::Version
|
77
|
+
segments:
|
78
|
+
- 0
|
70
79
|
version: "0"
|
71
|
-
version:
|
72
80
|
requirements: []
|
73
81
|
|
74
82
|
rubyforge_project:
|
75
|
-
rubygems_version: 1.3.
|
83
|
+
rubygems_version: 1.3.6
|
76
84
|
signing_key:
|
77
85
|
specification_version: 3
|
78
86
|
summary: Ruby on Rails portfolio plugin for RefineryCMS.
|