bootsy_full_html 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +159 -0
  4. data/Rakefile +35 -0
  5. data/app/assets/images/bootsy/gallery-loader.gif +0 -0
  6. data/app/assets/images/bootsy/upload-loader.gif +0 -0
  7. data/app/assets/javascripts/bootsy.js +11 -0
  8. data/app/assets/javascripts/bootsy/area.js +89 -0
  9. data/app/assets/javascripts/bootsy/editor_options.js +47 -0
  10. data/app/assets/javascripts/bootsy/image_template.js +11 -0
  11. data/app/assets/javascripts/bootsy/init.js +38 -0
  12. data/app/assets/javascripts/bootsy/locales/en.js +54 -0
  13. data/app/assets/javascripts/bootsy/locales/pt-BR.js +54 -0
  14. data/app/assets/javascripts/bootsy/modal.js +192 -0
  15. data/app/assets/javascripts/bootsy/vendor/bootstrap-wysihtml5.js +530 -0
  16. data/app/assets/javascripts/bootsy/vendor/bootstrap.file-input.js +122 -0
  17. data/app/assets/javascripts/bootsy/vendor/polyfill.js +29 -0
  18. data/app/assets/javascripts/bootsy/vendor/wysihtml5.js +9565 -0
  19. data/app/assets/stylesheets/bootsy.css +337 -0
  20. data/app/controllers/bootsy/application_controller.rb +7 -0
  21. data/app/controllers/bootsy/images_controller.rb +96 -0
  22. data/app/helpers/bootsy/application_helper.rb +13 -0
  23. data/app/uploaders/bootsy/image_uploader.rb +39 -0
  24. data/app/views/bootsy/images/_image.html.erb +43 -0
  25. data/app/views/bootsy/images/_modal.html.erb +29 -0
  26. data/app/views/bootsy/images/_new.html.erb +17 -0
  27. data/config/locales/bootsy.en.yml +30 -0
  28. data/config/locales/bootsy.pt-BR.yml +30 -0
  29. data/config/routes.rb +11 -0
  30. data/db/migrate/20120624171333_create_bootsy_images.rb +9 -0
  31. data/db/migrate/20120628124845_create_bootsy_image_galleries.rb +8 -0
  32. data/lib/bootsy.rb +68 -0
  33. data/lib/bootsy/activerecord/image.rb +12 -0
  34. data/lib/bootsy/activerecord/image_gallery.rb +23 -0
  35. data/lib/bootsy/container.rb +52 -0
  36. data/lib/bootsy/core_ext.rb +4 -0
  37. data/lib/bootsy/engine.rb +34 -0
  38. data/lib/bootsy/form_builder.rb +18 -0
  39. data/lib/bootsy/form_helper.rb +114 -0
  40. data/lib/bootsy/simple_form/bootsy_input.rb +24 -0
  41. data/lib/bootsy/version.rb +4 -0
  42. data/lib/generators/bootsy/USAGE +12 -0
  43. data/lib/generators/bootsy/install_generator.rb +53 -0
  44. data/lib/generators/bootsy/templates/bootsy.rb +69 -0
  45. data/lib/tasks/bootsy_tasks.rake +4 -0
  46. metadata +130 -0
