imagine_cms 4.1.4 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +2 -1
- data/app/assets/images/interface/form_loading.gif +0 -0
- data/app/assets/images/management/btn-top-delete.png +0 -0
- data/app/assets/images/management/btn-top-edit.png +0 -0
- data/app/assets/images/management/btn-top-exterminate.png +0 -0
- data/app/assets/images/management/btn-top-new.png +0 -0
- data/app/assets/images/management/btn-top-preview.png +0 -0
- data/app/assets/images/management/btn-top-properties.png +0 -0
- data/app/assets/javascripts/codemirror/modes-custom/imagine_cms.js +87 -0
- data/app/assets/javascripts/imagine_cms/core.js +510 -0
- data/app/assets/javascripts/imagine_cms/legacy/misc.js +537 -0
- data/app/assets/javascripts/imagine_cms/legacy/rollovers.js +193 -0
- data/app/assets/javascripts/imagine_cms/legacy/slideshow.js +116 -0
- data/app/assets/javascripts/imagine_cms/legacy/textfieldhints.js +55 -0
- data/app/assets/javascripts/imagine_cms.js +14 -1
- data/app/assets/javascripts/imagine_cms_compat.js +26 -0
- data/app/assets/javascripts/jquery-ui.js +16608 -0
- data/app/assets/javascripts/tag-it.js +591 -0
- data/app/assets/stylesheets/imagine_cms.css.scss +26 -10
- data/app/assets/stylesheets/imagine_controls.css.scss +8 -0
- data/app/assets/stylesheets/jquery-ui.css +1225 -0
- data/app/assets/stylesheets/jquery-ui.structure.css +833 -0
- data/app/assets/stylesheets/jquery-ui.theme.css +410 -0
- data/app/assets/stylesheets/jquery.tagit.css +69 -0
- data/app/assets/stylesheets/management.css.scss +7 -0
- data/app/assets/stylesheets/tagit.ui-imagine.css +100 -0
- data/app/controllers/cms/content_controller.rb +28 -45
- data/app/controllers/management/cms_controller.rb +116 -94
- data/app/helpers/cms_application_helper.rb +76 -39
- data/app/models/cms_page.rb +32 -14
- data/app/models/cms_page_object.rb +1 -1
- data/app/models/cms_page_tag.rb +2 -2
- data/app/models/cms_template.rb +1 -1
- data/app/models/user.rb +6 -6
- data/app/models/user_group.rb +1 -1
- data/app/views/cms/content/_photo_gallery.html.erb +12 -12
- data/app/views/cms/content/_search.html.erb +2 -2
- data/app/views/cms/content/_search_result.html.erb +16 -10
- data/app/views/layouts/management.html.erb +18 -17
- data/app/views/management/cms/_edit_page.html.erb +47 -33
- data/app/views/management/cms/_gallery_index.html.erb +4 -4
- data/app/views/management/cms/_image.html.erb +3 -3
- data/app/views/management/cms/_image_details.html.erb +9 -8
- data/app/views/management/cms/_list_page.html.erb +2 -2
- data/app/views/management/cms/_list_page_select.html.erb +1 -1
- data/app/views/management/cms/_page_list.html.erb +69 -48
- data/app/views/management/cms/_page_list_source_folder.html.erb +2 -2
- data/app/views/management/cms/_template_options.html.erb +4 -4
- data/app/views/management/cms/_template_reference.html.erb +13 -15
- data/app/views/management/cms/edit_page_content.html.erb +3 -3
- data/app/views/management/cms/edit_snippet.html.erb +19 -41
- data/app/views/management/cms/edit_template.html.erb +15 -38
- data/app/views/management/cms/pages.html.erb +17 -29
- data/app/views/management/cms/snippets.html.erb +2 -2
- data/app/views/management/cms/templates.html.erb +2 -2
- data/app/views/management/cms/toolbar_edit.html.erb +2 -0
- data/app/views/management/cms/toolbar_preview.html.erb +2 -2
- data/config/initializers/config_file.rb +1 -1
- data/imagine_cms.gemspec +7 -4
- data/lib/extensions/action_controller_extensions.rb +50 -19
- data/lib/imagine_cms/engine.rb +12 -8
- data/lib/imagine_cms/version.rb +1 -1
- data/lib/prototype_legacy_helper/lib/prototype_legacy_helper.rb +2 -2
- data/lib/tasks/imagine_cms_tasks.rake +8 -0
- metadata +69 -91
- data/app/assets/images/management/btn_archive.gif +0 -0
- data/app/assets/images/management/btn_delete.gif +0 -0
- data/app/assets/images/management/btn_duplicate.gif +0 -0
- data/app/assets/images/management/btn_edit.gif +0 -0
- data/app/assets/images/management/btn_new_page.gif +0 -0
- data/app/assets/images/management/btn_preview.gif +0 -0
- data/app/assets/images/management/btn_properties.gif +0 -0
- data/app/assets/images/management/btn_restore.gif +0 -0
- data/app/assets/images/management/btn_top_delete.gif +0 -0
- data/app/assets/images/management/btn_top_duplicate.gif +0 -0
- data/app/assets/images/management/btn_top_edit.gif +0 -0
- data/app/assets/images/management/btn_top_new.gif +0 -0
- data/app/assets/images/management/btn_top_preview.gif +0 -0
- data/app/assets/images/management/btn_top_properties.gif +0 -0
- data/app/assets/javascripts/codepress/codepress.html +0 -36
- data/app/assets/javascripts/codepress/codepress.js +0 -130
- data/app/assets/javascripts/codepress/engines/gecko.js +0 -240
- data/app/assets/javascripts/codepress/engines/khtml.js +0 -0
- data/app/assets/javascripts/codepress/engines/msie.js +0 -263
- data/app/assets/javascripts/codepress/engines/older.js +0 -0
- data/app/assets/javascripts/codepress/engines/opera.js +0 -259
- data/app/assets/javascripts/codepress/languages/css.js +0 -23
- data/app/assets/javascripts/codepress/languages/generic.js +0 -25
- data/app/assets/javascripts/codepress/languages/html.js +0 -63
- data/app/assets/javascripts/codepress/languages/java.js +0 -24
- data/app/assets/javascripts/codepress/languages/javascript.js +0 -30
- data/app/assets/javascripts/codepress/languages/perl.js +0 -27
- data/app/assets/javascripts/codepress/languages/php.js +0 -60
- data/app/assets/javascripts/codepress/languages/ruby.js +0 -26
- data/app/assets/javascripts/codepress/languages/sql.js +0 -30
- data/app/assets/javascripts/codepress/languages/text.js +0 -9
- data/app/assets/javascripts/imagine.js +0 -1393
- data/app/assets/stylesheets/codepress/codepress.css +0 -7
- data/app/assets/stylesheets/codepress/languages/css.css +0 -10
- data/app/assets/stylesheets/codepress/languages/generic.css +0 -9
- data/app/assets/stylesheets/codepress/languages/html.css +0 -18
- data/app/assets/stylesheets/codepress/languages/java.css +0 -7
- data/app/assets/stylesheets/codepress/languages/javascript.css +0 -8
- data/app/assets/stylesheets/codepress/languages/perl.css +0 -11
- data/app/assets/stylesheets/codepress/languages/php.css +0 -12
- data/app/assets/stylesheets/codepress/languages/ruby.css +0 -10
- data/app/assets/stylesheets/codepress/languages/sql.css +0 -10
- data/app/assets/stylesheets/codepress/languages/text.css +0 -5
@@ -2,46 +2,23 @@
|
|
2
2
|
|
3
3
|
<h2>Edit Template</h2>
|
4
4
|
|
5
|
-
<%= form_tag
|
6
|
-
|
7
|
-
<
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
</
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
<td>
|
21
|
-
<%= submit_tag 'Save Template', :class => 'form_button' %>
|
22
|
-
<button onclick="$('preview_frame').scrollIntoView(); temp_content.toggleEditor(); $('preview_content').value = $('temp_content_cp').value; $('preview_form').submit(); temp_content.toggleEditor(); return false;" class="form_button">Preview</button>
|
23
|
-
<%= link_to 'Cancel', :action => 'templates' %>
|
24
|
-
</td>
|
25
|
-
</tr>
|
26
|
-
</table>
|
27
|
-
<br/>
|
28
|
-
|
29
|
-
<%= render :partial => 'template_reference' %>
|
30
|
-
<br/>
|
31
|
-
|
32
|
-
<table width="100%">
|
33
|
-
<col width="100" />
|
34
|
-
<tr>
|
35
|
-
<td valign="top"><div style="margin-top: 2px">Preview:</div></td>
|
36
|
-
<td>
|
37
|
-
<iframe id="preview_frame" name="preview_frame" style="width: 100%; height: 600px; border: 1px solid gray;"></iframe>
|
38
|
-
<%= submit_tag 'Save Template', :class => 'form_button' %>
|
39
|
-
</td>
|
40
|
-
</tr>
|
41
|
-
</table>
|
5
|
+
<%= form_tag do %>
|
6
|
+
<%= text_field :temp, :name, :placeholder => 'Template Name', :size => '50' %>
|
7
|
+
<div class="codemirror-html-container">
|
8
|
+
<%= text_area :temp, :content, :class => 'codemirror-html autocomplete-off' %>
|
9
|
+
</div>
|
10
|
+
<%= submit_tag 'Save Template', :class => 'form_button' %>
|
11
|
+
<button onclick="jQuery('#preview_frame').show(); jQuery('#preview_frame')[0].scrollIntoView(); jQuery('#preview_content').val(jQuery('#temp_content').val()); jQuery('#preview_form').submit(); return false;" class="form_button">Preview</button>
|
12
|
+
<%= link_to 'Cancel', :action => 'templates' %>
|
13
|
+
<br/>
|
14
|
+
|
15
|
+
<br/>
|
16
|
+
<%= render :partial => 'template_reference' %>
|
17
|
+
<br/>
|
18
|
+
|
19
|
+
<iframe id="preview_frame" name="preview_frame"></iframe>
|
42
20
|
<% end %>
|
43
21
|
|
44
|
-
|
45
22
|
<%= form_tag({ :controller => '/cms/content', :action => 'preview_template' }, :id => 'preview_form', :target => 'preview_frame') do %>
|
46
23
|
<%= text_area_tag 'temp[content]', '', :id => 'preview_content', :style => 'display: none;' %>
|
47
24
|
<%= hidden_field_tag 'mode', 'preview' %>
|
@@ -20,18 +20,12 @@ EOF
|
|
20
20
|
|
21
21
|
<%= flash_message %>
|
22
22
|
|
23
|
-
<div id="columnBrowserToolbar" style="background-color: #
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
<a id="edit_link" href="#"><img src="/assets/management/btn_top_properties.gif" style="margin-right: 2px;" /></a>
|
30
|
-
<a id="view_link" href="#" target="_blank"><img src="/assets/management/btn_top_preview.gif" style="margin-right: 2px;" /></a>
|
31
|
-
<a id="delete_link" href="#" onclick="if (confirm('Are you sure you want to delete the selected page?')) { $('delete_form').submit(); } return false;"><img src="/assets/management/btn_top_delete.gif" style="margin: 0" /></a>
|
32
|
-
<%= form_tag('', :id => "delete_form", :style => "display: none") do %>
|
33
|
-
<button>dummy</button>
|
34
|
-
<% end %>
|
23
|
+
<div id="columnBrowserToolbar" style="background-color: #ddd; padding: 5px 4px 0; margin: 0 0 5px;">
|
24
|
+
<%= link_to image_tag('management/btn-top-new.png', style: 'margin-right: 2px;'), '#', id: 'new_link' %>
|
25
|
+
<%= link_to image_tag('management/btn-top-edit.png', style: 'margin-right: 2px;'), '#', id: 'edit_content_link', target: '_blank' %>
|
26
|
+
<%= link_to image_tag('management/btn-top-properties.png', style: 'margin-right: 2px;'), '#', id: 'edit_link' %>
|
27
|
+
<%= link_to image_tag('management/btn-top-preview.png', style: 'margin-right: 2px;'), '#', id: 'view_link', target: '_blank' %>
|
28
|
+
<%= link_to image_tag('management/btn-top-delete.png', style: 'margin: 0;'), '#', id: 'delete_link', target: '_blank', method: :post, data: { confirm: 'Are you sure you want to delete the selected page?' } %>
|
35
29
|
<div class="clearer"></div>
|
36
30
|
</div>
|
37
31
|
|
@@ -39,8 +33,8 @@ EOF
|
|
39
33
|
<div id="columnBrowser" style="width: <%= cbColWidthFull * (@page_levels.size) %>px;">
|
40
34
|
<%- @page_levels.each_with_index do |name, i| -%>
|
41
35
|
<%-
|
42
|
-
if
|
43
|
-
@path << '/' if
|
36
|
+
if name.present?
|
37
|
+
@path << '/' if @path.present?
|
44
38
|
@path << name
|
45
39
|
end
|
46
40
|
@parent = @page
|
@@ -51,23 +45,17 @@ EOF
|
|
51
45
|
break_flag = false
|
52
46
|
|
53
47
|
if !@page
|
54
|
-
|
55
|
-
@page = @parent.children.first
|
56
|
-
elsif @parent
|
57
|
-
@page = @parent
|
58
|
-
else
|
59
|
-
@page = CmsPage.find(:first)
|
60
|
-
end
|
48
|
+
@page = @parent.children.first || @parent || CmsPage.first
|
61
49
|
break_flag = true
|
62
50
|
end
|
63
51
|
-%>
|
64
52
|
<div id="columnBrowserLevel<%= i %>" style="width: <%= cbColWidth %>px; height: <%= cbColHeight %>px; overflow: auto; float: left; border-width: <%= cbBorderWidth %>px <%= cbBorderWidth %>px <%= cbBorderWidth %>px <%= i == 0 ? "#{cbBorderWidth}px" : '0' %>; border-style: solid; border-color: gray;">
|
65
53
|
<%- if i == 0 -%>
|
66
|
-
<%= render :
|
54
|
+
<%= render partial: 'list_page', locals: { list_page: CmsPage.first } %>
|
67
55
|
<%- else -%>
|
68
|
-
<%= render :
|
56
|
+
<%= render partial: 'list_pages' %>
|
69
57
|
<%- end -%>
|
70
|
-
<%= javascript_tag "
|
58
|
+
<%= javascript_tag "jQuery('#cb_item_#{@parent.id}').addClass('cb_item_selected');" if @parent %>
|
71
59
|
</div>
|
72
60
|
<%- break if break_flag -%>
|
73
61
|
<%- end -%>
|
@@ -80,10 +68,10 @@ EOF
|
|
80
68
|
cbNumColumns = <%= @page_levels.size - 1 %>;
|
81
69
|
$('columnBrowserLevel' + cbNumColumns).scrollIntoView();
|
82
70
|
$('view_link').href = '<%= list_page.path.blank? ? '' : '/' + list_page.path %>/version/<%= list_page.published_version > 0 ? list_page.published_version : list_page.version %>';
|
83
|
-
$('new_link').onclick = function () { editProperties('<%=raw url_for(:
|
84
|
-
$('edit_link').onclick = function () { editProperties('<%=raw url_for :
|
85
|
-
$('edit_content_link').href = '<%=raw url_for :
|
86
|
-
$('
|
71
|
+
$('new_link').onclick = function () { editProperties('<%=raw url_for(action: 'edit_page', mode: 'ajax_new', parent_id: list_page, authenticity_token: form_authenticity_token.to_s) %>', 'Create New Page under /<%= list_page.path %>'); return false; };
|
72
|
+
$('edit_link').onclick = function () { editProperties('<%=raw url_for action: 'edit_page', id: list_page, mode: 'ajax_edit', authenticity_token: form_authenticity_token.to_s %>', 'Page Properties: <%= list_page.name %>'); return false; };
|
73
|
+
$('edit_content_link').href = '<%=raw url_for action: 'edit_page_content', id: list_page, authenticity_token: form_authenticity_token.to_s %>';
|
74
|
+
$('delete_link').href = '<%=raw url_for action: 'delete_page', id: list_page.id %>';
|
87
75
|
</script>
|
88
76
|
|
89
|
-
<%= render
|
77
|
+
<%= render '/imagine_cms/dialogs' %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<h2>CMS » Snippets</h2>
|
2
2
|
|
3
|
-
<p><%= button_to 'Create New Snippet', { :
|
3
|
+
<p><%= button_to 'Create New Snippet', { action: 'edit_snippet' }, method: :get %></p>
|
4
4
|
|
5
5
|
<%= flash_message %>
|
6
6
|
|
@@ -8,5 +8,5 @@
|
|
8
8
|
<tr>
|
9
9
|
<th>Name</th>
|
10
10
|
</tr>
|
11
|
-
<%= render :
|
11
|
+
<%= render partial: 'snippet', collection: @snippets %>
|
12
12
|
</table>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<h2>CMS » Templates</h2>
|
2
2
|
|
3
|
-
<p><%= button_to 'Create New Template', { :
|
3
|
+
<p><%= button_to 'Create New Template', { action: 'edit_template' }, method: :get %></p>
|
4
4
|
|
5
5
|
<%= flash_message %>
|
6
6
|
|
@@ -8,5 +8,5 @@
|
|
8
8
|
<tr>
|
9
9
|
<th>Name</th>
|
10
10
|
</tr>
|
11
|
-
<%= render :
|
11
|
+
<%= render partial: 'temp', collection: @temps %>
|
12
12
|
</table>
|
@@ -56,6 +56,8 @@
|
|
56
56
|
<option value="h2">Section Heading (H2)</option>
|
57
57
|
<option value="h3">Sub-Heading (H3)</option>
|
58
58
|
<option value="h4">Sub-Heading (H4)</option>
|
59
|
+
<option value="h5">Sub-Heading (H5)</option>
|
60
|
+
<option value="h6">Sub-Heading (H6)</option>
|
59
61
|
<option value="blockquote">Block Quote</option>
|
60
62
|
</select>
|
61
63
|
</td>
|
@@ -70,7 +70,7 @@
|
|
70
70
|
:complete => "$('set_page_version_loading').hide();" + (@pg ? "$('pg_published_version_container').style.borderColor = ($('pg_published_version').value == '0' || $('pg_published_version').value == '#{@pg.versions.last.version}') ? '#EBEBEB' : 'red';" : '')) do -%>
|
71
71
|
<div id="pg_published_version_container" style="border-color: <%= @pg && (@pg.published_version == 0 || @pg.published_version == @pg.versions.last.version) ? '#EBEBEB' : 'red' %>; border-style: solid; border-width: 2px;">
|
72
72
|
<select name="pg[published_version]" id="pg_published_version" style="font-size: 8pt; width: 210px;" onchange="this.form.onsubmit();">
|
73
|
-
<%- [ [ '[ None (offline) ]', -1 ], [ '[ Latest ]', 0 ] ].concat(@pg.versions.reverse.map { |pg| [ "#{pg.version} - #{date_to_str(pg.updated_on)} #{time_to_str(pg.updated_on)}#{" by #{pg.updated_by_username}" unless pg.updated_by_username.blank? }", pg.version ] }).each do |label, version| %>
|
73
|
+
<%- [ @pg.path == '' ? nil : [ '[ None (offline) ]', -1 ], [ '[ Latest ]', 0 ] ].compact.concat(@pg.versions.reverse.map { |pg| [ "#{pg.version} - #{date_to_str(pg.updated_on)} #{time_to_str(pg.updated_on)}#{" by #{pg.updated_by_username}" unless pg.updated_by_username.blank? }", pg.version ] }).each do |label, version| %>
|
74
74
|
<option value="<%= version %>"<%= (@pg && @pg.published_version == version.to_i) ? ' selected="selected"' : '' %>><%= label %></option>
|
75
75
|
<%- end -%>
|
76
76
|
</select>
|
@@ -89,7 +89,7 @@
|
|
89
89
|
<%- end -%>
|
90
90
|
</td>
|
91
91
|
<td width="20">
|
92
|
-
<div id="set_page_version_loading" style="display: none"
|
92
|
+
<div id="set_page_version_loading" style="display: none"><%= image_tag "interface/form_loading.gif" %></div>
|
93
93
|
</td>
|
94
94
|
<% end -%>
|
95
95
|
|
data/imagine_cms.gemspec
CHANGED
@@ -31,16 +31,19 @@ Gem::Specification.new do |s|
|
|
31
31
|
s.add_dependency "rails-observers", "~> 0.1"
|
32
32
|
s.add_dependency "actionpack-action_caching", "~> 1.0"
|
33
33
|
s.add_dependency "actionpack-page_caching", "~> 1.0"
|
34
|
-
s.add_dependency "non-stupid-digest-assets", "~> 1.0"
|
35
|
-
s.add_dependency "prototype-rails", "~> 4.0.0"
|
36
34
|
s.add_dependency "aws-sdk", "~> 2.0.0"
|
37
|
-
s.add_dependency "rmagick", [ ">= 1.15.0", "< 3.0" ]
|
38
|
-
s.add_dependency "mini_magick", "~> 3.3"
|
39
35
|
s.add_dependency "rubyzip", "~> 1.0"
|
40
36
|
s.add_dependency "rinku", "~> 1.7"
|
41
37
|
s.add_dependency "net-dns", "~> 0.7"
|
42
38
|
s.add_dependency "acts_as_tree", "~> 1.1"
|
43
39
|
s.add_dependency "safe_yaml"
|
40
|
+
s.add_dependency "codemirror-rails"
|
41
|
+
|
42
|
+
# on the way out, but still needed for now
|
43
|
+
# s.add_dependency "prototype-rails", "~> 4.2.0"
|
44
|
+
s.add_dependency "rmagick", [ ">= 1.15.0", "< 3.0" ]
|
45
|
+
s.add_dependency "mini_magick", "~> 3.3"
|
46
|
+
s.add_dependency "non-stupid-digest-assets", "~> 1.0"
|
44
47
|
|
45
48
|
s.add_development_dependency "sqlite3"
|
46
49
|
end
|
@@ -144,10 +144,6 @@ module ActionControllerExtensions
|
|
144
144
|
|
145
145
|
options[:wrapper_div] = true
|
146
146
|
|
147
|
-
# make options specified in snippets and templates accessible to
|
148
|
-
# page list segments and rss feeds
|
149
|
-
@page_objects["#{key}-template"] = options[:template] if @page_objects["#{key}-template"].blank?
|
150
|
-
|
151
147
|
render_page_list_segment(name, pages, options, html_options)
|
152
148
|
end
|
153
149
|
when :snippet
|
@@ -169,6 +165,20 @@ module ActionControllerExtensions
|
|
169
165
|
end
|
170
166
|
end
|
171
167
|
|
168
|
+
# shortcuts
|
169
|
+
def text_editor(name, options = {}, html_options = {})
|
170
|
+
insert_object(name, :text, options, html_options)
|
171
|
+
end
|
172
|
+
alias :texteditor :text_editor
|
173
|
+
def page_list(name, options = {}, html_options = {})
|
174
|
+
insert_object(name, :page_list, options, html_options)
|
175
|
+
end
|
176
|
+
alias :pagelist :page_list
|
177
|
+
def snippet(name, options = {}, html_options = {})
|
178
|
+
insert_object(name, :snippet, options, html_options)
|
179
|
+
end
|
180
|
+
|
181
|
+
|
172
182
|
def render_page_list_segment(name, pages, options = {}, html_options = {})
|
173
183
|
extend ActionView::Helpers::TagHelper
|
174
184
|
extend ActionView::Helpers::TextHelper
|
@@ -204,27 +214,48 @@ module ActionControllerExtensions
|
|
204
214
|
:page_list_name => name) : nil))
|
205
215
|
|
206
216
|
num_segments = (pages.size.to_f / limit).ceil
|
207
|
-
|
208
|
-
|
209
|
-
content << '<
|
217
|
+
Rails.logger.info "Number of page list segments: #{num_segments}"
|
218
|
+
if first_non_empty(options[:use_pagination], @page_objects["#{key}-use-pagination"], 0).to_i == 1 && num_segments > 1
|
219
|
+
content << '<div class="imagine_cms-paginator">'
|
220
|
+
content << 'Page: '
|
210
221
|
num_segments.times do |seg|
|
211
222
|
start = seg * limit
|
212
|
-
content << "<
|
223
|
+
content << "<a id=\"#{key}-segment-#{seg}\" href=\"#\""
|
213
224
|
if offset >= start && offset < (start + limit)
|
214
|
-
content << " class=\"
|
225
|
+
content << " class=\"imagine_cms-paginator-link imagine_cms-paginator-link-selected\""
|
215
226
|
else
|
216
|
-
content << " class=\"
|
217
|
-
content << " onmouseover=\"this.className = 'page_list_segment page_list_segment_selected'\""
|
218
|
-
content << " onmouseout=\"this.className = 'page_list_segment'\""
|
219
|
-
content << " onclick=\"$('#{key}').style.cursor = 'wait'; $('#{key}').style.opacity = 0.5; "
|
220
|
-
# FIXME: Prototype
|
221
|
-
content << " new Ajax.Updater('#{key}', '#{url_for(:content_path => @pg.path.split('/').concat([ 'segment', start.to_s, name ]), :only_path => true)}', {asynchronous:true, evalScripts:true, method:'get'});"
|
222
|
-
content << "; window.scrollBy(0, - 20 + document.getElementById('#{key}').getBoundingClientRect().top); return false;\""
|
227
|
+
content << " class=\"imagine_cms-paginator-link\""
|
223
228
|
end
|
224
|
-
content << ">#{seg+1}</a
|
229
|
+
content << ">#{seg+1}</a>"
|
230
|
+
end
|
231
|
+
content << '</div>'
|
232
|
+
content << <<-EOT
|
233
|
+
<script type="text/javascript">
|
234
|
+
jQuery('##{key}').css({ opacity: '1', cursor: 'default' });
|
235
|
+
jQuery('.imagine_cms-paginator-link').not('.imagine_cms-paginator-link-selected').mouseover(function () {
|
236
|
+
jQuery(this).addClass('imagine_cms-paginator-link-selected');
|
237
|
+
}).mouseout(function () {
|
238
|
+
jQuery(this).removeClass('imagine_cms-paginator-link-selected');
|
239
|
+
});
|
240
|
+
|
241
|
+
EOT
|
242
|
+
num_segments.times do |seg|
|
243
|
+
start = seg * limit
|
244
|
+
content << <<-EOT
|
245
|
+
jQuery('##{key}-segment-#{seg}').click(function () {
|
246
|
+
jQuery('##{key}').css({ cursor: 'wait', opacity: '0.5' });
|
247
|
+
jQuery('html,body').animate({ scrollTop: jQuery('##{key}').position().top }, 200);
|
248
|
+
jQuery.get('#{url_for(:content_path => @pg.path.split('/').concat([ 'segment', start.to_s, name ]), :only_path => true)}', function (data) {
|
249
|
+
jQuery('##{key}').html(data);
|
250
|
+
jQuery('##{key}').css({ cursor: 'default', opacity: '1' });
|
251
|
+
});
|
252
|
+
return false;
|
253
|
+
})
|
254
|
+
EOT
|
225
255
|
end
|
226
|
-
content <<
|
227
|
-
|
256
|
+
content << <<-EOT
|
257
|
+
</script>
|
258
|
+
EOT
|
228
259
|
end
|
229
260
|
|
230
261
|
if options[:wrapper_div]
|
data/lib/imagine_cms/engine.rb
CHANGED
@@ -7,7 +7,8 @@ module ImagineCms
|
|
7
7
|
middleware.use ::ActionDispatch::Static, "#{root}/public"
|
8
8
|
|
9
9
|
initializer "imagine_cms.assets.precompile" do |config|
|
10
|
-
Rails.application.config.assets.precompile += %w(
|
10
|
+
Rails.application.config.assets.precompile += %w( dojo/** management.css imagine_controls.css reset.css )
|
11
|
+
Rails.application.config.assets.precompile += ["codemirror*", "codemirror/**/*"]
|
11
12
|
# Rails.application.config.load_paths << File.dirname(__FILE__) + "/../app/helpers"
|
12
13
|
end
|
13
14
|
|
@@ -36,16 +37,19 @@ module ImagineCms
|
|
36
37
|
require 'rails-observers'
|
37
38
|
require 'actionpack/action_caching'
|
38
39
|
require 'actionpack/page_caching'
|
39
|
-
require 'non-stupid-digest-assets'
|
40
|
-
require 'prototype-rails'
|
41
40
|
require 'aws-sdk'
|
42
|
-
require 'RMagick'
|
43
|
-
require 'mini_magick'
|
44
41
|
require 'zip'
|
45
42
|
require 'rails_rinku'
|
46
|
-
require 'net/dns'
|
47
|
-
require 'acts_as_tree'
|
48
43
|
require 'safe_yaml'
|
44
|
+
require 'acts_as_tree'
|
45
|
+
require 'net/dns'
|
46
|
+
require 'codemirror-rails'
|
47
|
+
|
48
|
+
# on the way out, but still needed for now
|
49
|
+
require 'prototype-rails'
|
50
|
+
require 'RMagick'
|
51
|
+
require 'mini_magick'
|
52
|
+
require 'non-stupid-digest-assets'
|
49
53
|
|
50
54
|
#
|
51
55
|
# rails plugins
|
@@ -86,7 +90,7 @@ module ImagineCms
|
|
86
90
|
|
87
91
|
helper_method :user_has_permission?
|
88
92
|
helper_method :user_has_permissions?
|
89
|
-
helper_method :insert_object
|
93
|
+
helper_method :insert_object, :text_editor, :texteditor, :page_list, :pagelist, :snippet
|
90
94
|
|
91
95
|
# before_filter :create_settings_object, :set_default_session_values, :check_ssl_requirement, :expire_session_data
|
92
96
|
before_filter :expire_session_data
|
data/lib/imagine_cms/version.rb
CHANGED
@@ -175,7 +175,7 @@ module PrototypeHelper
|
|
175
175
|
# { :update => "posts", :url => { :action => "destroy", :id => post.id } },
|
176
176
|
# :href => url_for(:action => "destroy", :id => post.id)
|
177
177
|
def link_to_remote(name, options = {}, html_options = nil)
|
178
|
-
link_to_function(name, remote_function(options), html_options || options.delete(:html))
|
178
|
+
link_to_function(name, remote_function(options), html_options || options.delete(:html)).gsub('&amp;', '&').html_safe
|
179
179
|
end
|
180
180
|
|
181
181
|
# Returns a form tag that will submit using XMLHttpRequest in the
|
@@ -219,7 +219,7 @@ module PrototypeHelper
|
|
219
219
|
(options[:html][:onsubmit] ? options[:html][:onsubmit] + "; " : "") +
|
220
220
|
"#{remote_function(options)}; return false;"
|
221
221
|
|
222
|
-
form_tag(options[:html].delete(:action) || url_for(options[:url]), options[:html], &block)
|
222
|
+
form_tag(options[:html].delete(:action) || url_for(options[:url]), options[:html], &block).gsub('&amp;', '&').html_safe
|
223
223
|
end
|
224
224
|
|
225
225
|
# Creates a form that will submit using XMLHttpRequest in the background
|
@@ -20,4 +20,12 @@ namespace :imagine_cms do
|
|
20
20
|
|
21
21
|
end
|
22
22
|
|
23
|
+
desc "Copy dojo editor files to public"
|
24
|
+
task :install_dojo => :environment do
|
25
|
+
sourcedir = File.expand_path('../../../app/assets/javascripts/dojo', __FILE__)
|
26
|
+
targetdir = File.expand_path(File.join(Rails.root, 'public', 'assets'))
|
27
|
+
FileUtils.mkdir_p targetdir
|
28
|
+
FileUtils.cp_r sourcedir, targetdir
|
29
|
+
end
|
30
|
+
|
23
31
|
end
|