ckeditor 3.6.3 → 3.7.0.rc1

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.
Files changed (106) hide show
  1. data/Gemfile +1 -1
  2. data/README.rdoc +14 -24
  3. data/app/assets/javascripts/ckeditor/application.js +5 -0
  4. data/app/assets/stylesheets/ckeditor/application.css +6 -0
  5. data/app/controllers/ckeditor/{base_controller.rb → application_controller.rb} +1 -2
  6. data/app/controllers/ckeditor/attachment_files_controller.rb +2 -2
  7. data/app/controllers/ckeditor/pictures_controller.rb +2 -2
  8. data/app/views/ckeditor/shared/_asset.html.erb +2 -2
  9. data/app/views/ckeditor/shared/_asset_tmpl.html.erb +1 -1
  10. data/app/views/layouts/{ckeditor.html.erb → ckeditor/application.html.erb} +4 -12
  11. data/config/locales/sv-SE.ckeditor.yml +8 -0
  12. data/config/locales/zh-CN.ckeditor.yml +8 -0
  13. data/config/routes.rb +3 -5
  14. data/lib/ckeditor.rb +2 -16
  15. data/lib/ckeditor/engine.rb +4 -1
  16. data/lib/ckeditor/hooks/formtastic.rb +9 -12
  17. data/lib/ckeditor/orm/active_record.rb +1 -1
  18. data/lib/ckeditor/utils.rb +14 -7
  19. data/lib/ckeditor/version.rb +1 -1
  20. data/lib/generators/ckeditor/install_generator.rb +48 -55
  21. data/lib/generators/ckeditor/templates/{models/active_record → active_record}/carrierwave/ckeditor/asset.rb +0 -0
  22. data/lib/generators/ckeditor/templates/{models/mongoid → active_record}/carrierwave/ckeditor/attachment_file.rb +1 -4
  23. data/lib/generators/ckeditor/templates/{models/active_record → active_record}/carrierwave/ckeditor/picture.rb +0 -0
  24. data/lib/generators/ckeditor/templates/{models/active_record → active_record}/carrierwave/migration.rb +0 -0
  25. data/lib/generators/ckeditor/templates/{models/active_record → active_record}/paperclip/ckeditor/asset.rb +0 -0
  26. data/lib/generators/ckeditor/templates/{models/active_record → active_record}/paperclip/ckeditor/attachment_file.rb +1 -4
  27. data/lib/generators/ckeditor/templates/{models/active_record → active_record}/paperclip/ckeditor/picture.rb +0 -0
  28. data/lib/generators/ckeditor/templates/{models/active_record → active_record}/paperclip/migration.rb +0 -0
  29. data/lib/generators/ckeditor/templates/{models/base → base}/carrierwave/uploaders/ckeditor_attachment_file_uploader.rb +0 -0
  30. data/lib/generators/ckeditor/templates/{models/base → base}/carrierwave/uploaders/ckeditor_picture_uploader.rb +0 -0
  31. data/lib/generators/ckeditor/templates/ckeditor.rb +0 -3
  32. data/lib/generators/ckeditor/templates/{models/mongoid → mongoid}/carrierwave/ckeditor/asset.rb +0 -0
  33. data/lib/generators/ckeditor/templates/{models/active_record → mongoid}/carrierwave/ckeditor/attachment_file.rb +1 -4
  34. data/lib/generators/ckeditor/templates/{models/mongoid → mongoid}/carrierwave/ckeditor/picture.rb +0 -0
  35. data/lib/generators/ckeditor/templates/{models/mongoid → mongoid}/paperclip/ckeditor/asset.rb +0 -0
  36. data/lib/generators/ckeditor/templates/{models/mongoid → mongoid}/paperclip/ckeditor/attachment_file.rb +1 -4
  37. data/lib/generators/ckeditor/templates/{models/mongoid → mongoid}/paperclip/ckeditor/picture.rb +0 -0
  38. data/test/ckeditor_test.rb +0 -14
  39. data/test/controllers/attachment_files_controller_test.rb +2 -0
  40. data/test/controllers/pictures_controller_test.rb +3 -0
  41. data/test/dummy/Rakefile +1 -1
  42. data/test/dummy/app/assets/javascripts/application.js +11 -0
  43. data/test/dummy/app/assets/stylesheets/application.css +7 -0
  44. data/test/dummy/{public → app/assets}/stylesheets/scaffold.css +0 -0
  45. data/test/dummy/app/views/layouts/application.html.erb +3 -3
  46. data/test/dummy/config/application.rb +11 -12
  47. data/test/dummy/config/boot.rb +7 -6
  48. data/test/dummy/config/database.yml +11 -0
  49. data/test/dummy/config/environments/development.rb +7 -3
  50. data/test/dummy/config/environments/production.rb +23 -12
  51. data/test/dummy/config/environments/test.rb +5 -1
  52. data/test/dummy/config/initializers/secret_token.rb +1 -1
  53. data/test/dummy/config/initializers/session_store.rb +1 -1
  54. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  55. data/test/dummy/config/locales/en.yml +1 -1
  56. data/test/dummy/config/routes.rb +2 -0
  57. data/test/dummy/db/test.sqlite3 +0 -0
  58. data/test/dummy/log/test.log +3681 -6331
  59. data/test/generators/install_generator_test.rb +58 -15
  60. data/test/integration/posts_test.rb +5 -5
  61. data/test/models/attachment_file_test.rb +3 -1
  62. data/test/models/picture_test.rb +1 -0
  63. data/test/models/utils_test.rb +19 -0
  64. data/test/support/controller_hooks.rb +27 -0
  65. data/test/support/routes.txt +4 -0
  66. data/test/test_helper.rb +0 -1
  67. data/test/tmp/app/models/ckeditor/attachment_file.rb +1 -4
  68. data/test/tmp/config/initializers/ckeditor.rb +18 -0
  69. data/test/tmp/config/routes.rb +6 -0
  70. metadata +185 -236
  71. data/lib/generators/ckeditor/models_generator.rb +0 -70
  72. data/lib/generators/ckeditor/templates/ckeditor/config.js +0 -65
  73. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/images/gal_add.jpg +0 -0
  74. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/images/gal_add.png +0 -0
  75. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/images/gal_del.png +0 -0
  76. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/images/gal_more.gif +0 -0
  77. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/images/preloader.gif +0 -0
  78. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/images/thumbs/ckfnothumb.gif +0 -0
  79. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/images/thumbs/mp3.gif +0 -0
  80. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/images/thumbs/pdf.gif +0 -0
  81. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/images/thumbs/rar.gif +0 -0
  82. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/images/thumbs/swf.gif +0 -0
  83. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/images/thumbs/xls.gif +0 -0
  84. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/javascripts/application.js +0 -223
  85. data/lib/generators/ckeditor/templates/ckeditor/filebrowser/stylesheets/uploader.css +0 -115
  86. data/lib/generators/ckeditor/templates/ckeditor/plugins/attachment/dialogs/attachment.js +0 -1
  87. data/lib/generators/ckeditor/templates/ckeditor/plugins/attachment/images/attachment.png +0 -0
  88. data/lib/generators/ckeditor/templates/ckeditor/plugins/attachment/lang/en.js +0 -10
  89. data/lib/generators/ckeditor/templates/ckeditor/plugins/attachment/lang/ru.js +0 -10
  90. data/lib/generators/ckeditor/templates/ckeditor/plugins/attachment/lang/uk.js +0 -10
  91. data/lib/generators/ckeditor/templates/ckeditor/plugins/attachment/plugin.js +0 -1
  92. data/lib/generators/ckeditor/templates/ckeditor/plugins/embed/dialogs/embed.js +0 -1
  93. data/lib/generators/ckeditor/templates/ckeditor/plugins/embed/images/embed.png +0 -0
  94. data/lib/generators/ckeditor/templates/ckeditor/plugins/embed/lang/en.js +0 -9
  95. data/lib/generators/ckeditor/templates/ckeditor/plugins/embed/lang/ru.js +0 -9
  96. data/lib/generators/ckeditor/templates/ckeditor/plugins/embed/lang/uk.js +0 -9
  97. data/lib/generators/ckeditor/templates/ckeditor/plugins/embed/plugin.js +0 -1
  98. data/test/dummy/db/schema.rb +0 -36
  99. data/test/dummy/public/javascripts/application.js +0 -2
  100. data/test/dummy/public/javascripts/controls.js +0 -965
  101. data/test/dummy/public/javascripts/dragdrop.js +0 -974
  102. data/test/dummy/public/javascripts/effects.js +0 -1123
  103. data/test/dummy/public/javascripts/prototype.js +0 -6001
  104. data/test/dummy/public/javascripts/rails.js +0 -191
  105. data/test/generators/models_generator_test.rb +0 -61
  106. data/test/routes_test.rb +0 -47
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source "http://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
- gem "rails", "3.0.9"
5
+ gem "rails", "3.1.3"
6
6
 
