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,28 @@
|
|
|
1
|
+
require "redactor-rails"
|
|
2
|
+
|
|
3
|
+
class RedactorRails::DocumentsController < ApplicationController
|
|
4
|
+
before_filter :redactor_authenticate_user! if RedactorRails.document_model.new.respond_to?(RedactorRails.devise_user)
|
|
5
|
+
|
|
6
|
+
def index
|
|
7
|
+
@documents = RedactorRails.document_model.where(
|
|
8
|
+
RedactorRails.document_model.new.respond_to?(RedactorRails.devise_user) ? { RedactorRails.devise_user_key => redactor_current_user.id } : { })
|
|
9
|
+
render :json => @documents.to_json
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def create
|
|
13
|
+
@document = RedactorRails.document_model.new
|
|
14
|
+
|
|
15
|
+
file = params[:file]
|
|
16
|
+
@document.data = RedactorRails::Http.normalize_param(file, request)
|
|
17
|
+
if @document.respond_to?(RedactorRails.devise_user)
|
|
18
|
+
@document.send("#{RedactorRails.devise_user}=", redactor_current_user)
|
|
19
|
+
@document.assetable = redactor_current_user
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
if @document.save
|
|
23
|
+
render :text => { :filelink => @document.url, :filename => @document.filename }.to_json
|
|
24
|
+
else
|
|
25
|
+
render :nothing => true
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require "redactor-rails"
|
|
2
|
+
|
|
3
|
+
class RedactorRails::PicturesController < ApplicationController
|
|
4
|
+
before_filter :redactor_authenticate_user! if RedactorRails.picture_model.new.respond_to?(RedactorRails.devise_user)
|
|
5
|
+
|
|
6
|
+
def index
|
|
7
|
+
@pictures = RedactorRails.picture_model.where(
|
|
8
|
+
RedactorRails.picture_model.new.respond_to?(RedactorRails.devise_user) ? { RedactorRails.devise_user_key => redactor_current_user.id } : { })
|
|
9
|
+
render :json => @pictures.to_json
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def create
|
|
13
|
+
@picture = RedactorRails.picture_model.new
|
|
14
|
+
|
|
15
|
+
file = params[:file]
|
|
16
|
+
@picture.data = RedactorRails::Http.normalize_param(file, request)
|
|
17
|
+
if @picture.respond_to?(RedactorRails.devise_user)
|
|
18
|
+
@picture.send("#{RedactorRails.devise_user}=", redactor_current_user)
|
|
19
|
+
@picture.assetable = redactor_current_user
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
if @picture.save
|
|
23
|
+
render :text => { :filelink => @picture.url }.to_json
|
|
24
|
+
else
|
|
25
|
+
render :nothing => true
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -2,4 +2,8 @@ module SimpleContentManagement::SimplePagesHelper
|
|
|
2
2
|
def render_page_by_name name
|
|
3
3
|
SimpleContentManagement::SimplePage.where(name: name).first.try(:content_html).try(:html_safe)
|
|
4
4
|
end
|
|
5
|
+
|
|
6
|
+
def render_page_by_path path
|
|
7
|
+
SimpleContentManagement::SimplePage.search(simple_routes_path_equals: path).first.try(:content_html).try(:html_safe)
|
|
8
|
+
end
|
|
5
9
|
end
|
|
@@ -38,7 +38,7 @@ class SimpleContentManagement::SimpleMenu
|
|
|
38
38
|
|
|
39
39
|
def simple_menu_items_data= smis_data_string
|
|
40
40
|
smis_data = JSON.parse smis_data_string
|
|
41
|
-
existing_smis =
|
|
41
|
+
existing_smis = SimpleContentManagement::SimpleMenuItem.where(simple_menu_id: id).all
|
|
42
42
|
smis_data.each_with_index do |smi_data, position|
|
|
43
43
|
smi_data["simple_menu_id"] = id
|
|
44
44
|
smi_data["position"] = position
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
class SimpleContentManagement::SimplePage < ActiveRecord::Base
|
|
2
|
+
include SimpleContentManagement::ContentText
|
|
3
|
+
|
|
2
4
|
has_many :simple_routes, conditions: { deleted: false }, class_name: "SimpleContentManagement::SimpleRoute"
|
|
3
5
|
|
|
4
6
|
attr_accessible :name, :title, :content_html, :simple_routes_list
|
|
@@ -39,6 +41,10 @@ class SimpleContentManagement::SimplePage < ActiveRecord::Base
|
|
|
39
41
|
update_attribute :deleted, true
|
|
40
42
|
end
|
|
41
43
|
|
|
44
|
+
def label
|
|
45
|
+
title
|
|
46
|
+
end
|
|
47
|
+
|
|
42
48
|
class << self
|
|
43
49
|
def registered_content_pages
|
|
44
50
|
@registered_content_pages ||= YAML.load_file File.join Rails.root, "config", "content_pages.yml"
|
|
@@ -1,9 +1,54 @@
|
|
|
1
|
-
<%=
|
|
1
|
+
<div data-iframe-style-path="<%= stylesheet_path "iframe.css" %>"></div>
|
|
2
|
+
<%= simple_form_for [:admin, @simple_page], url: @simple_page.new_record? ? simple_content_management_simple_pages_path : simple_content_management_simple_page_path(@simple_page), html: { class: "simple-page-form" } do |f| %>
|
|
2
3
|
<%= f.input :simple_routes_list, input_html: { data: { simple_routes_list: true } }, wrapper_html: { class: "simple-routes-list" }, hint: "Voeg één of meerdere URL paden toe." %>
|
|
3
4
|
<%= f.input :title, hint: "Wordt gebruikt als HTML titel." %>
|
|
4
|
-
<%= f.input :content_html,
|
|
5
|
+
<%= f.input :content_html, as: :hidden %>
|
|
6
|
+
|
|
7
|
+
<div class="content-html-container">
|
|
8
|
+
<%== @simple_page.content_html %>
|
|
9
|
+
</div>
|
|
5
10
|
|
|
6
11
|
<div class="form-actions">
|
|
7
12
|
<%= f.button :submit %>
|
|
8
13
|
</div>
|
|
9
|
-
<% end %>
|
|
14
|
+
<% end %>
|
|
15
|
+
|
|
16
|
+
<div id="content-editor" class="modal hide" role="dialog" aria-labelledby="content-editor-label" aria-hidden="true">
|
|
17
|
+
<div class="modal-header">
|
|
18
|
+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
19
|
+
<h3 id="content-editor-label">Inhoud bewerken</h3>
|
|
20
|
+
<ul class="nav nav-tabs">
|
|
21
|
+
<li class="active"><a href="#editor-html-content" data-toggle="tab">Tekst</a></li>
|
|
22
|
+
<li><a href="#editor-container" data-toggle="tab">Container</a></li>
|
|
23
|
+
<li><a href="#editor-bloc-component" data-toggle="tab">Linkbanner</a></li>
|
|
24
|
+
</ul>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="modal-body">
|
|
27
|
+
<div class="tab-content">
|
|
28
|
+
<div class="tab-pane active" id="editor-html-content">
|
|
29
|
+
<textarea cols=140 rows=12></textarea>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="tab-pane" id="editor-container">
|
|
32
|
+
<h2>Converteer dit blok naar een container</h2>
|
|
33
|
+
<p class=lead>
|
|
34
|
+
Dit blok wordt dan omsloten door een nieuwe container waaraan kolommen en regels toegevoegd kunnen worden.
|
|
35
|
+
</p>
|
|
36
|
+
<p>
|
|
37
|
+
Klik op toepassen om dit blok te converteren. Er zal geen informatie verloren gaan, maar deze actie kan niet ongedaan worden.
|
|
38
|
+
</p>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="tab-pane" id="editor-bloc-component">
|
|
41
|
+
<h2>Linkbanner</h2>
|
|
42
|
+
Hier komen nog invulvelden voor:<br>
|
|
43
|
+
- afbeelding<br>
|
|
44
|
+
- koptekst regel 1 & 2<br>
|
|
45
|
+
- link
|
|
46
|
+
- formaat (groot, 9 kolommen of klein, 3 kolommen)
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="modal-footer">
|
|
51
|
+
<button class="btn" data-dismiss="modal" aria-hidden="true">Annuleren</button>
|
|
52
|
+
<button class="btn btn-primary" data-save-button>Toepassen</button>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
data/config/routes.rb
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
Rails.application.routes.draw do
|
|
2
|
+
namespace :redactor_rails, path: "redactor_rails" do
|
|
3
|
+
resources :pictures, :only => [:index, :create]
|
|
4
|
+
resources :documents, :only => [:index, :create]
|
|
5
|
+
end
|
|
2
6
|
namespace :simple_content_management, path: "admin" do
|
|
3
7
|
resources :simple_content_pages
|
|
4
8
|
resources :simple_pages
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require 'rails/generators'
|
|
2
|
+
module Redactor
|
|
3
|
+
module Generators
|
|
4
|
+
class ConfigGenerator < ::Rails::Generators::Base
|
|
5
|
+
desc "Generates redactor-rails config"
|
|
6
|
+
|
|
7
|
+
def self.source_root
|
|
8
|
+
@source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def create_config
|
|
13
|
+
template "config.js",
|
|
14
|
+
File.join('app/assets/javascripts/redactor-rails', "config.js")
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
require 'rails/generators'
|
|
2
|
+
require 'rails/generators/migration'
|
|
3
|
+
module Redactor
|
|
4
|
+
module Generators
|
|
5
|
+
class InstallGenerator < ::Rails::Generators::Base
|
|
6
|
+
include ::Rails::Generators::Migration
|
|
7
|
+
desc "Generates migration for Tag and Tagging models"
|
|
8
|
+
|
|
9
|
+
class_option :orm, :type => :string, :default => "active_record",
|
|
10
|
+
:desc => "Backend processor for upload support"
|
|
11
|
+
|
|
12
|
+
class_option :backend, :type => :string, :default => 'carrierwave',
|
|
13
|
+
:desc => "carrierwave(default)"
|
|
14
|
+
|
|
15
|
+
def self.source_root
|
|
16
|
+
@source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.next_migration_number(dirname)
|
|
20
|
+
Time.now.strftime("%Y%m%d%H%M%S")
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def mount_engine
|
|
24
|
+
route "mount RedactorRails::Engine => '/redactor_rails'"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def create_models
|
|
28
|
+
[:asset, :picture, :document].each do |filename|
|
|
29
|
+
template "#{generator_dir}/redactor/#{filename}.rb",
|
|
30
|
+
File.join('app/models', redactor_dir, "#{filename}.rb")
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
if backend == "carrierwave"
|
|
34
|
+
[:picture, :document].each do |filename|
|
|
35
|
+
template "#{uploaders_dir}/uploaders/redactor_rails_#{filename}_uploader.rb",
|
|
36
|
+
File.join("app/uploaders", "redactor_rails_#{filename}_uploader.rb")
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def create_migration
|
|
42
|
+
if orm.to_s == "active_record"
|
|
43
|
+
if ARGV.include?('--devise')
|
|
44
|
+
migration_template "#{generator_dir}/devise_migration.rb", File.join('db/migrate', "create_redactor_assets.rb")
|
|
45
|
+
else
|
|
46
|
+
migration_template "#{generator_dir}/migration.rb", File.join('db/migrate', "create_redactor_assets.rb")
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
protected
|
|
52
|
+
|
|
53
|
+
def redactor_dir
|
|
54
|
+
'redactor_rails'
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def generator_dir
|
|
58
|
+
@generator_dir ||= [orm, backend].join('/')
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def uploaders_dir
|
|
62
|
+
@uploaders_dir ||= ['base', 'carrierwave'].join('/')
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def orm
|
|
66
|
+
options[:orm] || "active_record"
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def backend
|
|
70
|
+
options[:backend] || "carrierwave"
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
class CreateRedactorAssets < ActiveRecord::Migration
|
|
2
|
+
def self.up
|
|
3
|
+
create_table :redactor_assets do |t|
|
|
4
|
+
t.integer :user_id
|
|
5
|
+
t.string :data_file_name, :null => false
|
|
6
|
+
t.string :data_content_type
|
|
7
|
+
t.integer :data_file_size
|
|
8
|
+
|
|
9
|
+
t.integer :assetable_id
|
|
10
|
+
t.string :assetable_type, :limit => 30
|
|
11
|
+
t.string :type, :limit => 30
|
|
12
|
+
|
|
13
|
+
# Uncomment it to save images dimensions, if your need it
|
|
14
|
+
t.integer :width
|
|
15
|
+
t.integer :height
|
|
16
|
+
|
|
17
|
+
t.timestamps
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Uncomment it to add foreign key. gem 'foreigner' is required in your .Gemfile
|
|
21
|
+
# add_foreign_key(:redactor_assets, :users, dependent: :delete)
|
|
22
|
+
add_index "redactor_assets", ["assetable_type", "type", "assetable_id"], :name => "idx_redactor_assetable_type"
|
|
23
|
+
add_index "redactor_assets", ["assetable_type", "assetable_id"], :name => "idx_redactor_assetable"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.down
|
|
27
|
+
drop_table :redactor_assets
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
class CreateRedactorAssets < ActiveRecord::Migration
|
|
2
|
+
def self.up
|
|
3
|
+
create_table :redactor_assets do |t|
|
|
4
|
+
t.integer :user_id
|
|
5
|
+
t.string :data_file_name, :null => false
|
|
6
|
+
t.string :data_content_type
|
|
7
|
+
t.integer :data_file_size
|
|
8
|
+
|
|
9
|
+
t.integer :assetable_id
|
|
10
|
+
t.string :assetable_type, :limit => 30
|
|
11
|
+
t.string :type, :limit => 30
|
|
12
|
+
|
|
13
|
+
# Uncomment it to save images dimensions, if your need it
|
|
14
|
+
t.integer :width
|
|
15
|
+
t.integer :height
|
|
16
|
+
|
|
17
|
+
t.timestamps
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Uncomment it to add foreign key. gem 'foreigner' is required in your .Gemfile
|
|
21
|
+
# add_foreign_key(:redactor_assets, :users, dependent: :delete)
|
|
22
|
+
add_index "redactor_assets", ["assetable_type", "type", "assetable_id"], :name => "idx_redactor_assetable_type"
|
|
23
|
+
add_index "redactor_assets", ["assetable_type", "assetable_id"], :name => "idx_redactor_assetable"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.down
|
|
27
|
+
drop_table :redactor_assets
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
@@ -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
|
data/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_picture_uploader.rb
ADDED
|
@@ -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
|