activeadmin-redactor 0.0.2 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aa6771ecaeb76d1f6049cd1eb5797063e82f8ad6
4
- data.tar.gz: 5bb17692296a4e2d5da434249a6873167ed04eae
3
+ metadata.gz: 20df383d123b4cb9f1c78c1370984c2fa442f1a8
4
+ data.tar.gz: 7593077251d069dc64561f35c019bc992b6d6171
5
5
  SHA512:
6
- metadata.gz: d97a1ca1dcdc10c701aceeba9cd1226a4694c97221872c705d47d59d0e4e2420c44b152fbd2f343582af2d54c4a9add7c19c22817473941080148869f24bd31c
7
- data.tar.gz: 35e55733d1e99763e72d38d3d2b07c495a24474468fbd2253d824e7910defefc0caad8af59042c52b55d9d374ce132d9f9081b97f2d4c17bc3761d22f2177a74
6
+ metadata.gz: 40bc66441a4c0af3ab42c90ac3a8991f9287848bb2ea80e2f6bb53a6d8bfcc7672bb7e225254bb946cced6770b82b954340269d1af070d299dc3765eaaea71e5
7
+ data.tar.gz: 128e9c73abd087dbbea248223cafcb2c75b4e3e9d2b9c8c5626f95c0f35867f36e577594e9d356f87a9f9928b698295afe18fcde7d109712d360316d25381657
data/README.md CHANGED
@@ -27,7 +27,7 @@ end
27
27
 
28
28
  ### Optional View Port Customization
29
29
  #### Stylesheets
30
- Default setting is none
30
+ Default setting is 'activeadmin-redactor'
31
31
 
32
32
  ```ruby
33
33
  ActiveAdmin.register Page do
@@ -35,7 +35,33 @@ ActiveAdmin.register Page do
35
35
  end
36
36
  ```
37
37
 
38
+ #### Layout
39
+ Default setting is 'redactor'
40
+
41
+ ```ruby
42
+ ActiveAdmin.register Page do
43
+ redactorable layout: ["foobar"]
44
+ end
45
+ ```
46
+
47
+ #### Tempate
48
+ Default setting is 'redactor/editor'
49
+
50
+ ```ruby
51
+ ActiveAdmin.register Page do
52
+ redactorable template: ["redactor/editor"]
53
+ end
54
+ ```
55
+
38
56
  ### Optional Redactor Customization
57
+ #### [focus](http://imperavi.com/redactor/examples/focus/)
58
+ Default setting is false
59
+
60
+ ```ruby
61
+ ActiveAdmin.register Page do
62
+ redactorable redactor: {focus: true}
63
+ end
64
+ ```
39
65
  #### [iframe](http://imperavi.com/redactor/examples/iframe/)
40
66
  Default setting is false
41
67
 
@@ -44,6 +70,14 @@ ActiveAdmin.register Page do
44
70
  redactorable redactor: {iframe: true}
45
71
  end
46
72
  ```
73
+ #### [fullpage](http://imperavi.com/redactor/examples/fullpage/)
74
+ Default setting is false
75
+
76
+ ```ruby
77
+ ActiveAdmin.register Page do
78
+ redactorable redactor: {fullpage: true}
79
+ end
80
+ ```
47
81
  #### [css](http://imperavi.com/redactor/examples/css/)
48
82
  Default setting is none
49
83
 
@@ -62,6 +96,15 @@ ActiveAdmin.register Page do
62
96
  end
63
97
  ```
64
98
 
99
+ #### imageUpload
100
+ Default setting is false
101
+
102
+ ```ruby
103
+ ActiveAdmin.register Page do
104
+ redactorable redactor: {imageupload: /foo/bar/path}
105
+ end
106
+ ```
107
+
65
108
  ## Contributing
66
109
 