7
7
  platforms :mri_18 do
8
8
  group :test do
@@ -5,7 +5,7 @@ the results users have when publishing it. It brings to the web common editing f
5
5
 
6
6
  == Features
7
7
 
8
- * Rails 3 integration
8
+ * Rails 3.1 integration
9
9
  * Files browser
10
10
  * HTML5 files uploader
11
11
  * Hooks for formtastic and simple_form forms generators
@@ -14,23 +14,13 @@ the results users have when publishing it. It brings to the web common editing f
14
14
 
15
15
  == Install
16
16
 
17
- gem install ckeditor
17
+ Rails 3.1:
18
18
 
19
- Or via bundler:
19
+ gem "ckeditor", "3.7.0.rc1"
20
20
 
21
- gem "ckeditor"
21
+ Rails <= 3.0:
22
22
 
23
- === Download ckeditor
24
-
25
- rails generate ckeditor:install
26
-
27
- You can pass version of ckeditor to download (http://ckeditor.com/download/releases):
28
-
29
- rails generate ckeditor:install --version=3.5.4
30
-
31
- === Install destination
32
-
33
- rails generate ckeditor:install --path=public/assets
23
+ gem "ckeditor", "3.6.3"
34
24
 
35
25
  === Now generate models for store uploading files
36
26
 
@@ -40,27 +30,27 @@ For active_record orm is used paperclip gem (it's by default).
40
30
 
41
31
  gem "paperclip"
42
32
 
43
- rails generate ckeditor:models --orm=active_record --backend=paperclip
33
+ rails generate ckeditor:install --orm=active_record --backend=paperclip
44
34
 
45
35
  ==== ActiveRecord + carrierwave
46
36
 
47
37
  gem "carrierwave"
48
38
  gem "mini_magick"
49
39
 
50
- rails generate ckeditor:models --orm=active_record --backend=carrierwave
40
+ rails generate ckeditor:install --orm=active_record --backend=carrierwave
51
41
 
52
42
  ==== Mongoid + paperclip
53
43
 
54
44
  gem 'mongoid-paperclip', :require => 'mongoid_paperclip'
55
45
 
56
- rails generate ckeditor:models --orm=mongoid --backend=paperclip
46
+ rails generate ckeditor:install --orm=mongoid --backend=paperclip
57
47
 
58
48
  ==== Mongoid + carrierwave
59
49
 
60
50
  gem "carrierwave-mongoid", :require => 'carrierwave/mongoid'
61
51
  gem "mini_magick"
62
52
 
63
- rails generate ckeditor:models --orm=mongoid --backend=carrierwave
53
+ rails generate ckeditor:install --orm=mongoid --backend=carrierwave
64
54
 
65
55
  Available orms:
66
56
  * active_record
@@ -74,14 +64,14 @@ Autoload ckeditor models folder (application.rb):
74
64
 
75
65
  == Usage
76
66
 
77
- Include ckeditor javascripts:
67
+ Include ckeditor javascripts rails 3.1:
78
68
 
79
- <%= javascript_include_tag :ckeditor %>
69
+ //= require ckeditor/ckeditor
80
70
 
81
- or (for rails 3.1):
71
+ Rails <= 3.0:
72
+
73
+ <%= javascript_include_tag :ckeditor %>
82
74
 
83
- <%= javascript_include_tag "/javascripts/ckeditor/ckeditor.js" %>
84
-
85
75
  Form helpers:
86
76
 
87
77
  cktext_area_tag("test_area", "Ckeditor is the best")
@@ -0,0 +1,5 @@
1
+ //= require ckeditor/filebrowser/javascripts/jquery.min.js
2
+ //= require ckeditor/filebrowser/javascripts/jquery.tmpl.min.js
3
+ //= require ckeditor/filebrowser/javascripts/fileuploader.js
4
+ //= require ckeditor/filebrowser/javascripts/rails.js
5
+ //= require ckeditor/filebrowser/javascripts/application.js
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This is a manifest file that'll automatically include all the stylesheets available in this directory
3
+ * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4
+ * the top of the compiled file, but it's generally better to create a new file per style scope.
5
+ *= require ckeditor/filebrowser/stylesheets/uploader.css
6
+ */
@@ -1,6 +1,5 @@
1
- class Ckeditor::BaseController < ApplicationController
1
+ class Ckeditor::ApplicationController < ::ApplicationController
2
2
  respond_to :html, :json
3
- layout "ckeditor"
4
3
 
5
4
  before_filter :set_locale
6
5
  before_filter :find_asset, :only => [:destroy]
@@ -1,4 +1,4 @@
1
- class Ckeditor::AttachmentFilesController < Ckeditor::BaseController
1
+ class Ckeditor::AttachmentFilesController < Ckeditor::ApplicationController
2
2
 
3
3
  def index
4
4
  @attachments = Ckeditor.attachment_file_model.find_all(ckeditor_attachment_files_scope)
@@ -12,7 +12,7 @@ class Ckeditor::AttachmentFilesController < Ckeditor::BaseController
12
12
 
13
13
  def destroy
14
14
  @attachment.destroy
15
- respond_with(@attachment, :location => ckeditor_attachment_files_path)
15
+ respond_with(@attachment, :location => attachment_files_path)
16
16
  end
17
17
 
18
18
  protected
@@ -1,4 +1,4 @@
1
- class Ckeditor::PicturesController < Ckeditor::BaseController
1
+ class Ckeditor::PicturesController < Ckeditor::ApplicationController
2
2
 
3
3
  def index
4
4
  @pictures = Ckeditor.picture_model.find_all(ckeditor_pictures_scope)
@@ -12,7 +12,7 @@ class Ckeditor::PicturesController < Ckeditor::BaseController
12
12
 
13
13
  def destroy
14
14
  @picture.destroy
15
- respond_with(@picture, :location => ckeditor_pictures_path)
15
+ respond_with(@picture, :location => pictures_path)
16
16
  end
17
17
 
18
18
  protected
@@ -1,5 +1,5 @@
1
1
  <%= content_tag(:div, :id => dom_id(asset), :class => "gal-item", :"data-url" => asset.url_content) do %>
2
- <%= link_to image_tag("#{Ckeditor.relative_path}/ckeditor/filebrowser/images/gal_del.png",
2
+ <%= link_to image_tag("/assets/ckeditor/filebrowser/images/gal_del.png",
3
3
  :title => I18n.t('ckeditor.buttons.delete')),
4
4
  polymorphic_path(asset, :format => :json),
5
5
  :remote => true,
@@ -13,7 +13,7 @@
13
13
  <div class="img-name"><%= asset.filename %></div>
14
14
  <div class="time-size">
15
15
  <div class="time"><%= asset.format_created_at %></div>
16
- <div class="fileupload-size size"><%= number_to_human_size(asset.size) %></div>
16
+ <div class="fileupload-size size"><%= number_to_human_size(asset.size) if asset.size %></div>
17
17
  </div>
18
18
  </div>
19
19
  </div>
@@ -1,6 +1,6 @@
1
1
  <script id="fileupload_tmpl" type="text/x-jquery-tmpl">
2
2
  <div id="asset_${id}" class="gal-item" data-url="${url_content}">
3
- <%= link_to image_tag("#{Ckeditor.relative_path}/ckeditor/filebrowser/images/gal_del.png",
3
+ <%= link_to image_tag("/assets/ckeditor/filebrowser/images/gal_del.png",
4
4
  :title => I18n.t('ckeditor.buttons.delete')),
5
5
  "/ckeditor/${controller}/${id}.json",
6
6
  :remote => true,
@@ -6,18 +6,10 @@
6
6
  <%= csrf_meta_tag %>
7
7
  <%= tag(:meta, :name => "ckeditor-path", :content => Ckeditor.relative_path) %>
8
8
  <title><%= I18n.t('page_title', :scope => [:ckeditor]) %></title>
9
- <link href="<%= Ckeditor.relative_path %>/ckeditor/filebrowser/stylesheets/uploader.css" type="text/css" rel="stylesheet">
10
- <style type="text/css">
11
- .gal-holder .gal-item .gal-upload-holder .add {
12
- background: url(<%= Ckeditor.relative_path %>/ckeditor/filebrowser/images/gal_add.png) no-repeat left center;
13
- }
14
- .gal-more a {
15
- background: url(<%= Ckeditor.relative_path %>/ckeditor/filebrowser/images/gal_more.gif) no-repeat left center;
16
- }
17
- </style>
18
- <% ["jquery.js", "jquery.tmpl.js", "fileuploader.js", "rails.js", "application.js"].each do |js| %>
19
- <script src="<%= Ckeditor.relative_path %>/ckeditor/filebrowser/javascripts/<%= js %>" type="text/javascript"></script>
20
- <% end %>
9
+
10
+ <%= stylesheet_link_tag "ckeditor/application" %>
11
+ <%= javascript_include_tag "ckeditor/application" %>
12
+
21
13
  <script type="text/javascript">
22
14
  var CKEditorFuncNum = $.QueryString["CKEditorFuncNum"];
23
15
  var CKEditorName = $.QueryString["CKEditor"];
@@ -0,0 +1,8 @@
1
+ "sv-SE":
2
+ ckeditor:
3
+ page_title: "CKEditor filhanterare"
4
+ confirm_delete: "Ta bort fil?"
5
+ buttons:
6
+ cancel: "Avbryt"
7
+ upload: "Ladda upp"
8
+ delete: "Ta bort"
@@ -0,0 +1,8 @@
1
+ zh-CN:
2
+ ckeditor:
3
+ page_title: "CKEditor - 文件管理"
4
+ confirm_delete: "删除文件?"
5
+ buttons:
6
+ cancel: "取消"
7
+ upload: "上传"
8
+ delete: "删除"
@@ -1,6 +1,4 @@
1
- Rails.application.routes.draw do
2
- namespace :ckeditor, :only => [:index, :create, :destroy] do
3
- resources :pictures
4
- resources :attachment_files
5
- end
1
+ Ckeditor::Engine.routes.draw do
2
+ resources :pictures, :only => [:index, :create, :destroy]
3
+ resources :attachment_files, :only => [:index, :create, :destroy]
6
4
  end
@@ -14,7 +14,6 @@ module Ckeditor
14
14
  end
15
15
 
16
16
  module Hooks
17
- autoload :FormtasticBuilder, 'ckeditor/hooks/formtastic'
18
17
  autoload :SimpleFormBuilder, 'ckeditor/hooks/simple_form'
19
18
  end
20
19
 
@@ -34,8 +33,8 @@ module Ckeditor
34
33
  @@attachment_file_types = ["doc", "docx", "xls", "odt", "ods", "pdf", "rar", "zip", "tar", "tar.gz", "swf"]
35
34
 
36
35
  # Ckeditor files destination path
37
- mattr_accessor :path
38
- @@path = 'public/javascripts'
36
+ mattr_accessor :relative_path
37
+ @@relative_path = '/assets/ckeditor'
39
38
 
40
39
  # Default way to setup Ckeditor. Run rails generate ckeditor to create
41
40
  # a fresh initializer with all configuration values.
@@ -50,19 +49,6 @@ module Ckeditor
50
49
  def self.attachment_file_model
51
50
  Ckeditor::AttachmentFile.to_adapter
52
51
  end
53
-
54
- def self.relative_path
55
- @@relative_path ||= File.join("/", Rails.root.join(path).relative_path_from(public_path).to_s)
56
- end
57
-
58
- def self.public_path
59
- Rails.root.join('public')
60
- end
61
-
62
- def self.path=(value)
63
- @@relative_path = nil
64
- @@path = value
65
- end
66
52
  end
67
53
 
68
54
  require 'ckeditor/engine'
@@ -1,7 +1,10 @@
1
1
  require 'rails'
2
+ require 'ckeditor'
2
3
 
3
4
  module Ckeditor
4
5
  class Engine < ::Rails::Engine
6
+ isolate_namespace Ckeditor
7
+
5
8
  config.action_view.javascript_expansions[:ckeditor] = "ckeditor/ckeditor"
6
9
 
7
10
  initializer "ckeditor.helpers" do
@@ -18,7 +21,7 @@ module Ckeditor
18
21
 
19
22
  initializer "ckeditor.hooks" do
20
23
  if Object.const_defined?("Formtastic")
21
- ::Formtastic::SemanticFormBuilder.send :include, Ckeditor::Hooks::FormtasticBuilder
24
+ require "ckeditor/hooks/formtastic"
22
25
  end
23
26
 
24
27
  if Object.const_defined?("SimpleForm")
@@ -1,15 +1,12 @@
1
- module Ckeditor
2
- module Hooks
3
- module FormtasticBuilder
4
- def self.included(base)
5
- base.send(:include, InstanceMethods)
6
- end
7
-
8
- module InstanceMethods
9
- def ckeditor_input(method, options)
10
- basic_input_helper(:cktext_area, :text, method, options)
11
- end
12
- end
1
+ require "formtastic"
2
+
3
+ class CkeditorInput
4
+ include ::Formtastic::Inputs::Base
5
+
6
+ def to_html
7
+ input_wrapping do
8
+ label_html <<
9
+ builder.cktext_area(method, input_html_options)
13
10
  end
14
11
  end
15
12
  end
@@ -12,7 +12,7 @@ module Ckeditor
12
12
  module ClassMethods
13
13
  def self.extended(base)
14
14
  base.class_eval do
15
- set_table_name "ckeditor_assets"
15
+ self.table_name = "ckeditor_assets"
16
16
 
17
17
  belongs_to :assetable, :polymorphic => true
18
18
 
@@ -13,11 +13,6 @@ module Ckeditor
13
13
  [basename.parameterize('_'), extension].join.downcase
14
14
  end
15
15
 
16
- def extract(filepath, output)
17
- # TODO: need check system OS
18
- system("tar --exclude=*.php --exclude=*.asp -C '#{output}' -xzf '#{filepath}' ckeditor/")
19
- end
20
-
21
16
  def js_replace(dom_id, options = {})
22
17
  js_options = applay_options(options)
23
18
  js = ["if (CKEDITOR.instances['#{dom_id}']) {CKEDITOR.remove(CKEDITOR.instances['#{dom_id}']);}"]
@@ -48,7 +43,7 @@ module Ckeditor
48
43
 
49
44
  js_options = applay_options(options)
50
45
 
51
- "$(document).ready(function(){ new qq.FileUploaderInput({ #{js_options} }); });"
46
+ "$(document).ready(function(){ new qq.FileUploaderInput({ #{js_options} }); });".html_safe
52
47
  end
53
48
 
54
49
  def applay_options(options)
@@ -66,11 +61,23 @@ module Ckeditor
66
61
  else value
67
62
  end
68
63
 
69
- str << "#{key}: #{item}"
64
+ str << %Q{"#{key}": #{item}}
70
65
  end
71
66
 
72
67
  str.sort.join(',')
73
68
  end
69
+
70
+ def filethumb(filename)
71
+ extname = filename.blank? ? "unknown" : File.extname(filename).gsub(/^\./, '')
72
+ image = "#{extname}.gif"
73
+ source = File.expand_path("../../../vendor/assets/javascripts/ckeditor/filebrowser/images/thumbs", __FILE__)
74
+
75
+ unless File.exists?(File.join(source, image))
76
+ image = "unknown.gif"
77
+ end
78
+
79
+ File.join(Ckeditor.relative_path, "filebrowser/images/thumbs", image)
80
+ end
74
81
  end
75
82
  end
76
83
  end
@@ -1,6 +1,6 @@
1
1
  module Ckeditor
2
2
  module Version
3
- GEM = "3.6.3".freeze
3
+ GEM = "3.7.0.rc1".freeze
4
4
  EDITOR = "3.6.2".freeze
5
5
  end
6
6
  end
@@ -1,85 +1,78 @@
1
1
  require 'rails/generators'
2
- require 'fileutils'
2
+ require 'rails/generators/migration'
3
3
 
4
4
  module Ckeditor
5
5
  module Generators
6
6
  class InstallGenerator < Rails::Generators::Base
7
- class_option :version, :type => :string, :default => Ckeditor::Version::EDITOR,
8
- :desc => "Version of ckeditor which be install (by default #{Ckeditor::Version::EDITOR})"
7
+ include Rails::Generators::Migration
9
8
 
10
- class_option :orm, :type => :string, :default => 'active_record',
11
- :desc => "Backend processor for upload support (by default active_record)"
9
+ desc "Generates migration for Asset (Picture, AttachmentFile) models"
10
+
11
+ # ORM configuration
12
+ class_option :orm, :type => :string, :default => "active_record",
13
+ :desc => "Backend processor for upload support"
14
+
15
+ class_option :backend, :type => :string, :default => 'paperclip',
16
+ :desc => "Paperclip (by default) or carrierwave"
12
17
 
13
- class_option :path, :type => :string, :default => Ckeditor.path,
14
- :desc => "Ckeditor install directory destination (by default #{Ckeditor.path})"
15
-
16
- desc "Download and install ckeditor into destination folder"
17
-
18
18
  def self.source_root
19
19
  @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
20
20
  end
21
21
 
22
+ def self.next_migration_number(dirname)
23
+ Time.now.strftime("%Y%m%d%H%M%S")
24
+ end
25
+
22
26
  # copy configuration
23
27
  def copy_initializer
24
28
  template "ckeditor.rb", "config/initializers/ckeditor.rb"
25
29
  end
30
+
31
+ def mount_engine
32
+ route "mount Ckeditor::Engine => '/ckeditor'"
33
+ end
26
34
 
27
- # copy ckeditor files
28
- def install_ckeditor
29
- say_status("fetching #{filename}", "", :green)
30
-
31
- in_root do
32
- filepath = "tmp/#{filename}"
33
- get(download_url, filepath)
34
-
35
- if File.exist?(filepath)
36
- FileUtils.mkdir_p(install_dir)
37
- Ckeditor::Utils.extract(filepath, install_dir)
38
- FileUtils.rm_rf(filepath)
39
- end
35
+ def create_models
36
+ [:asset, :picture, :attachment_file].each do |filename|
37
+ template "#{generator_dir}/ckeditor/#{filename}.rb",
38
+ File.join('app/models', ckeditor_dir, "#{filename}.rb")
40
39
  end
41
- end
42
-
43
- def update_javascripts
44
- in_root do
45
- directory "ckeditor/filebrowser", "#{install_dir}/ckeditor/filebrowser"
46
- directory "ckeditor/plugins", "#{install_dir}/ckeditor/plugins"
47
- copy_file "ckeditor/config.js", "#{install_dir}/ckeditor/config.js", :force => true
40
+
41
+ if backend == "carrierwave"
42
+ template "#{uploaders_dir}/uploaders/ckeditor_attachment_file_uploader.rb",
43
+ File.join("app/uploaders", "ckeditor_attachment_file_uploader.rb")
48
44
 
49
- gsub_file "#{install_dir}/ckeditor/plugins/image/dialogs/image.js",
50
- /id\:\'uploadButton\'\,filebrowser\:\'info:txtUrl\'/,
51
- "id:'uploadButton',filebrowser:{target:'info:txtUrl',action:'QuickUpload',params:b.config.filebrowserParams()}"
52
- end
45
+ template "#{uploaders_dir}/uploaders/ckeditor_picture_uploader.rb",
46
+ File.join("app/uploaders", "ckeditor_picture_uploader.rb")
47
+ end
53
48
  end
54
49
 
55
- def download_javascripts
56
- js_dir = "#{install_dir}/ckeditor/filebrowser/javascripts"
57
-
58
- say_status("fetching rails.js", "", :green)
59
- get "https://github.com/rails/jquery-ujs/raw/master/src/rails.js", "#{js_dir}/rails.js"
60
-
61
- say_status("fetching fileuploader.js", "", :green)
62
- get "https://raw.github.com/galetahub/file-uploader/master/client/fileuploader.js", "#{js_dir}/fileuploader.js"
63
-
64
- say_status("fetching jquery-1.6.2.min.js", "", :green)
65
- get "https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js", "#{js_dir}/jquery.js"
66
-
67
- say_status("fetching jquery.tmpl.min.js", "", :green)
68
- get "https://raw.github.com/jquery/jquery-tmpl/master/jquery.tmpl.min.js", "#{js_dir}/jquery.tmpl.js"
50
+ def create_migration
51
+ if ["active_record"].include?(orm)
52
+ migration_template "#{generator_dir}/migration.rb", File.join('db/migrate', "create_ckeditor_assets.rb")
53
+ end
69
54
  end
70
-
55
+
71
56
  protected
72
57
 
73
- def download_url
74
- "http://download.cksource.com/CKEditor/CKEditor/CKEditor%20#{options[:version]}/#{filename}"
58
+ def ckeditor_dir
59
+ 'ckeditor'
75
60
  end
76
61
 
77
- def filename
78
- "ckeditor_#{options[:version]}.tar.gz"
62
+ def generator_dir
63
+ @generator_dir ||= [orm, backend].join('/')
64
+ end
65
+
66
+ def uploaders_dir
67
+ @uploaders_dir ||= ['base', 'carrierwave'].join('/')
68
+ end
69
+
70
+ def orm
71
+ options[:orm] || "active_record"
79
72
  end
80
73
 
81
- def install_dir
82
- options[:path] || Ckeditor.path
74
+ def backend
75
+ options[:backend] || "paperclip"
83
76
  end
84
77
  end
85
78
  end