imagine_cms 5.2.0 → 5.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Dockerfile +16 -42
- data/README.md +28 -11
- data/app/assets/javascripts/dojo/dojo.js +1 -1
- data/app/assets/javascripts/dojo/src/widget/templates/richtextframe.html +3 -0
- data/app/assets/javascripts/imagine_cms/core.js +31 -40
- data/app/assets/stylesheets/imagine_cms.css.scss +15 -7
- data/app/assets/stylesheets/imagine_controls.css.scss +45 -2
- data/app/controllers/cms/content_controller.rb +2 -2
- data/app/controllers/manage/cms_pages_controller.rb +34 -25
- data/app/helpers/cms_application_helper.rb +27 -27
- data/app/helpers/cms_custom_helper.rb +13 -0
- data/app/mailers/imagine_cms_mailer.rb +1 -1
- data/app/views/imagine_cms/_dialogs.html.erb +3 -3
- data/app/views/imagine_cms/_header.html.erb +8 -8
- data/app/views/imagine_cms_mailer/request_review.text.erb +0 -2
- data/app/views/layouts/management.html.erb +5 -4
- data/app/views/manage/cms_pages/_create_file_link.html.erb +16 -3
- data/app/views/manage/cms_pages/_crop_feature_image.html.erb +1 -1
- data/app/views/manage/cms_pages/_crop_image.html.erb +31 -29
- data/app/views/manage/cms_pages/_crop_thumb.html.erb +1 -1
- data/app/views/manage/cms_pages/_edit_page.html.erb +18 -4
- data/app/views/manage/cms_pages/_list_page.html.erb +28 -7
- data/app/views/manage/cms_pages/_list_page_select.html.erb +17 -7
- data/app/views/manage/cms_pages/_list_pages.html.erb +1 -1
- data/app/views/manage/cms_pages/_list_pages_select.html.erb +1 -1
- data/app/views/manage/cms_pages/_page_list.html.erb +5 -5
- data/app/views/manage/cms_pages/_page_list_source_tag.html.erb +6 -2
- data/app/views/manage/cms_pages/_upload_feature_image.html.erb +51 -11
- data/app/views/manage/cms_pages/_upload_file.html.erb +2 -2
- data/app/views/manage/cms_pages/_upload_image.html.erb +95 -23
- data/app/views/manage/cms_pages/_upload_thumb.html.erb +51 -11
- data/app/views/manage/cms_pages/gallery_management.html.erb +1 -1
- data/app/views/manage/cms_pages/index.html.erb +36 -35
- data/app/views/manage/cms_pages/select_page.html.erb +39 -39
- data/app/views/manage/cms_pages/toolbar_preview.html.erb +1 -1
- data/app/views/management/users/index.html.erb +1 -1
- data/docker-compose.override.yml.example +6 -19
- data/docker-compose.yml +5 -7
- data/docker/conf/{nginx-vhost.conf → nginx-vhost.conf.template} +3 -3
- data/docker/services/{memcached.sh → memcached} +0 -0
- data/docker/services/{sidekiq.sh → sidekiq} +0 -0
- data/docker/services/{webpack.sh → webpack} +0 -0
- data/lib/extensions/action_controller_extensions.rb +18 -17
- data/lib/imagine_cms/engine.rb +1 -0
- data/lib/imagine_cms/version.rb +1 -1
- data/lib/upload_progress/lib/multipart_progress.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6395698e5fa9fccc7b7ae4d5178857dcd5678084505cc4df08da0a9f1ab23517
|
4
|
+
data.tar.gz: ef698c30a3234bb349183c084ea98dd2524e518b62270c5f18507b7631ad470e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0afe6cdfe911f124645fa829ea9e0c90c702261fefba1d49b86826adec69a15ae0c5909230cb349a26b21c51d6dc503b58949b933e4c4b7546937960d4ab2c54
|
7
|
+
data.tar.gz: 789fdb963f54155a91a74728e4ca0be2e7a75adaba77d8bf7e7a9a62e897b0fe9fa472c93790c74cca5dc5c68c449a1ee797cd9b5f92dcb57471afbc855c6c1d
|
data/Dockerfile
CHANGED
@@ -1,61 +1,35 @@
|
|
1
1
|
### Docker image for imagine5 ###
|
2
2
|
|
3
|
-
# See https://
|
4
|
-
FROM
|
5
|
-
LABEL maintainer="
|
3
|
+
# See https://hub.docker.com/r/anamba/rails-dev/tags/ for a list of tags
|
4
|
+
FROM anamba/rails-dev:1.2.0
|
5
|
+
LABEL maintainer="bbsoftware@biggerbird.com"
|
6
6
|
|
7
|
-
#
|
8
|
-
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
|
9
|
-
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
|
10
|
-
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list
|
11
|
-
|
12
|
-
# Update package list
|
7
|
+
# Update package list and upgrade pre-installed packages
|
13
8
|
RUN apt-get update
|
14
|
-
|
15
|
-
# Upgrade other preinstalled packages
|
16
9
|
RUN apt-get upgrade -y -o Dpkg::Options::="--force-confnew"
|
17
10
|
|
18
11
|
# Install other packages we depend on
|
19
|
-
RUN apt-get install -y
|
20
|
-
RUN apt-get install -y
|
21
|
-
RUN apt-get install -y mysql-client
|
12
|
+
# RUN apt-get install -y mysql-client
|
13
|
+
RUN apt-get install -y memcached
|
22
14
|
RUN apt-get install -y libmagickcore-dev libmagickwand-dev # for rmagick2 gem
|
23
15
|
RUN apt-get install -y imagemagick # for mini-magick gem
|
24
|
-
RUN apt-get install -y openjdk-8-jre-headless
|
25
|
-
RUN apt-get install -y memcached # for rack-attack and rails cache
|
26
|
-
RUN apt-get install -y cmake pkg-config # for rugged (git)
|
16
|
+
# RUN apt-get install -y openjdk-8-jre-headless # java for fop (rarely used; add to your own Dockerfile if you need it)
|
27
17
|
RUN apt-get autoremove -y
|
28
18
|
|
29
|
-
#
|
30
|
-
RUN rm -
|
19
|
+
# apt clean up
|
20
|
+
RUN apt-get clean && rm -rf /tmp/* /var/tmp/*
|
21
|
+
# RUN rm -rf /var/lib/apt/lists/*
|
31
22
|
|
32
|
-
# Add custom
|
33
|
-
|
34
|
-
COPY docker/services/memcached.sh /etc/service/memcached/run
|
35
|
-
# RUN mkdir /etc/service/sidekiq
|
36
|
-
# COPY docker/services/sidekiq.sh /etc/service/sidekiq/run
|
37
|
-
# RUN mkdir /etc/service/webpack
|
38
|
-
# COPY docker/services/webpack.sh /etc/service/webpack/run
|
39
|
-
|
40
|
-
# Other startup scripts
|
41
|
-
RUN mkdir -p /etc/my_init.d
|
42
|
-
COPY docker/startup/101_mkdir.sh /etc/my_init.d/
|
43
|
-
COPY docker/startup/201_bundler.sh /etc/my_init.d/
|
44
|
-
COPY docker/startup/211_yarn.sh /etc/my_init.d/
|
23
|
+
# Add custom vhost
|
24
|
+
COPY /docker/conf/nginx-vhost.conf.template /etc/nginx/
|
45
25
|
|
46
26
|
# Remove the default vhost (so that ours will respond to any Host)
|
47
27
|
RUN rm -f /etc/nginx/sites-enabled/default
|
48
28
|
|
49
|
-
#
|
50
|
-
RUN
|
51
|
-
|
52
|
-
|
53
|
-
# Expose port 80 to the Docker host, so we can access it from the outside (remember to publish it using `docker run -p`).
|
54
|
-
EXPOSE 80
|
29
|
+
# Add custom services
|
30
|
+
RUN mkdir -p /etc/service/memcached
|
31
|
+
RUN rm -f /etc/service/memcached/down
|
32
|
+
COPY docker/services/memcached /etc/service/memcached/run
|
55
33
|
|
56
34
|
# For convenience
|
57
|
-
WORKDIR /home/app/myapp
|
58
35
|
COPY docker/conf/.my.cnf /home/app
|
59
|
-
|
60
|
-
# Run this to start all services (if no command was provided to `docker run`)
|
61
|
-
CMD ["/sbin/my_init"]
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Imagine CMS
|
1
|
+
# Imagine 5 - Rails-powered CMS
|
2
2
|
|
3
3
|
[![Version](https://img.shields.io/github/tag/anamba/imagine_cms.svg?maxAge=360)](https://github.com/anamba/imagine_cms/releases/latest)
|
4
4
|
[![License](https://img.shields.io/github/license/anamba/imagine_cms.svg)](https://github.com/anamba/imagine_cms/blob/master/license.txt)
|
@@ -7,15 +7,21 @@
|
|
7
7
|
Imagine CMS is a web content management system developed by [Bigger Bird Creative, Inc.](https://biggerbird.com) in 2006 for its clients.
|
8
8
|
Other CMSes came with a learning curve: not a problem for daily users, but clients who only used it once a month or so would forget everything by the next time they logged in.
|
9
9
|
Simpler systems didn't have enough functionality to allow us to do what we wanted to do as designers and developers.
|
10
|
-
Thus, we created a CMS that is easy for clients to use, stays out of our way, and provides useful automation (publishing and unpublishing on a schedule, navigation links, RSS feeds, etc.).
|
10
|
+
Thus, we created a CMS that is easy for clients to use, stays out of our way, and provides useful automation (lists, publishing and unpublishing on a schedule, navigation links, RSS feeds, etc.).
|
11
11
|
|
12
12
|
## Current Status
|
13
13
|
|
14
|
-
Imagine
|
14
|
+
[Imagine 6](https://github.com/ImagineCMS/imagine_cms) (Elixir-based) is use in production.
|
15
15
|
|
16
|
-
|
16
|
+
Imagine 5 (this repo) is in use in production, but is being wound down in favor of Imagine 6.
|
17
17
|
|
18
|
-
Imagine
|
18
|
+
Imagine 4 (v4.2-stable branch) is available for apps tied to Rails 4.2, but is no longer actively maintained.
|
19
|
+
|
20
|
+
Imagine 3 (v3.0-stable branch) is available for apps tied to Rails 3.x, but is no longer actively maintained.
|
21
|
+
|
22
|
+
Unless you are already familiar with Imagine, this project is not suitable for wider use. Why? Well, the reason this version of Imagine is published on Github is to ensure that if something happens to Bigger Bird, our clients will not be left high and dry. However, this version was never intended to be used by the general public.
|
23
|
+
|
24
|
+
Imagine 7 (planned) will be a clean break and a great time to try Imagine CMS.
|
19
25
|
|
20
26
|
## History and Roadmap
|
21
27
|
|
@@ -31,15 +37,15 @@ All that is now firmly in the past. By extracting Imagine functionality into a R
|
|
31
37
|
* Imagine 4.2 (Rails 4.2, Ruby 2.2): [DONE, v4.2-stable] Compatibility with Rails 4.2, many minor fixes and UI improvements
|
32
38
|
* Imagine 5.0 (Rails 5.0, Ruby 2.2): [SKIPPED] Compatibility with Rails 5.0
|
33
39
|
* Imagine 5.1 (Rails 5.1, Ruby 2.4): [SKIPPED] Compatibility with Rails 5.1
|
34
|
-
* **Imagine 5.2 (Rails 5.2, Ruby 2.5): [
|
35
|
-
* Imagine 6 (
|
36
|
-
* Imagine 7 (
|
40
|
+
* **Imagine 5.2 (Rails 5.2, Ruby 2.5/2.6): [PRODUCTION] Compatibility with Rails 5.2**
|
41
|
+
* **Imagine 6 (Elixir/Phoenix + MySQL): [PRODUCTION] Bridge between Imagine 5 and 7**
|
42
|
+
* Imagine 7 (Elixir/Phoenix + CouchDB): [PLANNED] Community-driven open source project
|
37
43
|
|
38
|
-
Imagine 6
|
44
|
+
Imagine 6 is a complete, ground-up rewrite in Elixir, and Imagine 7 builds on that, while also replacing the original MySQL/MariaDB store with CouchDB for improved scaling, redundancy, and replication. Imagine 7 development will also be done in the open, in a new repository under the Imagine CMS organization, as a proper community-driven open source project (finally!). The core concepts will continue on, but not a single line of code will be preserved.
|
39
45
|
|
40
46
|
## Hosting
|
41
47
|
|
42
|
-
Imagine 3.x-
|
48
|
+
Imagine 3.x-5.x can run on typical Rails hosting platforms (anything that uses Passenger, Unicorn, Puma, etc.). On hosts that don't allow writing to the local filesystem (e.g. Heroku) you won't be able to use photo galleries or page caching, but other features should work (note: this mode of operation has not been fully tested).
|
43
49
|
|
44
50
|
## Getting Help
|
45
51
|
|
@@ -47,4 +53,15 @@ Get paid support and hosting for Imagine CMS straight from the people who made i
|
|
47
53
|
|
48
54
|
## Contributing
|
49
55
|
|
50
|
-
Imagine 7 (
|
56
|
+
Imagine 6 (Elixir rewrite) is now open source and Imagine 7 (MySQL -> CouchDB) will be a true open source project with full community involvement, but this project (Ruby-based Imagine 3.x - 5.x) will remain mostly closed for the foreseeable future (source will continue to be made available on Github, but development will be driven by Bigger Bird only). If companies or individuals are willing to sponsor or co-develop new features, we can work something out.
|
57
|
+
|
58
|
+
## Building Docker Image
|
59
|
+
|
60
|
+
(notes for myself)
|
61
|
+
|
62
|
+
```bash
|
63
|
+
docker build -t anamba/imagine5-dev:latest .
|
64
|
+
docker tag anamba/imagine5-dev:latest anamba/imagine5-dev:5.2.4
|
65
|
+
docker tag anamba/imagine5-dev:latest anamba/imagine5-dev:5.2
|
66
|
+
docker push anamba/imagine5-dev
|
67
|
+
```
|
@@ -9599,7 +9599,7 @@ var _8d9=dojo.html.getUnitValue(this.domNode,"line-height");
|
|
9599
9599
|
if(_8d9.value&&_8d9.units==""){
|
9600
9600
|
_8d8=_8d9.value;
|
9601
9601
|
}
|
9602
|
-
dojo.html.insertCssText("body,html{background:transparent;padding:0;margin:
|
9602
|
+
dojo.html.insertCssText("body,html{background:transparent;padding:0;margin:5px;}"+"body{top:0;left:0;right:0;"+(((this.height)||(dojo.render.html.opera))?"":"position:fixed;")+"font:"+font+";"+"min-height:"+this.minHeight+";"+"line-height:"+_8d8+"}"+"p{margin: 1em 0 !important;}"+"body > *:first-child{padding-top:0 !important;margin-top:"+this._firstChildContributingMargin+"px !important;}"+"body > *:last-child{padding-bottom:0 !important;margin-bottom:"+this._lastChildContributingMargin+"px !important;}"+"li > ul:-moz-first-node, li > ol:-moz-first-node{padding-top:1.2em;}\n"+"li{min-height:1.2em;}"+"",this.document);
|
9603
9603
|
dojo.html.removeNode(_8cd);
|
9604
9604
|
this.document.body.innerHTML=html;
|
9605
9605
|
if(_8ca||dojo.render.html.safari){
|
@@ -8,6 +8,9 @@
|
|
8
8
|
<script type="text/javascript">
|
9
9
|
function init(){
|
10
10
|
document.designMode = 'on';
|
11
|
+
document.execCommand('enableObjectResizing', false, true);
|
12
|
+
document.execCommand('enableInlineTableEditing', false, true);
|
13
|
+
document.execCommand('enableAbsolutePositionEditor', false, true);
|
11
14
|
try{
|
12
15
|
parentPageDomain = document.location.href.split('#')[1];
|
13
16
|
if(parentPageDomain){
|
@@ -83,19 +83,14 @@ function dpNextMonth(object, method_prefix, max_year) {
|
|
83
83
|
********************************/
|
84
84
|
|
85
85
|
var cbNumColumns = 0;
|
86
|
-
var cbColWidth =
|
87
|
-
var cbColHeight =
|
88
|
-
var cbBorderWidth = '1px';
|
89
|
-
var cbColWidthFull = 202;
|
86
|
+
var cbColWidth = 200;
|
87
|
+
var cbColHeight = 240;
|
90
88
|
|
91
89
|
function cbAddColumn() {
|
92
|
-
|
93
|
-
|
94
|
-
$('columnBrowser').style.width = '' + ((cbNumColumns+1) * cbColWidthFull) + 'px';
|
95
|
-
$('columnBrowserContainer').scrollLeft = $('columnBrowserContainer').scrollWidth;
|
96
|
-
// }
|
97
|
-
$('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>";
|
90
|
+
jQuery('#columnBrowser').append('<div id="columnBrowserLevel' + cbNumColumns + '" class="cb_column">Loading...</div>');
|
91
|
+
jQuery('#columnBrowserContainer').scrollLeft(jQuery('#columnBrowserContainer')[0].scrollWidth);
|
98
92
|
cbNumColumns++;
|
93
|
+
jQuery('#columnBrowser').css({ width: '' + ((cbColWidth+1) * cbNumColumns) + 'px' });
|
99
94
|
}
|
100
95
|
|
101
96
|
function getScrollbarPosition(el) {
|
@@ -110,31 +105,25 @@ function setScrollbarPosition(el, coords) {
|
|
110
105
|
}
|
111
106
|
|
112
107
|
function cbSelectItem(el, currentLevel, urlForNextLevel) {
|
113
|
-
var el =
|
114
|
-
coords = getScrollbarPosition(el.parentNode);
|
108
|
+
var el = jQuery(el);
|
109
|
+
// coords = getScrollbarPosition(el.parentNode);
|
115
110
|
|
116
|
-
// remove all higher levels
|
111
|
+
// remove all higher levels
|
117
112
|
for (var i = currentLevel + 1; i <= cbNumColumns; i++) {
|
118
|
-
|
119
|
-
if (d) d.parentNode.removeChild(d);
|
113
|
+
jQuery('#columnBrowserLevel' + i).remove();
|
120
114
|
}
|
121
115
|
cbNumColumns = currentLevel + 1;
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
// select and expand current dept div
|
131
|
-
el.className = 'cb_item cb_item_selected';
|
132
|
-
|
116
|
+
|
117
|
+
// unselect all other same-level divs and select target
|
118
|
+
// prefix = 'cb_item_';
|
119
|
+
el.siblings().removeClass('cb_item_selected');
|
120
|
+
el.addClass('cb_item_selected');
|
121
|
+
|
122
|
+
// display children
|
133
123
|
cbAddColumn();
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
setScrollbarPosition(el.parentNode, coords);
|
124
|
+
new Ajax.Updater('columnBrowserLevel' + (currentLevel+1), urlForNextLevel, {method: 'GET', asynchronous: true, evalScripts: true});
|
125
|
+
|
126
|
+
// setScrollbarPosition(el.parentNode, coords);
|
138
127
|
}
|
139
128
|
|
140
129
|
|
@@ -260,7 +249,7 @@ function cancelSelectThumbnail() {
|
|
260
249
|
hideDojoDialog('select_thumbnail_dialog');
|
261
250
|
}
|
262
251
|
|
263
|
-
|
252
|
+
if (!window.gallerySize) window.gallerySize = {};
|
264
253
|
function changeGalleryImage(galleryName, index) {
|
265
254
|
var target = galleryName + '_image_' + index;
|
266
255
|
var caption = galleryName + '_caption_' + index;
|
@@ -346,13 +335,15 @@ function closePageBrowser() {
|
|
346
335
|
$(pageBrowserFieldID).value = $('page_browser_selection').value;
|
347
336
|
}
|
348
337
|
|
349
|
-
|
338
|
+
// first level of this hash is parent_key below
|
350
339
|
var cmsPageObjects = {};
|
340
|
+
|
351
341
|
function scanForPageObjects(page_id, parent_key, version) {
|
352
342
|
if (jQuery('#page_objects_' + parent_key).val().length == 0) return;
|
353
|
-
|
343
|
+
|
354
344
|
var found = {};
|
355
|
-
|
345
|
+
if (!cmsPageObjects[parent_key]) cmsPageObjects[parent_key] = {};
|
346
|
+
|
356
347
|
var regex = /<%=\s*insert_object\(?\s*['"]([-\w\s\d]+)['"],\s*:(\w+)\s*(.*?)\)?\s*%>/gm;
|
357
348
|
var matches = jQuery('#page_objects_' + parent_key).val().match(regex);
|
358
349
|
if (matches) {
|
@@ -367,7 +358,7 @@ function scanForPageObjects(page_id, parent_key, version) {
|
|
367
358
|
}
|
368
359
|
});
|
369
360
|
}
|
370
|
-
|
361
|
+
|
371
362
|
var regex = /<%=\s*(?:page_list|pagelist)\(?\s*['"]([-\w\s\d]+)['"](.*?)\)?\s*%>/gm;
|
372
363
|
var matches = jQuery('#page_objects_' + parent_key).val().match(regex);
|
373
364
|
if (matches) {
|
@@ -382,22 +373,22 @@ function scanForPageObjects(page_id, parent_key, version) {
|
|
382
373
|
}
|
383
374
|
});
|
384
375
|
}
|
385
|
-
|
376
|
+
|
386
377
|
// remove the cruft
|
387
378
|
jQuery.each(cmsPageObjects, function(key, val) {
|
388
|
-
if (cmsPageObjects[key] != found[key]) {
|
379
|
+
if (cmsPageObjects[parent_key][key] != found[key]) {
|
389
380
|
obj_key = val + '_container_obj-' + val + '-' + key.replace(/[^\w]/g, '_');
|
390
381
|
while (jQuery('#' + obj_key).length > 0) {
|
391
382
|
jQuery('#' + obj_key).remove();
|
392
383
|
}
|
393
|
-
cmsPageObjects[key] = null;
|
384
|
+
cmsPageObjects[parent_key][key] = null;
|
394
385
|
}
|
395
386
|
});
|
396
387
|
|
397
388
|
// bring in the new
|
398
389
|
jQuery.each(found, function (key, val) {
|
399
|
-
if (!cmsPageObjects[key]) {
|
400
|
-
cmsPageObjects[key] = val;
|
390
|
+
if (!cmsPageObjects[parent_key][key]) {
|
391
|
+
cmsPageObjects[parent_key][key] = val;
|
401
392
|
jQuery.get('/manage/cms_pages/' + page_id + '/insert_page_object_config?version= ' + version +
|
402
393
|
'&name=' + key + '&type=' + val + '&parent_key=' + parent_key);
|
403
394
|
}
|
@@ -1,3 +1,11 @@
|
|
1
|
+
// fix for a Firefox 69 issue
|
2
|
+
.dojoFloatingPane {
|
3
|
+
position: fixed !important;
|
4
|
+
top: 40px;
|
5
|
+
left: 50%;
|
6
|
+
margin-left: -25%;
|
7
|
+
}
|
8
|
+
|
1
9
|
.search-result {
|
2
10
|
margin-bottom: 20px;
|
3
11
|
.search-result-title { font-size: 1.1em; }
|
@@ -37,7 +45,7 @@ a.imagine_cms-paginator-link-selected {
|
|
37
45
|
|
38
46
|
/* an extra classname is applied for Opera < 9.0 to fix it's lack of opacity support */
|
39
47
|
.imgCrop_wrap.opera8 .imgCrop_overlay,
|
40
|
-
.imgCrop_wrap.opera8 .imgCrop_clickArea {
|
48
|
+
.imgCrop_wrap.opera8 .imgCrop_clickArea {
|
41
49
|
background-color: transparent;
|
42
50
|
}
|
43
51
|
|
@@ -58,7 +66,7 @@ a.imagine_cms-paginator-link-selected {
|
|
58
66
|
|
59
67
|
.imgCrop_selArea {
|
60
68
|
position: absolute;
|
61
|
-
/* @done_in_js
|
69
|
+
/* @done_in_js
|
62
70
|
top: 20px;
|
63
71
|
left: 20px;
|
64
72
|
width: 200px;
|
@@ -94,16 +102,16 @@ a.imagine_cms-paginator-link-selected {
|
|
94
102
|
z-index: 3;
|
95
103
|
}
|
96
104
|
|
97
|
-
/*
|
105
|
+
/*
|
98
106
|
* FIX MARCHING ANTS IN IE
|
99
|
-
* As IE <6 tries to load background images we can uncomment the follwoing hack
|
107
|
+
* As IE <6 tries to load background images we can uncomment the follwoing hack
|
100
108
|
* to remove that issue, not as pretty - but is anything in IE?
|
101
109
|
* And yes I do know that 'filter' is evil, but it will make it look semi decent in IE
|
102
110
|
*
|
103
111
|
* html .imgCrop_marqueeHoriz,
|
104
112
|
* html .imgCrop_marqueeVert {
|
105
113
|
background: transparent;
|
106
|
-
filter: Invert;
|
114
|
+
filter: Invert;
|
107
115
|
}
|
108
116
|
* html .imgCrop_marqueeNorth { border-top: 1px dashed #000; }
|
109
117
|
* html .imgCrop_marqueeEast { border-right: 1px dashed #000; }
|
@@ -143,7 +151,7 @@ a.imagine_cms-paginator-link-selected {
|
|
143
151
|
cursor: n-resize;
|
144
152
|
}
|
145
153
|
|
146
|
-
.imgCrop_handleNE {
|
154
|
+
.imgCrop_handleNE {
|
147
155
|
top: -3px;
|
148
156
|
right: -3px;
|
149
157
|
cursor: ne-resize;
|
@@ -189,7 +197,7 @@ a.imagine_cms-paginator-link-selected {
|
|
189
197
|
}
|
190
198
|
|
191
199
|
/**
|
192
|
-
* Create an area to click & drag around on as the default browser behaviour is to let you drag the image
|
200
|
+
* Create an area to click & drag around on as the default browser behaviour is to let you drag the image
|
193
201
|
*/
|
194
202
|
.imgCrop_dragArea {
|
195
203
|
width: 100%;
|
@@ -34,13 +34,56 @@ div.auto_complete ul strong.highlight {
|
|
34
34
|
|
35
35
|
|
36
36
|
/** column browser **/
|
37
|
+
#columnBrowserContainer {
|
38
|
+
width: 100%; max-height: 90vh;
|
39
|
+
overflow: auto;
|
40
|
+
border: 1px solid gray;
|
41
|
+
border-width: 0 0 0 1px;
|
42
|
+
}
|
43
|
+
#columnBrowserToolbar {
|
44
|
+
background-color: #ddd;
|
45
|
+
padding: 5px 4px 0;
|
46
|
+
margin: 0 0 5px;
|
37
47
|
|
48
|
+
a {
|
49
|
+
margin-left: 2px;
|
50
|
+
}
|
51
|
+
a:first-child { margin-left: 0; }
|
52
|
+
}
|
53
|
+
.cb_column {
|
54
|
+
overflow: auto;
|
55
|
+
float: left;
|
56
|
+
border: 1px solid gray;
|
57
|
+
border-width: 1px 1px 1px 0;
|
58
|
+
}
|
38
59
|
.cb_item {
|
60
|
+
position: relative;
|
39
61
|
color: black;
|
40
|
-
padding
|
41
|
-
|
62
|
+
padding: 2px;
|
63
|
+
width: calc(100% - 22px);
|
64
|
+
overflow: hidden;
|
65
|
+
float: left;
|
66
|
+
cursor: pointer;
|
67
|
+
|
68
|
+
img { position: absolute; left: 5px; top: 5px; }
|
69
|
+
span {
|
70
|
+
display: block;
|
71
|
+
padding: 2px 0px 2px 20px;
|
72
|
+
-webkit-user-select: none;
|
73
|
+
-moz-user-select: none;
|
74
|
+
-ms-user-select: none;
|
75
|
+
user-select: none;
|
76
|
+
}
|
77
|
+
}
|
42
78
|
|
43
79
|
.cb_item.cb_item_selected {
|
44
80
|
color: white;
|
45
81
|
background-color: #506D91;
|
46
82
|
}
|
83
|
+
|
84
|
+
.cb_item.cb_item_offline {
|
85
|
+
color: gray;
|
86
|
+
}
|
87
|
+
.cb_item.cb_item_offline.cb_item_selected {
|
88
|
+
color: lightgray;
|
89
|
+
}
|
@@ -268,7 +268,7 @@ module Cms # :nodoc:
|
|
268
268
|
def rss_feed
|
269
269
|
min_time = Time.rfc2822(request.env["HTTP_IF_MODIFIED_SINCE"]) rescue nil
|
270
270
|
if min_time && (Time.now - min_time) < 5.minutes
|
271
|
-
render
|
271
|
+
render plain: '', status: '304 Not Modified' and return
|
272
272
|
end
|
273
273
|
|
274
274
|
@@cms_page_table_exists ||= CmsPage.table_exists?
|
@@ -292,7 +292,7 @@ module Cms # :nodoc:
|
|
292
292
|
|
293
293
|
if min_time && @most_recent_pub_date.published_date && @most_recent_pub_date.published_date <= min_time
|
294
294
|
# use cached version
|
295
|
-
render
|
295
|
+
render plain: '', status: '304 Not Modified' and return
|
296
296
|
end
|
297
297
|
|
298
298
|
@pages.each_with_index do |page, index|
|