alchemy_cms 2.4.beta2 → 2.4.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/.travis.yml +3 -1
- data/.yardopts +1 -1
- data/Gemfile +2 -1
- data/alchemy_cms.gemspec +18 -17
- data/app/assets/images/alchemy/ajax_loader.gif +0 -0
- data/app/assets/images/alchemy/alchemy-logo.png +0 -0
- data/app/assets/images/alchemy/icons.png +0 -0
- data/app/assets/images/alchemy/image_loader.gif +0 -0
- data/app/assets/images/alchemy/placeholder.png +0 -0
- data/app/assets/images/alchemy/shading.png +0 -0
- data/app/assets/images/alchemy/swfupload/browse_button.png +0 -0
- data/app/assets/images/alchemy/tabs.gif +0 -0
- data/app/assets/images/alchemy/ui-icons_666666_256x240.png +0 -0
- data/app/assets/images/sassy-ie-overlay.png +0 -0
- data/app/assets/javascripts/alchemy/alchemy.base.js +1 -3
- data/app/assets/javascripts/alchemy/alchemy.browser.js.coffee +28 -0
- data/app/assets/javascripts/alchemy/alchemy.jquery_loader.js +2 -2
- data/app/assets/javascripts/alchemy/alchemy.js +2 -0
- data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +79 -47
- data/app/assets/javascripts/alchemy/alchemy.menubar.js +12 -4
- data/app/assets/javascripts/alchemy/alchemy.onload.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +103 -0
- data/app/assets/javascripts/alchemy/alchemy.swf_upload.js +1 -1
- data/app/assets/javascripts/alchemy/alchemy.uploader.js +4 -6
- data/app/assets/javascripts/alchemy/preview.js +1 -0
- data/app/assets/stylesheets/alchemy/admin.css.scss +25 -0
- data/app/assets/stylesheets/alchemy/{archive.css.scss → archive.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{base.css.scss → base.scss} +1 -57
- data/app/assets/stylesheets/alchemy/{custom.css → custom.scss} +0 -0
- data/app/assets/stylesheets/alchemy/{dashboard.css.scss → dashboard.scss} +0 -2
- data/app/assets/stylesheets/alchemy/defaults.scss +5 -0
- data/app/assets/stylesheets/alchemy/{elements.css.scss → elements.scss} +24 -37
- data/app/assets/stylesheets/alchemy/{errors.css.scss → errors.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{flash.css.scss → flash.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{form_elements.css.scss → form_elements.scss} +39 -12
- data/app/assets/stylesheets/alchemy/{frame.css.scss → frame.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{icons.css.scss → icons.scss} +20 -2
- data/app/assets/stylesheets/alchemy/{jquery-ui.alchemy.css.scss → jquery-ui.scss} +6 -3
- data/app/assets/stylesheets/alchemy/{login.css.scss → login.scss} +3 -3
- data/app/assets/stylesheets/alchemy/menubar.css.scss +0 -1
- data/app/assets/stylesheets/alchemy/{_defaults.scss → mixins.scss} +2 -39
- data/app/assets/stylesheets/alchemy/{modules.css.scss → modules.scss} +4 -2
- data/app/assets/stylesheets/alchemy/notices.scss +51 -0
- data/app/assets/stylesheets/alchemy/{pagination.css.scss → pagination.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{print.css → print.css.scss} +3 -3
- data/app/assets/stylesheets/alchemy/search.scss +63 -0
- data/app/assets/stylesheets/alchemy/{sitemap.css.scss → sitemap.scss} +1 -2
- data/app/assets/stylesheets/alchemy/{tables.css.scss → tables.scss} +16 -3
- data/app/assets/stylesheets/alchemy/tinymce_content.css.scss +3 -0
- data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +3 -0
- data/app/assets/stylesheets/alchemy/{upload.css.scss → upload.scss} +0 -2
- data/app/assets/stylesheets/alchemy/variables.scss +33 -0
- data/app/controllers/alchemy/admin/elements_controller.rb +1 -2
- data/app/controllers/alchemy/admin/tags_controller.rb +64 -0
- data/app/controllers/alchemy/base_controller.rb +8 -23
- data/app/controllers/alchemy/pages_controller.rb +5 -18
- data/app/helpers/alchemy/admin/base_helper.rb +1 -1
- data/app/helpers/alchemy/admin/elements_helper.rb +1 -0
- data/app/helpers/alchemy/elements_block_helper.rb +162 -0
- data/app/helpers/alchemy/elements_helper.rb +41 -3
- data/app/helpers/alchemy/pages_helper.rb +2 -1
- data/app/models/alchemy/attachment.rb +2 -1
- data/app/models/alchemy/element.rb +13 -10
- data/app/models/alchemy/essence_link.rb +11 -0
- data/app/models/alchemy/essence_picture.rb +15 -4
- data/app/models/alchemy/page.rb +23 -25
- data/app/models/alchemy/picture.rb +2 -2
- data/app/models/alchemy/tag.rb +16 -0
- data/app/models/alchemy/user.rb +3 -1
- data/app/views/alchemy/admin/attachments/_attachment.html.erb +12 -12
- data/app/views/alchemy/admin/attachments/edit.html.erb +10 -4
- data/app/views/alchemy/admin/elements/_element.html.erb +10 -13
- data/app/views/alchemy/admin/elements/_element_foot.html.erb +1 -1
- data/app/views/alchemy/admin/essence_files/edit.html.erb +12 -76
- data/app/views/alchemy/admin/essence_pictures/crop.html.erb +9 -4
- data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +1 -1
- data/app/views/alchemy/admin/layoutpages/index.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_external_link.html.erb +9 -4
- data/app/views/alchemy/admin/pages/configure.html.erb +22 -12
- data/app/views/alchemy/admin/pages/edit.html.erb +40 -40
- data/app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb +9 -0
- data/app/views/alchemy/admin/pictures/edit.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +11 -2
- data/app/views/alchemy/admin/tags/_radio_tag.html.erb +6 -0
- data/app/views/alchemy/admin/tags/_tag.html.erb +29 -0
- data/app/views/alchemy/admin/tags/edit.html.erb +41 -0
- data/app/views/alchemy/admin/tags/index.html.erb +46 -0
- data/app/views/alchemy/admin/tags/new.html.erb +16 -0
- data/app/views/alchemy/admin/users/_table.html.erb +18 -10
- data/app/views/alchemy/admin/users/_user.html.erb +2 -1
- data/app/views/alchemy/admin/users/index.html.erb +2 -1
- data/app/views/alchemy/elements/_article_view.html.erb +1 -1
- data/app/views/alchemy/essences/_essence_link_editor.html.erb +23 -0
- data/app/views/alchemy/essences/_essence_link_view.html.erb +0 -0
- data/app/views/alchemy/essences/_essence_picture_tools.html.erb +1 -1
- data/app/views/alchemy/essences/_essence_text_editor.html.erb +1 -9
- data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +19 -0
- data/app/views/layouts/alchemy/admin.html.erb +1 -1
- data/config/alchemy/elements.yml +2 -0
- data/config/alchemy/modules.yml +12 -0
- data/config/alchemy/page_layouts.yml +2 -0
- data/config/authorization_rules.rb +2 -0
- data/config/locales/alchemy.de.yml +36 -5
- data/config/locales/alchemy.en.yml +3 -0
- data/config/routes.rb +6 -4
- data/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
- data/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
- data/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
- data/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
- data/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
- data/lib/alchemy/engine.rb +1 -1
- data/lib/alchemy/resource.rb +1 -1
- data/lib/alchemy/resources_helper.rb +1 -1
- data/lib/alchemy/upgrader.rb +17 -0
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +1 -0
- data/lib/rails/generators/alchemy/base.rb +41 -0
- data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +10 -3
- data/lib/rails/generators/alchemy/elements/elements_generator.rb +6 -14
- data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +8 -6
- data/lib/rails/generators/alchemy/elements/templates/editor.html.haml +13 -0
- data/lib/rails/generators/alchemy/elements/templates/editor.html.slim +13 -0
- data/lib/rails/generators/alchemy/elements/templates/view.html.erb +4 -4
- data/lib/rails/generators/alchemy/elements/templates/view.html.haml +15 -0
- data/lib/rails/generators/alchemy/elements/templates/view.html.slim +15 -0
- data/lib/rails/generators/alchemy/essence/essence_generator.rb +1 -1
- data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +2 -3
- data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +4 -13
- data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.haml +1 -0
- data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.slim +1 -0
- data/spec/controllers/pages_controller_spec.rb +41 -34
- data/spec/dummy/app/views/layouts/application.html.erb +51 -0
- data/spec/dummy/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
- data/spec/dummy/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
- data/spec/dummy/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
- data/spec/dummy/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
- data/spec/dummy/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
- data/spec/dummy/db/schema.rb +24 -45
- data/spec/helpers/elements_block_helper_spec.rb +135 -0
- data/spec/helpers/elements_helper_spec.rb +43 -5
- data/spec/integration/pages_controller_spec.rb +22 -18
- data/spec/integration/translation_integration_spec.rb +0 -15
- data/spec/models/element_spec.rb +44 -36
- data/spec/models/essence_picture_spec.rb +22 -6
- data/spec/models/page_spec.rb +28 -0
- data/spec/spec_helper.rb +8 -3
- data/spec/support/ci/install_phantomjs +6 -0
- metadata +82 -40
- data/app/assets/images/alchemy/gui/navi-tab.png +0 -0
- data/app/assets/images/alchemy/gui/shading_90.png +0 -0
- data/app/assets/images/alchemy/jquery-sb/select_arrow.gif +0 -0
- data/app/assets/images/alchemy/jquery-sb/select_arrow_bg.gif +0 -0
- data/app/assets/images/alchemy/jquery-sb/select_arrow_bg_hover.gif +0 -0
- data/app/assets/javascripts/alchemy/alchemy.preview.js +0 -98
- data/app/assets/stylesheets/alchemy/alchemy.css +0 -21
- data/app/controllers/alchemy/admin/essence_audios_controller.rb +0 -12
- data/app/controllers/alchemy/admin/essence_flashes_controller.rb +0 -12
- data/app/controllers/alchemy/admin/essence_videos_controller.rb +0 -12
- data/app/models/alchemy/essence_audio.rb +0 -14
- data/app/models/alchemy/essence_flash.rb +0 -12
- data/app/models/alchemy/essence_video.rb +0 -20
- data/app/views/alchemy/essences/_essence_audio_editor.html.erb +0 -1
- data/app/views/alchemy/essences/_essence_audio_view.html.erb +0 -33
- data/app/views/alchemy/essences/_essence_flash_editor.html.erb +0 -1
- data/app/views/alchemy/essences/_essence_flash_view.html.erb +0 -26
- data/app/views/alchemy/essences/_essence_video_editor.html.erb +0 -1
- data/app/views/alchemy/essences/_essence_video_view.html.erb +0 -35
@@ -7,33 +7,33 @@
|
|
7
7
|
<%= f.select('page_layout', @page_layouts, {}, {:class => 'alchemy_selectbox long'}) %>
|
8
8
|
</td>
|
9
9
|
</tr>
|
10
|
-
|
10
|
+
<% unless @page.layoutpage %>
|
11
11
|
<tr>
|
12
12
|
<td class="label"><%= t("page_status") %>: </td>
|
13
13
|
<td class="checkbox long">
|
14
|
-
<%= f.check_box :public
|
14
|
+
<%= f.check_box :public %>
|
15
15
|
<%= f.label :public %><br/>
|
16
|
-
<%= f.check_box :visible
|
16
|
+
<%= f.check_box :visible %>
|
17
17
|
<%= f.label :visible %><br/>
|
18
|
-
<%= f.check_box :restricted
|
18
|
+
<%= f.check_box :restricted %>
|
19
19
|
<%= f.label :restricted %>
|
20
|
-
|
21
|
-
<%= f.check_box :sitemap
|
20
|
+
<% if configuration(:sitemap)[:show_flag] %><br/>
|
21
|
+
<%= f.check_box :sitemap %>
|
22
22
|
<%= f.label :sitemap %>
|
23
|
-
|
23
|
+
<% end %>
|
24
24
|
</td>
|
25
25
|
</tr>
|
26
|
-
|
27
|
-
|
26
|
+
<% end %>
|
27
|
+
<% unless @page.layoutpage %>
|
28
28
|
<tr>
|
29
29
|
<td colspan="2" class="heading"><%= t("names") %></td>
|
30
30
|
</tr>
|
31
|
-
|
31
|
+
<% end %>
|
32
32
|
<tr>
|
33
33
|
<td class="label"><%= f.label "name" %>: </td>
|
34
34
|
<td class="input"><%= f.text_field "name", :size => 31, :class => "thin_border long", :autofocus => true %></td>
|
35
35
|
</tr>
|
36
|
-
|
36
|
+
<% unless @page.layoutpage %>
|
37
37
|
<tr>
|
38
38
|
<td class="label"><%= f.label "urlname" %>: </td>
|
39
39
|
<td class="input"><%= f.text_field "urlname", :size => 31, :class => "thin_border long" %></td>
|
@@ -64,12 +64,22 @@
|
|
64
64
|
<%= f.text_area "meta_keywords", :class => "thin_border long" %><br/>
|
65
65
|
</td>
|
66
66
|
</tr>
|
67
|
-
|
67
|
+
<% end %>
|
68
|
+
<% if @page.taggable? %>
|
69
|
+
<tr>
|
70
|
+
<td class="label"><%= f.label :tag_list %>*: </td>
|
71
|
+
<td class="input">
|
72
|
+
<%= render 'alchemy/admin/partials/autocomplete_tag_list', :f => f, :object => @page %>
|
73
|
+
</td>
|
74
|
+
</tr>
|
75
|
+
<% end %>
|
68
76
|
<tr>
|
69
77
|
<td colspan="2" class="submit">
|
78
|
+
<% if !@page.layoutpage || @page.taggable? %>
|
70
79
|
<p class="foot_note">
|
71
80
|
*<%= t('pages.update.comma_seperated') %>
|
72
81
|
</p>
|
82
|
+
<% end %>
|
73
83
|
<%= f.button t("save"), :class => 'button' %>
|
74
84
|
</td>
|
75
85
|
</tr>
|
@@ -1,11 +1,11 @@
|
|
1
|
-
<% content_for(:title) { @page.name }
|
1
|
+
<% content_for(:title) { @page.name } %>
|
2
2
|
|
3
|
-
|
3
|
+
<% content_for(:subnav_additions) do %>
|
4
4
|
<label><%= t('Active Pages') %> »</label>
|
5
|
-
|
6
|
-
|
5
|
+
<% @locked_pages.each do |page| %>
|
6
|
+
<% if @page == page %>
|
7
7
|
<%= render :partial => 'page_status' %>
|
8
|
-
|
8
|
+
<% else %>
|
9
9
|
<div class="subnavi_tab wide" id="locked_page_<%= page.id %>">
|
10
10
|
<%= link_to alchemy.edit_admin_page_path(page) do %>
|
11
11
|
<span class="page_name" title="<%= page.name %>">
|
@@ -18,11 +18,11 @@
|
|
18
18
|
</button>
|
19
19
|
<% end %>
|
20
20
|
</div>
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
<% end %>
|
22
|
+
<% end %>
|
23
|
+
<% end %>
|
24
24
|
|
25
|
-
|
25
|
+
<% content_for(:toolbar) do %>
|
26
26
|
<div id="toolbar_buttons">
|
27
27
|
<div class="button_with_label">
|
28
28
|
<%= form_tag alchemy.unlock_admin_page_path(@page, :redirect_to => @layoutpage ? alchemy.admin_layoutpages_path : alchemy.admin_pages_path), :id => 'unlock_page_form' do %>
|
@@ -32,7 +32,7 @@
|
|
32
32
|
<label><%= t("unlock_page") %></label>
|
33
33
|
<% end %>
|
34
34
|
</div>
|
35
|
-
|
35
|
+
<% unless @page.layoutpage? %>
|
36
36
|
<div class="button_with_label">
|
37
37
|
<%= form_tag alchemy.visit_admin_page_path(@page), :id => 'visit_page_form' do %>
|
38
38
|
<button class="icon_button" title="<%= t('Visit page') %>">
|
@@ -41,30 +41,30 @@
|
|
41
41
|
<label><%= t("Visit page") %></label>
|
42
42
|
<% end %>
|
43
43
|
</div>
|
44
|
-
|
44
|
+
<% end %>
|
45
45
|
<div class="button_with_label">
|
46
46
|
<%= link_to_overlay_window(
|
47
47
|
render_icon('settings'),
|
48
48
|
alchemy.configure_admin_page_path(@page),
|
49
49
|
{
|
50
50
|
:title => t('edit_page_properties'),
|
51
|
-
:size => @page.layoutpage? ? '
|
51
|
+
:size => @page.layoutpage? ? '410x150' : '410x650'
|
52
52
|
},
|
53
53
|
:class => :icon_button,
|
54
54
|
:title => t('edit_page_properties')
|
55
|
-
)
|
55
|
+
) %>
|
56
56
|
<label><%= t('page_properties') %></label>
|
57
57
|
</div>
|
58
|
-
|
58
|
+
<% if configuration(:cache_pages) && !@page.layoutpage? %>
|
59
59
|
<div class="button_with_label">
|
60
|
-
<%= form_tag alchemy.publish_admin_page_path(@page), :id => 'publish_page_form' do
|
60
|
+
<%= form_tag alchemy.publish_admin_page_path(@page), :id => 'publish_page_form' do %>
|
61
61
|
<button class="icon_button" title="<%= t('explain_publishing') %>">
|
62
62
|
<%= render_icon('publish') %>
|
63
63
|
</button>
|
64
64
|
<label><%= t("Publish page") %></label>
|
65
|
-
<% end
|
65
|
+
<% end %>
|
66
66
|
</div>
|
67
|
-
|
67
|
+
<% end %>
|
68
68
|
</div>
|
69
69
|
<div id="toolbar_buttons_right">
|
70
70
|
<div class="button_with_label" id="show_preview_window">
|
@@ -84,34 +84,34 @@
|
|
84
84
|
<label><%= t('Show Elements Window') %></label>
|
85
85
|
</div>
|
86
86
|
</div>
|
87
|
-
|
87
|
+
<% end %>
|
88
88
|
|
89
|
-
|
89
|
+
<% content_for :javascripts do %>
|
90
90
|
<%= tinymce_javascript_tags %>
|
91
91
|
<script type="text/javascript" charset="utf-8">
|
92
92
|
|
93
93
|
Alchemy.openPreviewWindow = function() {
|
94
|
-
Alchemy.PreviewWindow.init('<%= admin_page_url(@page) %>', '<%= t("Page Preview")
|
94
|
+
Alchemy.PreviewWindow.init('<%= admin_page_url(@page) %>', '<%= t("Page Preview") %>');
|
95
95
|
}
|
96
96
|
|
97
97
|
Alchemy.openElementsWindow = function() {
|
98
|
-
Alchemy.ElementsWindow.init('<%= alchemy.admin_elements_path(:page_id => @page.id)
|
98
|
+
Alchemy.ElementsWindow.init('<%= alchemy.admin_elements_path(:page_id => @page.id) %>', {
|
99
99
|
texts: {
|
100
|
-
title: '<%= t("Elements")
|
101
|
-
dirtyTitle: '<%= t("Warning!")
|
102
|
-
dirtyMessage: '<%= t(:element_dirty_close_window_notice)
|
103
|
-
okLabel: '<%= t("Yes")
|
104
|
-
cancelLabel: '<%= t("No")
|
100
|
+
title: '<%= t("Elements") %>',
|
101
|
+
dirtyTitle: '<%= t("Warning!") %>',
|
102
|
+
dirtyMessage: '<%= t(:element_dirty_close_window_notice) %>',
|
103
|
+
okLabel: '<%= t("Yes") %>',
|
104
|
+
cancelLabel: '<%= t("No") %>'
|
105
105
|
},
|
106
106
|
toolbarButtons: [
|
107
107
|
{
|
108
|
-
title: '<%= t("New Element")
|
109
|
-
label: '<%= t("New Element")
|
108
|
+
title: '<%= t("New Element") %>',
|
109
|
+
label: '<%= t("New Element") %>',
|
110
110
|
iconClass: 'new_element',
|
111
111
|
onClick: function() {
|
112
112
|
Alchemy.openWindow(
|
113
|
-
'<%= alchemy.new_admin_element_path(:page_id => @page.id)
|
114
|
-
'<%= t("New Element")
|
113
|
+
'<%= alchemy.new_admin_element_path(:page_id => @page.id) %>',
|
114
|
+
'<%= t("New Element") %>',
|
115
115
|
320,
|
116
116
|
120,
|
117
117
|
false,
|
@@ -121,14 +121,14 @@
|
|
121
121
|
}
|
122
122
|
},
|
123
123
|
{
|
124
|
-
title: '<%= t("Clipboard")
|
125
|
-
label: '<%= t("Show clipboard")
|
126
|
-
iconClass: 'clipboard<%= clipboard_empty?("elements") ? "" : " full"
|
124
|
+
title: '<%= t("Clipboard") %>',
|
125
|
+
label: '<%= t("Show clipboard") %>',
|
126
|
+
iconClass: 'clipboard<%= clipboard_empty?("elements") ? "" : " full" %>',
|
127
127
|
buttonId: 'clipboard_button',
|
128
128
|
onClick: function() {
|
129
129
|
Alchemy.openWindow(
|
130
|
-
'<%= alchemy.admin_clipboard_path(:remarkable_type => "elements")
|
131
|
-
'<%= t("Clipboard")
|
130
|
+
'<%= alchemy.admin_clipboard_path(:remarkable_type => "elements") %>',
|
131
|
+
'<%= t("Clipboard") %>',
|
132
132
|
380,
|
133
133
|
270,
|
134
134
|
false,
|
@@ -138,12 +138,12 @@
|
|
138
138
|
}
|
139
139
|
},
|
140
140
|
{
|
141
|
-
title: '<%= t("Show trash")
|
142
|
-
label: '<%= t("Show trash")
|
143
|
-
iconClass: 'trash<%= trash_empty?("elements") ? "" : " full"
|
141
|
+
title: '<%= t("Show trash") %>',
|
142
|
+
label: '<%= t("Show trash") %>',
|
143
|
+
iconClass: 'trash<%= trash_empty?("elements") ? "" : " full" %>',
|
144
144
|
buttonId: 'element_trash_button',
|
145
145
|
onClick: function() {
|
146
|
-
Alchemy.openTrashWindow(<%= @page.id %>, '<%= t("Trash")
|
146
|
+
Alchemy.openTrashWindow(<%= @page.id %>, '<%= t("Trash") %>');
|
147
147
|
}
|
148
148
|
}
|
149
149
|
]
|
@@ -181,4 +181,4 @@
|
|
181
181
|
});
|
182
182
|
|
183
183
|
</script>
|
184
|
-
|
184
|
+
<% end %>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<div class="autocomplete_tag_list">
|
2
|
+
<%= f.label :tag_list, render_icon(:tag_label), :for => "autocomplete_tag_list_#{object.id}", :title => t(:tag_list) %>
|
3
|
+
<%= f.autocomplete_field(
|
4
|
+
:tag_list,
|
5
|
+
alchemy.autocomplete_admin_tags_path,
|
6
|
+
:data => {:delimiter => ', '},
|
7
|
+
:id => "autocomplete_tag_list_#{object.id}"
|
8
|
+
) %>
|
9
|
+
</div>
|
@@ -13,7 +13,7 @@
|
|
13
13
|
<tr>
|
14
14
|
<td class="label"><%= f.label :tag_list %>*</td>
|
15
15
|
<td class="input">
|
16
|
-
<%= f
|
16
|
+
<%= render 'alchemy/admin/partials/autocomplete_tag_list', :f => f, :object => @picture %>
|
17
17
|
</td>
|
18
18
|
</tr>
|
19
19
|
<tr>
|
@@ -22,9 +22,18 @@
|
|
22
22
|
</td>
|
23
23
|
</tr>
|
24
24
|
<tr>
|
25
|
-
<td class="label"><%= label_tag :pictures_tag_list, t('Tags') %></td>
|
25
|
+
<td class="label"><%= label_tag :pictures_tag_list, t('Tags') + '*' %></td>
|
26
26
|
<td class="input">
|
27
|
-
|
27
|
+
<div class="autocomplete_tag_list">
|
28
|
+
<%= label_tag :tag_list, render_icon(:tag_label), :for => "autocomplete_tag_list", :title => t(:tag_list) %>
|
29
|
+
<%= autocomplete_field_tag(
|
30
|
+
:pictures_tag_list,
|
31
|
+
@pictures.collect(&:tag_list).flatten.uniq.join(', '),
|
32
|
+
alchemy.autocomplete_admin_tags_path,
|
33
|
+
:data => {:delimiter => ', '},
|
34
|
+
:id => "autocomplete_tag_list"
|
35
|
+
) %>
|
36
|
+
</div>
|
28
37
|
</td>
|
29
38
|
</tr>
|
30
39
|
<tr>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<li class="<%= cycle('even', 'odd') %>" name="<%= radio_tag.name.downcase %>">
|
2
|
+
<%= radio_button_tag name + "[merge_to]", radio_tag.id, false, :id => radio_tag.name + "_tag_list" %>
|
3
|
+
<label for="<%= radio_tag.name + "_tag_list" %>">
|
4
|
+
<%= radio_tag.name %>
|
5
|
+
</label>
|
6
|
+
</li>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<tr class="<%= cycle('even', 'odd') %>">
|
2
|
+
<td class="icon"><%= render_icon :tag %></td>
|
3
|
+
<td class="name"><%= tag.name %></td>
|
4
|
+
<td class="count">
|
5
|
+
<%= tag.taggings.collect(&:taggable).collect { |t| t.class.model_name.human }.uniq.join(', ') %>
|
6
|
+
</td>
|
7
|
+
<td class="count"><%= tag.taggings.count %></td>
|
8
|
+
<td class="tools">
|
9
|
+
<%= link_to_overlay_window(
|
10
|
+
"",
|
11
|
+
edit_admin_tag_path(tag),
|
12
|
+
{
|
13
|
+
:title => t(:edit_tag),
|
14
|
+
:size => '380x385'
|
15
|
+
},
|
16
|
+
{
|
17
|
+
:title => t(:edit_tag),
|
18
|
+
:class => 'icon tag_edit'
|
19
|
+
}
|
20
|
+
) %>
|
21
|
+
<%= link_to_confirmation_window(
|
22
|
+
'',
|
23
|
+
t(:do_you_really_want_to_delete_this_tag?),
|
24
|
+
admin_tag_path(tag),
|
25
|
+
:title => t(:delete_tag),
|
26
|
+
:class => "icon tag_delete"
|
27
|
+
) %>
|
28
|
+
</td>
|
29
|
+
</tr>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<h2 class="with_padding"><%= t(:you_can_rename_this_tag) %></h2>
|
2
|
+
<%= form_for @tag, :as => :tag, :url => {:controller => :tags, :action => "update", :id => @tag.id}, :html => {:method => :put}, :remote => true do |f| %>
|
3
|
+
<table border="0" cellspacing="4" cellpadding="4" style="width: 100%">
|
4
|
+
<tr>
|
5
|
+
<td class="label medium">
|
6
|
+
<%= f.label :name, "Name" %>
|
7
|
+
</td>
|
8
|
+
<td class="input">
|
9
|
+
<%= f.text_field :name, :class => "thin_border very_long" %>
|
10
|
+
</td>
|
11
|
+
</tr>
|
12
|
+
<tr>
|
13
|
+
<td colspan="2" class="submit">
|
14
|
+
<%= f.button t(:rename), :class => "button" %>
|
15
|
+
</td>
|
16
|
+
</tr>
|
17
|
+
</table>
|
18
|
+
<% end %>
|
19
|
+
<% if @tags.any? -%>
|
20
|
+
<h2 class="with_padding"><%= t(:or_replace_it_with_an_existing_tag) %>:</h2>
|
21
|
+
<%= form_for @tag, :as => :tag, :url => {:controller => :tags, :action => "update", :id => @tag.id, :replace => true}, :html => {:method => :put, :style => "clear: both"}, :remote => true do |f| %>
|
22
|
+
<table border="0" cellspacing="4" cellpadding="4" style="width: 100%">
|
23
|
+
<tr>
|
24
|
+
<td class="label medium">
|
25
|
+
<label>Tags</label>
|
26
|
+
</td>
|
27
|
+
<td class="input" id="tags_tag_list">
|
28
|
+
<%= js_filter_field :onkeyup => "Alchemy.ListFilter('#tag_list li')" %>
|
29
|
+
<ul id="tag_list" class="tags">
|
30
|
+
<%= render :partial => "radio_tag", :collection => @tags, :locals => {:name => "tag"} %>
|
31
|
+
</ul>
|
32
|
+
</td>
|
33
|
+
</tr>
|
34
|
+
<tr>
|
35
|
+
<td colspan="2" class="submit">
|
36
|
+
<%= f.button t(:replace), :class => "button", :id => "tag_replace_button" %>
|
37
|
+
</td>
|
38
|
+
</tr>
|
39
|
+
</table>
|
40
|
+
<% end %>
|
41
|
+
<% end %>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<% content_for :toolbar do %>
|
2
|
+
<div id="toolbar_buttons">
|
3
|
+
<div class="button_with_label">
|
4
|
+
<%= link_to_overlay_window(
|
5
|
+
content_tag('span', '', :class => 'icon tag_add'),
|
6
|
+
new_admin_tag_path,
|
7
|
+
{
|
8
|
+
:title => t('New Tag'),
|
9
|
+
:size => '310x210'
|
10
|
+
},
|
11
|
+
:title => t('New Tag'),
|
12
|
+
:class => 'icon_button'
|
13
|
+
) %><br />
|
14
|
+
<label><%= t('New Tag') %></label>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<%= render :partial => 'alchemy/admin/partials/search_form' %>
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<div id="archive_all">
|
21
|
+
<% if @tags.any? %>
|
22
|
+
|
23
|
+
<table class="list" id="tag_list">
|
24
|
+
<tr class="legend">
|
25
|
+
<th class="icon"></th>
|
26
|
+
<th class="name"><%= ActsAsTaggableOn::Tag.human_attribute_name(:name) %></th>
|
27
|
+
<th class="count"><%= ActsAsTaggableOn::Tag.human_attribute_name(:taggings_types) %></th>
|
28
|
+
<th class="count"><%= ActsAsTaggableOn::Tag.human_attribute_name(:taggings_count) %></th>
|
29
|
+
<th class="tools"></th>
|
30
|
+
</tr>
|
31
|
+
<%= render :partial => 'tag', :collection => @tags %>
|
32
|
+
</table>
|
33
|
+
|
34
|
+
<%= render 'alchemy/admin/partials/pagination_links', :items => @tags %>
|
35
|
+
|
36
|
+
<% else %>
|
37
|
+
|
38
|
+
<%= render_message do %>
|
39
|
+
<h2><%= t('No Tags found') %></h2>
|
40
|
+
<% if params[:query].blank? %>
|
41
|
+
<p><%= t(:tags_get_created_if_used_the_first_time) %></p>
|
42
|
+
<% end %>
|
43
|
+
<% end %>
|
44
|
+
|
45
|
+
<% end %>
|
46
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%= form_for [:admin, @tag], :as => :tag, :url => admin_tags_path, :html => {:id => 'new_tag'}, :remote => true do |form| %>
|
2
|
+
<div class="info">
|
3
|
+
<%= render_icon('info') %>
|
4
|
+
<%= t(:tags_get_created_if_used_the_first_time) %>
|
5
|
+
</div>
|
6
|
+
<div id="errors" style="display: none"></div>
|
7
|
+
<table>
|
8
|
+
<tr>
|
9
|
+
<td class="label"><%= form.label :name %></td>
|
10
|
+
<td class="input"><%= form.text_field :name, :class => 'input_field' %></td>
|
11
|
+
</tr>
|
12
|
+
<tr>
|
13
|
+
<td colspan="2" class="submit"><%= form.button t('save'), :name => nil, :class => 'button' %></td>
|
14
|
+
</tr>
|
15
|
+
</table>
|
16
|
+
<% end %>
|
@@ -1,47 +1,55 @@
|
|
1
1
|
<table>
|
2
2
|
<tr>
|
3
3
|
<td class="label"><%= f.label 'gender' %></td>
|
4
|
-
<td class="select"><%= f.select 'gender', options_for_select(@user_genders, @user.gender), {:prompt => t('Please choose')}, :class => 'alchemy_selectbox', :autofocus => true -%></td>
|
4
|
+
<td class="select"><%= f.select 'gender', options_for_select(@user_genders, @user.gender), {:prompt => t('Please choose')}, :class => 'alchemy_selectbox long', :autofocus => true -%></td>
|
5
5
|
</tr>
|
6
6
|
<tr>
|
7
7
|
<td class="label"><%= f.label 'firstname' %></td>
|
8
|
-
<td class="input"><%= f.text_field 'firstname', :class => 'thin_border' %></td>
|
8
|
+
<td class="input"><%= f.text_field 'firstname', :class => 'thin_border long' %></td>
|
9
9
|
</tr>
|
10
10
|
<tr>
|
11
11
|
<td class="label"><%= f.label 'lastname' %></td>
|
12
|
-
<td class="input"><%= f.text_field 'lastname', :class => 'thin_border' %></td>
|
12
|
+
<td class="input"><%= f.text_field 'lastname', :class => 'thin_border long' %></td>
|
13
13
|
</tr>
|
14
14
|
<tr>
|
15
15
|
<td class="label mandatory"><%= f.label 'login' %></td>
|
16
|
-
<td class="input"><%= f.text_field 'login', :class => 'thin_border', :required => true %></td>
|
16
|
+
<td class="input"><%= f.text_field 'login', :class => 'thin_border long', :required => true, :autofocus => true %></td>
|
17
17
|
</tr>
|
18
18
|
<tr>
|
19
19
|
<td class="label mandatory"><%= f.label 'email' %></td>
|
20
|
-
<td class="input"><%= f.email_field 'email', :class => 'thin_border', :required => true %></td>
|
20
|
+
<td class="input"><%= f.email_field 'email', :class => 'thin_border long', :required => true %></td>
|
21
21
|
</tr>
|
22
22
|
<tr>
|
23
23
|
<td class="label"><%= f.label 'language' %></td>
|
24
|
-
<td class="select"><%= f.select 'language', translations_for_select, {}, {:class => 'alchemy_selectbox'} %></td>
|
24
|
+
<td class="select"><%= f.select 'language', translations_for_select, {}, {:class => 'alchemy_selectbox long'} %></td>
|
25
25
|
</tr>
|
26
26
|
<tr>
|
27
27
|
<td class="label mandatory"><%= f.label 'password' %></td>
|
28
|
-
<td class="input mandatory"><%= f.password_field 'password', :class => 'thin_border', :autocomplete => "off", :required => action_name == 'signup' %></td>
|
28
|
+
<td class="input mandatory"><%= f.password_field 'password', :class => 'thin_border long', :autocomplete => "off", :required => action_name == 'signup' %></td>
|
29
29
|
</tr>
|
30
30
|
<tr>
|
31
31
|
<td class="label mandatory"><%= f.label 'password_confirmation' %></td>
|
32
|
-
<td class="input"><%= f.password_field 'password_confirmation', :class => 'thin_border', :autocomplete => "off", :required => action_name == 'signup' %></td>
|
32
|
+
<td class="input"><%= f.password_field 'password_confirmation', :class => 'thin_border long', :autocomplete => "off", :required => action_name == 'signup' %></td>
|
33
33
|
</tr>
|
34
34
|
<% if action_name == 'signup' %>
|
35
35
|
<%= f.hidden_field :role %>
|
36
36
|
<% elsif permitted_to? :update_role %>
|
37
37
|
<tr>
|
38
38
|
<td class="label"><%= f.label 'role' %></td>
|
39
|
-
<td class="select"><%= f.select :role, options_for_select(@user_roles, @user.role), {}, {:class => 'alchemy_selectbox'} %></td>
|
39
|
+
<td class="select"><%= f.select :role, options_for_select(@user_roles, @user.role), {}, {:class => 'alchemy_selectbox long'} %></td>
|
40
|
+
</tr>
|
41
|
+
<% end %>
|
42
|
+
<% unless action_name == 'signup' %>
|
43
|
+
<tr>
|
44
|
+
<td class="label"><%= f.label :tag_list %></td>
|
45
|
+
<td class="input">
|
46
|
+
<%= render 'alchemy/admin/partials/autocomplete_tag_list', :f => f, :object => @user %>
|
47
|
+
</td>
|
40
48
|
</tr>
|
41
49
|
<% end %>
|
42
50
|
<tr>
|
43
51
|
<td> </td>
|
44
|
-
<td class="checkbox">
|
52
|
+
<td class="checkbox long">
|
45
53
|
<%= check_box_tag('send_credentials', true, @user.new_record?) %>
|
46
54
|
<%= label_tag('send_credentials', t('Send email with credentials')) %>
|
47
55
|
</td>
|