solidus_editor 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/.hound.yml +28 -0
- data/.rspec +4 -0
- data/.rubocop.yml +8 -0
- data/.travis.yml +21 -0
- data/CONTRIBUTING.md +83 -0
- data/Gemfile +17 -0
- data/Guardfile +10 -0
- data/LICENSE.md +26 -0
- data/README.md +99 -0
- data/Rakefile +21 -0
- data/app/assets/javascripts/spree/backend/solidus_editor.js +1 -0
- data/app/assets/stylesheets/spree/backend/solidus_editor.css +6 -0
- data/app/controllers/spree/admin/editor_settings_controller.rb +21 -0
- data/app/models/ckeditor/asset.rb +4 -0
- data/app/models/ckeditor/attachment_file.rb +13 -0
- data/app/models/ckeditor/picture.rb +13 -0
- data/app/models/spree/editor_setting.rb +11 -0
- data/app/overrides/add_rich_editor_tab.rb +7 -0
- data/app/overrides/include_rich_text_js.rb +7 -0
- data/app/views/shared/_rich_editor_javascript.html.erb +8 -0
- data/app/views/shared/editor_engines/_ck_editor.html.erb +11 -0
- data/app/views/shared/editor_engines/_tiny_mce.html.erb +24 -0
- data/app/views/spree/admin/editor_settings/edit.html.erb +35 -0
- data/bin/rails +7 -0
- data/config/initializers/ckeditor.rb +21 -0
- data/config/locales/en.yml +9 -0
- data/config/locales/es.yml +9 -0
- data/config/locales/it.yml +9 -0
- data/config/locales/nl.yml +9 -0
- data/config/locales/ru.yml +9 -0
- data/config/locales/sv.yml +9 -0
- data/config/routes.rb +5 -0
- data/lib/generators/solidus_editor/install/install_generator.rb +15 -0
- data/lib/generators/spree_editor/install/install_generator.rb +15 -0
- data/lib/solidus_editor.rb +9 -0
- data/lib/solidus_editor/engine.rb +25 -0
- data/lib/solidus_editor/version.rb +18 -0
- data/lib/spree_editor/config.rb +3 -0
- data/lib/templates/config/tinymce.yml +40 -0
- data/spec/controllers/spree/admin/editor_settings_controller_spec.rb +46 -0
- data/spec/features/admin/editor_settings_spec.rb +12 -0
- data/spec/spec_helper.rb +27 -0
- data/spec/support/capybara.rb +17 -0
- data/spec/support/database_cleaner.rb +25 -0
- data/spec/support/factory_girl.rb +5 -0
- data/spec/support/spree.rb +12 -0
- data/spec/translations/locale_spec.rb +15 -0
- data/spree_editor.gemspec +41 -0
- data/vendor/assets/javascripts/tinymce/langs/cs.js +174 -0
- data/vendor/assets/javascripts/tinymce/langs/da.js +156 -0
- data/vendor/assets/javascripts/tinymce/langs/de.js +173 -0
- data/vendor/assets/javascripts/tinymce/langs/fi.js +173 -0
- data/vendor/assets/javascripts/tinymce/langs/fr.js +174 -0
- data/vendor/assets/javascripts/tinymce/langs/id.js +71 -0
- data/vendor/assets/javascripts/tinymce/langs/it.js +155 -0
- data/vendor/assets/javascripts/tinymce/langs/nb.js +174 -0
- data/vendor/assets/javascripts/tinymce/langs/nl.js +174 -0
- data/vendor/assets/javascripts/tinymce/langs/pt-BR.js +174 -0
- data/vendor/assets/javascripts/tinymce/langs/pt.js +173 -0
- data/vendor/assets/javascripts/tinymce/langs/ro.js +174 -0
- data/vendor/assets/javascripts/tinymce/langs/ru.js +173 -0
- data/vendor/assets/javascripts/tinymce/langs/sv.js +174 -0
- data/vendor/assets/javascripts/tinymce/langs/tr.js +174 -0
- data/vendor/assets/javascripts/tinymce/langs/vi.js +96 -0
- data/vendor/assets/javascripts/tinymce/langs/zh-CN.js +173 -0
- metadata +348 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1d308b4d5299a2742e796bca49e0c64e7f191dca
|
4
|
+
data.tar.gz: e9388636b98d6c598fcdc890a5df7d1241f13ef7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3b5139ad7c3090c0cc997b9a07d2f3dbfed67bdd7df98029a67da0faeda4c565bf4a875113398969eb9b3fdca896a704032fe4e877e87b7f37b4547ea7815d6a
|
7
|
+
data.tar.gz: daf696a7c81bf4d240e9134e3842a73c8715be6826b224218e1774fa9a5cd493fc0e8b5bb9a554ea6e94d5e16c30078a5024714f6c35ed6f34e8ce69d43cb47a
|
data/.gitignore
ADDED
data/.hound.yml
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
---
|
2
|
+
# Too picky.
|
3
|
+
LineLength:
|
4
|
+
Enabled: false
|
5
|
+
|
6
|
+
# This should truly be on for well documented gems.
|
7
|
+
Documentation:
|
8
|
+
Enabled: false
|
9
|
+
|
10
|
+
# Neatly aligned code is to swell.
|
11
|
+
SingleSpaceBeforeFirstArg:
|
12
|
+
Enabled: false
|
13
|
+
|
14
|
+
# Don't mess with RSpec DSL.
|
15
|
+
Blocks:
|
16
|
+
Exclude:
|
17
|
+
- 'spec/**/*'
|
18
|
+
|
19
|
+
# We really like the readability with newline in beginning of classes.
|
20
|
+
EmptyLinesAroundBlockBody:
|
21
|
+
Enabled: false
|
22
|
+
|
23
|
+
EmptyLinesAroundClassBody:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
# Avoid contradictory style rules by enforce single quotes.
|
27
|
+
StringLiterals:
|
28
|
+
EnforcedStyle: single_quotes
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
sudo: false
|
2
|
+
cache: bundler
|
3
|
+
language: ruby
|
4
|
+
rvm:
|
5
|
+
- 2.3.1
|
6
|
+
env:
|
7
|
+
matrix:
|
8
|
+
- SOLIDUS_BRANCH=v1.0 DB=postgres
|
9
|
+
- SOLIDUS_BRANCH=v1.1 DB=postgres
|
10
|
+
- SOLIDUS_BRANCH=v1.2 DB=postgres
|
11
|
+
- SOLIDUS_BRANCH=v1.3 DB=postgres
|
12
|
+
- SOLIDUS_BRANCH=v1.4 DB=postgres
|
13
|
+
- SOLIDUS_BRANCH=v2.0 DB=postgres
|
14
|
+
- SOLIDUS_BRANCH=master DB=postgres
|
15
|
+
- SOLIDUS_BRANCH=v1.0 DB=mysql
|
16
|
+
- SOLIDUS_BRANCH=v1.1 DB=mysql
|
17
|
+
- SOLIDUS_BRANCH=v1.2 DB=mysql
|
18
|
+
- SOLIDUS_BRANCH=v1.3 DB=mysql
|
19
|
+
- SOLIDUS_BRANCH=v1.4 DB=mysql
|
20
|
+
- SOLIDUS_BRANCH=v2.0 DB=mysql
|
21
|
+
- SOLIDUS_BRANCH=master DB=mysql
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
# Contributing
|
2
|
+
|
3
|
+
Spree Editor is an open source project and we encourage contributions. Please see the [contributors guidelines](http://spreecommerce.com/documentation/contributing_to_spree.html) for more information before contributing.
|
4
|
+
|
5
|
+
In the spirit of [free software][1], **everyone** is encouraged to help improve this project.
|
6
|
+
|
7
|
+
Here are some ways *you* can contribute:
|
8
|
+
|
9
|
+
* by using prerelease versions
|
10
|
+
* by reporting [bugs][2]
|
11
|
+
* by suggesting new features
|
12
|
+
* by writing [translations][3]
|
13
|
+
* by writing or editing documentation
|
14
|
+
* by writing specifications
|
15
|
+
* by writing code (*no patch is too small*: fix typos, add comments, clean up inconsistent whitespace)
|
16
|
+
* by refactoring code
|
17
|
+
* by resolving [issues][2]
|
18
|
+
* by reviewing patches
|
19
|
+
|
20
|
+
---
|
21
|
+
|
22
|
+
## Filing an issue
|
23
|
+
|
24
|
+
When filing an issue on this extension, please first do these things:
|
25
|
+
|
26
|
+
* Verify you can reproduce this issue in a brand new application.
|
27
|
+
* Run through the steps to reproduce the issue again.
|
28
|
+
|
29
|
+
In the issue itself please provide:
|
30
|
+
|
31
|
+
* A comprehensive list of steps to reproduce the issue.
|
32
|
+
* What you're *expecting* to happen compared with what's *actually* happening.
|
33
|
+
* The version of Spree *and* the version of Rails.
|
34
|
+
* A list of all extensions.
|
35
|
+
* Any relevant stack traces ("Full trace" preferred)
|
36
|
+
* Your `Gemfile`
|
37
|
+
|
38
|
+
In 99% of cases, this information is enough to determine the cause and solution to the problem that is being described.
|
39
|
+
|
40
|
+
Any issue that is open for 14 days without actionable information or activity will be marked as "stalled" and then closed. Stalled issues can be re-opened if the information requested is provided.
|
41
|
+
|
42
|
+
---
|
43
|
+
|
44
|
+
## Pull requests
|
45
|
+
|
46
|
+
We gladly accept pull requests to fix bugs and, in some circumstances, add new features to this extension.
|
47
|
+
|
48
|
+
Here's a quick guide:
|
49
|
+
|
50
|
+
1. Fork the repo.
|
51
|
+
|
52
|
+
2. Run the tests. We only take pull requests with passing tests, and it's great to know that you have a clean slate.
|
53
|
+
|
54
|
+
3. Create new branch then make changes and add tests for your changes. Only refactoring and documentation changes require no new tests. If you are adding functionality or fixing a bug, we need tests!
|
55
|
+
|
56
|
+
4. Push to your fork and submit a pull request. If the changes will apply cleanly to the latest stable branches and master branch, you will only need to submit one pull request.
|
57
|
+
|
58
|
+
At this point you're waiting on us. We may suggest some changes or improvements or alternatives.
|
59
|
+
|
60
|
+
Some things that will increase the chance that your pull request is accepted, taken straight from the Ruby on Rails guide:
|
61
|
+
|
62
|
+
* Use Rails idioms and helpers.
|
63
|
+
* Include tests that fail without your code, and pass with it.
|
64
|
+
* Update the documentation, the surrounding one, examples elsewhere, guides, whatever is affected by your contribution.
|
65
|
+
|
66
|
+
---
|
67
|
+
|
68
|
+
## TL;DR
|
69
|
+
|
70
|
+
* Fork the repo
|
71
|
+
* Clone your repo
|
72
|
+
* Run `bundle install`
|
73
|
+
* Run `bundle exec rake test_app` to create the test application in `spec/dummy`
|
74
|
+
* Make your changes
|
75
|
+
* Ensure specs pass by running `bundle exec rspec spec`
|
76
|
+
* Ensure all syntax ok by running `rubocop .`
|
77
|
+
* Submit your pull request
|
78
|
+
|
79
|
+
And in case we didn't emphasize it enough: **we love tests!**
|
80
|
+
|
81
|
+
[1]: http://www.fsf.org/licensing/essays/free-sw.html
|
82
|
+
[2]: https://github.com/spree-contrib/solidus_editor/issues
|
83
|
+
[3]: https://github.com/spree-contrib/solidus_editor/tree/master/config/locales
|
data/Gemfile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
|
4
|
+
gem "solidus", github: "solidusio/solidus", branch: branch
|
5
|
+
|
6
|
+
if branch == 'master' || branch >= "v2.0"
|
7
|
+
gem "rails-controller-testing", group: :test
|
8
|
+
end
|
9
|
+
|
10
|
+
gem 'pg'
|
11
|
+
gem 'mysql2'
|
12
|
+
|
13
|
+
group :development, :test do
|
14
|
+
gem "pry-rails"
|
15
|
+
end
|
16
|
+
|
17
|
+
gemspec
|
data/Guardfile
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
guard "rspec", cmd: "bundle exec rspec", all_on_start: false, all_after_pass: false do
|
2
|
+
watch("spec/spec_helper.rb") { "spec" }
|
3
|
+
watch("config/routes.rb") { "spec/controllers" }
|
4
|
+
watch(%r{^spec/(.+)_spec\.rb$}) { |m| "spec/#{m[1]}_spec.rb"}
|
5
|
+
watch(%r{^app/(.+)_decorator\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
6
|
+
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
7
|
+
watch(%r{^app/(.*)(\.erb)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
8
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
9
|
+
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb" }
|
10
|
+
end
|
data/LICENSE.md
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
Copyright (c) 2016 James Whelton and contributors.
|
2
|
+
All rights reserved.
|
3
|
+
|
4
|
+
Redistribution and use in source and binary forms, with or without modification,
|
5
|
+
are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
* Redistributions of source code must retain the above copyright notice,
|
8
|
+
this list of conditions and the following disclaimer.
|
9
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
10
|
+
this list of conditions and the following disclaimer in the documentation
|
11
|
+
and/or other materials provided with the distribution.
|
12
|
+
* Neither the name Spree nor the names of its contributors may be used to
|
13
|
+
endorse or promote products derived from this software without specific
|
14
|
+
prior written permission.
|
15
|
+
|
16
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
17
|
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
18
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
19
|
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
20
|
+
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
21
|
+
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
22
|
+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
23
|
+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
24
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
25
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
26
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.md
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
# Solidus Editor
|
2
|
+
|
3
|
+
This extension provides an inline rich-text editor for Solidus. It is based off [spree_editor](https://github.com/spree-contrib/spree_editor). It implements different types of editors:
|
4
|
+
|
5
|
+
- [CKEditor][1]
|
6
|
+
- [TinyMCE][2]
|
7
|
+
|
8
|
+
Please not that this extension is just a simple integration of some pretty complex gems: [`ckeditor`][9] and [`tinymce-rails`][10].
|
9
|
+
|
10
|
+
If you have issues, please check their issues trackers first.
|
11
|
+
|
12
|
+
---
|
13
|
+
|
14
|
+
## Installation
|
15
|
+
|
16
|
+
1. Add the Solidus Editor gem to your `Gemfile`:
|
17
|
+
```ruby
|
18
|
+
gem 'solidus_editor', github: 'solidusio-contrib/solidus_editor', branch: 'master'
|
19
|
+
```
|
20
|
+
|
21
|
+
2. Run:
|
22
|
+
```sh
|
23
|
+
$ bundle install
|
24
|
+
$ rails g solidus_editor:install
|
25
|
+
```
|
26
|
+
|
27
|
+
3. If using CKEditor, and would like to enable file uploads run the ckeditor generator:
|
28
|
+
```sh
|
29
|
+
$ rails g ckeditor:install --orm=active_record --backend=paperclip && rake db:migrate
|
30
|
+
```
|
31
|
+
|
32
|
+
4. In order to secure your file uploads to only be accessed by admins you will also need to configure config/initializers/ckeditor.rb:
|
33
|
+
```ruby
|
34
|
+
config.authorize_with :cancan, Spree::Ability
|
35
|
+
```
|
36
|
+
|
37
|
+
5. In order to precompile CKEditor's generated assets, you will need to add a line in config/initializers/assets.rb:
|
38
|
+
```ruby
|
39
|
+
Rails.application.config.assets.precompile += %w( ckeditor/*)
|
40
|
+
```
|
41
|
+
---
|
42
|
+
|
43
|
+
## Configuration
|
44
|
+
|
45
|
+
Preferences can be updated within the admin panel under "configuration" then "rich editor".
|
46
|
+
|
47
|
+
Or you may set them with an initializer within your application:
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
SpreeEditor::Config.tap do |config|
|
51
|
+
config.ids = 'product_description page_body event_body'
|
52
|
+
|
53
|
+
# change the editor to CKEditor
|
54
|
+
config.current_editor = 'CKEditor'
|
55
|
+
end
|
56
|
+
```
|
57
|
+
|
58
|
+
The default preference is:
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
{
|
62
|
+
enabled: true,
|
63
|
+
current_editor: 'TinyMCE',
|
64
|
+
ids: 'product_description page_body'
|
65
|
+
}
|
66
|
+
```
|
67
|
+
|
68
|
+
---
|
69
|
+
|
70
|
+
## Language-Support
|
71
|
+
|
72
|
+
To obtain support for multiple languages with TinyMCE add tinymce-rails-langs to your Gemfile:
|
73
|
+
|
74
|
+
```ruby
|
75
|
+
gem 'tinymce-rails-langs'
|
76
|
+
```
|
77
|
+
|
78
|
+
TinyMCE will not be loaded unless it finds a language package matching your `Spree::Config.default_locale`.
|
79
|
+
|
80
|
+
---
|
81
|
+
|
82
|
+
## Contributing
|
83
|
+
|
84
|
+
See corresponding [guidelines][8]
|
85
|
+
|
86
|
+
---
|
87
|
+
|
88
|
+
Copyright (c) 2016 [James Whelton][5] and other [contributors][6], released under the [New BSD License][7]
|
89
|
+
|
90
|
+
[1]: http://ckeditor.com
|
91
|
+
[2]: http://www.tinymce.com
|
92
|
+
[3]: http://www.fsf.org/licensing/essays/free-sw.html
|
93
|
+
[4]: https://github.com/solidusio-contrib/solidus_editor/issues
|
94
|
+
[5]: https://github.com/Whelton
|
95
|
+
[6]: https://github.com/solidusio-contrib/solidus_editor/graphs/contributors
|
96
|
+
[7]: https://github.com/solidusio-contrib/solidus_editor/blob/master/LICENSE.md
|
97
|
+
[8]: https://github.com/solidusio-contrib/v/blob/master/CONTRIBUTING.md
|
98
|
+
[9]: https://github.com/galetahub/ckeditor
|
99
|
+
[10]: https://github.com/spohlenz/tinymce-rails
|
data/Rakefile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
require 'rspec/core/rake_task'
|
5
|
+
require 'spree/testing_support/common_rake'
|
6
|
+
|
7
|
+
RSpec::Core::RakeTask.new
|
8
|
+
|
9
|
+
task :default do
|
10
|
+
if Dir["spec/dummy"].empty?
|
11
|
+
Rake::Task[:test_app].invoke
|
12
|
+
Dir.chdir("../../")
|
13
|
+
end
|
14
|
+
Rake::Task[:spec].invoke
|
15
|
+
end
|
16
|
+
|
17
|
+
desc 'Generates a dummy app for testing'
|
18
|
+
task :test_app do
|
19
|
+
ENV['LIB_NAME'] = 'solidus_editor'
|
20
|
+
Rake::Task['common:test_app'].invoke
|
21
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require spree/backend
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Spree
|
2
|
+
module Admin
|
3
|
+
class EditorSettingsController < ResourceController
|
4
|
+
def update
|
5
|
+
config = Spree::EditorSetting.new
|
6
|
+
preferences = params && params.key?(:preferences) ? params.delete(:preferences) : params
|
7
|
+
preferences.each do |name, value|
|
8
|
+
next unless config.has_preference? name
|
9
|
+
config[name] = value
|
10
|
+
end
|
11
|
+
|
12
|
+
if Spree::Config.has_preference? :show_raw_product_description
|
13
|
+
Spree::Config[:show_raw_product_description] = config[:enabled]
|
14
|
+
end
|
15
|
+
|
16
|
+
flash[:success] = Spree.t(:successfully_updated, resource: Spree.t(:rich_editor))
|
17
|
+
redirect_to edit_admin_editor_settings_path
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Ckeditor::AttachmentFile < Ckeditor::Asset
|
2
|
+
has_attached_file :data
|
3
|
+
|
4
|
+
Ckeditor::AttachmentFile.attachment_definitions[:data][:path] = '/:class/:id/:style/:basename.:extension'
|
5
|
+
Ckeditor::AttachmentFile.attachment_definitions[:data][:url] = '/:class/:id/:style/:basename.:extension'
|
6
|
+
|
7
|
+
validates_attachment_size :data, less_than: 100.megabytes
|
8
|
+
validates_attachment_presence :data
|
9
|
+
|
10
|
+
def url_thumb
|
11
|
+
@url_thumb ||= Ckeditor::Utils.filethumb(filename)
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Ckeditor::Picture < Ckeditor::Asset
|
2
|
+
has_attached_file :data, styles: { content: '800>', thumb: '118x100#' }
|
3
|
+
|
4
|
+
Ckeditor::Picture.attachment_definitions[:data][:path] = '/:class/:id/:style/:basename.:extension'
|
5
|
+
Ckeditor::Picture.attachment_definitions[:data][:url] = '/:class/:id/:style/:basename.:extension'
|
6
|
+
|
7
|
+
validates_attachment_size :data, less_than: 2.megabytes
|
8
|
+
validates_attachment_presence :data
|
9
|
+
|
10
|
+
def url_content
|
11
|
+
url(:content)
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Spree
|
2
|
+
class EditorSetting < Preferences::Configuration
|
3
|
+
preference :enabled, :boolean, default: true
|
4
|
+
preference :current_editor, :string, default: 'TinyMCE'
|
5
|
+
preference :ids, :string, default: 'product_description page_body'
|
6
|
+
|
7
|
+
def self.editors
|
8
|
+
%w(TinyMCE CKEditor)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
Deface::Override.new(
|
2
|
+
original: '35a14f18ffd91f105e1133ec54aec7ce25fcd79e',
|
3
|
+
virtual_path: 'spree/admin/shared/_configuration_menu',
|
4
|
+
name: 'add_rich_editor_tab',
|
5
|
+
insert_bottom: '[data-hook="admin_configurations_sidebar_menu"]',
|
6
|
+
text: '<%= configurations_sidebar_menu_item Spree.t(:rich_editor), edit_admin_editor_settings_path %>'
|
7
|
+
)
|