refinerycms-portfolio 0.9.3.8 → 0.9.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/controllers/admin/portfolio_entries_controller.rb +9 -5
- data/app/controllers/portfolio_controller.rb +9 -5
- data/app/helpers/portfolio_helper.rb +17 -0
- data/app/views/admin/portfolio_entries/index.html.erb +2 -1
- data/app/views/portfolio/show.html.erb +4 -6
- data/config/routes.rb +8 -2
- data/db/migrate/20090917224823_create_portfolio_structure.rb +7 -6
- data/rails/init.rb +1 -1
- data/readme.md +21 -9
- metadata +5 -4
@@ -15,13 +15,17 @@ protected
|
|
15
15
|
|
16
16
|
# This finds all of the entries that could possibly be assigned as the current entry's parent.
|
17
17
|
def find_portfolio_entries_for_parents_list
|
18
|
-
|
18
|
+
if RefinerySetting.find_or_set(:multi_level_portfolio, true)
|
19
|
+
@portfolio_entries_for_parents_list = PortfolioEntry.find(:all, :order => "parent_id, position ASC")
|
19
20
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
# We need to remove all references to the current entry or any of its decendants or we get a nightmare.
|
22
|
+
unless @portfolio_entry.nil? or @portfolio_entry.new_record?
|
23
|
+
@portfolio_entries_for_parents_list.reject! do |entry|
|
24
|
+
entry.id == @portfolio_entry.id or @portfolio_entry.descendants.include?(entry)
|
25
|
+
end
|
24
26
|
end
|
27
|
+
else
|
28
|
+
@portfolio_entries_for_parents_list = []
|
25
29
|
end
|
26
30
|
end
|
27
31
|
|
@@ -14,11 +14,15 @@ class PortfolioController < ApplicationController
|
|
14
14
|
@master_entry = PortfolioEntry.find_by_parent_id(nil, :order => "position ASC")
|
15
15
|
end
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
if RefinerySetting.find_or_set(:multi_level_portfolio, true)
|
18
|
+
if params[:portfolio_id]
|
19
|
+
@portfolio_entry = @master_entry.children.find(params[:portfolio_id])
|
20
|
+
else
|
21
|
+
@portfolio_entry = @master_entry.children.first
|
22
|
+
end
|
23
|
+
else
|
24
|
+
@portfolio_entry = @master_entry
|
25
|
+
end
|
22
26
|
|
23
27
|
begin
|
24
28
|
if params[:image_id]
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module PortfolioHelper
|
2
|
+
|
3
|
+
def portfolio_image_link(master, portfolio, image_index)
|
4
|
+
if RefinerySetting.find_or_set(:multi_level_portfolio, true)
|
5
|
+
portfolio_image_url(master, portfolio, image_index)
|
6
|
+
else
|
7
|
+
portfolio_image_url(master, image_index)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def link_to_portfolio_image(master, portfolio, image, index)
|
12
|
+
link_to image_fu(image, :portfolio_thumb),
|
13
|
+
portfolio_image_link(master, portfolio, index),
|
14
|
+
:class => ( (index == params[:image_id].to_i) ? "selected" : "pale" )
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -27,4 +27,5 @@
|
|
27
27
|
</p>
|
28
28
|
<% end %>
|
29
29
|
</div>
|
30
|
-
<%= render :partial => "/shared/admin/make_sortable",
|
30
|
+
<%= render :partial => "/shared/admin/make_sortable",
|
31
|
+
:locals => { :tree => RefinerySetting.find_or_set(:multi_level_portfolio, true) } if PortfolioEntry.count > 1 %>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<div id='body_content_left' class='clearfix'>
|
5
5
|
<h1 class='clearfix'>
|
6
6
|
<span><%= @master_entry.title %></span>
|
7
|
-
<%= select :portfolio_entry, :to_param, @master_entry.children.collect{|entry| [entry.title, entry.to_param] } %>
|
7
|
+
<%= select :portfolio_entry, :to_param, @master_entry.children.collect{|entry| [entry.title, entry.to_param] } if RefinerySetting.find_or_set(:multi_level_portfolio, true) %>
|
8
8
|
</h1>
|
9
9
|
|
10
10
|
<%= render :partial => "main_image" %>
|
@@ -12,11 +12,9 @@
|
|
12
12
|
<div id='body_content_right' class='clearfix'>
|
13
13
|
<h2><%= @portfolio_entry.title %></h2>
|
14
14
|
<ul id='portfolio_images'>
|
15
|
-
<%
|
15
|
+
<% @portfolio_entry.images.each_with_index do |image, index| %>
|
16
16
|
<li class='<%= cycle("odd", "even") %>'>
|
17
|
-
|
18
|
-
<%= link_to image_fu(image, :portfolio_thumb),
|
19
|
-
portfolio_image_url(@master_entry, @portfolio_entry, images.index(image)), :class => className %>
|
17
|
+
<%= link_to_portfolio_image @master_entry, @portfolio_entry, image, index %>
|
20
18
|
</li>
|
21
19
|
<% end %>
|
22
20
|
</ul>
|
@@ -31,7 +29,7 @@
|
|
31
29
|
$("ul#portfolio_images li a.pale img").fadeTo(0, 0.3);
|
32
30
|
|
33
31
|
$('#portfolio_entry_to_param').change(function() {
|
34
|
-
window.location = "<%= portfolio_project_url(@master_entry, nil) %>" + this.value;
|
32
|
+
window.location = "<%= RefinerySetting.find_or_set(:multi_level_portfolio, true) ? portfolio_project_url(@master_entry, nil) : portfolio_project_url(@master_entry) %>" + this.value;
|
35
33
|
});
|
36
34
|
|
37
35
|
var clicked_on = null;
|
data/config/routes.rb
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
ActionController::Routing::Routes.draw do |map|
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
if RefinerySetting.table_exists? and RefinerySetting.find_or_set(:multi_level_portfolio, true)
|
4
|
+
map.portfolio_project "/portfolio/:id/projects/:portfolio_id", :controller => "portfolio", :action => "show"
|
5
|
+
map.portfolio_image "/portfolio/:id/projects/:portfolio_id/:image_id", :controller => "portfolio", :action => "show"
|
6
|
+
else
|
7
|
+
map.portfolio_project "/portfolio/:id", :controller => "portfolio", :action => "show"
|
8
|
+
map.portfolio_image "/portfolio/:id/:image_id", :controller => "portfolio", :action => "show"
|
9
|
+
end
|
10
|
+
|
5
11
|
map.portfolio "/portfolio/:id/", :controller => 'portfolio', :action => 'show'
|
6
12
|
|
7
13
|
map.resources :portfolio do |portfolio|
|
@@ -16,32 +16,33 @@ class CreatePortfolioStructure < ActiveRecord::Migration
|
|
16
16
|
t.datetime :created_at
|
17
17
|
t.datetime :updated_at
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
User.find(:all).each do |user|
|
21
21
|
user.plugins.create(:title => "Portfolio", :position => (user.plugins.maximum(:position) || -1) +1)
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
page = Page.create(:title => "Portfolio", :link_url => "/portfolio", :deletable => false, :position => ((Page.maximum(:position, :conditions => "parent_id IS NULL") || -1)+1))
|
25
25
|
RefinerySetting.find_or_set(:default_page_parts, ["body", "side_body"]).each do |default_page_part|
|
26
26
|
page.parts.create(:title => default_page_part, :body => nil)
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
|
+
# we need to retrieve the value, merge it in and then save it back because it's a frozen hash.
|
29
30
|
image_thumbnails = RefinerySetting.find_or_set(:image_thumbnails, {})
|
30
31
|
RefinerySetting[:image_thumbnails] = image_thumbnails.merge({:portfolio_thumb => 'c96x96', :portfolio => '600x512'})
|
31
32
|
end
|
32
33
|
|
33
34
|
def self.down
|
34
35
|
UserPlugin.destroy_all({:title => "Portfolio"})
|
35
|
-
|
36
|
+
|
36
37
|
Page.find_all_by_link_url("/portfolio").each do |page|
|
37
38
|
page.link_url, page.menu_match, page.deletable = nil
|
38
39
|
page.destroy
|
39
40
|
end
|
40
41
|
Page.destroy_all({:link_url => "/portfolio"})
|
41
|
-
|
42
|
+
|
42
43
|
image_thumbnails = RefinerySetting.find_or_set(:image_thumbnails, {})
|
43
44
|
RefinerySetting[:image_thumbnails] = image_thumbnails.delete_if {|key, value| key == :portfolio_thumb or key == :portfolio }
|
44
|
-
|
45
|
+
|
45
46
|
drop_table :images_portfolio_entries
|
46
47
|
drop_table :portfolio_entries
|
47
48
|
end
|
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.
|
6
|
+
plugin.version = '0.9.5.2'
|
7
7
|
plugin.menu_match = /admin\/portfolio(_entries)?/
|
8
8
|
plugin.activity = {
|
9
9
|
:class => PortfolioEntry,
|
data/readme.md
CHANGED
@@ -6,10 +6,12 @@ By: [Resolve Digital](http://www.resolvedigital.com)
|
|
6
6
|
## Plugin Installation
|
7
7
|
|
8
8
|
Just 'git clone' Refinery, install this as a plugin using:
|
9
|
-
|
9
|
+
|
10
|
+
script/plugin install git://github.com/resolve/refinerycms-portfolio.git
|
10
11
|
|
11
12
|
Then run:
|
12
|
-
|
13
|
+
|
14
|
+
rake refinery:portfolio:install
|
13
15
|
|
14
16
|
..and follow the instructions!
|
15
17
|
|
@@ -17,24 +19,34 @@ Then run:
|
|
17
19
|
|
18
20
|
### Method One
|
19
21
|
Just install the gem 'portfolio' with the command:
|
20
|
-
|
22
|
+
|
23
|
+
gem install refinerycms-portfolio --source http://gemcutter.org
|
21
24
|
|
22
25
|
Then run:
|
23
|
-
|
26
|
+
|
27
|
+
refinerycms-portfolio-install /path/to/your/refinery/application
|
24
28
|
|
25
29
|
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
|
-
|
30
|
+
|
31
|
+
config.gem "refinerycms-portfolio", :version => ">= 0.9.5.2", :lib => "portfolio", :source => "http://gemcutter.org"
|
27
32
|
|
28
33
|
..and follow the instructions!
|
29
34
|
|
30
35
|
### Method Two
|
31
36
|
Place in your config/environment.rb (or config/application.rb for refinery 0.9.6.x) file before all other Refinery gem calls:
|
32
|
-
|
37
|
+
|
38
|
+
config.gem "refinerycms-portfolio", :version => ">= 0.9.5.2", :lib => "portfolio", :source => "http://gemcutter.org"
|
33
39
|
|
34
40
|
Then run in your application's directory:
|
35
|
-
|
41
|
+
|
42
|
+
rake gems:install
|
36
43
|
|
37
44
|
Then run:
|
38
|
-
refinerycms-portfolio-install /path/to/your/refinery/application
|
39
45
|
|
40
|
-
|
46
|
+
refinerycms-portfolio-install /path/to/your/refinery/application
|
47
|
+
|
48
|
+
..and follow the instructions!
|
49
|
+
|
50
|
+
## Single or Multiple Level Portfolios
|
51
|
+
|
52
|
+
The standard setup for portfolios is multi-level, with a parent portfolio having child portfolios. If your needs are simpler, you can switch to a single level of portfolios by changing the Refinery Setting for 'Multi Level Portfolio' to false.
|
metadata
CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 9
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.9.
|
8
|
+
- 5
|
9
|
+
- 2
|
10
|
+
version: 0.9.5.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Resolve Digital
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-
|
19
|
+
date: 2010-04-13 00:00:00 +12:00
|
20
20
|
default_executable: refinerycms-portfolio-install
|
21
21
|
dependencies: []
|
22
22
|
|
@@ -34,6 +34,7 @@ files:
|
|
34
34
|
- readme.md
|
35
35
|
- app/controllers/admin/portfolio_entries_controller.rb
|
36
36
|
- app/controllers/portfolio_controller.rb
|
37
|
+
- app/helpers/portfolio_helper.rb
|
37
38
|
- app/models/portfolio_entry.rb
|
38
39
|
- app/views/admin/portfolio_entries/_form.html.erb
|
39
40
|
- app/views/admin/portfolio_entries/_list.html.erb
|