alchemy_cms 2.1.2 → 2.1.3
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/javascripts/alchemy/alchemy.base.js +3 -1
- data/app/assets/javascripts/alchemy/alchemy.datepicker.js +40 -0
- data/app/assets/javascripts/alchemy/alchemy.elements_window.js +1 -0
- data/app/assets/javascripts/alchemy/alchemy.js +1 -0
- data/app/assets/javascripts/alchemy/alchemy.windows.js +4 -0
- data/app/assets/stylesheets/alchemy/buttons.css.scss +2 -4
- data/app/assets/stylesheets/alchemy/jquery-ui.alchemy.css.scss +31 -20
- data/app/assets/stylesheets/alchemy/sitemap.css.scss +9 -0
- data/app/controllers/alchemy/admin/essence_pictures_controller.rb +3 -4
- data/app/controllers/alchemy/admin/pages_controller.rb +6 -1
- data/app/controllers/alchemy/admin/resources_controller.rb +2 -1
- data/app/helpers/alchemy/admin/base_helper.rb +18 -0
- data/app/helpers/alchemy/admin/contents_helper.rb +3 -3
- data/app/models/alchemy/page.rb +1 -1
- data/app/models/alchemy/picture.rb +1 -1
- data/app/views/alchemy/admin/contents/new.html.erb +3 -3
- data/app/views/alchemy/admin/essence_pictures/assign.js.erb +1 -1
- data/app/views/alchemy/admin/pages/_create_language_form.html.erb +48 -37
- data/app/views/alchemy/admin/pages/index.html.erb +10 -1
- data/app/views/alchemy/elements/_header_editor.html.erb +1 -1
- data/app/views/alchemy/elements/_intro_image_text_editor.html.erb +1 -1
- data/app/views/alchemy/essences/_essence_date_editor.html.erb +9 -8
- data/app/views/alchemy/essences/_essence_picture_editor.html.erb +1 -1
- data/app/views/layouts/alchemy/admin.html.erb +3 -1
- data/config/alchemy/page_layouts.yml +1 -1
- data/config/locales/alchemy.de.yml +8 -4
- data/config/locales/alchemy.en.yml +7 -3
- data/lib/alchemy/version.rb +1 -1
- metadata +33 -32
@@ -0,0 +1,40 @@
|
|
1
|
+
if (typeof(Alchemy) === 'undefined') {
|
2
|
+
var Alchemy = {};
|
3
|
+
}
|
4
|
+
|
5
|
+
(function($) {
|
6
|
+
|
7
|
+
$.extend(Alchemy, {
|
8
|
+
|
9
|
+
Datepicker: function (selector) {
|
10
|
+
var datepicker_options = {
|
11
|
+
dateFormat: 'yy-mm-dd',
|
12
|
+
changeMonth: true,
|
13
|
+
changeYear: true,
|
14
|
+
showWeek: true,
|
15
|
+
showButtonPanel: true,
|
16
|
+
showOtherMonths: true
|
17
|
+
};
|
18
|
+
if (typeof(selector) === 'undefined') {
|
19
|
+
var selector = 'input[type="date"], input.date'
|
20
|
+
}
|
21
|
+
if (Alchemy.locale === 'de') {
|
22
|
+
$.extend(datepicker_options, {
|
23
|
+
dateFormat: 'dd.mm.yy',
|
24
|
+
dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
|
25
|
+
dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
|
26
|
+
monthNames: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
|
27
|
+
monthNamesShort: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
|
28
|
+
closeText: 'Ok',
|
29
|
+
currentText: 'Heute',
|
30
|
+
weekHeader: 'KW',
|
31
|
+
nextText: 'nächster',
|
32
|
+
prevText: 'vorheriger'
|
33
|
+
});
|
34
|
+
}
|
35
|
+
$(selector).datepicker(datepicker_options);
|
36
|
+
}
|
37
|
+
|
38
|
+
});
|
39
|
+
|
40
|
+
})(jQuery);
|
@@ -37,6 +37,7 @@ if (typeof(Alchemy) === 'undefined') {
|
|
37
37
|
success: function(data, textStatus, XMLHttpRequest) {
|
38
38
|
$dialog.html(data);
|
39
39
|
Alchemy.ButtonObserver('#alchemyElementWindow .button');
|
40
|
+
Alchemy.Datepicker('#alchemyElementWindow input.date, #alchemyElementWindow input[type="date"]');
|
40
41
|
callback.call();
|
41
42
|
},
|
42
43
|
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
@@ -9,6 +9,7 @@
|
|
9
9
|
//= require alchemy/alchemy.routes
|
10
10
|
//= require alchemy/alchemy.base
|
11
11
|
//= require alchemy/alchemy.buttons
|
12
|
+
//= require alchemy/alchemy.datepicker
|
12
13
|
//= require alchemy/alchemy.dirty
|
13
14
|
//= require alchemy/alchemy.dragndrop
|
14
15
|
//= require alchemy/alchemy.element_editor_selector
|
@@ -163,10 +163,14 @@ if (typeof(Alchemy) === 'undefined') {
|
|
163
163
|
});
|
164
164
|
}
|
165
165
|
Alchemy.SelectBox('#alchemyOverlay select');
|
166
|
+
Alchemy.Datepicker('#alchemyOverlay input.date, #alchemyOverlay input[type="date"]');
|
166
167
|
Alchemy.ButtonObserver('#alchemyOverlay .button');
|
167
168
|
},
|
168
169
|
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
169
170
|
Alchemy.AjaxErrorHandler($dialog, XMLHttpRequest.status, textStatus, errorThrown);
|
171
|
+
},
|
172
|
+
complete: function(jqXHR, textStatus) {
|
173
|
+
Alchemy.enableButton('.button');
|
170
174
|
}
|
171
175
|
});
|
172
176
|
},
|
@@ -184,7 +184,7 @@
|
|
184
184
|
color: $text-color;;
|
185
185
|
text-decoration: none;
|
186
186
|
text-shadow: none;
|
187
|
-
background-color:
|
187
|
+
background-color: $button-hover-bg-color;
|
188
188
|
}
|
189
189
|
|
190
190
|
#alchemy .ui-state-active.stNav.stNext {
|
@@ -223,18 +223,18 @@
|
|
223
223
|
----------------------------------*/
|
224
224
|
|
225
225
|
#alchemy .ui-state-highlight, #alchemy .ui-widget-content .ui-state-highlight, #alchemy .ui-widget-header .ui-state-highlight {
|
226
|
-
border: 1px solid
|
227
|
-
background:
|
228
|
-
color:
|
226
|
+
border: 1px solid $dark-gray;
|
227
|
+
background: $light-blue;
|
228
|
+
color: $text-color;
|
229
229
|
}
|
230
230
|
|
231
231
|
#alchemy .ui-state-highlight a, #alchemy .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a {
|
232
|
-
color:
|
232
|
+
color: $text-color;
|
233
233
|
}
|
234
234
|
|
235
235
|
#alchemy .ui-state-error, #alchemy .ui-widget-content .ui-state-error, #alchemy .ui-widget-header .ui-state-error {
|
236
236
|
border: 1px solid #cd0a0a;
|
237
|
-
background: #cd0a0a
|
237
|
+
background: #cd0a0a;
|
238
238
|
color: #ffffff;
|
239
239
|
}
|
240
240
|
|
@@ -247,13 +247,13 @@
|
|
247
247
|
}
|
248
248
|
|
249
249
|
#alchemy .ui-priority-primary, #alchemy .ui-widget-content .ui-priority-primary, #alchemy .ui-widget-header .ui-priority-primary {
|
250
|
-
font-weight:
|
250
|
+
font-weight: normal;
|
251
|
+
background-position: 50% -73px;
|
251
252
|
}
|
252
253
|
|
253
254
|
#alchemy .ui-priority-secondary, #alchemy .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary {
|
254
|
-
opacity: .7;
|
255
|
-
filter: Alpha(Opacity=70);
|
256
255
|
font-weight: normal;
|
256
|
+
background-position: 50% -73px;
|
257
257
|
}
|
258
258
|
|
259
259
|
#alchemy .ui-state-disabled, #alchemy .ui-widget-content .ui-state-disabled, #alchemy .ui-widget-header .ui-state-disabled {
|
@@ -294,11 +294,11 @@
|
|
294
294
|
}
|
295
295
|
|
296
296
|
#alchemy .ui-state-highlight .ui-icon {
|
297
|
-
background-image: image-url('alchemy/ui-
|
297
|
+
background-image: image-url('alchemy/ui-icons_666666_256x240.png');
|
298
298
|
}
|
299
299
|
|
300
300
|
#alchemy .ui-state-error .ui-icon, #alchemy .ui-state-error-text .ui-icon {
|
301
|
-
background-image: image-url('alchemy/ui-
|
301
|
+
background-image: image-url('alchemy/ui-icons_666666_256x240.png');
|
302
302
|
}
|
303
303
|
|
304
304
|
/* positioning */
|
@@ -1758,40 +1758,43 @@ button.ui-button::-moz-focus-inner {
|
|
1758
1758
|
|
1759
1759
|
#alchemy .ui-datepicker {
|
1760
1760
|
width: 17em;
|
1761
|
-
padding:
|
1761
|
+
padding: $default-padding;
|
1762
1762
|
display: none;
|
1763
1763
|
}
|
1764
1764
|
|
1765
1765
|
#alchemy .ui-datepicker .ui-datepicker-header {
|
1766
1766
|
position: relative;
|
1767
|
-
padding:
|
1767
|
+
padding: $default-padding;
|
1768
|
+
margin: -$default-padding;
|
1768
1769
|
}
|
1769
1770
|
|
1770
1771
|
#alchemy .ui-datepicker .ui-datepicker-prev, #alchemy .ui-datepicker .ui-datepicker-next {
|
1771
1772
|
position: absolute;
|
1772
|
-
top:
|
1773
|
+
top: $default-padding;
|
1773
1774
|
width: 1.8em;
|
1774
1775
|
height: 1.8em;
|
1775
1776
|
}
|
1776
1777
|
|
1777
1778
|
#alchemy .ui-datepicker .ui-datepicker-prev-hover, #alchemy .ui-datepicker .ui-datepicker-next-hover {
|
1778
|
-
top:
|
1779
|
+
top: $default-padding;
|
1779
1780
|
}
|
1780
1781
|
|
1781
1782
|
#alchemy .ui-datepicker .ui-datepicker-prev {
|
1782
|
-
left:
|
1783
|
+
left: $default-padding;
|
1783
1784
|
}
|
1784
1785
|
|
1785
1786
|
#alchemy .ui-datepicker .ui-datepicker-next {
|
1786
|
-
right:
|
1787
|
+
right: $default-padding;
|
1787
1788
|
}
|
1788
1789
|
|
1789
1790
|
#alchemy .ui-datepicker .ui-datepicker-prev-hover {
|
1790
|
-
|
1791
|
+
top: $default-padding - 1;
|
1792
|
+
left: $default-padding - 1;
|
1791
1793
|
}
|
1792
1794
|
|
1793
1795
|
#alchemy .ui-datepicker .ui-datepicker-next-hover {
|
1794
|
-
|
1796
|
+
top: $default-padding - 1;
|
1797
|
+
right: $default-padding - 1;
|
1795
1798
|
}
|
1796
1799
|
|
1797
1800
|
#alchemy .ui-datepicker .ui-datepicker-prev span, #alchemy .ui-datepicker .ui-datepicker-next span {
|
@@ -1825,7 +1828,7 @@ button.ui-button::-moz-focus-inner {
|
|
1825
1828
|
|
1826
1829
|
#alchemy .ui-datepicker table {
|
1827
1830
|
width: 100%;
|
1828
|
-
font-size:
|
1831
|
+
font-size: 1em;
|
1829
1832
|
border-collapse: collapse;
|
1830
1833
|
margin: 0 0 .4em;
|
1831
1834
|
}
|
@@ -1842,6 +1845,14 @@ button.ui-button::-moz-focus-inner {
|
|
1842
1845
|
padding: 1px;
|
1843
1846
|
}
|
1844
1847
|
|
1848
|
+
#alchemy .ui-datepicker td.ui-datepicker-week-col {
|
1849
|
+
padding-left: $default-padding;
|
1850
|
+
}
|
1851
|
+
|
1852
|
+
#alchemy .ui-datepicker td.ui-datepicker-current-day {
|
1853
|
+
background-color: $dark-gray;
|
1854
|
+
}
|
1855
|
+
|
1845
1856
|
#alchemy .ui-datepicker td span, #alchemy .ui-datepicker td a {
|
1846
1857
|
display: block;
|
1847
1858
|
padding: .2em;
|
@@ -54,11 +54,10 @@ module Alchemy
|
|
54
54
|
@content = Content.find(params[:id])
|
55
55
|
@picture = Picture.find(params[:picture_id])
|
56
56
|
@content.essence.picture = @picture
|
57
|
-
@options = params[:options]
|
58
|
-
# If options params come from Flash uploader then we have to parse them as hash.
|
57
|
+
@options = params[:options] || {}
|
59
58
|
@element = @content.element
|
60
|
-
|
61
|
-
|
59
|
+
@dragable = @options[:grouped]
|
60
|
+
# If options params come from Flash uploader then we have to parse them as hash.
|
62
61
|
if @options.is_a?(String)
|
63
62
|
@options = Rack::Utils.parse_query(@options)
|
64
63
|
end
|
@@ -16,7 +16,12 @@ module Alchemy
|
|
16
16
|
@locked_pages = Page.all_locked_by(current_user)
|
17
17
|
@languages = Language.all
|
18
18
|
if !@page_root
|
19
|
-
|
19
|
+
if @languages.length == 1
|
20
|
+
@language = @languages.first
|
21
|
+
store_language_in_session(@language)
|
22
|
+
else
|
23
|
+
@language = @languages.find { |language| language.id == session[:language_id] }
|
24
|
+
end
|
20
25
|
@languages_with_page_tree = Language.all_for_created_language_trees if @language
|
21
26
|
end
|
22
27
|
end
|
@@ -23,8 +23,9 @@ module Alchemy
|
|
23
23
|
|
24
24
|
def index
|
25
25
|
if !params[:query].blank?
|
26
|
+
search_terms = ActiveRecord::Base.sanitize("%#{params[:query]}%")
|
26
27
|
items = resource_model.where(searchable_resource_attributes.map { |attribute|
|
27
|
-
|
28
|
+
"`#{namespaced_resources_name}`.`#{attribute[:name]}` LIKE #{search_terms}"
|
28
29
|
}.join(" OR "))
|
29
30
|
else
|
30
31
|
items = resource_model
|
@@ -430,6 +430,24 @@ module Alchemy
|
|
430
430
|
end
|
431
431
|
end
|
432
432
|
|
433
|
+
# Renders a textfield ready to display a datepicker
|
434
|
+
#
|
435
|
+
# Uses a HTML5 +input type="date"+ field.
|
436
|
+
#
|
437
|
+
# Pass a type as third option to override that. But old browsers hand this as text field anyway. So there is no need to override that.
|
438
|
+
#
|
439
|
+
# === Example
|
440
|
+
#
|
441
|
+
# <%= alchemy_datepicker(@person, :birthday) %>
|
442
|
+
#
|
443
|
+
def alchemy_datepicker(object, method, html_options={})
|
444
|
+
text_field(object.class.name.underscore.to_sym, method.to_sym, {
|
445
|
+
:type => 'date',
|
446
|
+
:class => 'thin_border date',
|
447
|
+
:value => object.send(method.to_sym).nil? ? nil : l(object.send(method.to_sym), :format => :datepicker)
|
448
|
+
}.merge(html_options))
|
449
|
+
end
|
450
|
+
|
433
451
|
end
|
434
452
|
end
|
435
453
|
end
|
@@ -35,16 +35,16 @@ module Alchemy
|
|
35
35
|
# Renders a link to show the new content overlay
|
36
36
|
def render_new_content_link(element)
|
37
37
|
link_to_overlay_window(
|
38
|
-
t('add new content'),
|
38
|
+
render_icon('create') + t('add new content'),
|
39
39
|
alchemy.new_admin_element_content_path(element),
|
40
40
|
{
|
41
|
-
:size => '
|
41
|
+
:size => '335x70',
|
42
42
|
:title => t('Select an content'),
|
43
43
|
:overflow => true
|
44
44
|
},
|
45
45
|
{
|
46
46
|
:id => "add_content_for_element_#{element.id}",
|
47
|
-
:class => 'button new_content_link'
|
47
|
+
:class => 'small button with_icon new_content_link'
|
48
48
|
}
|
49
49
|
)
|
50
50
|
end
|
data/app/models/alchemy/page.rb
CHANGED
@@ -377,7 +377,7 @@ module Alchemy
|
|
377
377
|
:locked => false,
|
378
378
|
:locked_by => nil
|
379
379
|
)
|
380
|
-
page = self.new(attributes.except(
|
380
|
+
page = self.new(attributes.except(:id, :updated_at, :created_at, :created_id, :updater_id, :lft, :rgt, :depth))
|
381
381
|
if page.save
|
382
382
|
# copy the page´s cells
|
383
383
|
source.cells.each do |cell|
|
@@ -48,7 +48,7 @@ module Alchemy
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def humanized_name
|
51
|
-
(image_filename.downcase.gsub(/\.#{Regexp.quote(suffix)}$/, '')).humanize
|
51
|
+
(image_filename.to_s.downcase.gsub(/\.#{Regexp.quote(suffix)}$/, '')).humanize
|
52
52
|
end
|
53
53
|
|
54
54
|
# Returning true if picture's width is greater than it's height
|
@@ -4,11 +4,11 @@
|
|
4
4
|
<table>
|
5
5
|
<tr>
|
6
6
|
<td>
|
7
|
-
<%= f.select 'name', @contents.map { |a| [t("
|
7
|
+
<%= f.select 'name', @contents.map { |a| [t("content_names.#{a['name']}"), a['name']] } %>
|
8
8
|
<%= hidden_field_tag('options', @options) %>
|
9
9
|
</td>
|
10
|
-
<td>
|
11
|
-
|
10
|
+
<td class="submit">
|
11
|
+
<%= f.button t('save'), :class => 'button' %>
|
12
12
|
</td>
|
13
13
|
</tr>
|
14
14
|
</table>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
$('#<%= content_dom_id(@content) -%>').replaceWith('<%= escape_javascript(
|
4
4
|
render(
|
5
5
|
:partial => "alchemy/essences/essence_picture_editor",
|
6
|
-
:locals => {:content => @content, :options =>
|
6
|
+
:locals => {:content => @content, :options => @options}
|
7
7
|
)
|
8
8
|
) -%>');
|
9
9
|
<%- if @content.siblings.essence_pictures.count > 1 -%>
|
@@ -1,41 +1,52 @@
|
|
1
|
-
<div
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
<div id="create_language_tree_form" style="display: none">
|
2
|
+
<div class="info">
|
3
|
+
<%= render_icon('info') %>
|
4
|
+
<%= t("language_does_not_exist") %>
|
5
|
+
</div>
|
5
6
|
<%- if @language -%>
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
<
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
</
|
19
|
-
|
20
|
-
|
7
|
+
|
8
|
+
<%- if @languages_with_page_tree.size >= 1 -%>
|
9
|
+
<%= form_tag(alchemy.copy_language_tree_admin_pages_path) do %>
|
10
|
+
<h2><%= t('copy_language_tree_heading') %></h2>
|
11
|
+
<p><%= t("want_to_make_copy_of_existing_language") %></p>
|
12
|
+
<table>
|
13
|
+
<tr>
|
14
|
+
<td class="label"><%= label_tag('languages[old_lang_id]', t('Language tree')) %></td>
|
15
|
+
<td class="select">
|
16
|
+
<%= select_tag("languages[old_lang_id]", options_for_select(@languages_with_page_tree.map{ |l| [l.name, l.id] }), :class => "medium_long") %>
|
17
|
+
<%= hidden_field_tag("languages[new_lang_id]", @language.id) %>
|
18
|
+
</td>
|
19
|
+
</tr>
|
20
|
+
<tr>
|
21
|
+
<td class="submit" colspan="2">
|
22
|
+
<%= hidden_field_tag("layoutpage", params[:action] == "layoutpages") if params[:action] == "layoutpages" %>
|
23
|
+
<%= submit_tag t("copy"), :class => 'button' %>
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
</table>
|
27
|
+
<% end %>
|
28
|
+
<%- end -%>
|
29
|
+
|
30
|
+
<%- if params[:action] == "index" -%>
|
31
|
+
|
32
|
+
<%= form_for([:admin, Alchemy::Page.new], :remote => true) do |form| %>
|
33
|
+
<h2><%= t('create_language_tree_heading') %></h2>
|
34
|
+
<p><%= t("want_to_create_new_language") %></p>
|
35
|
+
<%= form.hidden_field :name, :value => @language.frontpage_name %>
|
36
|
+
<%= form.hidden_field :language_id, :value => @language.id %>
|
37
|
+
<%= form.hidden_field :language_code, :value => @language.code %>
|
38
|
+
<%= form.hidden_field :page_layout, :value => @language.page_layout %>
|
39
|
+
<%= form.hidden_field :language_root, :value => true %>
|
40
|
+
<%= form.hidden_field :parent_id, :value => Alchemy::Page.rootpage.id %>
|
41
|
+
<%= form.button t("create_tree_as_new_language", :language => @language.name), :class => 'button' %>
|
21
42
|
<% end %>
|
22
|
-
|
23
|
-
<%-
|
24
|
-
|
25
|
-
<p>
|
26
|
-
<%= t("want_to_create_new_language") %>
|
27
|
-
</p>
|
28
|
-
<%- end -%>
|
29
|
-
<%= form_for([:admin, Alchemy::Page.new], :remote => true) do |form| %>
|
30
|
-
<%= form.hidden_field :name, :value => @language.frontpage_name %>
|
31
|
-
<%= form.hidden_field :language_id, :value => @language.id %>
|
32
|
-
<%= form.hidden_field :language_code, :value => @language.code %>
|
33
|
-
<%= form.hidden_field :page_layout, :value => @language.page_layout %>
|
34
|
-
<%= form.hidden_field :language_root, :value => true %>
|
35
|
-
<%= form.hidden_field :parent_id, :value => Alchemy::Page.rootpage.id %>
|
36
|
-
<%= form.submit t("create_tree_as_new_language", :language => @language.name), :class => 'button' %>
|
37
|
-
<% end %>
|
38
|
-
<%- end -%>
|
43
|
+
|
44
|
+
<%- end -%>
|
45
|
+
|
39
46
|
<%- else -%>
|
40
|
-
|
47
|
+
|
48
|
+
<p><%= t("Actually this language does not exist. Please create this language first.") %></p>
|
49
|
+
|
41
50
|
<%- end -%>
|
51
|
+
|
52
|
+
</div>
|
@@ -87,5 +87,14 @@
|
|
87
87
|
<%- else -%>
|
88
88
|
|
89
89
|
<%= render :partial => 'create_language_form' %>
|
90
|
-
|
90
|
+
<% content_for(:javascripts) do %>
|
91
|
+
<script type="text/javascript">
|
92
|
+
jQuery(document).ready(function($) {
|
93
|
+
$('#create_language_tree_form').dialog({modal: true, width: 360, close: function() {
|
94
|
+
$(this).appendTo('#archive_all').show().removeClass().removeAttr('style');
|
95
|
+
}});
|
96
|
+
});
|
97
|
+
</script>
|
91
98
|
<%- end -%>
|
99
|
+
|
100
|
+
<% end -%>
|
@@ -1 +1 @@
|
|
1
|
-
<%=
|
1
|
+
<%= render_essence_editor_by_name(element, 'image', :image_size => '900x300', :crop => true) %>
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<%= render_essence_editor_by_name(element, 'headline') %>
|
2
|
-
<%=
|
2
|
+
<%= render_essence_editor_by_name(element, 'image', :image_float_selector => true, :image_size => "450x300", :crop => true) %>
|
3
3
|
<%= render_essence_editor_by_name(element, 'text') %>
|
@@ -1,12 +1,13 @@
|
|
1
1
|
<div class="content_editor" id="<%= content_dom_id(content) %>">
|
2
2
|
<label><%= render_content_name(content) %></label>
|
3
|
-
<%=
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
:discard_minute => (options[:show_time] ? false : true),
|
10
|
-
:discard_hour => (options[:show_time] ? false : true)
|
3
|
+
<%= alchemy_datepicker(
|
4
|
+
content.essence, :date, {
|
5
|
+
:name => content.form_field_name,
|
6
|
+
:id => content.form_field_id,
|
7
|
+
:style => 'width: 140px'
|
8
|
+
}
|
11
9
|
) %>
|
10
|
+
<label for="<%= content.form_field_id %>" style="cursor: pointer; display: inline; display: inline-block; position: relative; top: 3px; margin: 0;">
|
11
|
+
<span class="ui-icon ui-icon-calendar"></span>
|
12
|
+
</label>
|
12
13
|
</div>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<div id="<%= content_dom_id(content) %>" class="<%= options[:dragable]
|
1
|
+
<div id="<%= content_dom_id(content) %>" class="essence_picture_editor<%= ' dragable_picture' if options[:dragable] %><%= ' content_editor' unless options[:grouped] %>">
|
2
2
|
<% unless options[:grouped] %>
|
3
3
|
<label><%= render_content_name(content) %></label>
|
4
4
|
<% end %>
|
@@ -57,15 +57,17 @@
|
|
57
57
|
<%= yield(:javascripts) %>
|
58
58
|
<script type="text/javascript" charset="utf-8">
|
59
59
|
jQuery(function($) {
|
60
|
+
Alchemy.locale = '<%= ::I18n.locale %>';
|
60
61
|
Alchemy.resizeFrame();
|
61
62
|
Alchemy.Tooltips();
|
62
63
|
if (typeof(jQuery().sb) === 'function') {
|
63
64
|
Alchemy.SelectBox('body#alchemy select');
|
64
65
|
}
|
66
|
+
Alchemy.Datepicker();
|
65
67
|
if ($('#flash_notices').length > 0) {
|
66
68
|
Alchemy.Growler.fade();
|
67
69
|
}
|
68
|
-
$('
|
70
|
+
$('a.please_wait, form .button, form .icon_button, #main_navi a.main_navi_entry, #sub_navigation .subnavi_tab a, .pagination a').click(function() {
|
69
71
|
Alchemy.pleaseWaitOverlay();
|
70
72
|
});
|
71
73
|
});
|
@@ -59,7 +59,7 @@ de:
|
|
59
59
|
text: 'Text'
|
60
60
|
date: 'Datum'
|
61
61
|
body: 'Inhalt'
|
62
|
-
image: 'Bild
|
62
|
+
image: 'Bild'
|
63
63
|
mail_from: 'Absender (E-Mail)'
|
64
64
|
mail_to: 'Empfänger (E-Mail)'
|
65
65
|
caption: "Bildunterschrift"
|
@@ -309,7 +309,7 @@ de:
|
|
309
309
|
"Your trash is empty": "Der Papierkorb ist leer"
|
310
310
|
above: "darüber"
|
311
311
|
add: "hinzufügen"
|
312
|
-
"add new content": "
|
312
|
+
"add new content": "Element hinzufügen"
|
313
313
|
add_image_to_element: "Bild hinzufügen"
|
314
314
|
align_in_text: "Im Text anordnen"
|
315
315
|
all: "alle"
|
@@ -340,8 +340,10 @@ de:
|
|
340
340
|
copy: "kopieren"
|
341
341
|
copy_element: "Element kopieren"
|
342
342
|
copy_page: "Seite kopieren"
|
343
|
+
copy_language_tree_heading: "Einen Sprachbaum kopieren"
|
343
344
|
create: "erstellen"
|
344
345
|
"Create language": "Eine neue Sprache erstellen"
|
346
|
+
create_language_tree_heading: "Einen leeren Sprachbaum erstellen"
|
345
347
|
create_page: "Eine Unterseite anlegen"
|
346
348
|
create_user: "Einen Benutzer anlegen"
|
347
349
|
created_at: "Erstellt am"
|
@@ -510,7 +512,7 @@ de:
|
|
510
512
|
urlname_to_short: "Der URL-Name der Seite ist zu kurz (min. 3 Zeichen)"
|
511
513
|
username: "Benutzername"
|
512
514
|
visible: "sichtbar"
|
513
|
-
want_to_create_new_language: "
|
515
|
+
want_to_create_new_language: "Wollen Sie einen neuen leeren Sprachbaum erstellen?"
|
514
516
|
want_to_make_copy_of_existing_language: "Wollen Sie eine Kopie eines vorhanden Sprachbaums machen?"
|
515
517
|
"We need at least one default.": "Es muss eine Standardsprache geben."
|
516
518
|
welcome_please_identify_notice: "Willkommen! Bitte identifizieren Sie sich."
|
@@ -544,6 +546,7 @@ de:
|
|
544
546
|
date:
|
545
547
|
formats:
|
546
548
|
default: "%d.%m.%Y"
|
549
|
+
datepicker: "%d.%m.%Y"
|
547
550
|
short: "%e. %b"
|
548
551
|
long: "%e. %B %Y"
|
549
552
|
only_day: "%e"
|
@@ -561,6 +564,7 @@ de:
|
|
561
564
|
short: "%d. %B, %H:%Mh"
|
562
565
|
long: "%A, %d. %B %Y um %H:%M Uhr"
|
563
566
|
date: "%d.%m.%Y"
|
567
|
+
datepicker: "%d.%m.%Y"
|
564
568
|
time: "%H:%M"
|
565
569
|
am: "vormittags"
|
566
570
|
pm: "nachmittags"
|
@@ -785,7 +789,7 @@ de:
|
|
785
789
|
alchemy/language:
|
786
790
|
attributes:
|
787
791
|
code:
|
788
|
-
invalid: 'ist nicht korrekt. Bitte exakt zwei Kleinbuchstaben verwenden.'
|
792
|
+
invalid: '^Sprachkürzel ist nicht korrekt. Bitte exakt zwei Kleinbuchstaben verwenden.'
|
789
793
|
|
790
794
|
# Translations for the authentication system used in alchemy.
|
791
795
|
authlogic:
|
@@ -57,7 +57,7 @@ en:
|
|
57
57
|
text: 'Text'
|
58
58
|
date: 'Date'
|
59
59
|
body: 'Content'
|
60
|
-
image: 'Image
|
60
|
+
image: 'Image'
|
61
61
|
mail_from: 'Sender (E-Mail)'
|
62
62
|
mail_to: 'Receiver (E-Mail)'
|
63
63
|
caption: "Caption"
|
@@ -197,8 +197,10 @@ en:
|
|
197
197
|
content_essence_not_found: "Content essence not found"
|
198
198
|
content_not_found: "Field for content not present."
|
199
199
|
copy_element: "Copy this element"
|
200
|
+
copy_language_tree_heading: "Copy page tree"
|
200
201
|
copy_page: "Copy page"
|
201
202
|
"Create language": "Create a new language"
|
203
|
+
create_language_tree_heading: "Create empty language tree"
|
202
204
|
create_page: "Create a new subpage"
|
203
205
|
create_user: "Create a new user"
|
204
206
|
created_at: "Created at"
|
@@ -352,7 +354,7 @@ en:
|
|
352
354
|
url_name: "URL-Name"
|
353
355
|
urlname_to_short: "The pages urlname is too short (minimum of 3 characters)"
|
354
356
|
username: "Username"
|
355
|
-
want_to_create_new_language: "
|
357
|
+
want_to_create_new_language: "Do you want to create a new empty language tree?"
|
356
358
|
want_to_make_copy_of_existing_language: "Do you want to copy an existing language tree?"
|
357
359
|
welcome_please_identify_notice: "Welcome! Please identify."
|
358
360
|
width: "Width"
|
@@ -374,7 +376,8 @@ en:
|
|
374
376
|
# Use the strftime parameters for formats.
|
375
377
|
# When no format has been given, it uses default.
|
376
378
|
# You can provide other formats here if you like!
|
377
|
-
default: "%Y-%m-%d"
|
379
|
+
default: "%Y-%m-%d"
|
380
|
+
datepicker: "%Y-%m-%d"
|
378
381
|
short: "%b %d"
|
379
382
|
long: "%B %d, %Y"
|
380
383
|
day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
|
@@ -393,6 +396,7 @@ en:
|
|
393
396
|
short: "%d %b %H:%M"
|
394
397
|
long: "%B %d, %Y %H:%M"
|
395
398
|
date: "%Y-%m-%d"
|
399
|
+
datepicker: "%Y-%m-%d"
|
396
400
|
am: "am"
|
397
401
|
pm: "pm"
|
398
402
|
support:
|
data/lib/alchemy/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alchemy_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,11 +11,11 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-02-
|
14
|
+
date: 2012-02-06 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
18
|
-
requirement: &
|
18
|
+
requirement: &70207620493240 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
@@ -23,10 +23,10 @@ dependencies:
|
|
23
23
|
version: 3.1.3
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *70207620493240
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: authlogic
|
29
|
-
requirement: &
|
29
|
+
requirement: &70207620490880 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ! '>='
|
@@ -34,10 +34,10 @@ dependencies:
|
|
34
34
|
version: '0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
37
|
+
version_requirements: *70207620490880
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: awesome_nested_set
|
40
|
-
requirement: &
|
40
|
+
requirement: &70207620535420 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
@@ -45,10 +45,10 @@ dependencies:
|
|
45
45
|
version: '2.0'
|
46
46
|
type: :runtime
|
47
47
|
prerelease: false
|
48
|
-
version_requirements: *
|
48
|
+
version_requirements: *70207620535420
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: declarative_authorization
|
51
|
-
requirement: &
|
51
|
+
requirement: &70207620534680 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
54
54
|
- - ~>
|
@@ -56,10 +56,10 @@ dependencies:
|
|
56
56
|
version: 0.5.4
|
57
57
|
type: :runtime
|
58
58
|
prerelease: false
|
59
|
-
version_requirements: *
|
59
|
+
version_requirements: *70207620534680
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: tvdeyen-fleximage
|
62
|
-
requirement: &
|
62
|
+
requirement: &70207620533640 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|
65
65
|
- - ~>
|
@@ -67,10 +67,10 @@ dependencies:
|
|
67
67
|
version: 1.0.9
|
68
68
|
type: :runtime
|
69
69
|
prerelease: false
|
70
|
-
version_requirements: *
|
70
|
+
version_requirements: *70207620533640
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: will_paginate
|
73
|
-
requirement: &
|
73
|
+
requirement: &70207620532420 !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
76
76
|
- - ~>
|
@@ -78,10 +78,10 @@ dependencies:
|
|
78
78
|
version: '3.0'
|
79
79
|
type: :runtime
|
80
80
|
prerelease: false
|
81
|
-
version_requirements: *
|
81
|
+
version_requirements: *70207620532420
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
83
|
name: acts_as_ferret
|
84
|
-
requirement: &
|
84
|
+
requirement: &70207620531360 !ruby/object:Gem::Requirement
|
85
85
|
none: false
|
86
86
|
requirements:
|
87
87
|
- - ~>
|
@@ -89,10 +89,10 @@ dependencies:
|
|
89
89
|
version: '0.5'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
|
-
version_requirements: *
|
92
|
+
version_requirements: *70207620531360
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: acts_as_list
|
95
|
-
requirement: &
|
95
|
+
requirement: &70207620530160 !ruby/object:Gem::Requirement
|
96
96
|
none: false
|
97
97
|
requirements:
|
98
98
|
- - ~>
|
@@ -100,10 +100,10 @@ dependencies:
|
|
100
100
|
version: '0.1'
|
101
101
|
type: :runtime
|
102
102
|
prerelease: false
|
103
|
-
version_requirements: *
|
103
|
+
version_requirements: *70207620530160
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
105
|
name: magiclabs-userstamp
|
106
|
-
requirement: &
|
106
|
+
requirement: &70207620529000 !ruby/object:Gem::Requirement
|
107
107
|
none: false
|
108
108
|
requirements:
|
109
109
|
- - ~>
|
@@ -111,10 +111,10 @@ dependencies:
|
|
111
111
|
version: 2.0.2
|
112
112
|
type: :runtime
|
113
113
|
prerelease: false
|
114
|
-
version_requirements: *
|
114
|
+
version_requirements: *70207620529000
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
116
|
name: dynamic_form
|
117
|
-
requirement: &
|
117
|
+
requirement: &70207620558540 !ruby/object:Gem::Requirement
|
118
118
|
none: false
|
119
119
|
requirements:
|
120
120
|
- - ~>
|
@@ -122,10 +122,10 @@ dependencies:
|
|
122
122
|
version: '1.1'
|
123
123
|
type: :runtime
|
124
124
|
prerelease: false
|
125
|
-
version_requirements: *
|
125
|
+
version_requirements: *70207620558540
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: jquery-rails
|
128
|
-
requirement: &
|
128
|
+
requirement: &70207620553520 !ruby/object:Gem::Requirement
|
129
129
|
none: false
|
130
130
|
requirements:
|
131
131
|
- - ~>
|
@@ -133,10 +133,10 @@ dependencies:
|
|
133
133
|
version: 1.0.16
|
134
134
|
type: :runtime
|
135
135
|
prerelease: false
|
136
|
-
version_requirements: *
|
136
|
+
version_requirements: *70207620553520
|
137
137
|
- !ruby/object:Gem::Dependency
|
138
138
|
name: attachment_magic
|
139
|
-
requirement: &
|
139
|
+
requirement: &70207620580400 !ruby/object:Gem::Requirement
|
140
140
|
none: false
|
141
141
|
requirements:
|
142
142
|
- - ~>
|
@@ -144,10 +144,10 @@ dependencies:
|
|
144
144
|
version: 0.2.1
|
145
145
|
type: :runtime
|
146
146
|
prerelease: false
|
147
|
-
version_requirements: *
|
147
|
+
version_requirements: *70207620580400
|
148
148
|
- !ruby/object:Gem::Dependency
|
149
149
|
name: rspec-rails
|
150
|
-
requirement: &
|
150
|
+
requirement: &70207620578660 !ruby/object:Gem::Requirement
|
151
151
|
none: false
|
152
152
|
requirements:
|
153
153
|
- - ~>
|
@@ -155,10 +155,10 @@ dependencies:
|
|
155
155
|
version: '2.8'
|
156
156
|
type: :development
|
157
157
|
prerelease: false
|
158
|
-
version_requirements: *
|
158
|
+
version_requirements: *70207620578660
|
159
159
|
- !ruby/object:Gem::Dependency
|
160
160
|
name: sqlite3
|
161
|
-
requirement: &
|
161
|
+
requirement: &70207620577380 !ruby/object:Gem::Requirement
|
162
162
|
none: false
|
163
163
|
requirements:
|
164
164
|
- - ! '>='
|
@@ -166,7 +166,7 @@ dependencies:
|
|
166
166
|
version: '0'
|
167
167
|
type: :development
|
168
168
|
prerelease: false
|
169
|
-
version_requirements: *
|
169
|
+
version_requirements: *70207620577380
|
170
170
|
description: Alchemy is a Rails 3 CMS with a flexible content storing architecture.
|
171
171
|
email:
|
172
172
|
- alchemy@magiclabs.de
|
@@ -205,6 +205,7 @@ files:
|
|
205
205
|
- app/assets/images/alchemy/ui-icons_666666_256x240.png
|
206
206
|
- app/assets/javascripts/alchemy/alchemy.base.js
|
207
207
|
- app/assets/javascripts/alchemy/alchemy.buttons.js
|
208
|
+
- app/assets/javascripts/alchemy/alchemy.datepicker.js
|
208
209
|
- app/assets/javascripts/alchemy/alchemy.dirty.js
|
209
210
|
- app/assets/javascripts/alchemy/alchemy.dragndrop.js
|
210
211
|
- app/assets/javascripts/alchemy/alchemy.element_editor_selector.js
|
@@ -808,7 +809,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
808
809
|
version: '0'
|
809
810
|
segments:
|
810
811
|
- 0
|
811
|
-
hash: -
|
812
|
+
hash: -1495060895852714083
|
812
813
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
813
814
|
none: false
|
814
815
|
requirements:
|
@@ -817,7 +818,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
817
818
|
version: '0'
|
818
819
|
segments:
|
819
820
|
- 0
|
820
|
-
hash: -
|
821
|
+
hash: -1495060895852714083
|
821
822
|
requirements:
|
822
823
|
- ImageMagick (libmagick), v6.6 or greater.
|
823
824
|
rubyforge_project:
|