imagine_cms 3.0.19 → 3.0.20

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.
@@ -455,9 +455,11 @@ var cbColWidthFull = 202;
455
455
 
456
456
  function cbAddColumn() {
457
457
  var currentWidth = parseInt($('columnBrowser').style.width, 10);
458
- if (currentWidth < ((cbNumColumns+1) * cbColWidthFull)) $('columnBrowser').style.width = '' + ((cbNumColumns+1) * cbColWidthFull) + 'px';
458
+ // if (currentWidth < ((cbNumColumns+1) * cbColWidthFull)) {
459
+ $('columnBrowser').style.width = '' + ((cbNumColumns+1) * cbColWidthFull) + 'px';
460
+ $('columnBrowserContainer').scrollLeft = $('columnBrowserContainer').scrollWidth;
461
+ // }
459
462
  $('columnBrowser').innerHTML += "<div id=\"columnBrowserLevel" + cbNumColumns + "\" style=\"width: " + cbColWidth + "; height: " + cbColHeight + "; overflow: auto; float: left; border-width: " + cbBorderWidth + " " + cbBorderWidth + " " + cbBorderWidth + " " + (cbNumColumns == 0 ? cbBorderWidth : '0') + "; border-style: solid; border-color: gray;\">Loading...</div>";
460
- $('columnBrowserLevel' + cbNumColumns).scrollIntoView();
461
463
  cbNumColumns++;
462
464
  }
463
465
 
@@ -495,7 +497,7 @@ function cbSelectItem(el, currentLevel, urlForNextLevel) {
495
497
 
496
498
  cbAddColumn();
497
499
  el = $(el.id);
498
- new Ajax.Updater('columnBrowserLevel' + (currentLevel+1), urlForNextLevel, {asynchronous:true, evalScripts:true});
500
+ new Ajax.Updater('columnBrowserLevel' + (currentLevel+1), urlForNextLevel, {method: 'GET', asynchronous:true, evalScripts:true});
499
501
 
500
502
  setScrollbarPosition(el.parentNode, coords);
501
503
  }
@@ -0,0 +1,38 @@
1
+ /** auto complete **/
2
+
3
+ div.auto_complete {
4
+ width: 350px;
5
+ background: #fff;
6
+ }
7
+ div.auto_complete ul {
8
+ border: 1px solid #888;
9
+ margin: 0;
10
+ padding: 0;
11
+ width: 100%;
12
+ list-style-type: none;
13
+ }
14
+ div.auto_complete ul li {
15
+ margin: 0;
16
+ padding: 3px;
17
+ }
18
+ div.auto_complete ul li.selected {
19
+ background-color: #ffb;
20
+ }
21
+ div.auto_complete ul strong.highlight {
22
+ color: #800;
23
+ margin: 0;
24
+ padding: 0;
25
+ }
26
+
27
+
28
+ /** column browser **/
29
+
30
+ .cb_item {
31
+ color: black;
32
+ padding-left: 2px;
33
+ }
34
+
35
+ .cb_item.cb_item_selected {
36
+ color: white;
37
+ background-color: #506D91;
38
+ }
@@ -1,3 +1,7 @@
1
+ /*
2
+ *= require imagine_controls
3
+ */
4
+
1
5
  /* From Eric Meyer, Web coding guru, at http://meyerweb.com/eric/tools/css/reset/ */
