alchemy_cms 6.0.0.b1 → 6.0.0.b2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -0
- data/alchemy_cms.gemspec +1 -1
- data/app/assets/stylesheets/alchemy/archive.scss +14 -0
- data/app/controllers/alchemy/admin/attachments_controller.rb +3 -3
- data/app/controllers/alchemy/admin/pages_controller.rb +1 -9
- data/app/controllers/alchemy/admin/pictures_controller.rb +21 -8
- data/app/controllers/alchemy/admin/resources_controller.rb +84 -10
- data/app/controllers/alchemy/api/elements_controller.rb +12 -8
- data/app/controllers/alchemy/api/pages_controller.rb +4 -2
- data/app/models/alchemy/attachment.rb +24 -7
- data/app/models/alchemy/element/presenters.rb +18 -1
- data/app/models/alchemy/ingredient.rb +5 -0
- data/app/models/alchemy/page.rb +10 -1
- data/app/models/alchemy/page/page_scopes.rb +4 -0
- data/app/models/alchemy/picture.rb +14 -38
- data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +1 -1
- data/app/views/alchemy/admin/attachments/index.html.erb +2 -3
- data/app/views/alchemy/admin/pages/_toolbar.html.erb +1 -1
- data/app/views/alchemy/admin/pages/index.html.erb +2 -9
- data/app/views/alchemy/admin/partials/_search_form.html.erb +9 -0
- data/app/views/alchemy/admin/pictures/_archive.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +4 -2
- data/app/views/alchemy/admin/pictures/index.html.erb +8 -3
- data/app/views/alchemy/admin/resources/_filter.html.erb +12 -0
- data/app/views/alchemy/admin/resources/_filter_bar.html.erb +14 -17
- data/app/views/alchemy/admin/resources/_form.html.erb +2 -0
- data/app/views/alchemy/admin/resources/_table_header.html.erb +15 -0
- data/app/views/alchemy/admin/resources/index.html.erb +3 -11
- data/config/locales/alchemy.en.yml +85 -49
- data/lib/alchemy/forms/builder.rb +21 -1
- data/lib/alchemy/resource_filter.rb +40 -0
- data/lib/alchemy/resources_helper.rb +1 -16
- data/lib/alchemy/test_support/shared_ingredient_examples.rb +21 -3
- data/lib/alchemy/upgrader/tasks/ingredients_migrator.rb +14 -6
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +1 -0
- data/lib/generators/alchemy/menus/templates/node.html.erb +1 -1
- data/lib/generators/alchemy/menus/templates/node.html.haml +1 -1
- data/lib/generators/alchemy/menus/templates/node.html.slim +1 -1
- data/lib/generators/alchemy/menus/templates/wrapper.html.erb +1 -1
- data/lib/generators/alchemy/menus/templates/wrapper.html.haml +1 -1
- data/lib/generators/alchemy/menus/templates/wrapper.html.slim +1 -1
- data/package.json +1 -1
- metadata +10 -9
- data/app/views/alchemy/admin/attachments/_filter_bar.html.erb +0 -29
- data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +0 -30
data/app/models/alchemy/page.rb
CHANGED
|
@@ -182,7 +182,16 @@ module Alchemy
|
|
|
182
182
|
end
|
|
183
183
|
|
|
184
184
|
def alchemy_resource_filters
|
|
185
|
-
|
|
185
|
+
[
|
|
186
|
+
{
|
|
187
|
+
name: :by_page_layout,
|
|
188
|
+
values: PageLayout.all.map { |p| [Alchemy.t(p["name"], scope: "page_layout_names"), p["name"]] },
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: :status,
|
|
192
|
+
values: %w[published not_public restricted],
|
|
193
|
+
},
|
|
194
|
+
]
|
|
186
195
|
end
|
|
187
196
|
|
|
188
197
|
def searchable_alchemy_resource_attributes
|
|
@@ -8,6 +8,10 @@ module Alchemy
|
|
|
8
8
|
extend ActiveSupport::Concern
|
|
9
9
|
|
|
10
10
|
included do
|
|
11
|
+
# All pages of given page layout
|
|
12
|
+
#
|
|
13
|
+
scope :by_page_layout, ->(page_layout) { where(page_layout: page_layout) }
|
|
14
|
+
|
|
11
15
|
# All language root pages
|
|
12
16
|
#
|
|
13
17
|
scope :language_roots, -> { where(language_root: true) }
|
|
@@ -116,6 +116,7 @@ module Alchemy
|
|
|
116
116
|
scope :recent, -> { where("#{table_name}.created_at > ?", Time.current - 24.hours).order(:created_at) }
|
|
117
117
|
scope :deletable, -> { where("#{table_name}.id NOT IN (SELECT picture_id FROM #{EssencePicture.table_name})") }
|
|
118
118
|
scope :without_tag, -> { left_outer_joins(:taggings).where(gutentag_taggings: { id: nil }) }
|
|
119
|
+
scope :by_file_format, ->(format) { where(image_file_format: format) }
|
|
119
120
|
|
|
120
121
|
# Class methods
|
|
121
122
|
|
|
@@ -134,6 +135,19 @@ module Alchemy
|
|
|
134
135
|
@_url_class = klass
|
|
135
136
|
end
|
|
136
137
|
|
|
138
|
+
def alchemy_resource_filters
|
|
139
|
+
[
|
|
140
|
+
{
|
|
141
|
+
name: :by_file_format,
|
|
142
|
+
values: distinct.pluck(:image_file_format),
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
name: :misc,
|
|
146
|
+
values: %w(recent last_upload without_tag),
|
|
147
|
+
},
|
|
148
|
+
]
|
|
149
|
+
end
|
|
150
|
+
|
|
137
151
|
def searchable_alchemy_resource_attributes
|
|
138
152
|
%w(name image_file_name)
|
|
139
153
|
end
|
|
@@ -144,34 +158,6 @@ module Alchemy
|
|
|
144
158
|
|
|
145
159
|
Picture.where(upload_hash: last_picture.upload_hash)
|
|
146
160
|
end
|
|
147
|
-
|
|
148
|
-
def search_by(params, query, per_page = nil)
|
|
149
|
-
pictures = query.result
|
|
150
|
-
|
|
151
|
-
if params[:tagged_with].present?
|
|
152
|
-
pictures = pictures.tagged_with(params[:tagged_with])
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
if params[:filter].present?
|
|
156
|
-
pictures = pictures.filtered_by(params[:filter])
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
if per_page
|
|
160
|
-
pictures = pictures.page(params[:page] || 1).per(per_page)
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
pictures.order(:name)
|
|
164
|
-
end
|
|
165
|
-
|
|
166
|
-
def filtered_by(filter = "")
|
|
167
|
-
case filter
|
|
168
|
-
when "recent" then recent
|
|
169
|
-
when "last_upload" then last_upload
|
|
170
|
-
when "without_tag" then without_tag
|
|
171
|
-
else
|
|
172
|
-
all
|
|
173
|
-
end
|
|
174
|
-
end
|
|
175
161
|
end
|
|
176
162
|
|
|
177
163
|
# Instance methods
|
|
@@ -203,16 +189,6 @@ module Alchemy
|
|
|
203
189
|
nil
|
|
204
190
|
end
|
|
205
191
|
|
|
206
|
-
def previous(params = {})
|
|
207
|
-
query = Picture.ransack(params[:q])
|
|
208
|
-
Picture.search_by(params, query).where("name < ?", name).last
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
def next(params = {})
|
|
212
|
-
query = Picture.ransack(params[:q])
|
|
213
|
-
Picture.search_by(params, query).where("name > ?", name).first
|
|
214
|
-
end
|
|
215
|
-
|
|
216
192
|
# Updates name and tag_list attributes.
|
|
217
193
|
#
|
|
218
194
|
# Used by +Admin::PicturesController#update_multiple+
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
<div id="assign_file_list" class="with_padding<%= search_filter_params[:tagged_with].present? ? ' filtered' : '' %>">
|
|
16
16
|
<div id="library_sidebar">
|
|
17
|
-
<%= render 'filter_bar' %>
|
|
17
|
+
<%= render 'filter_bar' if resource_has_filters %>
|
|
18
18
|
|
|
19
19
|
<% if Alchemy::Attachment.tag_counts.any? %>
|
|
20
20
|
<div class="tag-list">
|
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
file_attribute: 'file' %>
|
|
8
8
|
<% end %>
|
|
9
9
|
</div>
|
|
10
|
-
<%= render 'alchemy/admin/partials/search_form'
|
|
11
|
-
additional_params: [:file_type, :tagged_with] %>
|
|
10
|
+
<%= render 'alchemy/admin/partials/search_form' %>
|
|
12
11
|
<% end %>
|
|
13
12
|
|
|
14
13
|
<div id="archive_all" class="with_tag_filter resources-table-wrapper">
|
|
@@ -16,7 +15,7 @@
|
|
|
16
15
|
<%= render 'files_list' %>
|
|
17
16
|
|
|
18
17
|
<div id="library_sidebar">
|
|
19
|
-
<%= render 'filter_bar' %>
|
|
18
|
+
<%= render 'filter_bar' if resource_has_filters %>
|
|
20
19
|
|
|
21
20
|
<% if Alchemy::Attachment.tag_counts.any? %>
|
|
22
21
|
<div class="tag-list with_filter_bar<%= ' filtered' if search_filter_params[:tagged_with].present? %>">
|
|
@@ -74,4 +74,4 @@
|
|
|
74
74
|
<% search_filter_params[:view] = "list" %>
|
|
75
75
|
<%= render "alchemy/admin/partials/search_form",
|
|
76
76
|
url: alchemy.admin_pages_path(search_filter_params.except(:q, :page)),
|
|
77
|
-
additional_params: [:view
|
|
77
|
+
additional_params: [:view] %>
|
|
@@ -24,15 +24,8 @@
|
|
|
24
24
|
<%= paginate @pages, scope: alchemy, theme: "alchemy" %>
|
|
25
25
|
|
|
26
26
|
<div id="library_sidebar">
|
|
27
|
-
<%= render "
|
|
28
|
-
|
|
29
|
-
<%= render "filter_bar",
|
|
30
|
-
label: Alchemy::Page.human_attribute_name(:status),
|
|
31
|
-
url: alchemy.admin_pages_path(search_filter_params.except(:filter, :page).merge(view: "list")) %>
|
|
32
|
-
|
|
33
|
-
<% if resource_has_tags %>
|
|
34
|
-
<%= render "tag_list" %>
|
|
35
|
-
<% end %>
|
|
27
|
+
<%= render "filter_bar" if resource_has_filters %>
|
|
28
|
+
<%= render "tag_list" if resource_has_tags %>
|
|
36
29
|
</div>
|
|
37
30
|
<% else %>
|
|
38
31
|
<% if @page_root %>
|
|
@@ -16,6 +16,15 @@
|
|
|
16
16
|
id: 'search_field_clear',
|
|
17
17
|
title: Alchemy.t(:click_to_show_all),
|
|
18
18
|
style: search_filter_params.fetch(:q, {}).fetch(resource_handler.search_field_name, '').present? ? 'display: block' : 'display: none' %>
|
|
19
|
+
|
|
20
|
+
<% search_filter_params.fetch(:filter, []).each do |filter_param| %>
|
|
21
|
+
<%= hidden_field_tag "filter[#{filter_param[0]}]", filter_param[1], id: nil %>
|
|
22
|
+
<% end %>
|
|
23
|
+
|
|
24
|
+
<% if search_filter_params.fetch(:tagged_with, nil) %>
|
|
25
|
+
<%= hidden_field_tag :tagged_with, search_filter_params.fetch(:tagged_with), id: nil %>
|
|
26
|
+
<% end %>
|
|
27
|
+
|
|
19
28
|
<% local_assigns.fetch(:additional_params, []).each do |additional_param| %>
|
|
20
29
|
<%= hidden_field_tag additional_param, search_filter_params[additional_param], id: nil %>
|
|
21
30
|
<% end %>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
</div>
|
|
4
4
|
<div id="assign_image_list" class="with_padding<%= search_filter_params[:tagged_with].present? ? ' filtered' : '' %>">
|
|
5
5
|
<div id="library_sidebar">
|
|
6
|
-
<%= render 'filter_bar' %>
|
|
6
|
+
<%= render 'filter_bar' if resource_has_filters %>
|
|
7
7
|
<div class="tag-list">
|
|
8
8
|
<%= render 'tag_list' %>
|
|
9
9
|
</div>
|
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
in_dialog: true,
|
|
8
8
|
redirect_url: alchemy.admin_pictures_path(
|
|
9
9
|
size: search_filter_params[:size],
|
|
10
|
-
filter: 'last_upload',
|
|
11
|
-
form_field_id: @form_field_id
|
|
10
|
+
filter: { misc: 'last_upload' },
|
|
11
|
+
form_field_id: @form_field_id,
|
|
12
|
+
content_id: @content.try(:id),
|
|
13
|
+
element_id: @element.try(:id)
|
|
12
14
|
) %>
|
|
13
15
|
<div class="toolbar_spacer"></div>
|
|
14
16
|
<% end %>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
file_attribute: 'image_file',
|
|
7
7
|
redirect_url: alchemy.admin_pictures_path(
|
|
8
8
|
size: @size,
|
|
9
|
-
filter: 'last_upload'
|
|
9
|
+
filter: { misc: 'last_upload' }
|
|
10
10
|
) %>
|
|
11
11
|
<div class="toolbar_spacer"></div>
|
|
12
12
|
<% end %>
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
</div>
|
|
68
68
|
|
|
69
69
|
<%= render 'alchemy/admin/partials/search_form',
|
|
70
|
-
additional_params: [:
|
|
70
|
+
additional_params: [:size] %>
|
|
71
71
|
<% end %>
|
|
72
72
|
|
|
73
73
|
<div id="picture_archive" class="resources-table-wrapper with_tag_filter">
|
|
@@ -75,7 +75,12 @@
|
|
|
75
75
|
<h2>
|
|
76
76
|
<%= @pictures.total_count %>
|
|
77
77
|
<%= Alchemy::Picture.model_name.human(count: @pictures.total_count) %>
|
|
78
|
-
|
|
78
|
+
<% if search_filter_params[:filter].present? %>
|
|
79
|
+
<%= Alchemy.t("filtered_by") %>
|
|
80
|
+
<% search_filter_params[:filter].each do |k, v| %>
|
|
81
|
+
<span class="applied-filter"><%= Alchemy.t("filters.picture.#{k}.values.#{v}") %></span>
|
|
82
|
+
<% end %>
|
|
83
|
+
<% end %>
|
|
79
84
|
</h2>
|
|
80
85
|
</div>
|
|
81
86
|
<%= render 'archive' %>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<label>
|
|
2
|
+
<h3><%= Alchemy.t("name", scope: ["filters", resource_name, filter.name]) || Alchemy.t('Filter') %></h3>
|
|
3
|
+
<%= select_tag(
|
|
4
|
+
filter.name,
|
|
5
|
+
options_for_select(
|
|
6
|
+
filter.options_for_select, params[:filter].try(:[], filter.name)
|
|
7
|
+
),
|
|
8
|
+
include_blank: Alchemy.t(:all, scope: ['resources', resource_name, 'filters']),
|
|
9
|
+
data: { remote: !!request.xhr? },
|
|
10
|
+
class: 'alchemy_selectbox'
|
|
11
|
+
) %>
|
|
12
|
+
</label>
|
|
@@ -1,28 +1,25 @@
|
|
|
1
1
|
<div id="filter_bar">
|
|
2
|
-
|
|
3
|
-
<h3><%= local_assigns[:label] || Alchemy.t('Filter') %></h3>
|
|
4
|
-
<%= select_tag(
|
|
5
|
-
'resource_filter',
|
|
6
|
-
options_for_select(
|
|
7
|
-
resource_filter_select, search_filter_params[:filter]
|
|
8
|
-
),
|
|
9
|
-
include_blank: Alchemy.t(:all, scope: ['resources', resource_name, 'filters']),
|
|
10
|
-
data: { remote: !!request.xhr? },
|
|
11
|
-
class: 'alchemy_selectbox'
|
|
12
|
-
) %>
|
|
13
|
-
</label>
|
|
2
|
+
<%= render partial: "filter", collection: resource_filters_for_select %>
|
|
14
3
|
</div>
|
|
15
4
|
|
|
16
5
|
<script type="text/javascript">
|
|
17
6
|
$(function() {
|
|
18
|
-
$('#
|
|
7
|
+
$('select', '#filter_bar').on('change', function(e) {
|
|
19
8
|
var $this = $(this);
|
|
20
|
-
var
|
|
9
|
+
var filter_param = 'filter['+$this.attr('name')+']';
|
|
10
|
+
var path = '<%= resources_path(resource_handler.namespaced_resources_name) %>';
|
|
11
|
+
var params = new URLSearchParams('<%= raw search_filter_params.to_query %>');
|
|
12
|
+
|
|
13
|
+
if ($this.val() === "") {
|
|
14
|
+
params.delete(filter_param);
|
|
15
|
+
} else {
|
|
16
|
+
params.set(filter_param, $this.val());
|
|
17
|
+
}
|
|
18
|
+
|
|
21
19
|
if ($this.data('remote') === true) {
|
|
22
|
-
$.get(
|
|
20
|
+
$.get(path, params.toString(), null, 'script');
|
|
23
21
|
} else {
|
|
24
|
-
|
|
25
|
-
Turbolinks.visit(url + delimiter + 'filter=' + encodeURIComponent($this.val()));
|
|
22
|
+
Turbolinks.visit(path + '?' + params.toString());
|
|
26
23
|
}
|
|
27
24
|
return false;
|
|
28
25
|
});
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
label_method: relation[:attr_method],
|
|
7
7
|
include_blank: Alchemy.t(:blank, scope: 'resources.relation_select'),
|
|
8
8
|
input_html: {class: 'alchemy_selectbox'} %>
|
|
9
|
+
<% elsif attribute[:type].in? %i[date time datetime] %>
|
|
10
|
+
<%= f.datepicker attribute[:name], resource_attribute_field_options(attribute) %>
|
|
9
11
|
<% else %>
|
|
10
12
|
<%= f.input attribute[:name], resource_attribute_field_options(attribute) %>
|
|
11
13
|
<% end %>
|
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
<div class="resources-header">
|
|
2
|
+
<% if search_filter_params[:filter].present? %>
|
|
3
|
+
<b><%= Alchemy.t("filtered_by") %></b>
|
|
4
|
+
<% search_filter_params[:filter].each do |k, v| %>
|
|
5
|
+
<%- tmp_params = search_filter_params.dup -%>
|
|
6
|
+
<%- tmp_params[:filter] = tmp_params[:filter].except(k) -%>
|
|
7
|
+
<%- dismiss_filter_url = resource_url_proxy.url_for(
|
|
8
|
+
{ action: 'index' }.merge(tmp_params.except(:page))
|
|
9
|
+
) -%>
|
|
10
|
+
<div class="applied-filter">
|
|
11
|
+
<%= Alchemy.t("filters.#{resource_handler.resource_name}.#{k}.values.#{v}", default: v) %>
|
|
12
|
+
<%= link_to render_icon(:times, size: 'xs'), dismiss_filter_url, class: 'dismiss-filter' %>
|
|
13
|
+
</div>
|
|
14
|
+
<% end %>
|
|
15
|
+
<% end %>
|
|
16
|
+
|
|
2
17
|
<h2>
|
|
3
18
|
<%= resources_instance_variable.total_count %>
|
|
4
19
|
<%= resource_model.model_name.human(count: resources_instance_variable.total_count) %>
|
|
@@ -21,10 +21,7 @@
|
|
|
21
21
|
dialog: false,
|
|
22
22
|
if_permitted_to: [:index, resource_model]
|
|
23
23
|
) %>
|
|
24
|
-
<%= render 'alchemy/admin/partials/search_form'
|
|
25
|
-
resource_has_filters ? :filter : nil,
|
|
26
|
-
resource_has_tags ? :tagged_with : nil
|
|
27
|
-
].compact %>
|
|
24
|
+
<%= render 'alchemy/admin/partials/search_form' %>
|
|
28
25
|
<% end %>
|
|
29
26
|
|
|
30
27
|
<div id="archive_all" class="resources-table-wrapper<%= ' with_tag_filter' if resource_has_tags || resource_has_filters %>">
|
|
@@ -33,13 +30,8 @@
|
|
|
33
30
|
|
|
34
31
|
<% if resource_has_tags || resource_has_filters %>
|
|
35
32
|
<div id="library_sidebar">
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
<% end %>
|
|
39
|
-
|
|
40
|
-
<% if resource_has_tags %>
|
|
41
|
-
<%= render 'tag_list' %>
|
|
42
|
-
<% end %>
|
|
33
|
+
<%= render 'filter_bar' if resource_has_filters %>
|
|
34
|
+
<%= render 'tag_list' if resource_has_tags %>
|
|
43
35
|
</div>
|
|
44
36
|
<% end %>
|
|
45
37
|
</div>
|
|
@@ -57,6 +57,90 @@ en:
|
|
|
57
57
|
main_menu: Main Menu
|
|
58
58
|
footer_menu: Footer Menu
|
|
59
59
|
|
|
60
|
+
# == Mime Types translations
|
|
61
|
+
# These are human readable mime types used for the document-type row in archive files.
|
|
62
|
+
#
|
|
63
|
+
mime_types: &mime_types
|
|
64
|
+
application/msexcel: Excel Spreadsheet
|
|
65
|
+
application/mspowerpoint: PowerPoint Presentation
|
|
66
|
+
application/msword: Word Document
|
|
67
|
+
application/pdf: PDF Document
|
|
68
|
+
application/rtf: RTF Document
|
|
69
|
+
application/vcard: vCard
|
|
70
|
+
application/vnd:
|
|
71
|
+
ms-excel: Excel Spreadsheet
|
|
72
|
+
ms-powerpoint: PowerPoint Presentation
|
|
73
|
+
ms-word: Word Document
|
|
74
|
+
openxmlformats-officedocument:
|
|
75
|
+
presentationml:
|
|
76
|
+
presentation: PowerPoint 2007 Presentation
|
|
77
|
+
spreadsheetml:
|
|
78
|
+
sheet: Excel 2007 Spreadsheet
|
|
79
|
+
wordprocessingml:
|
|
80
|
+
document: Word 2007 Document
|
|
81
|
+
application/x-flash-video: Flash Video
|
|
82
|
+
application/x-rar: RAR Archive
|
|
83
|
+
application/x-shockwave-flash: Flash Movie
|
|
84
|
+
application/zip: ZIP Archive
|
|
85
|
+
audio/mp4: MPEG-4 Audio
|
|
86
|
+
audio/mpeg: MP3 Audio
|
|
87
|
+
audio/wav: WAV Audio
|
|
88
|
+
audio/x-wav: WAV Audio
|
|
89
|
+
image/gif: GIF Image
|
|
90
|
+
image/jpeg: JPG Image
|
|
91
|
+
image/png: PNG Image
|
|
92
|
+
image/tiff: TIFF Image
|
|
93
|
+
image/x-psd: Photoshop File
|
|
94
|
+
image/svg+xml: SVG Image
|
|
95
|
+
text/plain: Plain Text Document
|
|
96
|
+
text/x-vcard: vCard
|
|
97
|
+
video/mp4: MPEG-4 Video
|
|
98
|
+
video/mpeg: MPEG Video
|
|
99
|
+
video/quicktime: Quicktime Video
|
|
100
|
+
video/x-flv: Flash Video
|
|
101
|
+
video/x-ms-wmv: Windows Media Video
|
|
102
|
+
video/x-msvideo: AVI Video
|
|
103
|
+
|
|
104
|
+
# === Translations for filter names and values
|
|
105
|
+
# Used in the right filter column in case the model has `alchemy_resource_filters` defined.
|
|
106
|
+
#
|
|
107
|
+
filters:
|
|
108
|
+
page:
|
|
109
|
+
by_page_layout:
|
|
110
|
+
name: Page Type
|
|
111
|
+
status:
|
|
112
|
+
name: Status
|
|
113
|
+
values:
|
|
114
|
+
not_public: Unpublished
|
|
115
|
+
published: Published
|
|
116
|
+
restricted: Restricted
|
|
117
|
+
picture:
|
|
118
|
+
by_file_format:
|
|
119
|
+
name: File Type
|
|
120
|
+
values:
|
|
121
|
+
gif: GIF Image
|
|
122
|
+
jpeg: JPG Image
|
|
123
|
+
png: PNG Image
|
|
124
|
+
tiff: TIFF Image
|
|
125
|
+
misc:
|
|
126
|
+
name: Miscellaneous
|
|
127
|
+
values:
|
|
128
|
+
last_upload: Last upload only
|
|
129
|
+
recent: Recently uploaded only
|
|
130
|
+
without_tag: Without tag
|
|
131
|
+
attachment:
|
|
132
|
+
by_file_type:
|
|
133
|
+
name: File Type
|
|
134
|
+
values:
|
|
135
|
+
<<: *mime_types
|
|
136
|
+
misc:
|
|
137
|
+
name: Miscellaneous
|
|
138
|
+
values:
|
|
139
|
+
last_upload: Last upload only
|
|
140
|
+
recent: Recently uploaded only
|
|
141
|
+
without_tag: Without tag
|
|
142
|
+
deletable: Not linked by file content
|
|
143
|
+
|
|
60
144
|
# === Translations for content validations
|
|
61
145
|
# Used when a user did not enter (correct) values to the content field.
|
|
62
146
|
#
|
|
@@ -132,49 +216,6 @@ en:
|
|
|
132
216
|
editor: "Editor"
|
|
133
217
|
admin: "Administrator"
|
|
134
218
|
|
|
135
|
-
# == Mime Types translations
|
|
136
|
-
# These are human readable mime types used for the document-type row in archive files.
|
|
137
|
-
mime_types:
|
|
138
|
-
application/msexcel: Excel Spreadsheet
|
|
139
|
-
application/mspowerpoint: PowerPoint Presentation
|
|
140
|
-
application/msword: Word Document
|
|
141
|
-
application/pdf: PDF Document
|
|
142
|
-
application/rtf: RTF Document
|
|
143
|
-
application/vcard: vCard
|
|
144
|
-
application/vnd:
|
|
145
|
-
ms-excel: Excel Spreadsheet
|
|
146
|
-
ms-powerpoint: PowerPoint Presentation
|
|
147
|
-
ms-word: Word Document
|
|
148
|
-
openxmlformats-officedocument:
|
|
149
|
-
presentationml:
|
|
150
|
-
presentation: PowerPoint 2007 Presentation
|
|
151
|
-
spreadsheetml:
|
|
152
|
-
sheet: Excel 2007 Spreadsheet
|
|
153
|
-
wordprocessingml:
|
|
154
|
-
document: Word 2007 Document
|
|
155
|
-
application/x-flash-video: Flash Video
|
|
156
|
-
application/x-rar: RAR Archive
|
|
157
|
-
application/x-shockwave-flash: Flash Movie
|
|
158
|
-
application/zip: ZIP Archive
|
|
159
|
-
audio/mp4: MPEG-4 Audio
|
|
160
|
-
audio/mpeg: MP3 Audio
|
|
161
|
-
audio/wav: WAV Audio
|
|
162
|
-
audio/x-wav: WAV Audio
|
|
163
|
-
image/gif: GIF Image
|
|
164
|
-
image/jpeg: JPG Image
|
|
165
|
-
image/png: PNG Image
|
|
166
|
-
image/tiff: TIFF Image
|
|
167
|
-
image/x-psd: Photoshop File
|
|
168
|
-
image/svg+xml: SVG Image
|
|
169
|
-
text/plain: Plain Text Document
|
|
170
|
-
text/x-vcard: vCard
|
|
171
|
-
video/mp4: MPEG-4 Video
|
|
172
|
-
video/mpeg: MPEG Video
|
|
173
|
-
video/quicktime: Quicktime Video
|
|
174
|
-
video/x-flv: Flash Video
|
|
175
|
-
video/x-ms-wmv: Windows Media Video
|
|
176
|
-
video/x-msvideo: AVI Video
|
|
177
|
-
|
|
178
219
|
link_target_options:
|
|
179
220
|
default: Same Window
|
|
180
221
|
blank: New Window/Tab
|
|
@@ -403,6 +444,7 @@ en:
|
|
|
403
444
|
female: "Female"
|
|
404
445
|
file: "File"
|
|
405
446
|
file_rename_error: "Error renaming file."
|
|
447
|
+
filtered_by: "Filtered by"
|
|
406
448
|
from_at: "from %{by} at %{at}"
|
|
407
449
|
height: "Height"
|
|
408
450
|
help:
|
|
@@ -435,7 +477,6 @@ en:
|
|
|
435
477
|
javascript_disabled_text: "Alchemy needs Javascript to run smoothly. Please enable it in your browser settings."
|
|
436
478
|
language_code_placeholder: 'i.e. en'
|
|
437
479
|
language_pages_copied: "Language tree successfully copied."
|
|
438
|
-
last_upload_only: "Last upload only"
|
|
439
480
|
left: "left"
|
|
440
481
|
legacy_url_info_text: "A link is a redirect from an old URL to the current URL of this page. This redirect happens with a <a href='https://support.google.com/webmasters/answer/93633' target='_blank'>301 status code</a>."
|
|
441
482
|
link_image: "Link this image."
|
|
@@ -519,11 +560,6 @@ en:
|
|
|
519
560
|
comma_seperated: "Separate by comma"
|
|
520
561
|
password: "Password"
|
|
521
562
|
paste: "paste"
|
|
522
|
-
picture_library:
|
|
523
|
-
filter:
|
|
524
|
-
last_upload: "from last upload"
|
|
525
|
-
recent: "that where recently uploaded"
|
|
526
|
-
without_tag: "without tag"
|
|
527
563
|
pictures_in_page: "%{page} in %{pictures}"
|
|
528
564
|
place_link: "Link text"
|
|
529
565
|
player_version: "Flash Player version"
|