scrivito_advanced_editors 0.0.10 → 0.0.11
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/app/assets/javascripts/scripts/scrivito_dialog.js +5 -5
- data/app/assets/javascripts/scripts/scrivito_list_editor.js +6 -4
- data/app/assets/javascripts/scripts/scrivito_multi_select_button.js +47 -0
- data/app/assets/stylesheets/scrivito_advanced_editors/scrivito_dialog.css +5 -5
- data/app/assets/stylesheets/scrivito_advanced_editors/scrivito_mutli_select_button.css.scss +32 -0
- data/app/helpers/scrivito_advanced_editors/scrivito_advanced_tag_helper.rb +40 -9
- data/app/views/scrivito_advanced_editors/_color_picker.html.erb +1 -5
- data/lib/scrivito_advanced_editors/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b51dfae24a2825a862c6e7eaa6e333335834b705
|
4
|
+
data.tar.gz: 17687e42c503593f89216d0e9514848e553d1994
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02307b30f93e3823a72602f7e9d5a92050a9fadd9110ad0cb46b461080684bd063aa6ac447c9731857cc02c065acec20cde5111db94a65e9039611208c675f60
|
7
|
+
data.tar.gz: 9f80b016caace20101fe72d5dae4afca54135cc6106f9f558134e011d8bc33738ca33ffaac0d5b464dafb51ae7fbaea4729604b57d190f31e8127d1c15cc5e6a
|
@@ -3,11 +3,11 @@
|
|
3
3
|
|
4
4
|
$(function() {
|
5
5
|
scrivito.on('content', function(content) {
|
6
|
-
$(content).find('[data-scrivito-
|
7
|
-
var
|
8
|
-
var
|
9
|
-
var
|
10
|
-
|
6
|
+
$(content).find('[data-scrivito-toggle-details]').on('click', function() {
|
7
|
+
var details_link = $(this);
|
8
|
+
var details_id = details_link.data('scrivito-toggle-details');
|
9
|
+
var details = details_link.parent().find('.scrivito-details-' + details_id);
|
10
|
+
details.toggle();
|
11
11
|
return false;
|
12
12
|
});
|
13
13
|
});
|
@@ -5,14 +5,15 @@
|
|
5
5
|
App.ScrivitoListEditor = {
|
6
6
|
// set selector for Editor
|
7
7
|
selector: "[data-editor='scrivito-list-editor']",
|
8
|
-
|
8
|
+
|
9
9
|
// Function that will be called on scrivito load
|
10
10
|
initFunction: function() { },
|
11
|
-
|
11
|
+
|
12
12
|
// set function triggert on click
|
13
13
|
clickFunction: function(scrivito_tag, text, delimiter) {
|
14
14
|
var delimiter = $(scrivito_tag).data('delimiter') || '|';
|
15
|
-
|
15
|
+
var content = scrivito_tag.data('scrivito-field-type') == 'string' ? text.join(delimiter) : text;
|
16
|
+
return scrivito_tag.scrivito('save', content);
|
16
17
|
},
|
17
18
|
};
|
18
19
|
|
@@ -22,8 +23,9 @@
|
|
22
23
|
var elems = $(ScrivitoListEditor.selector);
|
23
24
|
$.each(elems, function(index, elem) {
|
24
25
|
var delimiter = $(elem).data('delimiter') || '|';
|
26
|
+
var content = $(elem).data('scrivito-field-type') == 'string' ? $(elem).html().split(delimiter) : $(elem).scrivito('content');
|
25
27
|
$(elem).tagEditor({
|
26
|
-
initialTags:
|
28
|
+
initialTags: content,
|
27
29
|
delimiter: delimiter,
|
28
30
|
forceLowercase: false,
|
29
31
|
maxLength: 1000,
|
@@ -0,0 +1,47 @@
|
|
1
|
+
(function($, App) {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
$(function() {
|
5
|
+
|
6
|
+
App.ScrivitoMultiSelectButton = {
|
7
|
+
// set selector for Editor
|
8
|
+
selector: "[data-editor='scrivito-multi-select-button']",
|
9
|
+
|
10
|
+
// Function that will be called on scrivito load
|
11
|
+
initFunction: function() {},
|
12
|
+
|
13
|
+
// set function triggert on click
|
14
|
+
clickFunction: function(scrivito_tag) {
|
15
|
+
var content = scrivito_tag.data('content');
|
16
|
+
//var text = scrivito_tag.scrivito('content');
|
17
|
+
var buttons = scrivito_tag.parent().find('button');
|
18
|
+
|
19
|
+
var text = [];
|
20
|
+
$.each(buttons, function(index, elem) {
|
21
|
+
var button = $(elem);
|
22
|
+
if(button.hasClass('active')) text.push(button.data('content'));
|
23
|
+
});
|
24
|
+
|
25
|
+
if(scrivito_tag.hasClass('active')) {
|
26
|
+
text.splice( text.indexOf(content), 1 );
|
27
|
+
} else {
|
28
|
+
text.push(content);
|
29
|
+
}
|
30
|
+
|
31
|
+
scrivito_tag.toggleClass('active');
|
32
|
+
|
33
|
+
return scrivito_tag.scrivito('save', text);
|
34
|
+
},
|
35
|
+
};
|
36
|
+
|
37
|
+
// Set click event
|
38
|
+
scrivito.on('load', function() {
|
39
|
+
if(scrivito.in_editable_view()) {
|
40
|
+
return $('body').on('click', ScrivitoMultiSelectButton.selector, function(event) {
|
41
|
+
ScrivitoMultiSelectButton.clickFunction($(event.target));
|
42
|
+
});
|
43
|
+
}
|
44
|
+
});
|
45
|
+
});
|
46
|
+
|
47
|
+
})(jQuery, this);
|
@@ -7,24 +7,24 @@
|
|
7
7
|
content: "?";
|
8
8
|
}
|
9
9
|
|
10
|
-
.scrivito-
|
10
|
+
.scrivito-title-details {
|
11
11
|
background: #ddd;
|
12
12
|
padding: 10px;
|
13
13
|
margin-bottom: 2px;
|
14
14
|
}
|
15
15
|
|
16
|
-
.scrivito-
|
16
|
+
.scrivito-title-details h4 {
|
17
17
|
display: inline;
|
18
18
|
}
|
19
19
|
|
20
|
-
[data-scrivito-
|
20
|
+
[data-scrivito-toggle-details] {
|
21
21
|
font-size: 12px;
|
22
22
|
padding-left: 5px;
|
23
23
|
}
|
24
24
|
|
25
|
-
[class^=scrivito-
|
25
|
+
[class^=scrivito-details-] {
|
26
26
|
display: none;
|
27
27
|
background: #eee;
|
28
28
|
padding: 10px;
|
29
|
-
margin
|
29
|
+
margin: 5px -10px -10px;
|
30
30
|
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
.scrivito_dialog .button_list button[data-editor="scrivito-multi-select-button"] {
|
2
|
+
margin: 4px 0;
|
3
|
+
min-width: 28px;
|
4
|
+
text-shadow: 0 0 2px #222;
|
5
|
+
background: #444;
|
6
|
+
color: #fff;
|
7
|
+
outline: none !important;
|
8
|
+
border: none;
|
9
|
+
box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
|
10
|
+
font-size: 15px;
|
11
|
+
border-radius: 0;
|
12
|
+
line-height: 15px;
|
13
|
+
width: initial;
|
14
|
+
float: left;
|
15
|
+
&:first-child {
|
16
|
+
margin-left: 4px;
|
17
|
+
border-radius: 5px 0 0 5px;
|
18
|
+
}
|
19
|
+
&:last-child {
|
20
|
+
margin-right: 4px;
|
21
|
+
border-radius: 0 5px 5px 0;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
.scrivito_dialog .button_list button[data-editor='scrivito-multi-select-button']:hover {
|
26
|
+
background: #888;
|
27
|
+
}
|
28
|
+
|
29
|
+
.scrivito_dialog .button_list button[data-editor='scrivito-multi-select-button'].active {
|
30
|
+
box-shadow: 0 0px 5px rgba(0,0,0,0.4) inset;
|
31
|
+
background: #888;
|
32
|
+
}
|
@@ -1,42 +1,71 @@
|
|
1
1
|
module ScrivitoAdvancedEditors
|
2
2
|
module ScrivitoAdvancedTagHelper
|
3
3
|
|
4
|
+
def scrivito_multi_select_button_editor(obj, attribute, list=nil)
|
5
|
+
scrivito_button_editor(obj, attribute, 'select', list)
|
6
|
+
end
|
7
|
+
|
4
8
|
def scrivito_toggle_button_editor(obj, attribute, list=nil)
|
9
|
+
scrivito_button_editor(obj, attribute, 'toggle', list)
|
10
|
+
end
|
11
|
+
|
12
|
+
def scrivito_button_editor(obj, attribute, type, list=nil)
|
5
13
|
list = enum_list(obj, attribute) if list.nil?
|
6
14
|
|
7
15
|
buttons = if block_given?
|
8
16
|
list.map { |elem| yield(elem) }.join('').html_safe
|
9
17
|
else
|
10
|
-
list.map { |elem| fallback_toggle_button(obj, attribute, elem, obj.send(attribute)) }.join('').html_safe
|
18
|
+
list.map { |elem| fallback_toggle_button(obj, attribute, elem, obj.send(attribute), type) }.join('').html_safe
|
11
19
|
end
|
12
20
|
|
13
21
|
content_tag :div, buttons, class: 'button_list'
|
14
22
|
end
|
15
23
|
|
16
24
|
def scrivito_selectable_color_classes(class_name, attribute)
|
17
|
-
if Obj.respond_to?('selectable_color_classes')
|
25
|
+
colors = if Obj.respond_to?('selectable_color_classes')
|
18
26
|
Obj.selectable_color_classes(class_name, attribute)
|
19
27
|
else
|
20
28
|
fallback_colors
|
21
29
|
end
|
30
|
+
|
31
|
+
colors.map { |color| color_hash(color) }
|
22
32
|
end
|
23
33
|
|
24
34
|
private
|
25
35
|
|
26
36
|
def fallback_colors
|
27
|
-
|
37
|
+
['','transparent', 'black', 'gray', 'light-gray', 'red', 'green', 'blue', 'yellow']
|
28
38
|
end
|
29
39
|
|
30
|
-
def fallback_toggle_button(obj, attribute, elem, active)
|
31
|
-
|
32
|
-
|
40
|
+
def fallback_toggle_button(obj, attribute, elem, active, type)
|
41
|
+
content = elem.is_a?(Hash) ? elem : content_hash(elem)
|
42
|
+
scrivito_tag(:button, obj, attribute, class: (css_class(elem, active,) + content[:css]), style: content[:style], data: data_attribute(content, type)) do
|
43
|
+
content[:caption]
|
33
44
|
end
|
34
45
|
end
|
35
46
|
|
36
|
-
def
|
47
|
+
def content_hash(elem)
|
37
48
|
{
|
38
|
-
editor: 'scrivito-toggle-button',
|
39
49
|
content: elem,
|
50
|
+
caption: (elem.present? ? elem.to_s : 'none'),
|
51
|
+
style: '',
|
52
|
+
css: ''
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
def color_hash(color)
|
57
|
+
{
|
58
|
+
content: color,
|
59
|
+
caption: (color.present? ? color : 'no selection'),
|
60
|
+
style: '',
|
61
|
+
css: color,
|
62
|
+
}
|
63
|
+
end
|
64
|
+
|
65
|
+
def data_attribute(elem, type)
|
66
|
+
{
|
67
|
+
editor: (type == 'toggle' ? 'scrivito-toggle-button' : 'scrivito-multi-select-button'),
|
68
|
+
content: elem[:content],
|
40
69
|
}
|
41
70
|
end
|
42
71
|
|
@@ -45,7 +74,9 @@ module ScrivitoAdvancedEditors
|
|
45
74
|
end
|
46
75
|
|
47
76
|
def css_class(elem, active)
|
48
|
-
|
77
|
+
return '' if active.nil?
|
78
|
+
return active == elem ? 'active' : '' if active.is_a? String
|
79
|
+
active.include?(elem) ? 'active' : ''
|
49
80
|
end
|
50
81
|
end
|
51
82
|
end
|
@@ -1,5 +1 @@
|
|
1
|
-
<%= scrivito_toggle_button_editor(widget, attribute, scrivito_selectable_color_classes(widget.class.to_s, attribute))
|
2
|
-
scrivito_tag(:button, widget, attribute, class: "#{elem == widget.send(attribute) ? 'active' : ''} #{elem}", data: {editor: 'scrivito-toggle-button', content: elem}) do
|
3
|
-
elem
|
4
|
-
end
|
5
|
-
end %>
|
1
|
+
<%= scrivito_toggle_button_editor(widget, attribute, scrivito_selectable_color_classes(widget.class.to_s, attribute)) %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scrivito_advanced_editors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scrivito
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,7 @@ files:
|
|
80
80
|
- app/assets/javascripts/scripts/jquery.tag-editor.min.js
|
81
81
|
- app/assets/javascripts/scripts/scrivito_dialog.js
|
82
82
|
- app/assets/javascripts/scripts/scrivito_list_editor.js
|
83
|
+
- app/assets/javascripts/scripts/scrivito_multi_select_button.js
|
83
84
|
- app/assets/javascripts/scripts/scrivito_tabs.js
|
84
85
|
- app/assets/javascripts/scripts/scrivito_textarea_editor.js
|
85
86
|
- app/assets/javascripts/scripts/scrivito_toggle_button.js
|
@@ -88,6 +89,7 @@ files:
|
|
88
89
|
- app/assets/stylesheets/scrivito_advanced_editors/create_obj.css
|
89
90
|
- app/assets/stylesheets/scrivito_advanced_editors/jquery.tag-editor.css
|
90
91
|
- app/assets/stylesheets/scrivito_advanced_editors/scrivito_dialog.css
|
92
|
+
- app/assets/stylesheets/scrivito_advanced_editors/scrivito_mutli_select_button.css.scss
|
91
93
|
- app/assets/stylesheets/scrivito_advanced_editors/scrivito_tabs.css
|
92
94
|
- app/assets/stylesheets/scrivito_advanced_editors/scrivito_toggle_button.css
|
93
95
|
- app/assets/stylesheets/scrivito_advanced_editors/textarea_editor.css.scss
|