bootsy 2.0.5 → 2.0.6
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 +4 -4
- data/MIT-LICENSE +1 -1
- data/README.md +6 -3
- data/app/assets/javascripts/bootsy/bootsy.js +32 -12
- data/app/assets/javascripts/bootsy/init.js +12 -1
- data/app/controllers/bootsy/images_controller.rb +2 -3
- data/app/views/bootsy/images/_image.html.erb +1 -1
- data/config/locales/pt-BR.yml +5 -1
- data/lib/bootsy/container.rb +1 -1
- data/lib/bootsy/form_helper.rb +30 -18
- data/lib/bootsy/version.rb +1 -1
- data/lib/generators/bootsy/install_generator.rb +28 -18
- metadata +20 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3e427acd6cd736c47f74ecd5b6ab500d65b392a
|
4
|
+
data.tar.gz: 261b8bba75df325c62140a95c3658c4fce149d86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 067d908ddc81707cd99d661126bdae0daabf71bd9fd5efb956c381c3ab49328f38121d008a605460dc0a42b220898e267bb1520e3fb2b8e1f47038ad1c608db5
|
7
|
+
data.tar.gz: 1dc13c44973b4796563ec38b6d9806fd74288e7fcd3ed837cf9b8d0eb1025369451d5133279b504820295d20d54fbd9f7fb4523c99b45af8669988a446c0ae38
|
data/MIT-LICENSE
CHANGED
data/README.md
CHANGED
@@ -8,12 +8,15 @@
|
|
8
8
|
|
9
9
|
*Bootsy* is a WYSIWYG solution for Rails based on [Bootstrap-wysihtml5](https://github.com/jhollingworth/bootstrap-wysihtml5) which includes image uploads via [CarrierWave](https://github.com/carrierwaveuploader/carrierwave).
|
10
10
|
|
11
|
-
|
11
|
+
### Live demo
|
12
|
+
|
13
|
+
* [bootsy-demo.herokuapp.com](http://bootsy-demo.herokuapp.com/)
|
14
|
+
[](http://bootsy-demo.herokuapp.com/)
|
12
15
|
|
13
16
|
|
14
17
|
## Requirements
|
15
18
|
|
16
|
-
* Ruby `2
|
19
|
+
* Ruby `2` or `1.9.3`;
|
17
20
|
* ImageMagick or GraphicsMagick (for MiniMagick);
|
18
21
|
* Rails `4.0`;
|
19
22
|
* [Bootstrap `3`](http://getbootstrap.com/) properly added to your application.
|
@@ -149,4 +152,4 @@ for it as well. Just follow [this example](https://github.com/volmer/bootsy/tree
|
|
149
152
|
|
150
153
|
## License
|
151
154
|
|
152
|
-
MIT License. Copyright
|
155
|
+
MIT License. Copyright 2012-2014 Volmer Soares
|
@@ -1,3 +1,5 @@
|
|
1
|
+
/* global Bootsy */
|
2
|
+
|
1
3
|
window.Bootsy = window.Bootsy || {};
|
2
4
|
|
3
5
|
Bootsy.Area = function($el) {
|
@@ -14,12 +16,30 @@ Bootsy.Area = function($el) {
|
|
14
16
|
uploader: $el.data('bootsy-uploader'),
|
15
17
|
};
|
16
18
|
|
17
|
-
|
18
|
-
if ($el.data('bootsy-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
if ($el.data('bootsy-
|
19
|
+
// Set default values to editor options
|
20
|
+
if ($el.data('bootsy-font-styles') === false) {
|
21
|
+
this.options['font-styles'] = false;
|
22
|
+
}
|
23
|
+
|
24
|
+
if ($el.data('bootsy-emphasis') === false) {
|
25
|
+
this.options.emphasis = false;
|
26
|
+
}
|
27
|
+
|
28
|
+
if ($el.data('bootsy-lists') === false) {
|
29
|
+
this.options.lists = false;
|
30
|
+
}
|
31
|
+
|
32
|
+
if ($el.data('bootsy-html') === true) {
|
33
|
+
this.options.html = true;
|
34
|
+
}
|
35
|
+
|
36
|
+
if ($el.data('bootsy-link') === false) {
|
37
|
+
this.options.link = false;
|
38
|
+
}
|
39
|
+
|
40
|
+
if ($el.data('bootsy-color') === false) {
|
41
|
+
this.options.color = false;
|
42
|
+
}
|
23
43
|
|
24
44
|
// Delegate find to the modal
|
25
45
|
this.find = this.modal.find.bind(this.modal);
|
@@ -66,8 +86,6 @@ Bootsy.Area.prototype.hideRefreshButton = function() {
|
|
66
86
|
|
67
87
|
// Set upload form
|
68
88
|
Bootsy.Area.prototype.setUploadForm = function(html) {
|
69
|
-
var form;
|
70
|
-
|
71
89
|
this.find('.modal-footer').html(html);
|
72
90
|
|
73
91
|
this.hideUploadLoadingAnimation();
|
@@ -103,7 +121,7 @@ Bootsy.Area.prototype.setImageGallery = function() {
|
|
103
121
|
this.addImage(value);
|
104
122
|
}.bind(this));
|
105
123
|
|
106
|
-
if (data.images.length
|
124
|
+
if (data.images.length === 0) {
|
107
125
|
this.showEmptyAlert();
|
108
126
|
}
|
109
127
|
|
@@ -111,7 +129,7 @@ Bootsy.Area.prototype.setImageGallery = function() {
|
|
111
129
|
|
112
130
|
this.modal.data('gallery-loaded', true);
|
113
131
|
}.bind(this),
|
114
|
-
error: function(
|
132
|
+
error: function() {
|
115
133
|
alert(Bootsy.translations[this.locale].error);
|
116
134
|
|
117
135
|
this.showRefreshButton();
|
@@ -129,7 +147,7 @@ Bootsy.Area.prototype.deleteImage = function (id) {
|
|
129
147
|
image.remove();
|
130
148
|
|
131
149
|
// Put message back if 0 images
|
132
|
-
if (this.find('.bootsy-image').length
|
150
|
+
if (this.find('.bootsy-image').length === 0 ) {
|
133
151
|
this.showEmptyAlert();
|
134
152
|
}
|
135
153
|
}.bind(this));
|
@@ -200,6 +218,8 @@ Bootsy.Area.prototype.init = function() {
|
|
200
218
|
var img, imageObject;
|
201
219
|
var imagePrefix = '/' + $(this).attr('data-image-size') + '_';
|
202
220
|
|
221
|
+
e.preventDefault();
|
222
|
+
|
203
223
|
if ($(this).data('image-size') === 'original') {
|
204
224
|
imagePrefix = '/';
|
205
225
|
}
|
@@ -257,7 +277,7 @@ Bootsy.Area.prototype.init = function() {
|
|
257
277
|
window.onbeforeunload = this.unsavedChangesAlert.bind(this);
|
258
278
|
}
|
259
279
|
|
260
|
-
this.$el.closest('form').submit(function(
|
280
|
+
this.$el.closest('form').submit(function() {
|
261
281
|
this.unsavedChanges = false;
|
262
282
|
|
263
283
|
return true;
|
@@ -1,5 +1,8 @@
|
|
1
|
+
/* global Bootsy */
|
1
2
|
window.Bootsy = window.Bootsy || {};
|
2
3
|
|
4
|
+
// Public: Intialize Bootsy editors in all visible `textarea`
|
5
|
+
// elements that has the `bootsy_text_area` class.
|
3
6
|
Bootsy.init = function() {
|
4
7
|
Bootsy.areas = {};
|
5
8
|
|
@@ -17,4 +20,12 @@ Bootsy.init = function() {
|
|
17
20
|
});
|
18
21
|
};
|
19
22
|
|
20
|
-
|
23
|
+
/* Initialize Bootsy on document load */
|
24
|
+
$(function() {
|
25
|
+
Bootsy.init();
|
26
|
+
|
27
|
+
/* Reload Bootsy on page load when using Turbolinks. */
|
28
|
+
if (window.Turbolinks) {
|
29
|
+
document.addEventListener('page:load', Bootsy.init);
|
30
|
+
}
|
31
|
+
});
|
@@ -66,10 +66,9 @@ module Bootsy
|
|
66
66
|
end
|
67
67
|
|
68
68
|
private
|
69
|
+
|
69
70
|
def find_gallery
|
70
|
-
ImageGallery.find
|
71
|
-
rescue
|
72
|
-
ImageGallery.new
|
71
|
+
ImageGallery.find(params[:image_gallery_id])
|
73
72
|
end
|
74
73
|
|
75
74
|
# Never trust parameters from the scary internet, only allow the white list through.
|
data/config/locales/pt-BR.yml
CHANGED
@@ -5,6 +5,7 @@ pt-BR:
|
|
5
5
|
destroy: Apagar
|
6
6
|
close: Fechar
|
7
7
|
load: Carregar
|
8
|
+
upload: Nova imagem
|
8
9
|
image_gallery: Galeria de Imagens
|
9
10
|
image:
|
10
11
|
s: Imagem
|
@@ -20,4 +21,7 @@ pt-BR:
|
|
20
21
|
position:
|
21
22
|
left: Esquerda
|
22
23
|
right: Direita
|
23
|
-
inline: Mesma linha
|
24
|
+
inline: Mesma linha
|
25
|
+
no_images_uploaded: Não existem imagens salvas.
|
26
|
+
js:
|
27
|
+
alert_unsaved: As suas modificações ainda não foram gravadas.
|
data/lib/bootsy/container.rb
CHANGED
@@ -19,7 +19,7 @@ module Bootsy
|
|
19
19
|
|
20
20
|
def bootsy_image_gallery_id=(value)
|
21
21
|
if self.bootsy_image_gallery.nil? && !value.blank?
|
22
|
-
ig = Bootsy::ImageGallery.find
|
22
|
+
ig = Bootsy::ImageGallery.find(value)
|
23
23
|
self.bootsy_image_gallery = ig
|
24
24
|
ig.bootsy_resource = self
|
25
25
|
ig.save
|
data/lib/bootsy/form_helper.rb
CHANGED
@@ -1,21 +1,16 @@
|
|
1
1
|
module Bootsy
|
2
2
|
module FormHelper
|
3
3
|
def bootsy_area(object_name, method, options = {})
|
4
|
-
|
5
|
-
container = options.delete(:container)
|
4
|
+
container = options[:container] || options[:object]
|
6
5
|
|
7
|
-
|
8
|
-
bootsy_options[:uploader] = enable_uploader?(object, options.delete(:uploader), container)
|
6
|
+
output = self.text_area(object_name, method, text_area_options(options))
|
9
7
|
|
10
|
-
|
11
|
-
|
8
|
+
if output.present? && enable_uploader?(options)
|
9
|
+
container.bootsy_image_gallery_id ||= Bootsy::ImageGallery.create!.id
|
12
10
|
|
13
|
-
|
11
|
+
output += self.render('bootsy/images/modal', container: container)
|
14
12
|
|
15
|
-
|
16
|
-
output += self.render 'bootsy/images/modal', { container: container || object }
|
17
|
-
|
18
|
-
if container.blank? || (container == object)
|
13
|
+
if container.new_record?
|
19
14
|
output += self.hidden_field(object_name, :bootsy_image_gallery_id, class: 'bootsy_image_gallery_id')
|
20
15
|
end
|
21
16
|
end
|
@@ -25,19 +20,19 @@ module Bootsy
|
|
25
20
|
|
26
21
|
private
|
27
22
|
|
28
|
-
def enable_uploader?(
|
29
|
-
if uploader == false
|
23
|
+
def enable_uploader?(options)
|
24
|
+
if options[:uploader] == false
|
30
25
|
false
|
31
|
-
elsif container.is_a?(Container)
|
26
|
+
elsif options[:container].is_a?(Container)
|
32
27
|
true
|
33
|
-
elsif container.blank? && object.is_a?(Container)
|
28
|
+
elsif options[:container].blank? && options[:object].is_a?(Container)
|
34
29
|
true
|
35
30
|
else
|
36
31
|
false
|
37
32
|
end
|
38
33
|
end
|
39
34
|
|
40
|
-
def
|
35
|
+
def tag_class(options)
|
41
36
|
classes = if options[:class].blank?
|
42
37
|
[]
|
43
38
|
elsif options[:class].kind_of?(Array)
|
@@ -49,8 +44,25 @@ module Bootsy
|
|
49
44
|
classes << 'bootsy_text_area'
|
50
45
|
end
|
51
46
|
|
52
|
-
def data_options(options
|
53
|
-
(options[:data] || {}).merge Hash[ bootsy_options.map { |k,v| ["bootsy-#{k}", v] } ]
|
47
|
+
def data_options(options)
|
48
|
+
(options[:data] || {}).merge Hash[ bootsy_options(options).map { |k,v| ["bootsy-#{k}", v] } ]
|
49
|
+
end
|
50
|
+
|
51
|
+
def bootsy_options(options)
|
52
|
+
Bootsy.editor_options.
|
53
|
+
merge(options[:editor_options] || {}).
|
54
|
+
merge(uploader: enable_uploader?(options))
|
55
|
+
end
|
56
|
+
|
57
|
+
def text_area_options(options)
|
58
|
+
options.except(
|
59
|
+
:container,
|
60
|
+
:uploader,
|
61
|
+
:editor_options
|
62
|
+
).merge(
|
63
|
+
data: data_options(options),
|
64
|
+
class: tag_class(options)
|
65
|
+
)
|
54
66
|
end
|
55
67
|
end
|
56
68
|
end
|
data/lib/bootsy/version.rb
CHANGED
@@ -4,37 +4,47 @@ module Bootsy
|
|
4
4
|
source_root __FILE__
|
5
5
|
|
6
6
|
def add_routes
|
7
|
-
route
|
7
|
+
route("mount Bootsy::Engine => '/bootsy', as: 'bootsy'")
|
8
8
|
end
|
9
9
|
|
10
10
|
def copy_locale
|
11
|
-
copy_file
|
11
|
+
copy_file('../../../../config/locales/en.yml', 'config/locales/bootsy.en.yml')
|
12
12
|
end
|
13
13
|
|
14
14
|
def add_assets
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
15
|
+
[
|
16
|
+
{
|
17
|
+
original: 'app/assets/javascripts/application.js',
|
18
|
+
skip_if: 'require bootsy',
|
19
|
+
content: "\n//= require bootsy",
|
20
|
+
position: {
|
21
|
+
after: '//= require jquery_ujs'
|
22
|
+
}
|
23
|
+
},
|
24
|
+
{
|
25
|
+
original: 'app/assets/stylesheets/application.css',
|
26
|
+
skip_if: 'require bootsy',
|
27
|
+
content: "\n *= require bootsy",
|
28
|
+
position: {
|
29
|
+
after: '*= require_self'
|
30
|
+
}
|
31
|
+
}
|
32
|
+
].each do |params|
|
33
|
+
if File.exists?(params[:original])
|
34
|
+
if File.binread(params[:original]).include?(params[:skip_if])
|
35
|
+
say_status('skipped', "insert into #{params[:original]}", :yellow)
|
36
|
+
else
|
37
|
+
insert_into_file(params[:original], params[:content], params[:position])
|
38
|
+
end
|
27
39
|
else
|
28
|
-
|
40
|
+
say_status('not found', "#{params[:original]} not found. You must manually require Bootsy in your assets pipeline.", :red)
|
29
41
|
end
|
30
42
|
end
|
31
|
-
|
32
43
|
end
|
33
44
|
|
34
45
|
def copy_config
|
35
|
-
template
|
46
|
+
template('../templates/bootsy.rb', 'config/initializers/bootsy.rb')
|
36
47
|
end
|
37
|
-
|
38
48
|
end
|
39
49
|
end
|
40
50
|
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootsy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Volmer Soares
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mini_magick
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.7.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.7.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: carrierwave
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.9.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.9.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: remotipart
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 1.2.1
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 1.2.1
|
55
55
|
description: A beautiful WYSIWYG editor with image uploads for Rails.
|
@@ -59,8 +59,12 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
+
- MIT-LICENSE
|
63
|
+
- README.md
|
64
|
+
- Rakefile
|
62
65
|
- app/assets/images/bootsy/gallery-loader.gif
|
63
66
|
- app/assets/images/bootsy/upload-loader.gif
|
67
|
+
- app/assets/javascripts/bootsy.js
|
64
68
|
- app/assets/javascripts/bootsy/bootstrap-wysihtml5.js
|
65
69
|
- app/assets/javascripts/bootsy/bootstrap.file-input.js
|
66
70
|
- app/assets/javascripts/bootsy/bootsy.js
|
@@ -70,11 +74,10 @@ files:
|
|
70
74
|
- app/assets/javascripts/bootsy/locales/bootsy.pt-BR.js
|
71
75
|
- app/assets/javascripts/bootsy/translations.js
|
72
76
|
- app/assets/javascripts/bootsy/wysihtml5.js
|
73
|
-
- app/assets/
|
77
|
+
- app/assets/stylesheets/bootsy.css
|
74
78
|
- app/assets/stylesheets/bootsy/bootstrap-submenu.css
|
75
79
|
- app/assets/stylesheets/bootsy/bootstrap-wysihtml5.css
|
76
80
|
- app/assets/stylesheets/bootsy/bootsy.css
|
77
|
-
- app/assets/stylesheets/bootsy.css
|
78
81
|
- app/controllers/bootsy/application_controller.rb
|
79
82
|
- app/controllers/bootsy/images_controller.rb
|
80
83
|
- app/helpers/bootsy/application_helper.rb
|
@@ -88,6 +91,7 @@ files:
|
|
88
91
|
- config/routes.rb
|
89
92
|
- db/migrate/20120624171333_create_bootsy_images.rb
|
90
93
|
- db/migrate/20120628124845_create_bootsy_image_galleries.rb
|
94
|
+
- lib/bootsy.rb
|
91
95
|
- lib/bootsy/activerecord/image.rb
|
92
96
|
- lib/bootsy/activerecord/image_gallery.rb
|
93
97
|
- lib/bootsy/container.rb
|
@@ -97,17 +101,14 @@ files:
|
|
97
101
|
- lib/bootsy/form_helper.rb
|
98
102
|
- lib/bootsy/simple_form/bootsy_input.rb
|
99
103
|
- lib/bootsy/version.rb
|
100
|
-
- lib/bootsy
|
104
|
+
- lib/generators/bootsy/USAGE
|
101
105
|
- lib/generators/bootsy/install_generator.rb
|
102
106
|
- lib/generators/bootsy/templates/bootsy.rb
|
103
|
-
- lib/generators/bootsy/USAGE
|
104
107
|
- lib/tasks/bootsy_tasks.rake
|
105
108
|
- lib/tasks/cucumber.rake
|
106
|
-
- MIT-LICENSE
|
107
|
-
- Rakefile
|
108
|
-
- README.md
|
109
109
|
homepage: http://github.com/volmer/bootsy
|
110
|
-
licenses:
|
110
|
+
licenses:
|
111
|
+
- MIT
|
111
112
|
metadata: {}
|
112
113
|
post_install_message:
|
113
114
|
rdoc_options: []
|
@@ -115,17 +116,17 @@ require_paths:
|
|
115
116
|
- lib
|
116
117
|
required_ruby_version: !ruby/object:Gem::Requirement
|
117
118
|
requirements:
|
118
|
-
- -
|
119
|
+
- - ">="
|
119
120
|
- !ruby/object:Gem::Version
|
120
121
|
version: '0'
|
121
122
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
123
|
requirements:
|
123
|
-
- -
|
124
|
+
- - ">="
|
124
125
|
- !ruby/object:Gem::Version
|
125
126
|
version: '0'
|
126
127
|
requirements: []
|
127
128
|
rubyforge_project:
|
128
|
-
rubygems_version: 2.0
|
129
|
+
rubygems_version: 2.2.0
|
129
130
|
signing_key:
|
130
131
|
specification_version: 4
|
131
132
|
summary: A beautiful WYSIWYG editor with image uploads for Rails.
|