@@ -0,0 +1,114 @@
1
+ module Bootsy
2
+ # Public: Module to include Bootsy in `ActionView::Base`.
3
+ module FormHelper
4
+ # Public: Return a textarea element with proper attributes to
5
+ # be loaded as a WYSIWYG editor.
6
+ #
7
+ # object_name - The String or Symbol identifier of the object assigned
8
+ # to the template.
9
+ #
10
+ # method - The Symbol attribute name on the object assigned to the
11
+ # form builder that will tailor the editor.
12
+ #
13
+ # options - The Hash of options used to enable/disable features of
14
+ # the editor (default: {}):
15
+ # :container - The `Bootsy::Container` instance model
16
+ # that will be referenced by the editor's
17
+ # image gallery. Defaults to the object
18
+ # assigned to the template, if it is a
19
+ # `Container`.
20
+ # :uploader - The Boolean value used to enable/disable
21
+ # the image upload feature. Default: true,
22
+ # if a`Container` is found, false otherwise.
23
+ # :editor_options - The Hash of options with Boolean values
24
+ # usedto enable/disable features of the
25
+ # editor. Available options are described ib
26
+ # the Bootsyinitializer file (which is the
27
+ # default for this argument).
28
+ def bootsy_area(object_name, method, options = {})
29
+ container = options[:container] || options[:object]
30
+
31
+ set_gallery_id(container, options)
32
+
33
+ text_area(object_name, method, text_area_options(options)) +
34
+ modal(options, container) +
35
+ gallery_id_param(object_name, container, options)
36
+ end
37
+
38
+ private
39
+
40
+ def enable_uploader?(options)
41
+ if options[:uploader] == false
42
+ false
43
+ elsif options[:container].is_a?(Container)
44
+ true
45
+ elsif options[:container].blank? && options[:object].is_a?(Container)
46
+ true
47
+ else
48
+ false
49
+ end
50
+ end
51
+
52
+ def tag_class(options)
53
+ classes =
54
+ if options[:class].blank?
55
+ []
56
+ elsif options[:class].is_a?(Array)
57
+ options[:class]
58
+ else
59
+ [options[:class]]
60
+ end
61
+
62
+ classes << 'bootsy_text_area'
63
+ end
64
+
65
+ def data_options(options)
66
+ (options[:data] || {}).deep_merge(
67
+ Hash[bootsy_options(options).map do |key, value|
68
+ ["bootsy-#{key}", value]
69
+ end]
70
+ )
71
+ end
72
+
73
+ def bootsy_options(options)
74
+ Bootsy.editor_options
75
+ .merge(options[:editor_options] || {})
76
+ .merge(uploader: enable_uploader?(options))
77
+ end
78
+
79
+ def text_area_options(options)
80
+ options.except(
81
+ :container,
82
+ :uploader,
83
+ :editor_options
84
+ ).merge(
85
+ data: data_options(options),
86
+ class: tag_class(options)
87
+ )
88
+ end
89
+
90
+ def set_gallery_id(container, options)
91
+ return unless enable_uploader?(options)
92
+
93
+ container.bootsy_image_gallery_id ||= Bootsy::ImageGallery.create!.id
94
+ options.deep_merge!(
95
+ data: { gallery_id: container.bootsy_image_gallery_id }
96
+ )
97
+ end
98
+
99
+ def gallery_id_param(object_name, container, options)
100
+ return unless enable_uploader?(options) && container.new_record?
101
+
102
+ hidden_field(
103
+ object_name,
104
+ :bootsy_image_gallery_id,
105
+ class: 'bootsy_image_gallery_id'
106
+ )
107
+ end
108
+
109
+ def modal(options, container)
110
+ return unless enable_uploader?(options)
111
+ render('bootsy/images/modal', container: container)
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,24 @@
1
+ require 'simple_form'
2
+
3
+ # Public: A SimpleForm Input to wrap Bootsy areas
4
+ class BootsyInput < SimpleForm::Inputs::Base
5
+ enable :placeholder, :maxlength, :container, :editor_options, :uploader
6
+
7
+ def input(wrapper_options = nil)
8
+ bootsy_params = [:editor_options, :container, :uploader]
9
+ input_html_options.merge!(
10
+ input_options.select { |key, _| bootsy_params.include?(key) }
11
+ )
12
+
13
+ # Check presence of `merge_wrapper_options` to keep
14
+ # compatibility with both Simple Form 3.0 and 3.1.
15
+ merged_input_options =
16
+ if respond_to?(:merge_wrapper_options, true)
17
+ merge_wrapper_options(input_html_options, wrapper_options)
18
+ else
19
+ input_html_options
20
+ end
21
+
22
+ @builder.bootsy_area(attribute_name, merged_input_options)
23
+ end
24
+ end
@@ -0,0 +1,4 @@
1
+ # Public: The gem version
2
+ module Bootsy
3
+ VERSION = '2.2.1'
4
+ end
@@ -0,0 +1,12 @@
1
+ Description:
2
+ Adds Bootsy routes, locale and assets to your application.
3
+
4
+ Example:
5
+ rails generate bootsy:install
6
+
7
+ This will create:
8
+ route mount Bootsy::Engine => '/bootsy', as: 'bootsy'
9
+ create config/locales/bootsy.en.yml
10
+ insert app/assets/javascripts/application.js
11
+ insert app/assets/stylesheets/application.css
12
+
@@ -0,0 +1,53 @@
1
+ module Bootsy
2
+ module Generators
3
+ # Public: A Rails Generator to copy translations, assets and routes to
4
+ # the host app.
5
+ class InstallGenerator < Rails::Generators::Base
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ def add_routes
9
+ route "mount Bootsy::Engine => '/bootsy', as: 'bootsy'"
10
+ end
11
+
12
+ def copy_locale
13
+ copy_file '../../../../config/locales/bootsy.en.yml',
14
+ 'config/locales/bootsy.en.yml'
15
+ end
16
+
17
+ def add_javascript
18
+ require_asset(
19
+ 'app/assets/javascripts/application.js',
20
+ "\n//= require bootsy",
21
+ '//= require jquery_ujs'
22
+ )
23
+ end
24
+
25
+ def add_stylesheet
26
+ require_asset(
27
+ 'app/assets/stylesheets/application.css',
28
+ "\n *= require bootsy",
29
+ '*= require_self'
30
+ )
31
+ end
32
+
33
+ def copy_config
34
+ template 'bootsy.rb', 'config/initializers/bootsy.rb'
35
+ end
36
+
37
+ private
38
+
39
+ def require_asset(destination, content, after_line)
40
+ if File.exist?(destination)
41
+ if File.binread(destination).include?(content)
42
+ say_status('skipped', "insert into #{destination}", :yellow)
43
+ else
44
+ insert_into_file(destination, content, after: after_line)
45
+ end
46
+ else
47
+ say_status('not found', "#{destination} not found. You must
48
+ manually require Bootsy in your assets pipeline.", :red)
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,69 @@
1
+ # Use this setup block to configure all options available in Bootsy.
2
+ Bootsy.setup do |config|
3
+ # Default editor options
4
+ # You can also override them locally by passing an
5
+ # editor_options hash to bootsy_area
6
+ # config.editor_options = {
7
+ # font_styles: true,
8
+ # emphasis: true,
9
+ # lists: true,
10
+ # html: false,
11
+ # link: true,
12
+ # image: true,
13
+ # color: true
14
+ # }
15
+ #
16
+ # Image versions available
17
+ # Possible values: :small, :medium, :large and/or :original
18
+ config.image_versions_available = [:small, :medium, :large, :original]
19
+ #
20
+ #
21
+ # SMALL IMAGES
22
+ #
23
+ # Width limit for small images
24
+ # config.small_image[:width] = 160
25
+ #
26
+ # Height limit for small images
27
+ # config.small_image[:height] = 160
28
+ #
29
+ #
30
+ # MEDIUM IMAGES
31
+ #
32
+ # Width limit for medium images
33
+ # config.medium_image[:width] = 360
34
+ #
35
+ # Height limit for medium images
36
+ # config.medium_image[:height] = 360
37
+ #
38
+ #
39
+ # LARGE IMAGES
40
+ #
41
+ # Width limit for large images
42
+ # config.large_image[:width] = 760
43
+ #
44
+ # Height limit for large images
45
+ # config.large_image[:height] = 760
46
+ #
47
+ #
48
+ # Whether user can destroy uploaded files
49
+ # config.allow_destroy = true
50
+ #
51
+ #
52
+ # Storage mode
53
+ # You can change the sorage mode below from :file to :fog if you want
54
+ # to use Amazon S3 and other cloud services. If you do that, please add
55
+ # 'fog' to your Gemfile and create and configure your credentials in an
56
+ # initializer file, as described in Carrierwave's docs:
57
+ # https://github.com/carrierwaveuploader/carrierwave#using-amazon-s3
58
+ # config.storage = :file
59
+ #
60
+ #
61
+ # Store directory (inside 'public') for storage = :file
62
+ # BE CAREFUL! Changing this may break previously uploaded file paths!
63
+ # config.store_dir = 'uploads'
64
+ #
65
+ #
66
+ # Specify the controller to inherit from. Using ApplicationController
67
+ # allows you to perform authentication from within your app.
68
+ # config.base_controller = ActionController::Base
69
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :bootsy do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bootsy_full_html
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.2.1
5
+ platform: ruby
6
+ authors:
7
+ - Volmer Soares
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: mini_magick
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: carrierwave
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.10'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.10'
41
+ - !ruby/object:Gem::Dependency
42
+ name: remotipart
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.2'
55
+ description: A beautiful WYSIWYG editor with image uploads for Rails.
56
+ email:
57
+ - volmer@radicaos.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - MIT-LICENSE
63
+ - README.md
64
+ - Rakefile
65
+ - app/assets/images/bootsy/gallery-loader.gif
66
+ - app/assets/images/bootsy/upload-loader.gif
67
+ - app/assets/javascripts/bootsy.js
68
+ - app/assets/javascripts/bootsy/area.js
69
+ - app/assets/javascripts/bootsy/editor_options.js
70
+ - app/assets/javascripts/bootsy/image_template.js
71
+ - app/assets/javascripts/bootsy/init.js
72
+ - app/assets/javascripts/bootsy/locales/en.js
73
+ - app/assets/javascripts/bootsy/locales/pt-BR.js
74
+ - app/assets/javascripts/bootsy/modal.js
75
+ - app/assets/javascripts/bootsy/vendor/bootstrap-wysihtml5.js
76
+ - app/assets/javascripts/bootsy/vendor/bootstrap.file-input.js
77
+ - app/assets/javascripts/bootsy/vendor/polyfill.js
78
+ - app/assets/javascripts/bootsy/vendor/wysihtml5.js
79
+ - app/assets/stylesheets/bootsy.css
80
+ - app/controllers/bootsy/application_controller.rb
81
+ - app/controllers/bootsy/images_controller.rb
82
+ - app/helpers/bootsy/application_helper.rb
83
+ - app/uploaders/bootsy/image_uploader.rb
84
+ - app/views/bootsy/images/_image.html.erb
85
+ - app/views/bootsy/images/_modal.html.erb
86
+ - app/views/bootsy/images/_new.html.erb
87
+ - config/locales/bootsy.en.yml
88
+ - config/locales/bootsy.pt-BR.yml
89
+ - config/routes.rb
90
+ - db/migrate/20120624171333_create_bootsy_images.rb
91
+ - db/migrate/20120628124845_create_bootsy_image_galleries.rb
92
+ - lib/bootsy.rb
93
+ - lib/bootsy/activerecord/image.rb
94
+ - lib/bootsy/activerecord/image_gallery.rb
95
+ - lib/bootsy/container.rb
96
+ - lib/bootsy/core_ext.rb
97
+ - lib/bootsy/engine.rb
98
+ - lib/bootsy/form_builder.rb
99
+ - lib/bootsy/form_helper.rb
100
+ - lib/bootsy/simple_form/bootsy_input.rb
101
+ - lib/bootsy/version.rb
102
+ - lib/generators/bootsy/USAGE
103
+ - lib/generators/bootsy/install_generator.rb
104
+ - lib/generators/bootsy/templates/bootsy.rb
105
+ - lib/tasks/bootsy_tasks.rake
106
+ homepage: http://github.com/volmer/bootsy
107
+ licenses:
108
+ - MIT
109
+ metadata: {}
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ requirements: []
125
+ rubyforge_project:
126
+ rubygems_version: 2.4.5.1
127
+ signing_key:
128
+ specification_version: 4
129
+ summary: A beautiful WYSIWYG editor with image uploads for Rails.
130
+ test_files: []