2
6
  /*
3
7
  Any style rule denoted with [+] has been added.
@@ -94,58 +98,31 @@ img { display: inline; border: none; margin: 0; padding: 0; }
94
98
 
95
99
  .clearer { clear: both; line-height: 0; height: 0; }
96
100
 
97
- #management-content ul { list-style-type: disc; list-style-position: outside; margin: 0 0 15px 20px; }
98
- #management-content ol { list-style-type: decimal; list-style-position: outside; margin: 0 0 15px 20px; }
99
-
100
101
 
102
+ .form {
103
+ font-size: 12px; line-height: 14px;
104
+ color: #000;
105
+ text-decoration: none;
106
+ text-indent: 0;
107
+ background-color: #ffffff;
108
+ margin: 0px;
109
+ padding: 3px 2px 3px 3px;
110
+ border: solid 1px #A4A4A4;
111
+ }
112
+ select.form {
113
+ padding: 3px 3px 3px 3px;
114
+ }
101
115
  .form_button {
102
116
  margin: 0;
103
- font-size: 11px;
117
+ font-size: 12px; line-height: 14px;
104
118
  color: #ffffff;
105
119
  text-decoration: none;
106
120
  text-indent: 0;
107
121
  background-color: #333;
108
122
  }
109
123
 
110
- /** auto complete **/
111
-
112
- div.auto_complete {
113
- width: 350px;
114
- background: #fff;
115
- }
116
- div.auto_complete ul {
117
- border: 1px solid #888;
118
- margin: 0;
119
- padding: 0;
120
- width: 100%;
121
- list-style-type: none;
122
- }
123
- div.auto_complete ul li {
124
- margin: 0;
125
- padding: 3px;
126
- }
127
- div.auto_complete ul li.selected {
128
- background-color: #ffb;
129
- }
130
- div.auto_complete ul strong.highlight {
131
- color: #800;
132
- margin: 0;
133
- padding: 0;
134
- }
135
-
136
-
137
- /** column browser **/
138
-
139
- .cb_item {
140
- color: black;
141
- padding-left: 2px;
142
- }
143
-
144
- .cb_item_selected {
145
- color: white;
146
- background-color: #506D91;
147
- }
148
-
124
+ #management-content ul { list-style-type: disc; list-style-position: outside; margin: 0 0 15px 20px; }
125
+ #management-content ol { list-style-type: decimal; list-style-position: outside; margin: 0 0 15px 20px; }
149
126
 
