refinerycms-core 0.9.9.22 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/admin/dialogs_controller.rb +8 -11
- data/app/controllers/sitemap_controller.rb +1 -1
- data/app/views/shared/_header.html.erb +1 -2
- data/app/views/shared/_menu.html.erb +17 -32
- data/app/views/shared/_menu_branch.html.erb +3 -5
- data/features/dialogs.feature +20 -0
- data/features/step_definitions/core_steps.rb +1 -3
- data/features/support/paths.rb +10 -6
- data/lib/gemspec.rb +1 -1
- data/lib/generators/refinerycms_generator.rb +1 -1
- data/lib/refinery/helpers/menu_helper.rb +25 -30
- data/lib/refinery/helpers/site_bar_helper.rb +2 -2
- data/lib/refinery/menu.rb +67 -0
- data/lib/refinery/menu_item.rb +75 -0
- data/lib/refinerycms-core.rb +2 -0
- data/public/javascripts/jquery-ui-custom-min.js +0 -0
- data/refinerycms-core.gemspec +12 -5
- data/spec/controllers/fast_controller_spec.rb +10 -0
- data/spec/controllers/refinery_core_controller_spec.rb +18 -0
- data/spec/controllers/sitemap_controller_spec.rb +27 -0
- metadata +12 -6
@@ -2,20 +2,17 @@ module Admin
|
|
2
2
|
class DialogsController < Admin::BaseController
|
3
3
|
|
4
4
|
def show
|
5
|
-
|
6
|
-
url_params = params.reject {|key, value| key =~ /(action)|(controller)/}
|
5
|
+
@dialog_type = params[:id].downcase
|
7
6
|
|
8
|
-
|
9
|
-
insert_admin_images_path(url_params.merge(:id => nil, :modal => true))
|
10
|
-
elsif @dialog_type == 'link'
|
11
|
-
link_to_admin_pages_dialogs_path(url_params.merge(:id => nil))
|
12
|
-
end
|
7
|
+
url_params = params.reject {|key, value| key =~ /(action)|(controller)/}
|
13
8
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
9
|
+
@iframe_src = if @dialog_type == 'image'
|
10
|
+
insert_admin_images_path(url_params.merge(:id => nil, :modal => true))
|
11
|
+
elsif @dialog_type == 'link'
|
12
|
+
link_to_admin_pages_dialogs_path(url_params.merge(:id => nil))
|
18
13
|
end
|
14
|
+
|
15
|
+
render :layout => false
|
19
16
|
end
|
20
17
|
|
21
18
|
def from_dialog?
|
@@ -6,7 +6,7 @@ class SitemapController < ::Refinery::FastController
|
|
6
6
|
|
7
7
|
respond_to do |format|
|
8
8
|
format.xml do
|
9
|
-
@locales = if
|
9
|
+
@locales = if ::Refinery.i18n_enabled?
|
10
10
|
::Refinery::I18n.frontend_locales
|
11
11
|
else
|
12
12
|
[::I18n.locale]
|
@@ -1,34 +1,19 @@
|
|
1
1
|
<%
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
css = [(css || 'menu'), 'clearfix'].flatten.join(' ')
|
20
|
-
hide_children = RefinerySetting.find_or_set(:menu_hide_children, false) if hide_children.nil?
|
21
|
-
-%>
|
22
|
-
<nav id='<%= dom_id %>' class='<%= css %>'>
|
23
|
-
<ul>
|
24
|
-
<%= render :partial => '/shared/menu_branch',
|
25
|
-
:collection => roots,
|
26
|
-
:locals => {
|
27
|
-
:hide_children => hide_children,
|
28
|
-
:sibling_count => (roots.length - 1),
|
29
|
-
:apply_css => true #if you don't care about class='first' class='last' or class='selected' set apply_css to false for speed.
|
30
|
-
} -%>
|
31
|
-
</ul>
|
32
|
-
</nav>
|
33
|
-
<% end -%>
|
2
|
+
# Collect the root items.
|
3
|
+
# Refinery::Menu is smart enough to remember all of the items in the original collection.
|
4
|
+
if (roots = local_assigns[:roots] || (collection ||= @menu_pages).roots).present?
|
5
|
+
dom_id ||= 'menu'
|
6
|
+
css = [(css || 'menu'), 'clearfix'].flatten.join(' ')
|
7
|
+
hide_children = RefinerySetting.find_or_set(:menu_hide_children, false) if hide_children.nil?
|
8
|
+
-%>
|
9
|
+
<nav id='<%= dom_id %>' class='<%= css %>'>
|
10
|
+
<ul>
|
11
|
+
<%= render :partial => '/shared/menu_branch', :collection => roots,
|
12
|
+
:locals => {
|
13
|
+
:hide_children => hide_children,
|
14
|
+
:sibling_count => (roots.length - 1),
|
15
|
+
:apply_css => true #if you don't care about class='first' class='last' or class='selected' set apply_css to false for speed.
|
16
|
+
} -%>
|
17
|
+
</ul>
|
18
|
+
</nav>
|
34
19
|
<% end -%>
|
@@ -2,16 +2,14 @@
|
|
2
2
|
if !!local_assigns[:apply_css] and (classes = menu_branch_css(local_assigns)).any?
|
3
3
|
css = "class='#{classes.join(' ')}'".html_safe
|
4
4
|
end
|
5
|
+
# dom_id DEPRECATED: REMOVE AT 1.1, serves no purpose same with css attributes 'first' and 'last'
|
5
6
|
dom_id = "id='item_#{menu_branch_counter}'".html_safe if menu_branch.parent_id.nil?
|
6
|
-
|
7
|
-
children = menu_branch.children.live.in_menu unless hide_children or menu_branch.rgt == menu_branch.lft + 1
|
8
7
|
-%>
|
9
8
|
<li<%= ['', css, dom_id].compact.join(' ').gsub(/\ *$/, '').html_safe %>>
|
10
9
|
<%= link_to menu_branch.title, menu_branch.url -%>
|
11
|
-
<% if children.present? -%>
|
10
|
+
<% if (children = menu_branch.children unless hide_children).present? -%>
|
12
11
|
<ul class='clearfix'>
|
13
|
-
<%= render :partial => '/shared/menu_branch',
|
14
|
-
:collection => children,
|
12
|
+
<%= render :partial => '/shared/menu_branch', :collection => children,
|
15
13
|
:locals => {
|
16
14
|
:apply_css => local_assigns[:apply_css],
|
17
15
|
:hide_children => !!hide_children
|
@@ -0,0 +1,20 @@
|
|
1
|
+
@refinerycms @dialogs
|
2
|
+
Feature: Dialogs
|
3
|
+
In order to manage images and links when editing a page
|
4
|
+
As an administrator
|
5
|
+
I want to insert images and links on the WYMeditor
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given I am a logged in refinery user
|
9
|
+
|
10
|
+
Scenario: Show the dialog with the iframe src for links
|
11
|
+
When I go to the admin dialog for links path
|
12
|
+
Then the page should have the css "iframe[src="/refinery/pages_dialogs/link_to"]"
|
13
|
+
|
14
|
+
Scenario: Show the dialog with the iframe src for images
|
15
|
+
When I go to the admin dialog for images path
|
16
|
+
Then the page should have the css "iframe[src="/refinery/images/insert?modal=true"]"
|
17
|
+
|
18
|
+
Scenario: Show the dialog with an empty iframe src
|
19
|
+
When I go to the admin dialog for empty iframe src
|
20
|
+
Then the page should have the css "iframe[src=""]"
|
@@ -4,9 +4,7 @@ Given %r`not logged in$` do
|
|
4
4
|
end
|
5
5
|
|
6
6
|
Given /locale is (.+?)$/ do |locale|
|
7
|
-
if
|
8
|
-
::Refinery::I18n.current_locale = locale.to_sym
|
9
|
-
end
|
7
|
+
::Refinery::I18n.current_locale = locale.to_sym if ::Refinery.i18n_enabled?
|
10
8
|
end
|
11
9
|
|
12
10
|
Given %r`(?:log|am logged) in as "([^\"]+)"$` do |login|
|
data/features/support/paths.rb
CHANGED
@@ -2,12 +2,16 @@ module NavigationHelpers
|
|
2
2
|
module Refinery
|
3
3
|
module Core
|
4
4
|
def path_to(page_name)
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
case page_name
|
6
|
+
when /the admin dialog for links path/
|
7
|
+
admin_dialog_path('Link')
|
8
|
+
when /the admin dialog for images path/
|
9
|
+
admin_dialog_path('Image')
|
10
|
+
when /the admin dialog for empty iframe src/
|
11
|
+
admin_dialog_path('a')
|
12
|
+
else
|
13
|
+
nil
|
14
|
+
end
|
11
15
|
end
|
12
16
|
end
|
13
17
|
end
|
data/lib/gemspec.rb
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_dependency 'refinerycms-generators', '~> 1.0'
|
25
25
|
s.add_dependency 'acts_as_indexed', '~> 0.7'
|
26
26
|
s.add_dependency 'friendly_id_globalize3', '~> 3.2.1'
|
27
|
-
s.add_dependency 'globalize3', '
|
27
|
+
s.add_dependency 'globalize3', '~> 0.1'
|
28
28
|
s.add_dependency 'awesome_nested_set', '~> 2.0'
|
29
29
|
s.add_dependency 'rails', '~> 3.0.7'
|
30
30
|
s.add_dependency 'truncate_html', '~> 0.5'
|
@@ -108,7 +108,7 @@ class RefinerycmsGenerator < ::Refinery::Generators::EngineInstaller
|
|
108
108
|
end
|
109
109
|
|
110
110
|
# Ensure i18n exists and is up to date.
|
111
|
-
if
|
111
|
+
if ::Refinery.i18n_enabled?
|
112
112
|
require 'generators/refinerycms_i18n_generator'
|
113
113
|
::RefinerycmsI18n.new.generate
|
114
114
|
end
|
@@ -16,31 +16,22 @@ module Refinery
|
|
16
16
|
|
17
17
|
# This was extracted from app/views/shared/_menu_branch.html.erb
|
18
18
|
# to remove the complexity of that template by reducing logic in the view.
|
19
|
-
def css_for_menu_branch(
|
20
|
-
# DEPRECATION. Remove at version 1.1
|
21
|
-
if warning
|
22
|
-
warn "\n-- DEPRECATION WARNING --"
|
23
|
-
warn "The use of 'css_for_menu_branch' is deprecated and will be removed at version 1.1."
|
24
|
-
warn "Please use menu_branch_css(local_assigns) instead."
|
25
|
-
warn "Called from: #{caller.detect{|c| c =~ %r{#{Rails.root.to_s}}}.inspect.to_s.split(':in').first}\n\n"
|
26
|
-
end
|
19
|
+
def css_for_menu_branch(item, counter, sibling_count = nil, collection = nil, selected_item = nil, warning = true)
|
27
20
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
21
|
+
Refinery.deprecate({
|
22
|
+
:what => 'css_for_menu_branch',
|
23
|
+
:when => '1.1',
|
24
|
+
:replacement => 'menu_branch_css(local_assigns)',
|
25
|
+
:caller => caller
|
26
|
+
}) if warning
|
33
27
|
|
34
|
-
if
|
35
|
-
|
36
|
-
warn "The use of 'selected_item' is deprecated and will be removed at version 1.1."
|
37
|
-
warn "Called from: #{caller.detect{|c| c =~ %r{#{Rails.root.to_s}}}.inspect.to_s.split(':in').first}\n\n"
|
38
|
-
end
|
28
|
+
Refinery.deprecate(:what => 'collection', :when => '1.1', :caller => caller) if collection
|
29
|
+
Refinery.deprecate(:what => 'selected_item', :when => '1.1', :caller => caller) if selected_item
|
39
30
|
|
40
31
|
css = []
|
41
|
-
css << "selected" if selected_page_or_descendant_page_selected?(
|
42
|
-
css << "first" if
|
43
|
-
css << "last" if
|
32
|
+
css << "selected" if selected_page_or_descendant_page_selected?(item, collection, selected_item)
|
33
|
+
css << "first" if counter == 0
|
34
|
+
css << "last" if counter == (sibling_count ||= (item.shown_siblings.length - 1))
|
44
35
|
css
|
45
36
|
end
|
46
37
|
|
@@ -48,7 +39,7 @@ module Refinery
|
|
48
39
|
# This maps to the older css_for_menu_branch method.
|
49
40
|
def menu_branch_css(local_assigns)
|
50
41
|
options = local_assigns.dup
|
51
|
-
options.update(:sibling_count => options[:menu_branch].shown_siblings.
|
42
|
+
options.update(:sibling_count => options[:menu_branch].shown_siblings.length) unless options[:sibling_count]
|
52
43
|
|
53
44
|
css_for_menu_branch(options[:menu_branch],
|
54
45
|
options[:menu_branch_counter],
|
@@ -83,18 +74,22 @@ module Refinery
|
|
83
74
|
path = path.force_encoding('utf-8') if path.respond_to?(:force_encoding)
|
84
75
|
|
85
76
|
# Ensure we match the path without the locale, if present.
|
86
|
-
if
|
77
|
+
if ::Refinery.i18n_enabled? and path =~ %r{^/#{::I18n.locale}/}
|
87
78
|
path = path.split(%r{^/#{::I18n.locale}}).last
|
88
79
|
path = "/" if path.blank?
|
89
80
|
end
|
90
81
|
|
91
|
-
#
|
92
|
-
(path =~ Regexp.new(page.menu_match)
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
82
|
+
# First try to match against a "menu match" value, if available.
|
83
|
+
return true if page.try(:menu_match).present? && path =~ Regexp.new(page.menu_match)
|
84
|
+
|
85
|
+
# Find the first url that is a string.
|
86
|
+
url = [page.url]
|
87
|
+
url << ['', page.url[:path]].compact.flatten.join('/') if page.url.respond_to?(:keys)
|
88
|
+
url = url.detect{|u| u.is_a?(String)}
|
89
|
+
|
90
|
+
# Now use all possible vectors to try to find a valid match,
|
91
|
+
# finally passing to rails' "current_page?" method.
|
92
|
+
[path, URI.decode(path)].include?(url) || path == "/#{page.id}" || current_page?(page)
|
98
93
|
end
|
99
94
|
|
100
95
|
end
|
@@ -8,7 +8,7 @@ module Refinery
|
|
8
8
|
(if session.keys.map(&:to_sym).include?(:website_return_to) and session[:website_return_to].present?
|
9
9
|
session[:website_return_to]
|
10
10
|
else
|
11
|
-
root_path(:locale => (::Refinery::I18n.default_frontend_locale if
|
11
|
+
root_path(:locale => (::Refinery::I18n.default_frontend_locale if ::Refinery.i18n_enabled?))
|
12
12
|
end)) do
|
13
13
|
link_to t('.switch_to_your_website_editor', site_bar_translate_locale_args),
|
14
14
|
(if session.keys.map(&:to_sym).include?(:refinery_return_to) and session[:refinery_return_to].present?
|
@@ -20,7 +20,7 @@ module Refinery
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def site_bar_translate_locale_args
|
23
|
-
if
|
23
|
+
if ::Refinery.i18n_enabled?
|
24
24
|
{:locale => ::Refinery::I18n.current_locale}
|
25
25
|
else
|
26
26
|
{}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module Refinery
|
2
|
+
|
3
|
+
# Create a little something to store the instances of the menu.
|
4
|
+
class << self
|
5
|
+
attr_accessor :menus
|
6
|
+
def menus
|
7
|
+
@@menus ||= HashWithIndifferentAccess.new
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class Menu
|
12
|
+
|
13
|
+
def initialize(objects = nil)
|
14
|
+
objects.each do |item|
|
15
|
+
item = item.to_refinery_menu_item if item.respond_to?(:to_refinery_menu_item)
|
16
|
+
items << MenuItem.new(item.merge(:menu_id => id))
|
17
|
+
end if objects
|
18
|
+
|
19
|
+
::Refinery.menus[self.id] = self
|
20
|
+
end
|
21
|
+
|
22
|
+
attr_accessor :items, :id
|
23
|
+
|
24
|
+
def id
|
25
|
+
require 'securerandom' unless defined?(::SecureRandom)
|
26
|
+
@id ||= ::SecureRandom.hex(8)
|
27
|
+
end
|
28
|
+
|
29
|
+
def items
|
30
|
+
@items ||= []
|
31
|
+
end
|
32
|
+
|
33
|
+
def roots
|
34
|
+
@roots ||= items.select {|item| item.parent_id.nil?}
|
35
|
+
end
|
36
|
+
|
37
|
+
def to_s
|
38
|
+
items.map(&:title).join(' ')
|
39
|
+
end
|
40
|
+
|
41
|
+
def inspect
|
42
|
+
items.map(&:inspect)
|
43
|
+
end
|
44
|
+
|
45
|
+
# The delegation is specified so crazily so that it works on 1.8.x and 1.9.x
|
46
|
+
delegate *((Array.instance_methods - Object.instance_methods) << {:to => :items})
|
47
|
+
|
48
|
+
# Ensure that things still work from how the menu partials worked before.
|
49
|
+
def live
|
50
|
+
Refinery.deprecate({
|
51
|
+
:what => "'live' on a ::Refinery::Menu instance",
|
52
|
+
:when => '1.1 with no replacement'
|
53
|
+
})
|
54
|
+
|
55
|
+
self
|
56
|
+
end
|
57
|
+
|
58
|
+
def in_menu
|
59
|
+
Refinery.deprecate({
|
60
|
+
:what => "'in_menu' on a ::Refinery::Menu instance",
|
61
|
+
:when => '1.1 with no replacement'
|
62
|
+
})
|
63
|
+
|
64
|
+
self
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Refinery
|
2
|
+
class MenuItem < HashWithIndifferentAccess
|
3
|
+
|
4
|
+
(ATTRIBUTES = [:id, :title, :parent_id, :lft, :rgt, :depth, :url, :menu_id, :menu_match, :type]).each do |attribute|
|
5
|
+
class_eval %{
|
6
|
+
def #{attribute}
|
7
|
+
@#{attribute} ||= self[:#{attribute}]
|
8
|
+
end
|
9
|
+
|
10
|
+
def #{attribute}=(attr)
|
11
|
+
@#{attribute} = attr
|
12
|
+
end
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
def ancestors
|
17
|
+
return @ancestors if @ancestors
|
18
|
+
@ancestors = []
|
19
|
+
p = self
|
20
|
+
@ancestors << p until(p = p.parent).nil?
|
21
|
+
|
22
|
+
@ancestors
|
23
|
+
end
|
24
|
+
|
25
|
+
def children
|
26
|
+
@children ||= if has_children?
|
27
|
+
menu.select{|item| item.type == type && item.parent_id == id}
|
28
|
+
else
|
29
|
+
[]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def descendants
|
34
|
+
@descendants ||= if has_descendants?
|
35
|
+
menu.select{|item| item.type == type && item.lft > lft && item.rgt < rgt}
|
36
|
+
else
|
37
|
+
[]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def has_children?
|
42
|
+
@has_children ||= (rgt > lft + 1)
|
43
|
+
end
|
44
|
+
# really, they're the same.
|
45
|
+
alias_method :has_descendants?, :has_children?
|
46
|
+
|
47
|
+
def has_parent?
|
48
|
+
!parent_id.nil?
|
49
|
+
end
|
50
|
+
|
51
|
+
def inspect
|
52
|
+
hash = {}
|
53
|
+
|
54
|
+
ATTRIBUTES.each do |attribute|
|
55
|
+
hash[attribute] = self[attribute]
|
56
|
+
end
|
57
|
+
|
58
|
+
hash
|
59
|
+
end
|
60
|
+
|
61
|
+
def menu
|
62
|
+
::Refinery.menus[menu_id]
|
63
|
+
end
|
64
|
+
|
65
|
+
def parent
|
66
|
+
@parent ||= (menu.detect{|item| item.type == type && item.id == parent_id} if has_parent?)
|
67
|
+
end
|
68
|
+
|
69
|
+
def siblings
|
70
|
+
@siblings ||= ((has_parent? ? children : menu.roots) - [self])
|
71
|
+
end
|
72
|
+
alias_method :shown_siblings, :siblings
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
data/lib/refinerycms-core.rb
CHANGED
@@ -9,6 +9,8 @@ module Refinery
|
|
9
9
|
autoload :ApplicationHelper, File.expand_path('../refinery/application_helper', __FILE__)
|
10
10
|
autoload :Configuration, File.expand_path('../refinery/configuration', __FILE__)
|
11
11
|
autoload :Engine, File.expand_path('../refinery/engine', __FILE__)
|
12
|
+
autoload :Menu, File.expand_path('../refinery/menu', __FILE__)
|
13
|
+
autoload :MenuItem, File.expand_path('../refinery/menu_item', __FILE__)
|
12
14
|
autoload :Plugin, File.expand_path('../refinery/plugin', __FILE__)
|
13
15
|
autoload :Plugins, File.expand_path('../refinery/plugins', __FILE__)
|
14
16
|
end
|
File without changes
|
data/refinerycms-core.gemspec
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{refinerycms-core}
|
5
|
-
s.version = %q{0.
|
5
|
+
s.version = %q{1.0.0}
|
6
6
|
s.summary = %q{Core engine for Refinery CMS}
|
7
7
|
s.description = %q{The core of Refinery CMS. This handles the common functionality and is required by most engines}
|
8
|
-
s.date = %q{2011-05-
|
8
|
+
s.date = %q{2011-05-28}
|
9
9
|
s.email = %q{info@refinerycms.com}
|
10
10
|
s.homepage = %q{http://refinerycms.com}
|
11
11
|
s.rubyforge_project = %q{refinerycms}
|
@@ -14,12 +14,12 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.require_paths = %w(lib)
|
15
15
|
s.executables = %w()
|
16
16
|
|
17
|
-
s.add_dependency 'refinerycms-base', '= 0.
|
18
|
-
s.add_dependency 'refinerycms-settings', '= 0.
|
17
|
+
s.add_dependency 'refinerycms-base', '= 1.0.0'
|
18
|
+
s.add_dependency 'refinerycms-settings', '= 1.0.0'
|
19
19
|
s.add_dependency 'refinerycms-generators', '~> 1.0'
|
20
20
|
s.add_dependency 'acts_as_indexed', '~> 0.7'
|
21
21
|
s.add_dependency 'friendly_id_globalize3', '~> 3.2.1'
|
22
|
-
s.add_dependency 'globalize3', '
|
22
|
+
s.add_dependency 'globalize3', '~> 0.1'
|
23
23
|
s.add_dependency 'awesome_nested_set', '~> 2.0'
|
24
24
|
s.add_dependency 'rails', '~> 3.0.7'
|
25
25
|
s.add_dependency 'truncate_html', '~> 0.5'
|
@@ -107,6 +107,7 @@ Gem::Specification.new do |s|
|
|
107
107
|
'doc',
|
108
108
|
'doc/included-jquery-ui-packages.jpg',
|
109
109
|
'features',
|
110
|
+
'features/dialogs.feature',
|
110
111
|
'features/search.feature',
|
111
112
|
'features/site_bar.feature',
|
112
113
|
'features/step_definitions',
|
@@ -163,6 +164,8 @@ Gem::Specification.new do |s|
|
|
163
164
|
'lib/refinery/helpers/tag_helper.rb',
|
164
165
|
'lib/refinery/helpers/translation_helper.rb',
|
165
166
|
'lib/refinery/link_renderer.rb',
|
167
|
+
'lib/refinery/menu.rb',
|
168
|
+
'lib/refinery/menu_item.rb',
|
166
169
|
'lib/refinery/plugin.rb',
|
167
170
|
'lib/refinery/plugins.rb',
|
168
171
|
'lib/refinerycms-core.rb',
|
@@ -417,6 +420,10 @@ Gem::Specification.new do |s|
|
|
417
420
|
'public/wymeditor/README',
|
418
421
|
'refinerycms-core.gemspec',
|
419
422
|
'spec',
|
423
|
+
'spec/controllers',
|
424
|
+
'spec/controllers/fast_controller_spec.rb',
|
425
|
+
'spec/controllers/refinery_core_controller_spec.rb',
|
426
|
+
'spec/controllers/sitemap_controller_spec.rb',
|
420
427
|
'spec/lib',
|
421
428
|
'spec/lib/refinery',
|
422
429
|
'spec/lib/refinery/plugin_spec.rb',
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Admin
|
4
|
+
describe RefineryCoreController do
|
5
|
+
login_refinery_user
|
6
|
+
|
7
|
+
it "should update the plugin positions" do
|
8
|
+
plugins = @refinery_user.plugins.reverse.collect {|p| p.name}
|
9
|
+
|
10
|
+
post 'update_plugin_positions', :menu => plugins
|
11
|
+
|
12
|
+
@refinery_user.plugins.reload
|
13
|
+
@refinery_user.plugins.each_with_index do |plugin, idx|
|
14
|
+
plugin.name.should eql(plugins[idx])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
describe SitemapController do
|
5
|
+
login_refinery_user
|
6
|
+
|
7
|
+
before (:each) do
|
8
|
+
@request.env['HTTP_ACCEPT'] = 'application/xml'
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should show a valid xml answer with i18n enabled" do
|
12
|
+
::Refinery.should_receive(:i18n_enabled?).and_return(true)
|
13
|
+
|
14
|
+
get :index
|
15
|
+
|
16
|
+
response.should be_success
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should show a valid xml answer with i18n disabled" do
|
20
|
+
::Refinery.should_receive(:i18n_enabled?).and_return(false)
|
21
|
+
|
22
|
+
get :index
|
23
|
+
|
24
|
+
response.should be_success
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: refinerycms-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 1.0.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Resolve Digital
|
@@ -13,7 +13,7 @@ autorequire:
|
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
15
|
|
16
|
-
date: 2011-05-
|
16
|
+
date: 2011-05-28 00:00:00 +12:00
|
17
17
|
default_executable:
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
requirements:
|
25
25
|
- - "="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0.
|
27
|
+
version: 1.0.0
|
28
28
|
type: :runtime
|
29
29
|
version_requirements: *id001
|
30
30
|
- !ruby/object:Gem::Dependency
|
@@ -35,7 +35,7 @@ dependencies:
|
|
35
35
|
requirements:
|
36
36
|
- - "="
|
37
37
|
- !ruby/object:Gem::Version
|
38
|
-
version: 0.
|
38
|
+
version: 1.0.0
|
39
39
|
type: :runtime
|
40
40
|
version_requirements: *id002
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -77,9 +77,9 @@ dependencies:
|
|
77
77
|
requirement: &id006 !ruby/object:Gem::Requirement
|
78
78
|
none: false
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.1
|
82
|
+
version: "0.1"
|
83
83
|
type: :runtime
|
84
84
|
version_requirements: *id006
|
85
85
|
- !ruby/object:Gem::Dependency
|
@@ -201,6 +201,7 @@ files:
|
|
201
201
|
- config/locales/zh-TW.yml
|
202
202
|
- config/routes.rb
|
203
203
|
- doc/included-jquery-ui-packages.jpg
|
204
|
+
- features/dialogs.feature
|
204
205
|
- features/search.feature
|
205
206
|
- features/site_bar.feature
|
206
207
|
- features/step_definitions/core_steps.rb
|
@@ -241,6 +242,8 @@ files:
|
|
241
242
|
- lib/refinery/helpers/tag_helper.rb
|
242
243
|
- lib/refinery/helpers/translation_helper.rb
|
243
244
|
- lib/refinery/link_renderer.rb
|
245
|
+
- lib/refinery/menu.rb
|
246
|
+
- lib/refinery/menu_item.rb
|
244
247
|
- lib/refinery/plugin.rb
|
245
248
|
- lib/refinery/plugins.rb
|
246
249
|
- lib/refinerycms-core.rb
|
@@ -471,6 +474,9 @@ files:
|
|
471
474
|
- public/wymeditor/MIT-license.txt
|
472
475
|
- public/wymeditor/README
|
473
476
|
- refinerycms-core.gemspec
|
477
|
+
- spec/controllers/fast_controller_spec.rb
|
478
|
+
- spec/controllers/refinery_core_controller_spec.rb
|
479
|
+
- spec/controllers/sitemap_controller_spec.rb
|
474
480
|
- spec/lib/refinery/plugin_spec.rb
|
475
481
|
- spec/lib/refinery/plugins_spec.rb
|
476
482
|
has_rdoc: true
|