67
110
  1. Fork it ( https://github.com/[my-github-username]/activeadmin-redactor/fork )
@@ -17,6 +17,9 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ["lib"]
19
19
 
20
+ spec.add_development_dependency "bundler", "~> 1.6"
21
+ spec.add_development_dependency "rake"
22
+
20
23
  spec.add_dependency 'activeadmin', '~> 0.4'
21
24
  spec.add_development_dependency 'rspec'
22
25
  end
@@ -0,0 +1,28 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Redactor</title>
5
+ <meta charset="utf-8">
6
+ <%= csrf_meta_tags %>
7
+ <%= stylesheet_link_tag *@viewport_opts.stylesheets %>
8
+ </head>
9
+
10
+ <body>
11
+ <%= render "layouts/redactor_header" %>
12
+ <%= yield %>
13
+ <%= javascript_include_tag 'jquery', 'jquery_ujs', 'activeadmin-redactor' %>
14
+ <script type="text/javascript">
15
+ $(function() {
16
+ $('#redactor').redactor({
17
+ focus: <%= @redactor_opts.focus %>,
18
+ fullpage: <%= @redactor_opts.fullpage %>,
19
+ iframe: <%= @redactor_opts.iframe %>,
20
+ css: <%=raw redactor_css(@redactor_opts.css) %>,
21
+ minHeight: <%= @redactor_opts.minheight %>,
22
+ imageUpload: '<%= @redactor_opts.imageupload %>',
23
+ });
24
+ });
25
+ </script>
26
+ <%= render "layouts/redactor_footer" %>
27
+ </body>
28
+ </html>
@@ -1,31 +1,7 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Redactor</title>
5
- <meta charset="utf-8">
6
- <script type="text/javascript" src="//code.jquery.com/jquery-latest.min.js"></script>
7
- <%= stylesheet_link_tag *@stylesheets %>
8
- </head>
9
-
10
- <body>
11
- <div id="viewport">
12
- <%= form_for(resource, url: resource_path(resource)) do |f| %>
13
- <%= f.submit %>
14
- <%= f.text_area :redactorable, id: 'redactor' %>
15
- <%= f.submit %>
16
- <% end %>
17
- </div>
18
-
19
- <%= javascript_include_tag 'activeadmin-redactor' %>
20
- <script type="text/javascript">
21
- $(function()
22
- {
23
- $('#redactor').redactor({
24
- iframe: <%= @redactor_opts.iframe %>,
25
- css: <%=raw redactor_css(@redactor_opts.css) %>,
26
- minHeight: window.innerHeight - 100,
27
- });
28
- });
29
- </script>
30
- </body>
31
- </html>
1
+ <div id="viewport">
2
+ <%= form_for(resource, url: resource_path(resource)) do |f| %>
3
+ <%= f.submit %>
4
+ <%= f.text_area :redactorable, id: 'redactor' %>
5
+ <%= f.submit %>
6
+ <% end %>
7
+ </div>
@@ -0,0 +1,13 @@
1
+ module Activeadmin
2
+ module Redactor
3
+ class Options
4
+ def initialize(opts={})
5
+ @opts = opts
6
+ end
7
+
8
+ private
9
+
10
+ attr_reader :opts
11
+ end
12
+ end
13
+ end
@@ -1,16 +1,17 @@
1
1
  require 'activeadmin/redactor/version'
2
2
  require 'activeadmin/redactor_opts'
3
+ require 'activeadmin/viewport_opts'
3
4
  require 'activeadmin'
4
5
  require 'rails/engine'
5
6
 
6
7
  module Activeadmin
7
8
  module Redactor
8
9
  module ControllerActions
9
- def redactorable(opts={})
10
+ def redactorable(options={})
10
11
  member_action :redactor do
11
- @redactor_opts = RedactorOpts.new(opts[:redactor])
12
- @stylesheets = (opts[:stylesheets] || []).unshift("activeadmin-redactor")
13
- render 'redactor/editor', layout: false
12
+ @viewport_opts = ViewportOpts.new(options)
13
+ @redactor_opts = RedactorOpts.new(options[:redactor])
14
+ render @viewport_opts.template, layout: @viewport_opts.layout
14
15
  end
15
16
  end
16
17
  end
@@ -1,5 +1,5 @@
1
1
  module Activeadmin
2
2
  module Redactor
3
- VERSION = "0.0.2"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
@@ -1,12 +1,18 @@
1
+ require_relative 'options'
2
+
1
3
  module Activeadmin
2
4
  module Redactor
3
- class RedactorOpts
4
- def initialize(opts={})
5
- @opts = opts
5
+ class RedactorOpts < Options
6
+ def iframe
7
+ opts[:iframe] === true
6
8
  end
7
9
 
8
- def iframe
9
- opts[:iframe] == true
10
+ def fullpage
11
+ opts[:fullpage] === true
12
+ end
13
+
14
+ def focus
15
+ opts[:focus] === true
10
16
  end
11
17
 
12
18
  def css
@@ -17,9 +23,9 @@ module Activeadmin
17
23
  opts[:minheight] || false
18
24
  end
19
25
 
20
- private
21
-
22
- attr_reader :opts
26
+ def imageupload
27
+ opts[:imageupload] || false
28
+ end
23
29
  end
24
30
  end
25
31
  end
@@ -0,0 +1,23 @@
1
+ require_relative 'options'
2
+
3
+ module Activeadmin
4
+ module Redactor
5
+ class ViewportOpts < Options
6
+ DEFAULT_LAYOUT = 'redactor'
7
+ DEFAULT_TEMPLATE = 'redactor/editor'
8
+ DEFAULT_STYLESHEET = 'activeadmin-redactor'
9
+
10
+ def layout
11
+ opts[:layout] || DEFAULT_LAYOUT
12
+ end
13
+
14
+ def template
15
+ opts[:template] || DEFAULT_TEMPLATE
16
+ end
17
+
18
+ def stylesheets
19
+ (opts[:stylesheets] || []).unshift(DEFAULT_STYLESHEET)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -3,7 +3,7 @@ require_relative '../../lib/activeadmin/redactor_opts.rb'
3
3
 
4
4
  describe Activeadmin::Redactor::RedactorOpts do
5
5
  subject { described_class.new(options) }
6
-
6
+
7
7
  describe '#iframe' do
8
8
  context 'no options passed' do
9
9
  let(:options) {Hash.new}
@@ -20,6 +20,38 @@ describe Activeadmin::Redactor::RedactorOpts do
20
20
  end
21
21
  end
22
22
 
23
+ describe '#fullpage' do
24
+ context 'no options passed' do
25
+ let(:options) {Hash.new}
26
+ it 'returns false' do
27
+ expect(subject.fullpage).to eql(false)
28
+ end
29
+ end
30
+
31
+ context 'options passed' do
32
+ let(:options) {{fullpage: true}}
33
+ it 'returns true' do
34
+ expect(subject.fullpage).to eql(true)
35
+ end
36
+ end
37
+ end
38
+
39
+ describe '#focus' do
40
+ context 'no options passed' do
41
+ let(:options) {Hash.new}
42
+ it 'returns false' do
43
+ expect(subject.focus).to eql(false)
44
+ end
45
+ end
46
+
47
+ context 'options passed' do
48
+ let(:options) {{focus: true}}
49
+ it 'returns true' do
50
+ expect(subject.focus).to eql(true)
51
+ end
52
+ end
53
+ end
54
+
23
55
  describe '#css' do
24
56
  context 'no options passed' do
25
57
  let(:options) {Hash.new}
@@ -53,4 +85,20 @@ describe Activeadmin::Redactor::RedactorOpts do
53
85
  end
54
86
  end
55
87
  end
88
+
89
+ describe '#imageupload' do
90
+ context 'no options passed' do
91
+ let(:options) {Hash.new}
92
+ it 'returns false' do
93
+ expect(subject.imageupload).to eql(false)
94
+ end
95
+ end
96
+
97
+ context 'options passed' do
98
+ let(:options) {{imageupload: '/foo/bar/path'}}
99
+ it 'returns unmodified string' do
100
+ expect(subject.imageupload).to eql('/foo/bar/path')
101
+ end
102
+ end
103
+ end
56
104
  end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+ require_relative '../../lib/activeadmin/viewport_opts.rb'
3
+
4
+ describe Activeadmin::Redactor::ViewportOpts do
5
+ subject { described_class.new(options) }
6
+
7
+ describe '#stylesheets' do
8
+ context 'no options passed' do
9
+ let(:options) {Hash.new}
10
+ it 'returns array with single element \'activeadmin-redactor\'' do
11
+ expect(subject.stylesheets).to eql(['activeadmin-redactor'])
12
+ end
13
+ end
14
+
15
+ context 'options passed' do
16
+ let(:options) {{stylesheets: ['foo.css', 'bar.css']}}
17
+ it 'returns stylesheets with activeadmin-redactor prepended' do
18
+ expect(subject.stylesheets).to eql(['activeadmin-redactor', 'foo.css', 'bar.css'])
19
+ end
20
+ end
21
+ end
22
+
23
+ describe '#layout' do
24
+ context 'no options passed' do
25
+ let(:options) {Hash.new}
26
+ it 'returns default layout' do
27
+ expect(subject.layout).to eql('redactor')
28
+ end
29
+ end
30
+
31
+ context 'options passed' do
32
+ let(:options) {{layout: 'foobar'}}
33
+ it 'returns unmodified layout' do
34
+ expect(subject.layout).to eql('foobar')
35
+ end
36
+ end
37
+ end
38
+
39
+ describe '#template' do
40
+ context 'no options passed' do
41
+ let(:options) {Hash.new}
42
+ it 'returns default template redactor/editor' do
43
+ expect(subject.template).to eql('redactor/editor')
44
+ end
45
+ end
46
+
47
+ context 'options passed' do
48
+ let(:options) {{template: 'foo/bar'}}
49
+ it 'returns unmodified template' do
50
+ expect(subject.template).to eql('foo/bar')
51
+ end
52
+ end
53
+ end
54
+ end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeadmin-redactor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karl Entwistle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-28 00:00:00.000000000 Z
11
+ date: 2014-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: activeadmin
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,11 +80,17 @@ files:
52
80
  - Rakefile
53
81
  - activeadmin-redactor.gemspec
54
82
  - app/helpers/redactor_helper.rb
83
+ - app/views/layouts/_redactor_footer.html.erb
84
+ - app/views/layouts/_redactor_header.html.erb
85
+ - app/views/layouts/redactor.html.erb
55
86
  - app/views/redactor/editor.html.erb
87
+ - lib/activeadmin/options.rb
56
88
  - lib/activeadmin/redactor.rb
57
89
  - lib/activeadmin/redactor/version.rb
58
90
  - lib/activeadmin/redactor_opts.rb
91
+ - lib/activeadmin/viewport_opts.rb
59
92
  - spec/activeadmin/redactor_opts_spec.rb
93
+ - spec/activeadmin/viewport_opts_spec.rb
60
94
  - spec/spec_helper.rb
61
95
  - vendor/assets/javascripts/activeadmin-redactor.js
62
96
  - vendor/assets/stylesheets/activeadmin-redactor.css
@@ -86,4 +120,5 @@ specification_version: 4
86
120
  summary: Redactor WYSIWYG Editor Integration for ActiveAdmin resources.
87
121
  test_files:
88
122
  - spec/activeadmin/redactor_opts_spec.rb
123
+ - spec/activeadmin/viewport_opts_spec.rb
89
124
  - spec/spec_helper.rb