flexible_admin 0.0.4 → 0.1.0
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/README.textile +6 -0
- data/lib/flexible_admin/version.rb +1 -1
- data/lib/generators/flexible_admin/ckeditor_generator.rb +42 -0
- data/lib/generators/flexible_admin/flexible_admin_generator.rb +5 -1
- data/lib/generators/flexible_admin/templates/admin_layout.html.erb +4 -0
- data/lib/generators/flexible_admin/templates/ckeditor/attachment_file.rb +16 -0
- data/lib/generators/flexible_admin/templates/ckeditor/picture.rb +14 -0
- data/lib/generators/flexible_admin/templates/forms/cktext_area_field.html.erb +7 -1
- metadata +50 -14
data/README.textile
CHANGED
@@ -51,6 +51,12 @@ h2. Adding models
|
|
51
51
|
|
52
52
|
run <code>rails generate flexible_admin Post</code> to generate a admin/posts controller, /admin/posts route, and add Posts to the admin navigation
|
53
53
|
|
54
|
+
h2. Adding WYSIWYG editor
|
55
|
+
|
56
|
+
run <code>rails generate flexible_admin:ckeditor</code> to install and generate ckeditor. That will turn all fields named Body and Description into a text editor. It also supports pictures and file attachments in the body and configures ckeditor to use amazon_s3 to store the pic/uploads.
|
57
|
+
|
58
|
+
The pics/attachment uploads for ckeditor depend on paperclip for file uploads. If you use another file attachment handler, install ckeditor yourself from the gem: https://github.com/galetahub/ckeditor
|
59
|
+
|
54
60
|
h2. Editing views and controllers
|
55
61
|
|
56
62
|
Edit views directly in the app/views/admin, app/views/layouts/admin and app/views/controllers/admin
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
# http://guides.rubyonrails.org/generators.html
|
4
|
+
# http://rdoc.info/github/wycats/thor/master/Thor/Actions.html
|
5
|
+
# keep generator idempotent, thanks
|
6
|
+
|
7
|
+
module FlexibleAdmin
|
8
|
+
class CkeditorGenerator < Rails::Generators::Base
|
9
|
+
source_root File.expand_path("../templates", __FILE__)
|
10
|
+
|
11
|
+
desc "flexible_admin ckeditor generator"
|
12
|
+
|
13
|
+
def install_gem
|
14
|
+
append_file "Gemfile", "\n", :force => true
|
15
|
+
gem "ckeditor", "~> 3.6.3"
|
16
|
+
gem "paperclip"
|
17
|
+
gem 'aws-s3', :require => 'aws/s3'
|
18
|
+
|
19
|
+
inside Rails.root do
|
20
|
+
run "bundle install"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def run_generator
|
25
|
+
generate "ckeditor:install"
|
26
|
+
generate "ckeditor:models --orm=active_record --backend=paperclip"
|
27
|
+
end
|
28
|
+
|
29
|
+
def set_paperclip_settings_for_s3
|
30
|
+
remove_file 'app/models/ckeditor/picture.rb'
|
31
|
+
remove_file 'app/models/ckeditor/attachment_file.rb'
|
32
|
+
template "ckeditor/picture.rb", "app/models/ckeditor/picture.rb"
|
33
|
+
template "ckeditor/attachment_file.rb", "app/models/ckeditor/attachment_file.rb"
|
34
|
+
end
|
35
|
+
|
36
|
+
def instructions
|
37
|
+
say "you now need to run 'rake db:migrate' to create the ckeditor tables", :blue
|
38
|
+
say "the pictures/attachments for ckeditor assume an amazon_s3 config file at config/amazon_s3.yml. Add that file OR change the settings at app/models/ckeditor/picture.rb & app/models/ckeditor/attachment_file.rb", :blue
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
@@ -158,7 +158,11 @@ module FlexibleAdmin
|
|
158
158
|
elsif column.type == :boolean
|
159
159
|
"<%= render 'admin/shared/checkbox_field', :f => f, :what => :#{column.name} %>"
|
160
160
|
elsif column.type == :text
|
161
|
-
|
161
|
+
if column.name =~ /(body|description)/
|
162
|
+
"<%= render 'admin/shared/cktext_area_field', :f => f, :what => :#{column.name} %>"
|
163
|
+
else
|
164
|
+
"<%= render 'admin/shared/text_area_field', :f => f, :what => :#{column.name} %>"
|
165
|
+
end
|
162
166
|
else
|
163
167
|
"<%= render 'admin/shared/text_field', :f => f, :what => :#{column.name} %>"
|
164
168
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class Ckeditor::AttachmentFile < Ckeditor::Asset
|
2
|
+
has_attached_file :data,
|
3
|
+
:storage => :s3,
|
4
|
+
:s3_credentials => "#{Rails.root}/config/amazon_s3.yml",
|
5
|
+
:path => ":class/:id/: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 ||= begin
|
12
|
+
extname = File.extname(filename).gsub(/^\./, '')
|
13
|
+
"/javascripts/ckeditor/filebrowser/images/thumbs/#{extname}.gif"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Ckeditor::Picture < Ckeditor::Asset
|
2
|
+
has_attached_file :data,
|
3
|
+
:storage => :s3,
|
4
|
+
:s3_credentials => "#{Rails.root}/config/amazon_s3.yml",
|
5
|
+
:path => ":class/:id/:basename.:extension",
|
6
|
+
:styles => { :content => '800>', :thumb => '118x100#' }
|
7
|
+
|
8
|
+
validates_attachment_size :data, :less_than => 2.megabytes
|
9
|
+
validates_attachment_presence :data
|
10
|
+
|
11
|
+
def url_content
|
12
|
+
url(:content)
|
13
|
+
end
|
14
|
+
end
|
@@ -6,4 +6,10 @@
|
|
6
6
|
<%%= f.cktext_area what, :toolbar => 'Easy', :width => 800, :height => 400 %>
|
7
7
|
<%%= content_tag(:span, help, :class => 'help-block') if help_text_present?(local_variables) %>
|
8
8
|
</div>
|
9
|
-
</div><!-- /clearfix -->
|
9
|
+
</div><!-- /clearfix -->
|
10
|
+
|
11
|
+
|
12
|
+
<%% content_for :javascripts do %>
|
13
|
+
<%%= javascript_include_tag "/javascripts/ckeditor/ckeditor.js" %>
|
14
|
+
<%%= stylesheet_link_tag "/javascripts/ckeditor/contents.css" %>
|
15
|
+
<%% end %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flexible_admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-19 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70258698571740 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,43 @@ dependencies:
|
|
21
21
|
version: 3.1.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70258698571740
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: devise
|
27
|
+
requirement: &70258698567380 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70258698567380
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: inherited_resources
|
38
|
+
requirement: &70258698564980 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70258698564980
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: ckeditor
|
49
|
+
requirement: &70258698534720 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.6.3
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70258698534720
|
25
58
|
- !ruby/object:Gem::Dependency
|
26
59
|
name: sqlite3
|
27
|
-
requirement: &
|
60
|
+
requirement: &70258698514560 !ruby/object:Gem::Requirement
|
28
61
|
none: false
|
29
62
|
requirements:
|
30
63
|
- - ! '>='
|
@@ -32,10 +65,10 @@ dependencies:
|
|
32
65
|
version: '0'
|
33
66
|
type: :development
|
34
67
|
prerelease: false
|
35
|
-
version_requirements: *
|
68
|
+
version_requirements: *70258698514560
|
36
69
|
- !ruby/object:Gem::Dependency
|
37
70
|
name: rspec
|
38
|
-
requirement: &
|
71
|
+
requirement: &70258698512440 !ruby/object:Gem::Requirement
|
39
72
|
none: false
|
40
73
|
requirements:
|
41
74
|
- - ! '>='
|
@@ -43,10 +76,10 @@ dependencies:
|
|
43
76
|
version: '0'
|
44
77
|
type: :development
|
45
78
|
prerelease: false
|
46
|
-
version_requirements: *
|
79
|
+
version_requirements: *70258698512440
|
47
80
|
- !ruby/object:Gem::Dependency
|
48
81
|
name: generator_spec
|
49
|
-
requirement: &
|
82
|
+
requirement: &70258698509320 !ruby/object:Gem::Requirement
|
50
83
|
none: false
|
51
84
|
requirements:
|
52
85
|
- - ! '>='
|
@@ -54,10 +87,10 @@ dependencies:
|
|
54
87
|
version: '0'
|
55
88
|
type: :development
|
56
89
|
prerelease: false
|
57
|
-
version_requirements: *
|
90
|
+
version_requirements: *70258698509320
|
58
91
|
- !ruby/object:Gem::Dependency
|
59
92
|
name: pry
|
60
|
-
requirement: &
|
93
|
+
requirement: &70258698505880 !ruby/object:Gem::Requirement
|
61
94
|
none: false
|
62
95
|
requirements:
|
63
96
|
- - ! '>='
|
@@ -65,7 +98,7 @@ dependencies:
|
|
65
98
|
version: '0'
|
66
99
|
type: :development
|
67
100
|
prerelease: false
|
68
|
-
version_requirements: *
|
101
|
+
version_requirements: *70258698505880
|
69
102
|
description: Rails 3.1 admin generator
|
70
103
|
email:
|
71
104
|
- josh@joshcrews.com
|
@@ -75,6 +108,7 @@ extra_rdoc_files: []
|
|
75
108
|
files:
|
76
109
|
- lib/flexible_admin/version.rb
|
77
110
|
- lib/flexible_admin.rb
|
111
|
+
- lib/generators/flexible_admin/ckeditor_generator.rb
|
78
112
|
- lib/generators/flexible_admin/flexible_admin_generator.rb
|
79
113
|
- lib/generators/flexible_admin/install_generator.rb
|
80
114
|
- lib/generators/flexible_admin/templates/admin_controller.rb
|
@@ -83,6 +117,8 @@ files:
|
|
83
117
|
- lib/generators/flexible_admin/templates/admin_layout.html.erb
|
84
118
|
- lib/generators/flexible_admin/templates/admin_resources_controller.rb
|
85
119
|
- lib/generators/flexible_admin/templates/admin_user_sessions_controller.rb
|
120
|
+
- lib/generators/flexible_admin/templates/ckeditor/attachment_file.rb
|
121
|
+
- lib/generators/flexible_admin/templates/ckeditor/picture.rb
|
86
122
|
- lib/generators/flexible_admin/templates/flash.html.erb
|
87
123
|
- lib/generators/flexible_admin/templates/forms/checkbox_field.html.erb
|
88
124
|
- lib/generators/flexible_admin/templates/forms/cktext_area_field.html.erb
|
@@ -135,7 +171,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
135
171
|
version: '0'
|
136
172
|
segments:
|
137
173
|
- 0
|
138
|
-
hash:
|
174
|
+
hash: 1094665881318821711
|
139
175
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
176
|
none: false
|
141
177
|
requirements:
|
@@ -144,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
180
|
version: '0'
|
145
181
|
segments:
|
146
182
|
- 0
|
147
|
-
hash:
|
183
|
+
hash: 1094665881318821711
|
148
184
|
requirements: []
|
149
185
|
rubyforge_project:
|
150
186
|
rubygems_version: 1.8.11
|