alchemy_cms 2.1.rc6 → 2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|