alchemy_cms 2.1.rc6 → 2.1
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/assets/images/alchemy/lupe.cur +0 -0
- data/app/assets/javascripts/alchemy/alchemy.buttons.js +1 -1
- data/app/assets/javascripts/alchemy/alchemy.page_sorter.js +1 -0
- data/app/assets/stylesheets/alchemy/alchemy.css +11 -0
- data/app/assets/stylesheets/alchemy/base.css.scss +447 -2446
- data/app/assets/stylesheets/alchemy/buttons.css.scss +354 -0
- data/app/assets/stylesheets/alchemy/dashboard.css.scss +76 -0
- data/app/assets/stylesheets/alchemy/flags.css.scss +1 -1
- data/app/assets/stylesheets/alchemy/flash.css.scss +54 -0
- data/app/assets/stylesheets/alchemy/frame.css.scss +287 -0
- data/app/assets/stylesheets/alchemy/icons.css.scss +300 -0
- data/app/assets/stylesheets/alchemy/jquery-ui.alchemy.css.scss +3 -2
- data/app/assets/stylesheets/alchemy/jquery.sb.css.scss +1 -1
- data/app/assets/stylesheets/alchemy/login.css.scss +53 -0
- data/app/assets/stylesheets/alchemy/menubar.css.scss +26 -11
- data/app/assets/stylesheets/alchemy/modules.css.scss +31 -0
- data/app/assets/stylesheets/alchemy/pagination.css.scss +56 -0
- data/app/assets/stylesheets/alchemy/sitemap.css.scss +285 -0
- data/app/assets/stylesheets/alchemy/tables.css.scss +150 -0
- data/app/assets/stylesheets/alchemy/upload.css.scss +92 -0
- data/app/controllers/alchemy/admin/dashboard_controller.rb +1 -1
- data/app/controllers/alchemy/admin/pages_controller.rb +1 -1
- data/app/controllers/alchemy/admin/resources_controller.rb +35 -2
- data/app/controllers/alchemy/user_sessions_controller.rb +3 -0
- data/app/helpers/alchemy/admin/attachments_helper.rb +1 -1
- data/app/helpers/alchemy/admin/base_helper.rb +69 -20
- data/app/helpers/alchemy/pages_helper.rb +0 -55
- data/app/views/alchemy/admin/attachments/_attachment.html.erb +1 -1
- data/app/views/alchemy/admin/clipboard/index.html.erb +4 -1
- data/app/views/alchemy/admin/dashboard/index.html.erb +16 -11
- data/app/views/alchemy/admin/elements/_new_element_form.html.erb +4 -1
- data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +1 -20
- data/app/views/alchemy/admin/layoutpages/index.html.erb +1 -1
- data/app/views/alchemy/admin/pages/index.html.erb +3 -3
- data/app/views/alchemy/admin/partials/_search_form.html.erb +7 -1
- data/app/views/alchemy/admin/resources/_form.html.erb +1 -1
- data/app/views/alchemy/admin/resources/_resource.html.erb +8 -5
- data/app/views/alchemy/admin/resources/_table.html.erb +1 -1
- data/app/views/alchemy/admin/resources/index.html.erb +4 -3
- data/app/views/alchemy/admin/trash/index.html.erb +3 -2
- data/app/views/alchemy/user_sessions/login.html.erb +2 -1
- data/app/views/layouts/alchemy/admin.html.erb +3 -4
- data/app/views/layouts/alchemy/login.html.erb +9 -8
- data/config/authorization_rules.rb +0 -1
- data/config/locales/alchemy.de.yml +1 -0
- data/config/locales/alchemy.en.yml +1 -0
- data/lib/alchemy/seeder.rb +1 -1
- data/lib/alchemy/version.rb +1 -1
- data/spec/integration/admin/pages_controller_spec.rb +45 -57
- data/spec/integration/admin/resources_spec.rb +19 -0
- data/spec/models/content_spec.rb +6 -5
- data/spec/support/alchemy/controller_hacks.rb +41 -0
- data/spec/support/alchemy/specs_helpers.rb +32 -0
- data/vendor/assets/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +137 -1
- metadata +55 -37
- data/app/views/alchemy/admin/languages/_language.html.erb +0 -36
- data/spec/support/controller_hacks.rb +0 -37
@@ -14,61 +14,6 @@ module Alchemy
|
|
14
14
|
content.essence.caption
|
15
15
|
end
|
16
16
|
|
17
|
-
def alchemy_form_select(name, select_options, options={})
|
18
|
-
select "mail_data", name, select_options, :selected => (session[:mail_data][name.to_sym] rescue "")
|
19
|
-
end
|
20
|
-
|
21
|
-
def alchemy_form_input_field(name, options = {})
|
22
|
-
if options[:value].blank? && session[:mail_data].blank?
|
23
|
-
value = nil
|
24
|
-
elsif options[:value].blank? && !session[:mail_data].blank?
|
25
|
-
value = session[:mail_data][name.to_sym]
|
26
|
-
else
|
27
|
-
value = options[:value]
|
28
|
-
end
|
29
|
-
text_field("mail_data", name, {:value => value}.merge(options))
|
30
|
-
end
|
31
|
-
|
32
|
-
def alchemy_form_text_area(name, options={})
|
33
|
-
text_area "mail_data", name, :class => options[:class], :value => (session[:mail_data][name.to_sym] rescue "")
|
34
|
-
end
|
35
|
-
|
36
|
-
def alchemy_form_check_box(name, options={})
|
37
|
-
box = hidden_field_tag "mail_data[#{name}]", 0, :id => nil
|
38
|
-
box += check_box_tag("mail_data[#{name}]", 1, (session[:mail_data] && session[:mail_data][name.to_sym] == "1"))
|
39
|
-
box
|
40
|
-
end
|
41
|
-
|
42
|
-
def alchemy_form_label(element, name, options={})
|
43
|
-
label_tag "mail_data_#{name}", render_essence_view_by_name(element, name), options
|
44
|
-
end
|
45
|
-
|
46
|
-
def alchemy_form_reset_button(name, options={})
|
47
|
-
button_to_function(
|
48
|
-
name,
|
49
|
-
remote_function(
|
50
|
-
:url => {
|
51
|
-
:controller => "contact_form",
|
52
|
-
:action => "clear_session"
|
53
|
-
},
|
54
|
-
:before => %(
|
55
|
-
this.form.reset();
|
56
|
-
this.form.descendants().each(
|
57
|
-
function(d){
|
58
|
-
if ((d.type!='button') && (d.type!='submit') && (d.type!='hidden') && !d.disabled) {
|
59
|
-
d.value = '';
|
60
|
-
if (d.type == 'checkbox') {
|
61
|
-
d.checked = false;
|
62
|
-
}
|
63
|
-
}
|
64
|
-
}
|
65
|
-
)
|
66
|
-
)
|
67
|
-
),
|
68
|
-
options
|
69
|
-
)
|
70
|
-
end
|
71
|
-
|
72
17
|
# == Helper for rendering language switches
|
73
18
|
#
|
74
19
|
# Renders links to all public language root pages
|
@@ -17,7 +17,7 @@
|
|
17
17
|
<td class="file_name"><%= attachment.filename %></td>
|
18
18
|
<td class="file_type"><%= mime_to_human(attachment.content_type) %></td>
|
19
19
|
<td class="file_size"><%= number_to_human_size(attachment.size) %></td>
|
20
|
-
<td class="date"><%= l(attachment.created_at) %></td>
|
20
|
+
<td class="date"><%= l(attachment.created_at, :format => :short) %></td>
|
21
21
|
<td class="tools long">
|
22
22
|
<%- permitted_to?(:download, :attachments) do -%>
|
23
23
|
<%= link_to(
|
@@ -1,6 +1,9 @@
|
|
1
1
|
<div class="with_padding">
|
2
2
|
<%- if @clipboard_items.blank? -%>
|
3
|
-
<
|
3
|
+
<div class="info">
|
4
|
+
<%= render_icon('info') %>
|
5
|
+
<%= t('No items in your clipboard') %>
|
6
|
+
</div>
|
4
7
|
<%- else -%>
|
5
8
|
<div id="clipboard_items">
|
6
9
|
<ul>
|
@@ -1,11 +1,16 @@
|
|
1
1
|
<div id="dashboard">
|
2
|
-
<
|
3
|
-
|
4
|
-
|
2
|
+
<div class="with_padding">
|
3
|
+
<h1>
|
4
|
+
<%= t('Welcome back, %{name}', :name => current_user.firstname.blank? ? current_user.login : current_user.firstname) %>
|
5
|
+
</h1>
|
6
|
+
<p>
|
7
|
+
<small><%= t('Your last login was on %{time}', :time => l(current_user.last_login_at)) unless current_user.last_login_at.blank? %></small>
|
8
|
+
</p>
|
9
|
+
</div>
|
5
10
|
<div class="widget">
|
6
11
|
<h2><%= t('Your last updated pages') %>:</h2>
|
7
12
|
<%- if @last_edited_pages.blank? -%>
|
8
|
-
<
|
13
|
+
<ul><li class="even"><%= t('no pages') %></li></ul>
|
9
14
|
<%- else -%>
|
10
15
|
<ul>
|
11
16
|
<%- @last_edited_pages.each do |page| -%>
|
@@ -18,17 +23,17 @@
|
|
18
23
|
<div class="widget">
|
19
24
|
<h2><%= t('Currently locked pages') %>:</h2>
|
20
25
|
<%- if @locked_pages.blank? -%>
|
21
|
-
<
|
26
|
+
<ul><li class="even"><%= t('no pages') %></li></ul>
|
22
27
|
<%- else -%>
|
23
28
|
<ul>
|
24
29
|
<%- @locked_pages.each do |page| -%>
|
25
30
|
<li class="<%= cycle('even', 'odd', :name => 'locked_pages') %>">
|
26
31
|
<%- if current_user.id == page.locked_by -%>
|
27
32
|
<%= link_to(page.name, alchemy.edit_admin_page_path(page)) %> <small>(<%= page.locker.name %>)</small>
|
28
|
-
<%= form_tag(alchemy.unlock_admin_page_path(page, :redirect_to =>
|
29
|
-
|
30
|
-
|
31
|
-
|
33
|
+
<%= form_tag(alchemy.unlock_admin_page_path(page, :redirect_to => alchemy.admin_dashboard_url)) do %>
|
34
|
+
<button class="icon_button small" title="<%= t('explain_unlocking') %>">
|
35
|
+
<%= render_icon('close small') %>
|
36
|
+
</button>
|
32
37
|
<% end %>
|
33
38
|
<%- else -%>
|
34
39
|
<%= page.name %> <small>(<%= page.locker_name %>)</small>
|
@@ -42,7 +47,7 @@
|
|
42
47
|
<div class="widget">
|
43
48
|
<h2><%= t('Who else is online') %>:</h2>
|
44
49
|
<%- if @online_users.blank? -%>
|
45
|
-
<
|
50
|
+
<ul><li class="even"><%= t('no users') %></li></ul>
|
46
51
|
<%- else -%>
|
47
52
|
<ul>
|
48
53
|
<%- @online_users.each do |user| -%>
|
@@ -53,7 +58,7 @@
|
|
53
58
|
</div>
|
54
59
|
</div>
|
55
60
|
<div id="sideboard">
|
56
|
-
<%= image_tag("alchemy/alchemy-logo.png") %>
|
61
|
+
<%= image_tag("alchemy/alchemy-logo.png", :style => "width: 240px; height: 70px") %>
|
57
62
|
<p><%= t("Version") %>: <%= @alchemy_version %></p>
|
58
63
|
<div class="sideboard_body" style="display: none">
|
59
64
|
<p><%= t('Alchemy is open software and itself uses open software and free resources:') %></p>
|
@@ -1,6 +1,9 @@
|
|
1
1
|
<div class="new_alchemy_element">
|
2
2
|
<%- if @elements.blank? -%>
|
3
|
-
<
|
3
|
+
<div class="info with_margin">
|
4
|
+
<%= render_icon('info') %>
|
5
|
+
<%= t('no_more_elements_to_add') %>
|
6
|
+
</div>
|
4
7
|
<%- else -%>
|
5
8
|
<%= form_for [:admin, @element], :remote => true, :class => "add_element_content" do |form| %>
|
6
9
|
<div id="errors" style="display: none"></div>
|
@@ -1,26 +1,7 @@
|
|
1
1
|
<li class="page_level_<%= layoutpage.level %>" id="page_<%= layoutpage.id %>">
|
2
2
|
<div class="sitemap_page">
|
3
3
|
<div class="sitemap_left_images">
|
4
|
-
<span class="site_status <%= layoutpage.
|
5
|
-
<div id="tooltip_<%= layoutpage.id %>" style="display: none;">
|
6
|
-
<h1><%= t("page_type") %>: <%= layoutpage.layout_display_name %></h1>
|
7
|
-
<p>
|
8
|
-
<%= layoutpage.humanized_status %>
|
9
|
-
</p>
|
10
|
-
<p>
|
11
|
-
<strong><%= t("created_at") %>:</strong>
|
12
|
-
<%= l(layoutpage.created_at) %> von <%= layoutpage.creator %>
|
13
|
-
</p>
|
14
|
-
<p>
|
15
|
-
<strong><%= t("updated_at") %>:</strong>
|
16
|
-
<%= l(layoutpage.updated_at) %> durch <%= layoutpage.updater %>
|
17
|
-
</p>
|
18
|
-
<%- if layoutpage.locked? -%>
|
19
|
-
<p>
|
20
|
-
<%= t("currently_edited_by") %>: <span style="font-weight: bold;"><%= layoutpage.current_editor %></span>
|
21
|
-
</p>
|
22
|
-
<%- end -%>
|
23
|
-
</div>
|
4
|
+
<span class="site_status <%= layoutpage.locked ? ' locked' : '' %>" ></span>
|
24
5
|
</div>
|
25
6
|
<div class="sitemap_right_tools">
|
26
7
|
<%- permitted_to?(:configure, :alchemy_admin_pages) do -%>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<%= truncate page.name, :length => 15 %>
|
9
9
|
</span>
|
10
10
|
<% end %>
|
11
|
-
<%=
|
11
|
+
<%= form_tag(alchemy.unlock_admin_page_path(page), :remote => true) do %>
|
12
12
|
<button class="icon_button small" title="<%= t('explain_unlocking') %>">
|
13
13
|
<%= render_icon('close small') %>
|
14
14
|
</button>
|
@@ -9,9 +9,9 @@
|
|
9
9
|
</span>
|
10
10
|
<% end %>
|
11
11
|
<%= form_tag(alchemy.unlock_admin_page_path(page), :remote => true) do %>
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
<button class="icon_button small" title="<%= t('explain_unlocking') %>">
|
13
|
+
<%= render_icon('close small') %>
|
14
|
+
</button>
|
15
15
|
<% end %>
|
16
16
|
</div>
|
17
17
|
<%- end -%>
|
@@ -1,4 +1,10 @@
|
|
1
|
-
<%-
|
1
|
+
<%- url_scope =
|
2
|
+
begin
|
3
|
+
resource_url_scope
|
4
|
+
rescue NameError
|
5
|
+
self
|
6
|
+
end -%>
|
7
|
+
<%- url ||= url_scope.url_for(:action => 'index') -%>
|
2
8
|
<%= form_tag(url, :method => :get) do %>
|
3
9
|
<div class="search_field">
|
4
10
|
<%= render_icon('search') %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%= form_for [:admin, resource_instance_variable], :remote => true do |f| %>
|
1
|
+
<%= form_for [resource_url_scope, :admin, resource_instance_variable], :remote => true do |f| %>
|
2
2
|
<div id="errors" style="display: none"></div>
|
3
3
|
<table>
|
4
4
|
<%- resource_attributes.each do |attribute| -%>
|
@@ -1,7 +1,10 @@
|
|
1
1
|
<tr class="<%= cycle('even', 'odd') %>">
|
2
2
|
<%- resource_attributes.each do |attribute| -%>
|
3
3
|
<%- if attribute[:type] == :boolean -%>
|
4
|
-
<td class="center"
|
4
|
+
<td class="center">
|
5
|
+
<% attr_value = resource.send(attribute[:name]) %>
|
6
|
+
<%= attr_value.blank? ? '' : render_icon(attr_value) -%>
|
7
|
+
</td>
|
5
8
|
<%- elsif attribute[:type] == :integer || attribute[:type] == :float || attribute[:type] == :decimal -%>
|
6
9
|
<td class="right"><%= resource.send(attribute[:name]) -%></td>
|
7
10
|
<%- else -%>
|
@@ -9,19 +12,19 @@
|
|
9
12
|
<%- end -%>
|
10
13
|
<%- end -%>
|
11
14
|
<td class="tools">
|
12
|
-
<%- permitted_to?(:destroy,
|
15
|
+
<%- permitted_to?(:destroy, resources_permission) do -%>
|
13
16
|
<%= link_to_confirmation_window(
|
14
17
|
'',
|
15
18
|
t("Are you sure?"),
|
16
|
-
send("admin_#{resource_model_name}_path", resource),
|
19
|
+
resource_url_scope.send("admin_#{resource_model_name}_path", resource),
|
17
20
|
:title => t("Delete"),
|
18
21
|
:class => "icon destroy"
|
19
22
|
) -%>
|
20
23
|
<%- end -%>
|
21
|
-
<%- permitted_to?(:edit,
|
24
|
+
<%- permitted_to?(:edit, resources_permission) do -%>
|
22
25
|
<%= link_to_overlay_window(
|
23
26
|
'',
|
24
|
-
send("edit_admin_#{resource_model_name}_path", resource),
|
27
|
+
resource_url_scope.send("edit_admin_#{resource_model_name}_path", resource),
|
25
28
|
{
|
26
29
|
:title => t("Edit")
|
27
30
|
},
|
@@ -20,4 +20,4 @@
|
|
20
20
|
<p><%= t('Nothing found') %></p>
|
21
21
|
<%- end -%>
|
22
22
|
|
23
|
-
<%= render 'alchemy/admin/partials/pagination_links', :items => resources_instance_variable %>
|
23
|
+
<%= render 'alchemy/admin/partials/pagination_links', :items => resources_instance_variable, :scope => resource_url_scope %>
|
@@ -5,15 +5,16 @@
|
|
5
5
|
{
|
6
6
|
:icon => 'create',
|
7
7
|
:label => label_title,
|
8
|
-
:url => send("new_admin_#{resource_model_name}_path"),
|
8
|
+
:url => resource_url_scope.send("new_admin_#{resource_model_name}_path"),
|
9
9
|
:title => label_title,
|
10
10
|
:overlay_options => {
|
11
11
|
:title => label_title
|
12
12
|
},
|
13
|
-
:if_permitted_to => [:new,
|
13
|
+
:if_permitted_to => [:new, resources_permission]
|
14
14
|
}
|
15
15
|
],
|
16
|
-
:search => true
|
16
|
+
:search => true,
|
17
|
+
:search_url => resource_url_scope.send("admin_#{resources_name}_path")
|
17
18
|
) -%>
|
18
19
|
|
19
20
|
<%= render 'table' %>
|
@@ -1,8 +1,9 @@
|
|
1
1
|
<div class="with_padding">
|
2
2
|
<%- if @elements.blank? -%>
|
3
|
-
<
|
3
|
+
<div id="trash_empty_notice" <%= @elements.blank? ? '' : 'style="display: none"' %> class="info">
|
4
|
+
<%= render_icon('info') %>
|
4
5
|
<%= t('Your trash is empty') %>
|
5
|
-
</
|
6
|
+
</div>
|
6
7
|
<%- else -%>
|
7
8
|
<div class="info">
|
8
9
|
<%= render_icon('info') %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<div id="login_box">
|
2
2
|
<div id="alchemy_greeting">
|
3
|
-
<%= image_tag("alchemy/alchemy-logo.png") %>
|
3
|
+
<%= image_tag("alchemy/alchemy-logo.png", :style => "width: 240px; height: 70px") %>
|
4
4
|
<h1><%= flash[:info] %></h1>
|
5
5
|
</div>
|
6
6
|
<div class="login_signup_box">
|
@@ -41,6 +41,7 @@
|
|
41
41
|
$('#user_screensize').val(function() {
|
42
42
|
return screen.width+'x'+screen.height;
|
43
43
|
});
|
44
|
+
Alchemy.ButtonObserver('#login .button');
|
44
45
|
});
|
45
46
|
</script>
|
46
47
|
<%- end -%>
|
@@ -23,14 +23,13 @@
|
|
23
23
|
<span id="overlay_text"><%= t("please_wait") %></span>
|
24
24
|
</div>
|
25
25
|
</div>
|
26
|
-
<div id="
|
26
|
+
<div id="left_menu">
|
27
27
|
<div id="main_navi">
|
28
28
|
<%= admin_main_navigation %>
|
29
29
|
<%= yield(:alchemy_main_navigation) %>
|
30
30
|
</div>
|
31
|
-
<div id="main_menu_background"></div>
|
32
31
|
<div id="logout">
|
33
|
-
<%= link_to_overlay_window("<span class='module icon exit'></span><label>#{t('leave')}</label>".html_safe, alchemy.leave_admin_path, {:size => "
|
32
|
+
<%= link_to_overlay_window("<span class='module icon exit'></span><label>#{t('leave')}</label>".html_safe, alchemy.leave_admin_path, {:size => "300x105", :title => t("Leave Alchemy")}) %>
|
34
33
|
</div>
|
35
34
|
</div>
|
36
35
|
<div id="top_menu">
|
@@ -66,7 +65,7 @@
|
|
66
65
|
if ($('#flash_notices').length > 0) {
|
67
66
|
Alchemy.Growler.fade();
|
68
67
|
}
|
69
|
-
$('#toolbar a.please_wait, #toolbar form .button, #main_navi a.main_navi_entry, #sub_navigation .subnavi_tab a').click(function() {
|
68
|
+
$('#toolbar a.please_wait, #toolbar form .button, #toolbar form .icon_button, #main_navi a.main_navi_entry, #sub_navigation .subnavi_tab a, .pagination a').click(function() {
|
70
69
|
Alchemy.pleaseWaitOverlay();
|
71
70
|
});
|
72
71
|
});
|
@@ -9,15 +9,16 @@
|
|
9
9
|
<%= javascript_include_tag('alchemy/alchemy') %>
|
10
10
|
</head>
|
11
11
|
<body id="alchemy" class="login">
|
12
|
-
<div id="
|
13
|
-
<div id="main_navi"
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
12
|
+
<div id="left_menu">
|
13
|
+
<div id="main_navi">
|
14
|
+
<div id="logout">
|
15
|
+
<%= link_to(alchemy.root_path) do %>
|
16
|
+
<span class="module icon exit"></span>
|
17
|
+
<label><%= t('leave') %></label>
|
18
|
+
<% end %>
|
19
|
+
</div>
|
20
20
|
</div>
|
21
|
+
<div id="left_menu_background"></div>
|
21
22
|
</div>
|
22
23
|
<div id="main_content">
|
23
24
|
<%= yield %>
|
@@ -49,7 +49,6 @@ authorization do
|
|
49
49
|
includes :editor
|
50
50
|
has_permission_on :alchemy_admin_users, :to => [:manage]
|
51
51
|
has_permission_on :alchemy_admin_languages, :to => [:manage]
|
52
|
-
has_permission_on :alchemy_languages, :to => [:manage]
|
53
52
|
has_permission_on :authorization_rules, :to => :read
|
54
53
|
end
|
55
54
|
|
data/lib/alchemy/seeder.rb
CHANGED
data/lib/alchemy/version.rb
CHANGED
@@ -1,85 +1,73 @@
|
|
1
1
|
# Skipping on Travis-CI, because capybara-webkit does not install on travis.
|
2
2
|
unless ENV["CI"]
|
3
3
|
|
4
|
-
require 'spec_helper'
|
4
|
+
require 'spec_helper'
|
5
5
|
|
6
|
-
describe Alchemy::Admin::PagesController, :js => true do
|
6
|
+
describe Alchemy::Admin::PagesController, :js => true do
|
7
7
|
|
8
|
-
|
8
|
+
describe "language tree switching" do
|
9
9
|
|
10
|
-
|
10
|
+
context "in a multilangual environment" do
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
before(:all) do
|
13
|
+
Factory.build(:admin_user).save_without_session_maintenance
|
14
|
+
@language = Factory(:language)
|
15
|
+
@german_root = Factory(:language_root_page, :language => Alchemy::Language.get_default, :name => 'Deutsch')
|
16
|
+
@klingonian_root = Factory(:language_root_page, :name => 'Klingonian')
|
17
|
+
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
19
|
+
it "one should be able to switch the language tree" do
|
20
|
+
login_into_alchemy
|
21
|
+
visit('/alchemy/admin/pages')
|
22
|
+
page.select 'Klingonian', :from => 'language'
|
23
|
+
page.should have_selector('#sitemap .sitemap_pagename_link', :text => 'Klingonian')
|
24
|
+
end
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
after(:all) {
|
27
|
+
@language.destroy
|
28
|
+
@klingonian_root.delete
|
29
|
+
@german_root.delete
|
30
|
+
}
|
31
31
|
|
32
|
-
|
32
|
+
end
|
33
33
|
|
34
|
-
|
34
|
+
context "with no language root page" do
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
before(:all) do
|
37
|
+
Factory.build(:admin_user).save_without_session_maintenance
|
38
|
+
@language = Factory(:language)
|
39
|
+
end
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
within('#archive_all') do
|
41
|
+
it "it should display the form for creating language root" do
|
42
|
+
login_into_alchemy
|
43
|
+
visit('/alchemy/admin/pages')
|
44
|
+
page.select 'Klingonian', :from => 'language'
|
46
45
|
page.should have_content('This language tree does not exist')
|
47
46
|
end
|
48
|
-
end
|
49
47
|
|
50
|
-
|
51
|
-
|
52
|
-
|
48
|
+
after(:all) {
|
49
|
+
@language.destroy
|
50
|
+
}
|
53
51
|
|
54
|
-
|
52
|
+
end
|
55
53
|
|
56
|
-
|
54
|
+
end
|
57
55
|
|
58
|
-
|
56
|
+
describe "flush complete page cache" do
|
59
57
|
|
60
|
-
|
61
|
-
|
62
|
-
|
58
|
+
before(:all) do
|
59
|
+
Factory.build(:admin_user).save_without_session_maintenance
|
60
|
+
end
|
63
61
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
within('#flash_notices') do
|
62
|
+
it "should remove the cache of all pages" do
|
63
|
+
login_into_alchemy
|
64
|
+
visit '/alchemy/admin/pages'
|
65
|
+
click_link 'Flush page cache'
|
69
66
|
page.should have_content('Page cache flushed')
|
70
67
|
end
|
68
|
+
|
71
69
|
end
|
72
70
|
|
73
71
|
end
|
74
72
|
|
75
73
|
end
|
76
|
-
|
77
|
-
# We need this, because the before blocks losing its session under webkit-capybara (https://github.com/thoughtbot/capybara-webkit/issues/222)
|
78
|
-
def login_to_alchemy
|
79
|
-
visit '/alchemy/admin/login'
|
80
|
-
fill_in('Username', :with => 'jdoe')
|
81
|
-
fill_in('Password', :with => 's3cr3t')
|
82
|
-
click_on('login')
|
83
|
-
end
|
84
|
-
|
85
|
-
end
|