th_simple_content_management 0.2.1 → 0.2.2
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.
- data/app/assets/images/simple_content_management/resize-handle.png +0 -0
- data/app/assets/javascripts/simple_content_management/simple_pages.js +1 -21
- data/app/assets/javascripts/simple_content_management/simple_pages/form.js +32 -0
- data/app/assets/javascripts/th-page-editor/column.js +136 -0
- data/app/assets/javascripts/th-page-editor/index.js +104 -0
- data/app/assets/javascripts/th-page-editor/row.js +90 -0
- data/app/assets/stylesheets/simple_content_management/simple_pages.css.scss +80 -8
- data/app/controllers/redactor_rails/documents_controller.rb +28 -0
- data/app/controllers/redactor_rails/pictures_controller.rb +28 -0
- data/app/helpers/simple_content_management/simple_pages_helper.rb +4 -0
- data/app/models/redactor/asset.rb +5 -0
- data/app/models/redactor/document.rb +11 -0
- data/app/models/redactor/picture.rb +7 -0
- data/app/models/simple_content_management/simple_menu.rb +1 -1
- data/app/models/simple_content_management/simple_page.rb +6 -0
- data/app/views/simple_content_management/simple_pages/_form.html.erb +48 -3
- data/config/routes.rb +4 -0
- data/lib/generators/redactor/config_generator.rb +18 -0
- data/lib/generators/redactor/install_generator.rb +75 -0
- data/lib/generators/redactor/templates/active_record/carrierwave/devise_migration.rb +30 -0
- data/lib/generators/redactor/templates/active_record/carrierwave/migration.rb +30 -0
- data/lib/generators/redactor/templates/active_record/carrierwave/redactor/asset.rb +5 -0
- data/lib/generators/redactor/templates/active_record/carrierwave/redactor/document.rb +11 -0
- data/lib/generators/redactor/templates/active_record/carrierwave/redactor/picture.rb +7 -0
- data/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_document_uploader.rb +15 -0
- data/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_picture_uploader.rb +53 -0
- data/lib/generators/redactor/templates/config.js +17 -0
- data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/asset.rb +9 -0
- data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/document.rb +14 -0
- data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/picture.rb +7 -0
- data/lib/redactor-rails.rb +41 -0
- data/lib/redactor-rails/backend/carrierwave.rb +64 -0
- data/lib/redactor-rails/devise.rb +11 -0
- data/lib/redactor-rails/engine.rb +14 -0
- data/lib/redactor-rails/helper.rb +8 -0
- data/lib/redactor-rails/http.rb +89 -0
- data/lib/redactor-rails/orm/active_record.rb +27 -0
- data/lib/redactor-rails/orm/base.rb +38 -0
- data/lib/redactor-rails/orm/mongoid.rb +37 -0
- data/lib/redactor-rails/version.rb +3 -0
- data/lib/redactor_rails_document_uploader.rb +15 -0
- data/lib/redactor_rails_picture_uploader.rb +53 -0
- data/lib/simple_content_management.rb +5 -0
- data/lib/simple_content_management/content_text.rb +25 -0
- data/lib/simple_content_management/version.rb +1 -1
- data/vendor/assets/javascripts/redactor-rails/config.js +17 -0
- data/vendor/assets/javascripts/redactor-rails/css/docstyle.css +139 -0
- data/vendor/assets/javascripts/redactor-rails/css/style.css +26 -0
- data/vendor/assets/javascripts/redactor-rails/css/wym.css +151 -0
- data/vendor/assets/javascripts/redactor-rails/index.js +2 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ar.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ba.js +69 -0
- data/vendor/assets/javascripts/redactor-rails/langs/bg.js +67 -0
- data/vendor/assets/javascripts/redactor-rails/langs/by.js +65 -0
- data/vendor/assets/javascripts/redactor-rails/langs/cs.js +77 -0
- data/vendor/assets/javascripts/redactor-rails/langs/da.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/de.js +70 -0
- data/vendor/assets/javascripts/redactor-rails/langs/en.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/eo.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/es.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/fa.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/fi.js +69 -0
- data/vendor/assets/javascripts/redactor-rails/langs/fr.js +76 -0
- data/vendor/assets/javascripts/redactor-rails/langs/hr.js +69 -0
- data/vendor/assets/javascripts/redactor-rails/langs/hu.js +67 -0
- data/vendor/assets/javascripts/redactor-rails/langs/id.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/it.js +68 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ja.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ko.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/lv.js +65 -0
- data/vendor/assets/javascripts/redactor-rails/langs/nl.js +69 -0
- data/vendor/assets/javascripts/redactor-rails/langs/pl.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/pt_br.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ro.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ru.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/sk.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/sq.js +69 -0
- data/vendor/assets/javascripts/redactor-rails/langs/sr-cir.js +69 -0
- data/vendor/assets/javascripts/redactor-rails/langs/sr-lat.js +69 -0
- data/vendor/assets/javascripts/redactor-rails/langs/sv.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/tr.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ua.js +67 -0
- data/vendor/assets/javascripts/redactor-rails/langs/vi.js +65 -0
- data/vendor/assets/javascripts/redactor-rails/langs/zh_cn.js +70 -0
- data/vendor/assets/javascripts/redactor-rails/langs/zh_tw.js +66 -0
- data/vendor/assets/javascripts/redactor-rails/redactor.js +6074 -0
- data/vendor/assets/stylesheets/redactor-rails/css/redactor-iframe.css +201 -0
- data/vendor/assets/stylesheets/redactor-rails/css/redactor.css +780 -0
- data/vendor/assets/stylesheets/redactor-rails/css/style.css +26 -0
- data/vendor/assets/stylesheets/redactor-rails/index.css +1 -0
- metadata +151 -70
- checksums.yaml +0 -15
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
$(document).ready(
|
|
2
|
+
function(){
|
|
3
|
+
var csrf_token = $('meta[name=csrf-token]').attr('content');
|
|
4
|
+
var csrf_param = $('meta[name=csrf-param]').attr('content');
|
|
5
|
+
var params;
|
|
6
|
+
if (csrf_param !== undefined && csrf_token !== undefined) {
|
|
7
|
+
params = csrf_param + "=" + encodeURIComponent(csrf_token);
|
|
8
|
+
}
|
|
9
|
+
$('.redactor').redactor(
|
|
10
|
+
{ "imageUpload":"/redactor_rails/pictures?" + params,
|
|
11
|
+
"imageGetJson":"/redactor_rails/pictures",
|
|
12
|
+
"fileUpload":"/redactor_rails/documents?" + params,
|
|
13
|
+
"fileGetJson":"/redactor_rails/documents",
|
|
14
|
+
"path":"/assets/redactor-rails",
|
|
15
|
+
"css":"style.css"}
|
|
16
|
+
);
|
|
17
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class RedactorRails::Document < RedactorRails::Asset
|
|
2
|
+
mount_uploader :data, RedactorRailsDocumentUploader, :mount_on => :data_file_name
|
|
3
|
+
|
|
4
|
+
def url_content
|
|
5
|
+
url(:content)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def thumb
|
|
9
|
+
# Could theoretically provide an icon set here
|
|
10
|
+
# to match against the extensions
|
|
11
|
+
# but for now it's nil to address the bug
|
|
12
|
+
nil
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require "orm_adapter"
|
|
2
|
+
require "redactor-rails/version"
|
|
3
|
+
|
|
4
|
+
module RedactorRails
|
|
5
|
+
IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/jpg', 'image/pjpeg', 'image/tiff', 'image/x-png']
|
|
6
|
+
|
|
7
|
+
FILE_TYPES = ['application/msword', 'application/pdf', 'text/plain', 'text/rtf', 'application/vnd.ms-excel']
|
|
8
|
+
|
|
9
|
+
autoload :Http, 'redactor-rails/http'
|
|
10
|
+
autoload :Devise, 'redactor-rails/devise'
|
|
11
|
+
|
|
12
|
+
module Backend
|
|
13
|
+
autoload :CarrierWave, 'redactor-rails/backend/carrierwave'
|
|
14
|
+
end
|
|
15
|
+
require 'redactor-rails/orm/base'
|
|
16
|
+
require 'redactor-rails/orm/active_record'
|
|
17
|
+
require 'redactor-rails/orm/mongoid'
|
|
18
|
+
require 'redactor-rails/engine'
|
|
19
|
+
require 'redactor-rails/helper'
|
|
20
|
+
|
|
21
|
+
mattr_accessor :image_file_types, :document_file_types
|
|
22
|
+
@@image_file_types = ["jpg", "jpeg", "png", "gif", "tiff"]
|
|
23
|
+
@@document_file_types = ["pdf", "doc", "docx", "xls", "xlsx", "rtf", "txt"]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def self.picture_model
|
|
27
|
+
RedactorRails::Picture
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.document_model
|
|
31
|
+
RedactorRails::Document
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.devise_user
|
|
35
|
+
%s(user)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def self.devise_user_key
|
|
39
|
+
"#{self.devise_user.to_s}_id".to_sym
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
require 'mime/types'
|
|
2
|
+
require 'mini_magick'
|
|
3
|
+
|
|
4
|
+
module RedactorRails
|
|
5
|
+
module Backend
|
|
6
|
+
module CarrierWave
|
|
7
|
+
def self.included(base)
|
|
8
|
+
base.send(:include, InstanceMethods)
|
|
9
|
+
base.send(:extend, ClassMethods)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module ClassMethods
|
|
13
|
+
def self.extended(base)
|
|
14
|
+
base.class_eval do
|
|
15
|
+
process :extract_content_type
|
|
16
|
+
process :set_size
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
module InstanceMethods
|
|
22
|
+
# process :strip
|
|
23
|
+
def strip
|
|
24
|
+
manipulate! do |img|
|
|
25
|
+
img.strip
|
|
26
|
+
img = yield(img) if block_given?
|
|
27
|
+
img
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# process :quality => 85
|
|
32
|
+
def quality(percentage)
|
|
33
|
+
manipulate! do |img|
|
|
34
|
+
img.quality(percentage)
|
|
35
|
+
img = yield(img) if block_given?
|
|
36
|
+
img
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def extract_content_type
|
|
41
|
+
if file.content_type == 'application/octet-stream' || file.content_type.blank?
|
|
42
|
+
content_type = MIME::Types.type_for(original_filename).first
|
|
43
|
+
else
|
|
44
|
+
content_type = file.content_type
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
model.data_content_type = content_type.to_s
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def set_size
|
|
51
|
+
model.data_file_size = file.size
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def read_dimensions
|
|
55
|
+
if model.image? && model.has_dimensions?
|
|
56
|
+
magick = ::MiniMagick::Image.new(current_path)
|
|
57
|
+
model.width, model.height = magick[:width], magick[:height]
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module RedactorRails
|
|
2
|
+
class Engine < Rails::Engine
|
|
3
|
+
isolate_namespace RedactorRails
|
|
4
|
+
initializer "helper" do |app|
|
|
5
|
+
ActiveSupport.on_load(:action_view) do
|
|
6
|
+
include RedactorRails::Helpers
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
initializer "redactor_devise" do |app|
|
|
11
|
+
ActionController::Base.send :include, RedactorRails::Devise
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'digest/sha1'
|
|
3
|
+
require 'mime/types'
|
|
4
|
+
|
|
5
|
+
module RedactorRails
|
|
6
|
+
module Http
|
|
7
|
+
# Create tempfile from hash
|
|
8
|
+
class UploadedFile
|
|
9
|
+
attr_accessor :original_filename, :content_type, :tempfile, :headers
|
|
10
|
+
|
|
11
|
+
def initialize(hash)
|
|
12
|
+
@original_filename = hash[:filename]
|
|
13
|
+
@content_type = hash[:type]
|
|
14
|
+
@headers = hash[:head]
|
|
15
|
+
@tempfile = hash[:tempfile]
|
|
16
|
+
raise(ArgumentError, ':tempfile is required') unless @tempfile
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def open
|
|
20
|
+
@tempfile.open
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def path
|
|
24
|
+
@tempfile.path
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def read(*args)
|
|
28
|
+
@tempfile.read(*args)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def rewind
|
|
32
|
+
@tempfile.rewind
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def size
|
|
36
|
+
@tempfile.size
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Usage (paperclip example)
|
|
41
|
+
# @asset.data = QqFile.new(params[:qqfile], request)
|
|
42
|
+
class QqFile < ::Tempfile
|
|
43
|
+
|
|
44
|
+
def initialize(filename, request, tmpdir = Dir::tmpdir)
|
|
45
|
+
@original_filename = filename
|
|
46
|
+
@request = request
|
|
47
|
+
|
|
48
|
+
super Digest::SHA1.hexdigest(filename), tmpdir
|
|
49
|
+
fetch
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def fetch
|
|
53
|
+
self.write(body)
|
|
54
|
+
self.rewind
|
|
55
|
+
self
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def original_filename
|
|
59
|
+
@original_filename
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def content_type
|
|
63
|
+
types = MIME::Types.type_for(original_filename)
|
|
64
|
+
types.empty? ? @request.content_type : types.first.to_s
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def body
|
|
68
|
+
if @request.raw_post.respond_to?(:force_encoding)
|
|
69
|
+
@request.raw_post.force_encoding("UTF-8")
|
|
70
|
+
else
|
|
71
|
+
@request.raw_post
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Convert nested Hash to HashWithIndifferentAccess and replace
|
|
77
|
+
# file upload hash with UploadedFile objects
|
|
78
|
+
def self.normalize_param(*args)
|
|
79
|
+
value = args.first
|
|
80
|
+
if Hash === value && value.has_key?(:tempfile)
|
|
81
|
+
UploadedFile.new(value)
|
|
82
|
+
elsif value.is_a?(String)
|
|
83
|
+
QqFile.new(*args)
|
|
84
|
+
else
|
|
85
|
+
value
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'redactor-rails/orm/base'
|
|
2
|
+
|
|
3
|
+
module RedactorRails
|
|
4
|
+
module Orm
|
|
5
|
+
module ActiveRecord
|
|
6
|
+
module AssetBase
|
|
7
|
+
def self.included(base)
|
|
8
|
+
base.send(:include, Base::AssetBase::InstanceMethods)
|
|
9
|
+
base.send(:extend, ClassMethods)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module ClassMethods
|
|
13
|
+
def self.extended(base)
|
|
14
|
+
base.class_eval do
|
|
15
|
+
self.table_name = "redactor_assets"
|
|
16
|
+
|
|
17
|
+
belongs_to :assetable, :polymorphic => true
|
|
18
|
+
belongs_to RedactorRails.devise_user, :dependent => :destroy, :foreign_key => RedactorRails.devise_user_key
|
|
19
|
+
|
|
20
|
+
attr_accessible :data, :assetable_type, :assetable_id, :assetable
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module RedactorRails
|
|
2
|
+
module Orm
|
|
3
|
+
module Base
|
|
4
|
+
module AssetBase
|
|
5
|
+
module InstanceMethods
|
|
6
|
+
def has_dimensions?
|
|
7
|
+
respond_to?(:width) && respond_to?(:height)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def image?
|
|
11
|
+
RedactorRails::IMAGE_TYPES.include?(data_content_type)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def image
|
|
15
|
+
url
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def thumb
|
|
19
|
+
url(:thumb)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def as_json_methods
|
|
23
|
+
[:image, :thumb]
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def as_json(options = nil)
|
|
27
|
+
options = {
|
|
28
|
+
:methods => as_json_methods,
|
|
29
|
+
:root => false
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
super options
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'redactor-rails/orm/base'
|
|
2
|
+
|
|
3
|
+
module RedactorRails
|
|
4
|
+
module Orm
|
|
5
|
+
module Mongoid
|
|
6
|
+
module AssetBase
|
|
7
|
+
def self.included(base)
|
|
8
|
+
base.send(:include, Base::AssetBase::InstanceMethods)
|
|
9
|
+
base.send(:extend, ClassMethods)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module ClassMethods
|
|
13
|
+
def self.extended(base)
|
|
14
|
+
base.class_eval do
|
|
15
|
+
store_in :collection => 'redactor_assets'
|
|
16
|
+
|
|
17
|
+
belongs_to :assetable, :polymorphic => true
|
|
18
|
+
|
|
19
|
+
field :data_file_name, :type => String
|
|
20
|
+
field :data_content_type, :type => String
|
|
21
|
+
field :data_file_size, :type => Integer
|
|
22
|
+
|
|
23
|
+
field :type, :type => String
|
|
24
|
+
|
|
25
|
+
field :width, :type => Integer
|
|
26
|
+
field :height, :type => Integer
|
|
27
|
+
|
|
28
|
+
index( :assetable => 1, :type => 1 )
|
|
29
|
+
index( :assetable => 1 )
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
class RedactorRailsDocumentUploader < CarrierWave::Uploader::Base
|
|
3
|
+
include RedactorRails::Backend::CarrierWave
|
|
4
|
+
|
|
5
|
+
# storage :fog
|
|
6
|
+
storage :file
|
|
7
|
+
|
|
8
|
+
def store_dir
|
|
9
|
+
"system/redactor_assets/documents/#{model.id}"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def extension_white_list
|
|
13
|
+
RedactorRails.document_file_types
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
class RedactorRailsPictureUploader < CarrierWave::Uploader::Base
|
|
3
|
+
include RedactorRails::Backend::CarrierWave
|
|
4
|
+
|
|
5
|
+
# Include RMagick or ImageScience support:
|
|
6
|
+
# include CarrierWave::RMagick
|
|
7
|
+
include CarrierWave::MiniMagick
|
|
8
|
+
# include CarrierWave::ImageScience
|
|
9
|
+
|
|
10
|
+
# Choose what kind of storage to use for this uploader:
|
|
11
|
+
storage :file
|
|
12
|
+
|
|
13
|
+
# Override the directory where uploaded files will be stored.
|
|
14
|
+
# This is a sensible default for uploaders that are meant to be mounted:
|
|
15
|
+
def store_dir
|
|
16
|
+
"system/redactor_assets/pictures/#{model.id}"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Provide a default URL as a default if there hasn't been a file uploaded:
|
|
20
|
+
# def default_url
|
|
21
|
+
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
|
22
|
+
# end
|
|
23
|
+
|
|
24
|
+
# Process files as they are uploaded:
|
|
25
|
+
# process :scale => [200, 300]
|
|
26
|
+
#
|
|
27
|
+
# def scale(width, height)
|
|
28
|
+
# # do something
|
|
29
|
+
# end
|
|
30
|
+
|
|
31
|
+
process :read_dimensions
|
|
32
|
+
|
|
33
|
+
# Create different versions of your uploaded files:
|
|
34
|
+
version :thumb do
|
|
35
|
+
process :resize_to_fill => [118, 100]
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
version :content do
|
|
39
|
+
process :resize_to_limit => [800, 800]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Add a white list of extensions which are allowed to be uploaded.
|
|
43
|
+
# For images you might use something like this:
|
|
44
|
+
def extension_white_list
|
|
45
|
+
RedactorRails.image_file_types
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Override the filename of the uploaded files:
|
|
49
|
+
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
|
50
|
+
# def filename
|
|
51
|
+
# "something.jpg" if original_filename
|
|
52
|
+
# end
|
|
53
|
+
end
|