ckeditor 4.0.11 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +22 -49
- data/app/controllers/ckeditor/application_controller.rb +7 -1
- data/config/locales/zh-CN.ckeditor.yml +1 -1
- data/config/locales/zh-TW.ckeditor.yml +9 -0
- data/lib/ckeditor/engine.rb +4 -0
- data/lib/ckeditor/hooks/cancan.rb +1 -1
- data/lib/ckeditor/hooks/simple_form.rb +1 -1
- data/lib/ckeditor/utils.rb +16 -16
- data/lib/ckeditor/version.rb +2 -2
- data/lib/generators/ckeditor/templates/ckeditor.rb +5 -0
- data/lib/tasks/ckeditor.rake +13 -0
- data/test/ckeditor_test.rb +18 -0
- data/test/dummy/app/views/layouts/application.html.erb +2 -2
- data/vendor/assets/javascripts/ckeditor/CHANGES.md +132 -0
- data/vendor/assets/javascripts/ckeditor/ckeditor.js +706 -685
- data/vendor/assets/javascripts/ckeditor/config.js +1 -1
- data/vendor/assets/javascripts/ckeditor/contents.css +14 -3
- data/vendor/assets/javascripts/ckeditor/lang/af.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/ar.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/bg.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/bn.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/bs.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/ca.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/cs.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/cy.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/da.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/de.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/el.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/en-au.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/en-ca.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/en-gb.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/en.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/eo.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/es.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/et.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/eu.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/fa.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/fi.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/fo.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/fr-ca.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/fr.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/gl.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/gu.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/he.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/hi.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/hr.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/hu.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/id.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/is.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/it.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/ja.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/ka.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/km.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/ko.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/ku.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/lt.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/lv.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/mk.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/mn.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/ms.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/nb.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/nl.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/no.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/pl.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/pt-br.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/pt.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/ro.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/ru.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/si.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/sk.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/sl.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/sq.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/sr-latn.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/sr.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/sv.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/th.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/tr.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/tt.js +5 -0
- data/vendor/assets/javascripts/ckeditor/lang/ug.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/uk.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/vi.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/zh-cn.js +1 -1
- data/vendor/assets/javascripts/ckeditor/lang/zh.js +1 -1
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +1 -1
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +3 -3
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +5 -4
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +2 -2
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +2 -2
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +4 -3
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +3 -3
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +4 -3
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +4 -3
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +1 -1
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +3 -3
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js +11 -0
- data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +3 -3
- data/vendor/assets/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +1 -1
- data/vendor/assets/javascripts/ckeditor/plugins/div/dialogs/div.js +8 -8
- data/vendor/assets/javascripts/ckeditor/plugins/find/dialogs/find.js +1 -1
- data/vendor/assets/javascripts/ckeditor/plugins/flash/dialogs/flash.js +7 -7
- data/vendor/assets/javascripts/ckeditor/plugins/forms/dialogs/radio.js +2 -2
- data/vendor/assets/javascripts/ckeditor/plugins/icons.png +0 -0
- data/vendor/assets/javascripts/ckeditor/plugins/image/dialogs/image.js +2 -2
- data/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/anchor.js +3 -4
- data/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/link.js +22 -31
- data/vendor/assets/javascripts/ckeditor/plugins/scayt/README.md +1 -1
- data/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/options.js +17 -20
- data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ar.js +1 -1
- data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/tt.js +13 -0
- data/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.css +5 -5
- data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +1 -1
- data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +1 -1
- data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +1 -1
- data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +65 -58
- data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc_ie.js +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/dialog.css +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie.css +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie7.css +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie8.css +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_iequirks.css +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/editor.css +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/editor_gecko.css +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie.css +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie7.css +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie8.css +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/editor_iequirks.css +1 -1
- data/vendor/assets/javascripts/ckeditor/skins/moono/icons.png +0 -0
- metadata +14 -172
- data/app/assets/javascripts/ckeditor/override.js.erb +0 -21
- data/test/dummy/public/ckeditor_assets/attachments/1/rails_tar.gz +0 -0
- data/test/dummy/public/ckeditor_assets/pictures/1/content_rails.png +0 -0
- data/test/dummy/public/ckeditor_assets/pictures/1/original_rails.png +0 -0
- data/test/dummy/public/ckeditor_assets/pictures/1/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/ckeditor/attachments/1/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/ckeditor/pictures/1/content_rails.png +0 -0
- data/test/dummy/public/uploads/ckeditor/pictures/1/rails.png +0 -0
- data/test/dummy/public/uploads/ckeditor/pictures/1/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-1084/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-1288/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-1288/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-1288/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-3261/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-3564/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-4233/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-4233/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-4233/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-4595/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-4595/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-4595/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-8459/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-8942/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-9011/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-9011/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-9011/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-9730/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-9730/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20130128-1219-3894-9730/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1222-52217-3986/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1222-52217-6261/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1222-52217-6421/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1223-52217-3058/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1223-52217-3058/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1223-52217-3058/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1223-52217-3990/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1223-52217-3990/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1223-52217-3990/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1223-52217-8126/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1223-52217-8126/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1223-52217-8126/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-0400/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-0400/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-0400/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-1537/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-1537/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-1537/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-4718/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-4820/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-8057/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-8057/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-8057/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52513-9147/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-3606/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-4369/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-4369/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-4369/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-4698/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-7541/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-9146/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-9146/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-9146/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-9782/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-9782/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1228-52590-9782/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-3256/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-3256/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-3256/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-3565/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-3565/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-3565/thumb_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-4292/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-4514/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-7430/rails.tar.gz +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-9145/content_rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-9145/rails.png +0 -0
- data/test/dummy/public/uploads/tmp/20140108-1230-52768-9145/thumb_rails.png +0 -0
- data/vendor/assets/javascripts/ckeditor/build-config.js +0 -165
- data/vendor/assets/javascripts/ckeditor/plugins/fakeobjects/images/spacer.gif +0 -0
- data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/tmp.html +0 -118
- data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_opera.css +0 -5
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 718c57a411fa584f92a7b532b9044f0814cb8c4b
|
4
|
+
data.tar.gz: 8be0eb212ece8e16ee5cc7bbd72786e792b7e068
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f9502d82221ba196b1ac27b2490095c79f83ab4ae3eb417d8b6fee07af2c55f45be2ca0961cac30c50bf63829ef1cfed63008a86b0931724f39a7bc4d63aebdd
|
7
|
+
data.tar.gz: d397998fd9e23e06e95e31456ce4c73cf4cf4a9d5dc885c935dea9865f6cd870f97ef5a6bb80aaff601089aa00fd67c3bd9ce7a37a3138ede1bef72539fcf545
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@ CKEditor is a ready-for-use HTML text editor designed to simplify web content cr
|
|
5
5
|
|
6
6
|
## Features
|
7
7
|
|
8
|
-
* Ckeditor version 4.
|
8
|
+
* Ckeditor version 4.4.2 (full)
|
9
9
|
* Rails 4 integration
|
10
10
|
* Files browser
|
11
11
|
* HTML5 files uploader
|
@@ -108,6 +108,8 @@ Form helpers:
|
|
108
108
|
<% end -%>
|
109
109
|
```
|
110
110
|
|
111
|
+
### Customize ckeditor
|
112
|
+
|
111
113
|
All ckeditor options [here](http://docs.ckeditor.com/#!/api/CKEDITOR.config)
|
112
114
|
|
113
115
|
In order to configure the ckeditor default options, create files:
|
@@ -118,55 +120,10 @@ app/assets/javascripts/ckeditor/config.js
|
|
118
120
|
app/assets/javascripts/ckeditor/contents.css
|
119
121
|
```
|
120
122
|
|
121
|
-
###
|
122
|
-
|
123
|
-
In order to use rails 4 assets with digest in production environment you need some preparing.
|
124
|
-
|
125
|
-
First, you need to include in `application.js` **before** `ckeditor/init`
|
126
|
-
|
127
|
-
```
|
128
|
-
//= require ckeditor/override
|
129
|
-
```
|
130
|
-
|
131
|
-
It forces ckeditor core to respect digested assets.
|
132
|
-
|
133
|
-
Next you need to check, that some non-core plugins and skins don't use core ckeditor functions
|
134
|
-
to determine path to assets. Therefore we have to create a rake task thats copies the original assets and creates a non-digest version of it. Some example of such rake task is:
|
135
|
-
|
136
|
-
```ruby
|
137
|
-
namespace :ckeditor do
|
138
|
-
desc 'Create nondigest versions of some ckeditor assets (e.g. moono skin png)'
|
139
|
-
task :create_nondigest_assets do
|
140
|
-
fingerprint = /\-[0-9a-f]{32}\./
|
141
|
-
for file in Dir['public/assets/ckeditor/contents-*.css', 'public/assets/ckeditor/skins/moono/*.png']
|
142
|
-
next unless file =~ fingerprint
|
143
|
-
nondigest = file.sub fingerprint, '.' # contents-0d8ffa186a00f5063461bc0ba0d96087.css => contents.css
|
144
|
-
FileUtils.cp file, nondigest, verbose: true
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
# auto run ckeditor:create_nondigest_assets after assets:precompile
|
150
|
-
Rake::Task['assets:precompile'].enhance do
|
151
|
-
Rake::Task['ckeditor:create_nondigest_assets'].invoke
|
152
|
-
end
|
153
|
-
```
|
154
|
-
This also works on heroku. Even after restarting dynos running on a cedar stack, the assets will remain.
|
155
|
-
|
156
|
-
You can include this rake task in a capistrano task (if you are deploying via capistrano):
|
157
|
-
|
158
|
-
```ruby
|
159
|
-
desc 'copy ckeditor nondigest assets'
|
160
|
-
task :copy_nondigest_assets, roles: :app do
|
161
|
-
run "cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} ckeditor:create_nondigest_assets"
|
162
|
-
end
|
163
|
-
after 'deploy:assets:precompile', 'copy_nondigest_assets'
|
164
|
-
```
|
123
|
+
### Deployment
|
165
124
|
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
Also you can use gem [non-stupid-digest-assets](https://rubygems.org/gems/non-stupid-digest-assets), which do the same work.
|
125
|
+
Since version 4.1.0, non-digested assets of ckeditor will simply be copied after digested assets were compiled.
|
126
|
+
For older versions, use gem [non-stupid-digest-assets](https://rubygems.org/gems/non-stupid-digest-assets), to copy non digest assets.
|
170
127
|
|
171
128
|
To reduce the asset precompilation time, you can limit plugins and/or languages to those you need:
|
172
129
|
|
@@ -179,6 +136,22 @@ Ckeditor.setup do |config|
|
|
179
136
|
end
|
180
137
|
```
|
181
138
|
|
139
|
+
### Include customized CKEDITOR_BASEPATH setting
|
140
|
+
|
141
|
+
Add your app/assets/javascripts/ckeditor/basepath.js.erb like
|
142
|
+
|
143
|
+
```erb
|
144
|
+
<%
|
145
|
+
base_path = ''
|
146
|
+
if ENV['PROJECT'] =~ /editor/i
|
147
|
+
base_path << "/#{Rails.root.basename.to_s}/"
|
148
|
+
end
|
149
|
+
base_path << Rails.application.config.assets.prefix
|
150
|
+
base_path << '/ckeditor/'
|
151
|
+
%>
|
152
|
+
var CKEDITOR_BASEPATH = '<%= base_path %>';
|
153
|
+
```
|
154
|
+
|
182
155
|
### AJAX
|
183
156
|
|
184
157
|
jQuery sample:
|
@@ -21,7 +21,13 @@ class Ckeditor::ApplicationController < ActionController::Base
|
|
21
21
|
|
22
22
|
render :text => body
|
23
23
|
else
|
24
|
-
|
24
|
+
if params[:CKEditor]
|
25
|
+
render :text => %Q"<script type='text/javascript'>
|
26
|
+
window.parent.CKEDITOR.tools.callFunction(#{params[:CKEditorFuncNum]}, null, '#{asset.errors.full_messages.first}');
|
27
|
+
</script>"
|
28
|
+
else
|
29
|
+
render :nothing => true
|
30
|
+
end
|
25
31
|
end
|
26
32
|
end
|
27
33
|
end
|
data/lib/ckeditor/engine.rb
CHANGED
@@ -19,7 +19,7 @@ module Ckeditor
|
|
19
19
|
# action as a symbol (:create, :destroy, etc.). The second argument is the actual model
|
20
20
|
# instance if it is available.
|
21
21
|
def authorize(action, model_object = nil)
|
22
|
-
@controller.authorize!(action.to_sym, model_object) if action
|
22
|
+
@controller.current_ability.authorize!(action.to_sym, model_object) if action
|
23
23
|
end
|
24
24
|
|
25
25
|
# This method is called primarily from the view to determine whether the given user
|
data/lib/ckeditor/utils.rb
CHANGED
@@ -23,7 +23,7 @@ module Ckeditor
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def js_replace(dom_id, options = nil)
|
26
|
-
js = ["if (typeof CKEDITOR != 'undefined') {"]
|
26
|
+
js = ["(function() { if (typeof CKEDITOR != 'undefined') {"]
|
27
27
|
|
28
28
|
if options && !options.keys.empty?
|
29
29
|
js_options = ActiveSupport::JSON.encode(options)
|
@@ -32,7 +32,7 @@ module Ckeditor
|
|
32
32
|
js << "CKEDITOR.replace('#{dom_id}');"
|
33
33
|
end
|
34
34
|
|
35
|
-
js << "}"
|
35
|
+
js << "} else { setTimeout(arguments.callee, 50); } })();"
|
36
36
|
js.join(" ").html_safe
|
37
37
|
end
|
38
38
|
|
@@ -52,6 +52,7 @@ module Ckeditor
|
|
52
52
|
end
|
53
53
|
|
54
54
|
js_options = ActiveSupport::JSON.encode(options)
|
55
|
+
js_options.gsub!(/"(EDITOR\.config\.filebrowser(Image|Flash|)UploadUrl)"/, '\1')
|
55
56
|
|
56
57
|
"(function() { new qq.FileUploaderInput(#{js_options}); }).call(this);".html_safe
|
57
58
|
end
|
@@ -69,14 +70,15 @@ module Ckeditor
|
|
69
70
|
end
|
70
71
|
|
71
72
|
def select_assets(path, relative_path)
|
72
|
-
relative_folder = Ckeditor.root_path.join
|
73
|
-
folder = relative_folder.join
|
73
|
+
relative_folder = Ckeditor.root_path.join(relative_path)
|
74
|
+
folder = relative_folder.join(path)
|
74
75
|
extensions = '*.{js,css,png,gif,jpg}'
|
76
|
+
languages = (Ckeditor.assets_languages || [])
|
75
77
|
|
76
78
|
# Files at root
|
77
79
|
files = Dir[folder.join(extensions)]
|
78
80
|
|
79
|
-
#
|
81
|
+
# Filter plugins
|
80
82
|
if Ckeditor.assets_plugins.nil?
|
81
83
|
files += Dir[folder.join('plugins', '**', extensions)]
|
82
84
|
else
|
@@ -88,22 +90,20 @@ module Ckeditor
|
|
88
90
|
# Other folders
|
89
91
|
Dir[folder.join('*/')].each do |subfolder|
|
90
92
|
path = Pathname.new(subfolder)
|
91
|
-
|
92
|
-
|
93
|
-
end
|
93
|
+
next if ['plugins'].include?(path.basename.to_s)
|
94
|
+
files += Dir[path.join('**', extensions)]
|
94
95
|
end
|
95
96
|
|
96
|
-
|
97
|
+
files.inject([]) do |items, name|
|
98
|
+
file = Pathname.new(name)
|
99
|
+
base = file.basename('.*').to_s
|
97
100
|
|
98
|
-
|
99
|
-
|
100
|
-
paths.select! do |path|
|
101
|
-
path.dirname.basename.to_s != 'lang' ||
|
102
|
-
Ckeditor.assets_languages.include?(path.basename.to_s.split('.')[0])
|
101
|
+
if !name.include?('/lang/') || languages.include?(base)
|
102
|
+
items << file.relative_path_from(relative_folder).to_s
|
103
103
|
end
|
104
|
-
end
|
105
104
|
|
106
|
-
|
105
|
+
items
|
106
|
+
end
|
107
107
|
end
|
108
108
|
end
|
109
109
|
end
|
data/lib/ckeditor/version.rb
CHANGED
@@ -31,4 +31,9 @@ Ckeditor.setup do |config|
|
|
31
31
|
# Customize ckeditor assets path
|
32
32
|
# By default: nil
|
33
33
|
# config.asset_path = "http://www.example.com/assets/ckeditor/"
|
34
|
+
|
35
|
+
# To reduce the asset precompilation time, you can limit plugins and/or languages to those you need:
|
36
|
+
# By default: nil (no limit)
|
37
|
+
# config.assets_languages = ['en', 'uk']
|
38
|
+
# config.assets_plugins = ['image', 'smiley']
|
34
39
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
desc "Create nondigest versions of all ckeditor digest assets"
|
4
|
+
task "assets:precompile" do
|
5
|
+
fingerprint = /\-[0-9a-f]{32}\./
|
6
|
+
for file in Dir["public/assets/ckeditor/**/*"]
|
7
|
+
next unless file =~ fingerprint
|
8
|
+
nondigest = file.sub fingerprint, '.'
|
9
|
+
if !File.exist?(nondigest) or File.mtime(file) > File.mtime(nondigest)
|
10
|
+
FileUtils.cp file, nondigest, verbose: true
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/test/ckeditor_test.rb
CHANGED
@@ -61,6 +61,24 @@ class CkeditorTest < ActiveSupport::TestCase
|
|
61
61
|
Ckeditor::AttachmentFile.to_adapter
|
62
62
|
end
|
63
63
|
|
64
|
+
test 'languages ingnore list' do
|
65
|
+
Ckeditor.assets = nil
|
66
|
+
Ckeditor.assets_languages = ['en', 'uk']
|
67
|
+
|
68
|
+
assert_equal Ckeditor.assets.include?('ckeditor/lang/ru.js'), false
|
69
|
+
assert_equal Ckeditor.assets.include?('ckeditor/lang/uk.js'), true
|
70
|
+
assert_equal Ckeditor.assets.include?('ckeditor/plugins/a11yhelp/dialogs/lang/bg.js'), false
|
71
|
+
assert_equal Ckeditor.assets.include?('ckeditor/plugins/a11yhelp/dialogs/lang/uk.js'), true
|
72
|
+
end
|
73
|
+
|
74
|
+
test 'plugins ingnore list' do
|
75
|
+
Ckeditor.assets = nil
|
76
|
+
Ckeditor.assets_plugins = ['image']
|
77
|
+
|
78
|
+
assert_equal Ckeditor.assets.include?('ckeditor/plugins/table/dialogs/table.js'), false
|
79
|
+
assert_equal Ckeditor.assets.include?('ckeditor/plugins/image/dialogs/image.js'), true
|
80
|
+
end
|
81
|
+
|
64
82
|
class CustomPicture; end
|
65
83
|
class CustomAttachmentFile; end
|
66
84
|
end
|
@@ -2,13 +2,13 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>Dummy</title>
|
5
|
-
<%= stylesheet_link_tag
|
6
|
-
<%= javascript_include_tag "application" %>
|
5
|
+
<%= stylesheet_link_tag "application" %>
|
7
6
|
<%= csrf_meta_tags %>
|
8
7
|
</head>
|
9
8
|
<body>
|
10
9
|
|
11
10
|
<%= yield %>
|
12
11
|
|
12
|
+
<%= javascript_include_tag "application" %>
|
13
13
|
</body>
|
14
14
|
</html>
|
@@ -1,6 +1,138 @@
|
|
1
1
|
CKEditor 4 Changelog
|
2
2
|
====================
|
3
3
|
|
4
|
+
## CKEditor 4.4.2
|
5
|
+
|
6
|
+
Important Notes:
|
7
|
+
|
8
|
+
* The CKEditor testing environment is now publicly available. Read more about how to set up the environment and execute tests in the [CKEditor Testing Environment](http://docs.ckeditor.com/#!/guide/dev_tests) guide.
|
9
|
+
Please note that the [`tests/`](https://github.com/ckeditor/ckeditor-dev/tree/master/tests) directory which contains editor tests is not available in release packages. It can only be found in the development version of CKEditor on [GitHub](https://github.com/ckeditor/ckeditor-dev/).
|
10
|
+
|
11
|
+
New Features:
|
12
|
+
|
13
|
+
* [#11909](http://dev.ckeditor.com/ticket/11909): Introduced a parameter to prevent the [`editor.setData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setData) method from recording undo snapshots.
|
14
|
+
|
15
|
+
Fixed Issues:
|
16
|
+
|
17
|
+
* [#11757](http://dev.ckeditor.com/ticket/11757): Fixed: Imperfections in the [Moono](http://ckeditor.com/addon/moono) skin. Thanks to [danyaPostfactum](https://github.com/danyaPostfactum)!
|
18
|
+
* [#10091](http://dev.ckeditor.com/ticket/10091): Blockquote should be treated like an object by the styles system. Thanks to [dan-james-deeson](https://github.com/dan-james-deeson)!
|
19
|
+
* [#11478](http://dev.ckeditor.com/ticket/11478): Fixed: Issue with passing jQuery objects to [adapter](http://docs.ckeditor.com/#!/guide/dev_jquery) configuration.
|
20
|
+
* [#10867](http://dev.ckeditor.com/ticket/10867): Fixed: Issue with setting encoded URI as image link.
|
21
|
+
* [#11983](http://dev.ckeditor.com/ticket/11983): Fixed: Clicking a nested widget does not focus it. Additionally, performance of the [`widget.repository.getByElement()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.repository-method-getByElement) method was improved.
|
22
|
+
* [#12000](http://dev.ckeditor.com/ticket/12000): Fixed: Nested widgets should be initialized on [`editor.setData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setData) and [`nestedEditable.setData()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.nestedEditable-method-setData).
|
23
|
+
* [#12022](http://dev.ckeditor.com/ticket/12022): Fixed: Outer widget's drag handler is not created at all if it has any nested widgets inside.
|
24
|
+
* [#11960](http://dev.ckeditor.com/ticket/11960): [Blink/WebKit] Fixed: The caret should be scrolled into view on *Backspace* and *Delete* (covers only the merging blocks case).
|
25
|
+
* [#11306](http://dev.ckeditor.com/ticket/11306): [OSX][Blink/WebKit] Fixed: No widget entries in the context menu on widget right-click.
|
26
|
+
* [#11957](http://dev.ckeditor.com/ticket/11957): Fixed: Alignment labels in the [Enhanced Image](http://ckeditor.com/addon/image2) dialog window are not translated.
|
27
|
+
* [#11980](http://dev.ckeditor.com/ticket/11980): [Blink/WebKit] Fixed: `<span>` elements created when joining adjacent elements (non-collapsed selection).
|
28
|
+
* [#12009](http://dev.ckeditor.com/ticket/12009): [Nested widgets] Integration with the [Magic Line](http://ckeditor.com/addon/magicline) plugin.
|
29
|
+
* [#11387](http://dev.ckeditor.com/ticket/11387): Fixed: `role="radiogroup"` should be applied only to radio inputs' container.
|
30
|
+
* [#7975](http://dev.ckeditor.com/ticket/7975): [IE8] Fixed: Errors when trying to select an empty table cell.
|
31
|
+
* [#11947](http://dev.ckeditor.com/ticket/11947): [Firefox+IE11] Fixed: *Shift+Enter* in lists produces two line breaks.
|
32
|
+
* [#11972](http://dev.ckeditor.com/ticket/11972): Fixed: Feature detection in the [`element.setText()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-setText) method should not trigger the layout engine.
|
33
|
+
* [#7634](http://dev.ckeditor.com/ticket/7634): Fixed: The [Flash Dialog](http://ckeditor.com/addon/flash) plugin omits the `allowFullScreen` parameter in the editor data if set to `true`.
|
34
|
+
* [#11910](http://dev.ckeditor.com/ticket/11910): Fixed: [Enhanced Image](http://ckeditor.com/addon/image2) does not take [`config.baseHref`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-baseHref) into account when updating image dimensions.
|
35
|
+
* [#11753](http://dev.ckeditor.com/ticket/11753): Fixed: Wrong [`checkDirty()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-checkDirty) method value after focusing or blurring a widget.
|
36
|
+
* [#11830](http://dev.ckeditor.com/ticket/11830): Fixed: Impossible to pass some arguments to [CKBuilder](https://github.com/ckeditor/ckbuilder) when using the `/dev/builder/build.sh` script.
|
37
|
+
* [#11945](http://dev.ckeditor.com/ticket/11945): Fixed: [Form Elements](http://ckeditor.com/addon/forms) plugin should not change a core method.
|
38
|
+
* [#11384](http://dev.ckeditor.com/ticket/11384): [IE9+] Fixed: `IndexSizeError` thrown when pasting into a non-empty selection anchored in one text node.
|
39
|
+
|
40
|
+
## CKEditor 4.4.1
|
41
|
+
|
42
|
+
New Features:
|
43
|
+
|
44
|
+
* [#9661](http://dev.ckeditor.com/ticket/9661): Added the option to [configure](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-linkJavaScriptLinksAllowed) anchor tags with JavaScript code in the `href` attribute.
|
45
|
+
|
46
|
+
Fixed Issues:
|
47
|
+
|
48
|
+
* [#11861](http://dev.ckeditor.com/ticket/11861): [Webkit/Blink] Fixed: Span elements created while joining adjacent elements. **Note:** This patch only covers cases when *Backspace* or *Delete* is pressed on a collapsed (empty) selection. The remaining case, with a non-empty selection, will be fixed in the next release.
|
49
|
+
* [#10714](http://dev.ckeditor.com/ticket/10714): [iOS] Fixed: Selection and drop-downs are broken if a touch event listener is used due to a [Webkit bug](https://bugs.webkit.org/show_bug.cgi?id=128924). Thanks to [Arty Gus](https://github.com/artygus)!
|
50
|
+
* [#11911](http://dev.ckeditor.com/ticket/11911): Fixed setting the `dir` attribute for a preloaded language in [CKEDITOR.lang](http://docs.ckeditor.com/#!/api/CKEDITOR.lang). Thanks to [Akash Mohapatra](https://github.com/akashmohapatra)!
|
51
|
+
* [#11926](http://dev.ckeditor.com/ticket/11926): Fixed: [Code Snippet](http://ckeditor.com/addon/codesnippet) does not decode HTML entities when loading code from the `<code>` element.
|
52
|
+
* [#11223](http://dev.ckeditor.com/ticket/11223): Fixed: Issue when [Protected Source](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-protectedSource) was not working in the `<title>` element.
|
53
|
+
* [#11859](http://dev.ckeditor.com/ticket/11859): Fixed: Removed the [Source Dialog](http://ckeditor.com/addon/sourcedialog) plugin dependency from the [Code Snippet](http://ckeditor.com/addon/codesnippet) sample.
|
54
|
+
* [#11754](http://dev.ckeditor.com/ticket/11754): [Chrome] Fixed: Infinite loop when content includes not closed attributes.
|
55
|
+
* [#11848](http://dev.ckeditor.com/ticket/11848): [IE] Fixed: [`editor.insertElement()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-insertElement) throwing an exception when there was no selection in the editor.
|
56
|
+
* [#11801](http://dev.ckeditor.com/ticket/11801): Fixed: Editor anchors unavailable when linking the [Enhanced Image](http://ckeditor.com/addon/image2) widget.
|
57
|
+
* [#11626](http://dev.ckeditor.com/ticket/11626): Fixed: [Table Resize](http://ckeditor.com/addon/tableresize) sets invalid column width.
|
58
|
+
* [#11872](http://dev.ckeditor.com/ticket/11872): Made [`element.addClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-addClass) chainable symmetrically to [`element.removeClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-removeClass).
|
59
|
+
* [#11813](http://dev.ckeditor.com/ticket/11813): Fixed: Link lost while pasting a captioned image and restoring an undo snapshot ([Enhanced Image](http://ckeditor.com/addon/image2)).
|
60
|
+
* [#11814](http://dev.ckeditor.com/ticket/11814): Fixed: _Link_ and _Unlink_ entries persistently displayed in the [Enhanced Image](http://ckeditor.com/addon/image2) context menu.
|
61
|
+
* [#11839](http://dev.ckeditor.com/ticket/11839): [IE9] Fixed: The caret jumps out of the editable area when resizing the editor in the source mode.
|
62
|
+
* [#11822](http://dev.ckeditor.com/ticket/11822): [Webkit] Fixed: Editing anchors by double-click is broken in some cases.
|
63
|
+
* [#11823](http://dev.ckeditor.com/ticket/11823): [IE8] Fixed: [Table Resize](http://ckeditor.com/addon/tableresize) throws an error over scrollbar.
|
64
|
+
* [#11788](http://dev.ckeditor.com/ticket/11788): Fixed: It is not possible to change the language back to _Not set_ in the [Code Snippet](http://ckeditor.com/addon/codesnippet) dialog window.
|
65
|
+
* [#11788](http://dev.ckeditor.com/ticket/11788): Fixed: [Filter](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.filter) rules are not applied inside elements with the `contenteditable` attribute set to `true`.
|
66
|
+
* [#11798](http://dev.ckeditor.com/ticket/11798): Fixed: Inserting a non-editable element inside a table cell breaks the table.
|
67
|
+
* [#11793](http://dev.ckeditor.com/ticket/11793): Fixed: Drop-down is not "on" when clicking it while the editor is blurred.
|
68
|
+
* [#11850](http://dev.ckeditor.com/ticket/11850): Fixed: Fake objects with the `contenteditable` attribute set to `false` are not downcasted properly.
|
69
|
+
* [#11811](http://dev.ckeditor.com/ticket/11811): Fixed: Widget's data is not encoded correctly when passed to an attribute.
|
70
|
+
* [#11777](http://dev.ckeditor.com/ticket/11777): Fixed encoding ampersand in the [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin.
|
71
|
+
* [#11880](http://dev.ckeditor.com/ticket/11880): [IE8-9] Fixed: Linked image has a default thick border.
|
72
|
+
|
73
|
+
Other Changes:
|
74
|
+
|
75
|
+
* [#11807](http://dev.ckeditor.com/ticket/11807): Updated jQuery version used in the sample to 1.11.0 and tested CKEditor jQuery Adapter with version 1.11.0 and 2.1.0.
|
76
|
+
* [#9504](http://dev.ckeditor.com/ticket/9504): Stopped using deprecated `attribute.specified` in all browsers except Internet Explorer.
|
77
|
+
* [#11809](http://dev.ckeditor.com/ticket/11809): Changed tab size in `<pre>` to 4 spaces.
|
78
|
+
|
79
|
+
## CKEditor 4.4
|
80
|
+
|
81
|
+
**Important Notes:**
|
82
|
+
|
83
|
+
* Marked the [`editor.beforePaste`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-beforePaste) event as deprecated.
|
84
|
+
* The default class of captioned images has changed to `image` (was: `caption`). Please note that once edited in CKEditor 4.4+, all existing images of the `caption` class (`<figure class="caption">`) will be [filtered out](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) unless the [`config.image2_captionedClass`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_captionedClass) option is set to `caption`. For backward compatibility (i.e. when upgrading), it is highly recommended to use this setting, which also helps prevent CSS conflicts, etc. This does not apply to new CKEditor integrations.
|
85
|
+
* Widgets without defined buttons are no longer registered automatically to the [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter). Before CKEditor 4.4 widgets were registered to the ACF which was an incorrect behavior ([#11567](http://dev.ckeditor.com/ticket/11567)). This change should not have any impact on standard scenarios, but if your button does not execute the widget command, you need to set [`allowedContent`](http://docs.ckeditor.com/#!/api/CKEDITOR.feature-property-allowedContent) and [`requiredContent`](http://docs.ckeditor.com/#!/api/CKEDITOR.feature-property-requiredContent) properties for it manually, because the editor will not be able to find them.
|
86
|
+
* The [Show Borders](http://ckeditor.com/addon/showborders) plugin was added to the Standard installation package in order to ensure that unstyled tables are still visible for the user ([#11665](http://dev.ckeditor.com/ticket/11665)).
|
87
|
+
* Since CKEditor 4.4 the editor instance should be passed to [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) methods to ensure full compatibility with other features (e.g. applying styles to widgets requires that). We ensured backward compatibility though, so the [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) will work even when the editor instance is not provided.
|
88
|
+
|
89
|
+
New Features:
|
90
|
+
|
91
|
+
* [#11297](http://dev.ckeditor.com/ticket/11297): Styles can now be applied to widgets. The definition of a style which can be applied to a specific widget must contain two additional properties — `type` and `widget`. Read more in the [Widget Styles](http://docs.ckeditor.com/#!/guide/dev_styles-section-widget-styles) section of the "Syles Drop-down" guide. Note that by default, widgets support only classes and no other attributes or styles. Related changes and features:
|
92
|
+
* Introduced the [`CKEDITOR.style.addCustomHandler()`](http://docs.ckeditor.com/#!/api/CKEDITOR.style-static-method-addCustomHandler) method for registering custom style handlers.
|
93
|
+
* The [`CKEDITOR.style.apply()`](http://docs.ckeditor.com/#!/api/CKEDITOR.style-method-apply) and [`CKEDITOR.style.remove()`](http://docs.ckeditor.com/#!/api/CKEDITOR.style-method-remove) methods are now called with an editor instance instead of the document so they can be reused by the [`CKEDITOR.editor.applyStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-applyStyle) and [`CKEDITOR.editor.removeStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-removeStyle) methods. Backward compatibility was preserved, but from CKEditor 4.4 it is highly recommended to pass an editor instead of a document to these methods.
|
94
|
+
* Many new methods and properties were introduced in the [Widget API](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget) to make the handling of styles by widgets fully customizable. See: [`widget.definition.styleableElements`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.definition-property-styleableElements), [`widget.definition.styleToAllowedContentRule`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.definition-property-styleToAllowedContentRules), [`widget.addClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-addClass), [`widget.removeClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-removeClass), [`widget.getClasses()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-getClasses), [`widget.hasClass()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-hasClass), [`widget.applyStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-applyStyle), [`widget.removeStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-removeStyle), [`widget.checkStyleActive()`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget-method-checkStyleActive).
|
95
|
+
* Integration with the [Allowed Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) required an introduction of the [`CKEDITOR.style.toAllowedContent()`](http://docs.ckeditor.com/#!/api/CKEDITOR.style-method-toAllowedContentRules) method which can be implemented by the custom style handler and if exists, it is used by the [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter) to translate a style to [allowed content rules](http://docs.ckeditor.com/#!/api/CKEDITOR.filter.allowedContentRules).
|
96
|
+
* [#11300](http://dev.ckeditor.com/ticket/11300): Various changes in the [Enhanced Image](http://ckeditor.com/addon/image2) plugin:
|
97
|
+
* Introduced the [`config.image2_captionedClass`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_captionedClass) option to configure the class of captioned images.
|
98
|
+
* Introduced the [`config.image2_alignClasses`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_alignClasses) option to configure the way images are aligned with CSS classes.
|
99
|
+
If this setting is defined, the editor produces classes instead of inline styles for aligned images.
|
100
|
+
* Default image caption can be translated (customized) with the `editor.lang.image2.captionPlaceholder` string.
|
101
|
+
* [#11341](http://dev.ckeditor.com/ticket/11341): [Enhanced Image](http://ckeditor.com/addon/image2) plugin: It is now possible to add a link to any image type.
|
102
|
+
* [#10202](http://dev.ckeditor.com/ticket/10202): Introduced wildcard support in the [Allowed Content Rules](http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules) format.
|
103
|
+
* [#10276](http://dev.ckeditor.com/ticket/10276): Introduced blacklisting in the [Allowed Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter).
|
104
|
+
* [#10480](http://dev.ckeditor.com/ticket/10480): Introduced code snippets with code highlighting. There are two versions available so far — the default [Code Snippet](http://ckeditor.com/addon/codesnippet) which uses the [highlight.js](http://highlightjs.org) library and the [Code Snippet GeSHi](http://ckeditor.com/addon/codesnippetgeshi) which uses the [GeSHi](http://qbnz.com/highlighter/) library.
|
105
|
+
* [#11737](http://dev.ckeditor.com/ticket/11737): Introduced an option to prevent [filtering](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) of an element that matches custom criteria (see [`filter.addElementCallback()`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter-method-addElementCallback)).
|
106
|
+
* [#11532](http://dev.ckeditor.com/ticket/11532): Introduced the [`editor.addContentsCss()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-addContentsCss) method that can be used for [adding custom CSS files](http://docs.ckeditor.com/#!/guide/plugin_sdk_styles).
|
107
|
+
* [#11536](http://dev.ckeditor.com/ticket/11536): Added the [`CKEDITOR.tools.htmlDecode()`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-htmlDecode) method for decoding HTML entities.
|
108
|
+
* [#11225](http://dev.ckeditor.com/ticket/11225): Introduced the [`CKEDITOR.tools.transparentImageData`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-property-transparentImageData) property which contains transparent image data to be used in CSS or as image source.
|
109
|
+
|
110
|
+
Other Changes:
|
111
|
+
|
112
|
+
* [#11377](http://dev.ckeditor.com/ticket/11377): Unified internal representation of empty anchors using the [fake objects](http://ckeditor.com/addon/fakeobjects).
|
113
|
+
* [#11422](http://dev.ckeditor.com/ticket/11422): Removed Firefox 3.x, Internet Explorer 6 and Opera 12.x leftovers in code.
|
114
|
+
* [#5217](http://dev.ckeditor.com/ticket/5217): Setting data (including switching between modes) creates a new undo snapshot. Besides that:
|
115
|
+
* Introduced the [`editable.status`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-property-status) property.
|
116
|
+
* Introduced a new `forceUpdate` option for the [`editor.lockSnapshot`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-lockSnapshot) event.
|
117
|
+
* Fixed: Selection not being unlocked in inline editor after setting data ([#11500](http://dev.ckeditor.com/ticket/11500)).
|
118
|
+
* The [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin was updated to the latest version.
|
119
|
+
|
120
|
+
Fixed Issues:
|
121
|
+
|
122
|
+
* [#10190](http://dev.ckeditor.com/ticket/10190): Fixed: Removing block style with [`editor.removeStyle()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-removeStyle) should result in a paragraph and not a div.
|
123
|
+
* [#11727](http://dev.ckeditor.com/ticket/11727): Fixed: The editor tries to select a non-editable image which was clicked.
|
124
|
+
|
125
|
+
## CKEditor 4.3.5
|
126
|
+
|
127
|
+
New Features:
|
128
|
+
|
129
|
+
* Added new translation: Tatar.
|
130
|
+
|
131
|
+
Fixed Issues:
|
132
|
+
|
133
|
+
* [#11677](http://dev.ckeditor.com/ticket/11677): Fixed: Undo/Redo keystrokes are blocked in the source mode.
|
134
|
+
* [#11717](http://dev.ckeditor.com/ticket/11717): [Document Properties](http://ckeditor.com/addon/docprops) plugin requires the [Color Dialog](http://ckeditor.com/addon/colordialog) plugin to work.
|
135
|
+
|
4
136
|
## CKEditor 4.3.4
|
5
137
|
|
6
138
|
Fixed Issues:
|