150
127
  table.imagine-management tr:hover { background-color: #fff8c6; }
151
128
  table.imagine-management th { background-color: #dedede; text-transform: uppercase; }
@@ -173,7 +173,7 @@ class Management::CmsController < Management::ApplicationController # :nodoc:
173
173
  @pg.template ||= @parent.template
174
174
  end
175
175
 
176
- @attrs = CmsPageObject.find(:all, :conditions => [ "obj_type = 'attribute'" ], :order => 'name').map { |attr| attr.name }.uniq
176
+ @attrs = CmsPageObject.where(:obj_type => 'attribute').uniq.pluck(:name).sort
177
177
 
178
178
  if params[:mode] == 'ajax_new' || params[:mode] == 'ajax_edit'
179
179
  @pg.published_version = -1 if params[:mode] == 'ajax_new'
@@ -186,24 +186,16 @@ class Management::CmsController < Management::ApplicationController # :nodoc:
186
186
  params[:pg] ||= {}
187
187
 
188
188
  if params[:pg][:article_date_year]
189
- params[:pg][:article_date] = Time.utc(params[:pg].delete(:article_date_year),
190
- params[:pg].delete(:article_date_month),
191
- params[:pg].delete(:article_date_day))
189
+ params[:pg][:article_date] = Time.zone.parse("#{params[:pg].delete(:article_date_year)}-#{params[:pg].delete(:article_date_month)}-#{params[:pg].delete(:article_date_day)}")
192
190
  end
193
191
  if params[:pg][:article_end_date_year]
194
- params[:pg][:article_end_date] = Time.utc(params[:pg].delete(:article_end_date_year),
195
- params[:pg].delete(:article_end_date_month),
196
- params[:pg].delete(:article_end_date_day))
192
+ params[:pg][:article_end_date] = Time.zone.parse("#{params[:pg].delete(:article_end_date_year)}-#{params[:pg].delete(:article_end_date_month)}-#{params[:pg].delete(:article_end_date_day)}")
197
193
  end
198
194
  if params[:pg][:published_date_year]
199
- params[:pg][:published_date] = Time.utc(params[:pg].delete(:published_date_year),
200
- params[:pg].delete(:published_date_month),
201
- params[:pg].delete(:published_date_day))
195
+ params[:pg][:published_date] = Time.zone.parse("#{params[:pg].delete(:published_date_year)}-#{params[:pg].delete(:published_date_month)}-#{params[:pg].delete(:published_date_day)}")
202
196
  end
203
197
  if params[:pg][:expires]
204
- date = Time.utc(params[:pg].delete(:expiration_date_year),
205
- params[:pg].delete(:expiration_date_month),
206
- params[:pg].delete(:expiration_date_day))
198
+ date = Time.zone.parse("#{params[:pg].delete(:expiration_date_year)}-#{params[:pg].delete(:expiration_date_month)}-#{params[:pg].delete(:expiration_date_day)}")
207
199
  params[:pg][:expiration_date] = date if params[:pg][:expires] == 'true'
208
200
  end
209
201
 
@@ -218,36 +210,43 @@ class Management::CmsController < Management::ApplicationController # :nodoc:
218
210
 
219
211
  if @pg.send(save_function)
220
212
  # now try to save tags
221
- begin
222
- tags_to_delete = @pg.tags
223
- params[:tags].split(',').map { |t| t.strip }.reject { |t| t.blank? }.compact.each do |t|
224
- @pg.tags.create(:name => t) unless @pg.tags.find_by_name(t)
225
- tags_to_delete.reject! { |tag| tag.name == t }
213
+ # begin
214
+ existing_tags = @pg.tags.map(&:name)
215
+ tags_to_delete = @pg.tags.all
216
+ params[:tags].split(',').map(&:strip).reject(&:blank?).each do |t|
217
+ if existing_tags.include?(t)
218
+ # still in use, don't delete
219
+ tags_to_delete.reject! { |tag| tag.name == t }
220
+ else
221
+ # doesn't exist, create
222
+ @pg.tags.create(:name => t)
223
+ end
226
224
  end
227
225
  tags_to_delete.each { |t| t.destroy }
228
- rescue Exception => e
229
- logger.debug e
230
- end
226
+ # rescue Exception => e
227
+ # logger.debug e
228
+ # end
231
229
 
232
230
  # now try to save page objects (just attributes in this case)
233
- begin
234
- objects_to_delete = @pg.objects.find(:all, :conditions => [ "obj_type = 'attribute' or obj_type = 'option'" ])
231
+ # begin
232
+ objects_to_delete = @pg.objects.where("obj_type = 'attribute' or obj_type = 'option'").all
235
233
 
236
234
  (params[:page_objects] || {}).each do |key,val|
237
- next if key.blank? || val.blank?
235
+ next if val.blank?
238
236
 
239
- key =~ /^obj-(\w+?)-(.+?)$/
240
- obj = @pg.objects.find(:first, :conditions => [ "name = ? and obj_type = ?", $2, $1 ])
241
- obj ||= @pg.objects.build(:name => $2, :obj_type => $1)
242
- obj.content = val
243
- obj.save
244
- objects_to_delete.reject! { |obj| obj.name == $2 }
237
+ if key =~ /^obj-(\w+?)-(.+?)$/
238
+ obj = @pg.objects.where(:name => $2, :obj_type => $1).first
239
+ obj ||= @pg.objects.build(:name => $2, :obj_type => $1)
240
+ obj.content = val
241
+ obj.save
242
+ objects_to_delete.reject! { |obj| obj.name == $2 }
243
+ end
245
244
  end
246
245
 
247
246
  objects_to_delete.each { |t| t.destroy }
248
- rescue Exception => e
249
- logger.debug e
250
- end
247
+ # rescue Exception => e
248
+ # logger.debug e
249
+ # end
251
250
 
252
251
  render :update do |page|
253
252
  case params[:return_to]
@@ -291,7 +290,7 @@ class Management::CmsController < Management::ApplicationController # :nodoc:
291
290
  end
292
291
 
293
292
  def select_page
294
- @page_levels = [ '' ].concat((params[:path] || session[:cms_pages_path] || '').split('/').reject { |l| l.empty? })
293
+ @page_levels = [ '' ].concat((params[:path].blank? ? session[:cms_pages_path] : params[:path]).to_s.split('/').reject { |l| l.blank? })
295
294
  @page_levels << ''
296
295
  @path = ''
297
296
  @page = nil
@@ -368,7 +367,7 @@ class Management::CmsController < Management::ApplicationController # :nodoc:
368
367
  elsif request.post?
369
368
  CmsPage.transaction do
370
369
  # need to revise this later if we implement deletion of page objects
371
- old_objs = @pg.objects.find(:all, :conditions => [ 'cms_page_version = ?', @pg.version ])
370
+ old_objs = @pg.objects.where(:cms_page_version => @pg.version).all
372
371
 
373
372
  @pg.updated_by = session[:user_id]
374
373
  @pg.updated_by_username = session[:user_username]
@@ -395,7 +394,8 @@ class Management::CmsController < Management::ApplicationController # :nodoc:
395
394
  # optimize source lists: tags
396
395
  if @page_objects["#{key}-sources-tag-count"].to_i > 0
397
396
  tags = []
398
- for i in 0...@page_objects["#{key}-sources-tag-count"].to_i
397
+ @page_objects["#{key}-sources-tag-count"].to_i.times do |i|
398
+ logger.debug "Adding tag: #{@page_objects["#{key}-sources-tag#{i}"]}"
399
399
  tags << @page_objects["#{key}-sources-tag#{i}"]
400
400
  end
401
401
  tags.reject! { |tag| tag.blank? }
@@ -404,10 +404,12 @@ class Management::CmsController < Management::ApplicationController # :nodoc:
404
404
  @page_objects["#{key}-sources-tag#{i}"] = tag
405
405
  end
406
406
  end
407
+
407
408
  # optimize source lists: folders
408
409
  if @page_objects["#{key}-sources-folder-count"].to_i > 0
409
410
  folders = []
410
- for i in 0...@page_objects["#{key}-sources-folder-count"].to_i
411
+ @page_objects["#{key}-sources-folder-count"].to_i.times do |i|
412
+ logger.debug "Adding folder: #{@page_objects["#{key}-sources-folder#{i}"]}"
411
413
  folders << @page_objects["#{key}-sources-folder#{i}"]
412
414
  end
413
415
  folders.reject! { |folder| folder.blank? }
@@ -526,7 +528,7 @@ class Management::CmsController < Management::ApplicationController # :nodoc:
526
528
  end
527
529
 
528
530
  def page_attributes_for_lookup
529
- @attrs = CmsPageObject.find(:all, :conditions => [ "obj_type = 'attribute'" ], :order => 'name').map { |attr| attr.name }.uniq
531
+ @attrs = CmsPageObject.where(:obj_type => 'attribute').uniq.pluck(:name).sort
530
532
  headers['content-type'] = 'text/javascript'
531
533
  render :layout => false
532
534
  end
@@ -14,7 +14,7 @@ class CmsContentSweeper < ActionController::Caching::Sweeper
14
14
  expire_page :controller => 'cms/content', :action => 'show', :content_path => nil
15
15
 
16
16
  # expire all other pages
17
- CmsPage.find_each do |page|
17
+ CmsPage.select([ :id, :path ]).find_each do |page|
18
18
  expire_page :controller => 'cms/content', :action => 'show', :content_path => page.path.split('/')
19
19
  end
20
20
  end
@@ -9,7 +9,7 @@
9
9
  <div>
10
10
  <div id="page_browser" style="height: 220px; padding-top: 10px; margin-bottom: 8px;">Loading...</div>
11
11
 
12
- <input id="page_browser_selection" type="text" class="form" style="width: 420px" />
12
+ <input id="page_browser_selection" type="text" class="form" style="width: 416px; padding: 2px;" />
13
13
  <button onclick="closePageBrowser(); return false;" class="form" style="width: 70px">Select</button>
14
14
  </div>
15
15
  </div>
@@ -1,4 +1,5 @@
1
1
  <%- if params[:action] != 'preview_template' -%>
2
+ <%= stylesheet_link_tag "imagine_controls" %>
2
3
  <style type="text/css">
3
4
  #mainCCSToolbar { font-family: Arial; font-size: 12px; font-weight: normal; text-transform: none; line-height: 1.2; color: black; }
4
5
  #mainCCSToolbar a { text-transform: none; font-weight: normal; color: black; }
@@ -21,8 +21,8 @@
21
21
  <script src="/assets/dojo/dojo.js" type="text/javascript"></script>
22
22
  <script src="/assets/codepress/codepress.js" type="text/javascript"></script>
23
23
  <%- end -%>
24
- <%= stylesheet_link_tag "application", :media => "all" %>
25
- <%= stylesheet_link_tag "management", :media => "all" %>
24
+ <%= stylesheet_link_tag "application", :media => "all" %>
25
+ <%= stylesheet_link_tag "management", :media => "all" %>
26
26
  <%= javascript_include_tag "application" %>
27
27
  <%= csrf_meta_tag %>
28
28
  </head>
@@ -1,4 +1,4 @@
1
- <div id="<%= "cb_item_#{list_page.id}" %>" class="cb_item" style="width: 148px; overflow: hidden; margin: 2px; float: left; cursor: pointer" onclick="$('view_link').href = '<%= list_page.path.blank? ? '' : '/' + list_page.path %>/version/<%= list_page.published_version > 0 ? list_page.published_version : list_page.version %>'; $('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; }; $('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; }; $('edit_content_link').href = '<%=raw url_for :action => 'edit_page_content', :id => list_page, :authenticity_token => form_authenticity_token.to_s %>'; $('delete_form').action = '<%=raw url_for :action => 'delete_page', :id => list_page.id, :authenticity_token => form_authenticity_token.to_s %>'; setTimeout('cbSelectItem(\'' + this.id + '\', <%= @page_level %>, \'<%=raw url_for :action => 'list_pages', :level => @page_level + 1, :parent_id => list_page.id, :authenticity_token => form_authenticity_token.to_s %>\');', 200);" ondblclick="$('edit_content_form').onsubmit(); $('edit_content_form').submit();">
1
+ <div id="<%= "cb_item_#{list_page.id}" %>" class="cb_item" style="width: 148px; overflow: hidden; margin: 2px; float: left; cursor: pointer" onclick="$('view_link').href = '<%= list_page.path.blank? ? '' : '/' + list_page.path %>/version/<%= list_page.published_version > 0 ? list_page.published_version : list_page.version %>'; $('new_link').onclick = function () { editProperties('<%=raw url_for :action => 'edit_page', :mode => 'ajax_new', :parent_id => list_page %>', 'Create New Page under /<%= list_page.path %>'); return false; }; $('edit_link').onclick = function () { editProperties('<%=raw url_for :action => 'edit_page', :id => list_page, :mode => 'ajax_edit' %>', 'Page Properties: <%= list_page.name %>'); return false; }; $('edit_content_link').href = '<%=raw url_for :action => 'edit_page_content', :id => list_page %>'; $('delete_form').action = '<%=raw url_for :action => 'delete_page', :id => list_page.id %>'; setTimeout('cbSelectItem(\'' + this.id + '\', <%= @page_level %>, \'<%=raw url_for :action => 'list_pages', :level => @page_level + 1, :parent_id => list_page.id %>\');', 200);" ondblclick="$('edit_content_form').onsubmit(); $('edit_content_form').submit();">
2
2
  <table cellpadding="0" cellspacing="0" border="0">
3
3
  <tr>
4
4
  <td valign="top"><img src="/assets/management/icon_page.gif" style="margin: 2px 5px 0 0; "/></td>
@@ -1,8 +1,8 @@
1
- <div id="<%= "cb_item_#{list_page_select.id}" %>" class="cb_item" style="width: 148px; overflow: hidden; margin: 2px; float: left; cursor: pointer" onclick="$('page_browser_selection').value = '/<%= list_page_select.path %>'; setTimeout('cbSelectItem(\'' + this.id + '\', <%= @page_level %>, \'<%=raw url_for :action => 'list_pages_select', :level => @page_level + 1, :parent_id => list_page_select.id, :authenticity_token => form_authenticity_token.to_s %>\');', 200);" ondblclick="">
1
+ <div id="<%= "cb_item_#{list_page_select.id}" %>" class="cb_item" style="width: 148px; overflow: hidden; margin: 2px; float: left; cursor: pointer" onclick="$('page_browser_selection').value = '/<%= list_page_select.path %>'; setTimeout('cbSelectItem(\'' + this.id + '\', <%= @page_level %>, \'<%=raw url_for :action => 'list_pages_select', :level => @page_level + 1, :parent_id => list_page_select.id %>\');', 200);" ondblclick="return false;">
2
2
  <table cellpadding="0" cellspacing="0" border="0">
3
3
  <tr>
4
4
  <td valign="top"><img src="/assets/management/icon_page.gif" style="margin: 2px 5px 0 0; "/></td>
5
- <td<%= list_page_select.published_version >= 0 ? '' : ' style="color: gray"' %>><%= list_page_select.name %></td>
5
+ <td<%= list_page_select.published_version >= 0 ? '' : ' style="color: gray"'.html_safe %>><%= list_page_select.name %></td>
6
6
  </tr>
7
7
  </table>
8
8
  </div>
@@ -13,14 +13,18 @@
13
13
  Select folders and/or tags to indicate which content to pull into this list.
14
14
 
15
15
  <div id="page_list_<%= key %>-source-list" style="margin: 10px;">
16
- <%- for i in 0...@page_objects["#{key}-sources-folder-count"].to_i -%>
16
+ <%- @page_objects["#{key}-sources-folder-count"].to_i.times do |i| -%>
17
17
  <%= render :partial => 'page_list_source_folder', :locals => { :i => i, :key => key } %>
18
18
  <%- end -%>
19
- <%- for i in 0...@page_objects["#{key}-sources-tag-count"].to_i -%>
19
+ <%- @page_objects["#{key}-sources-tag-count"].to_i.times do |i| -%>
20
20
  <%= render :partial => 'page_list_source_tag', :locals => { :i => i, :key => key } %>
21
21
  <%- end -%>
22
- <%= text_field(:page_objects, "#{key}-sources-tag-count", :style => 'display: none') %>
23
- <%= text_field(:page_objects, "#{key}-sources-folder-count", :style => 'display: none') %>
22
+ <%-
23
+ @page_objects["#{key}-sources-tag-count"] ||= 0
24
+ @page_objects["#{key}-sources-folder-count"] ||= 0
25
+ -%>
26
+ <%= text_field(:page_objects, "#{key}-sources-tag-count", :style => 'display: none;') %>
27
+ <%= text_field(:page_objects, "#{key}-sources-folder-count", :style => 'display: none;') %>
24
28
  </div>
25
29
 
26
30
  <table>
@@ -1,5 +1,5 @@
1
1
  <%-
2
- i ||= 0
2
+ i = 0 if i.blank?
3
3
  @page_objects["#{key}-sources-folder#{i}-expand-folders"] ||= 'true' if @page_objects
4
4
  -%>
5
5
  <div style="border: 1px solid #f0f0f0;">
@@ -8,13 +8,13 @@
8
8
  <tr>
9
9
  <td valign="top">Folder <%= i.to_i + 1 %>:</td>
10
10
  <td>
11
- <%= text_field(:page_objects, "#{key}-sources-folder#{i}", :class => 'form', :style => 'margin: 0; border: 1px solid gray; width: 100%;') %><br/>
11
+ <%= text_field(:page_objects, "#{key}-sources-folder#{i}", :class => 'form', :style => 'margin: 0; padding: 2px; border: 1px solid gray; width: 98%;') %><br/>
12
12
  <%= check_box(:page_objects, "#{key}-sources-folder#{i}-expand-folders", { :class => 'form', :style => '' }, 'true', 'false') %>
13
13
  <label for="page_objects_<%= key %>-sources-folder<%= i %>-expand-folders">
14
14
  Include pages within subfolders
15
15
  </label>
16
16
  </td>
17
- <td><button class="form_button" onclick="showPageBrowser('<%= "page_objects_#{key}-sources-folder#{i}" %>'); return false;">Select...</button></td>
17
+ <td valign="top"><button class="form_button" onclick="showPageBrowser('<%= "page_objects_#{key}-sources-folder#{i}" %>'); return false;">Select...</button></td>
18
18
  </tr>
19
19
  </table>
20
20
  </div>
@@ -1,4 +1,4 @@
1
- <% i ||= 0 %>
1
+ <%- i = 0 if i.blank? -%>
2
2
  <div style="border: 1px solid #f0f0f0;">
3
3
  <table width="100%">
4
4
  <col width="70" /><col width="*" /><col width="80" />
@@ -54,4 +54,4 @@ EOF
54
54
  <% end -%>
55
55
  </div>
56
56
  </div>
57
- <%= javascript_tag "cbNumColumns = #{@page_levels.size - 1}; try { $('columnBrowserLevel' + cbNumColumns).scrollIntoView(); } catch (e) {}; $('page_browser_selection').value = '/#{@page.path}';" %>
57
+ <%= javascript_tag "cbNumColumns = #{@page_levels.size - 1}; try { $('columnBrowserContainer').scrollLeft = $('columnBrowserContainer').scrollWidth; } catch (e) {}; $('page_browser_selection').value = '/#{@page.path}';" %>
@@ -1,3 +1,3 @@
1
1
  module ImagineCms
2
- VERSION = "3.0.19"
2
+ VERSION = "3.0.20"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imagine_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.19
4
+ version: 3.0.20
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -330,6 +330,7 @@ files:
330
330
  - app/assets/stylesheets/codepress/languages/sql.css
331
331
  - app/assets/stylesheets/codepress/languages/text.css
332
332
  - app/assets/stylesheets/cropper.css
333
+ - app/assets/stylesheets/imagine_controls.css
333
334
  - app/assets/stylesheets/management.css
334
335
  - app/controllers/cms/content_controller.rb
335
336
  - app/controllers/management/application_controller.rb