scrivito_editors 0.60.0.rc1 → 0.60.0.rc2
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/scrivito_editors/enum_editor.js.coffee +1 -0
- data/app/assets/javascripts/scrivito_editors/multienum_editor.js.coffee +1 -0
- data/app/assets/javascripts/scrivito_editors/string_editor.js.coffee +30 -5
- data/app/helpers/scrivito_editors/scrivito_tag_helper.rb +11 -2
- metadata +6 -7
- data/app/assets/javascripts/scrivito_editors/text_editor.js.coffee +0 -90
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52bf78879c7b5b0ec864f6b9e2dabe9525dc3fc2
|
4
|
+
data.tar.gz: 5838d45d84675ca135b2b4e58c21c77906ca9555
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 023d3aa2ab889122c12a3a4b05e8fea70e5c4817cf7ed2ba07a03e6f079104566fc4ecceb961d965920e4ec7b94d19f4c64436706e8c2e63502c512fd245969d
|
7
|
+
data.tar.gz: a9f1741649e172023e030947881a71641560406034c2250404f674a1069a15ad23b26efb2bb7acf6434d62c2d3e55003b96da54a1ef3705285744ddd19e77055
|
@@ -7,8 +7,9 @@ $ ->
|
|
7
7
|
|
8
8
|
switch key
|
9
9
|
when 13 # Enter
|
10
|
-
|
11
|
-
|
10
|
+
if !isNewlineAllowed(cmsField)
|
11
|
+
event.preventDefault()
|
12
|
+
cmsField.blur()
|
12
13
|
when 27 # Esc
|
13
14
|
event.stopPropagation()
|
14
15
|
cmsField.blur()
|
@@ -59,13 +60,38 @@ $ ->
|
|
59
60
|
else
|
60
61
|
cmsField.siblings().addBack().not(siblingsBefore)
|
61
62
|
|
63
|
+
_deprecationLogged = false
|
64
|
+
|
65
|
+
isNewlineAllowed = (cmsField) ->
|
66
|
+
if cmsField.data('editor') == 'text'
|
67
|
+
if !_deprecationLogged
|
68
|
+
console.warn 'Scrivito editors: data-editor="text" is deprecated, please use data-editor="string" data-newlines="true" instead.'
|
69
|
+
_deprecationLogged = true
|
70
|
+
return true
|
71
|
+
|
72
|
+
return true if cmsField.data('newlines') == true
|
73
|
+
return false if cmsField.data('newlines') == false
|
74
|
+
cmsField.css('white-space').match /pre/
|
75
|
+
|
62
76
|
DOUBLE_CLICK_MS = 300
|
63
77
|
|
78
|
+
editSelector = '''
|
79
|
+
[data-scrivito-field-type="string"]:not([data-editor]),
|
80
|
+
[data-editor~="string"],
|
81
|
+
[data-editor~="text"]
|
82
|
+
'''
|
83
|
+
|
64
84
|
initialize = ->
|
65
|
-
$(':root').on 'mouseenter',
|
85
|
+
$(':root').on 'mouseenter', editSelector, (event) ->
|
66
86
|
cmsField = $(@)
|
67
87
|
|
68
88
|
unless cmsField.attr('contenteditable')?
|
89
|
+
if isNewlineAllowed(cmsField)
|
90
|
+
html = cmsField.html()
|
91
|
+
htmlNl2Br = html.replace(/\n/g, '<br />')
|
92
|
+
if html != htmlNl2Br
|
93
|
+
cmsField.html(htmlNl2Br)
|
94
|
+
|
69
95
|
cmsField
|
70
96
|
.attr('contenteditable', true)
|
71
97
|
.blur(onBlur)
|
@@ -75,7 +101,7 @@ $ ->
|
|
75
101
|
if cmsField.attr('data-autosave') != 'false'
|
76
102
|
cmsField.on('input', onInput)
|
77
103
|
|
78
|
-
$(':root').on 'click',
|
104
|
+
$(':root').on 'click', editSelector, (event) ->
|
79
105
|
cmsField = $(@)
|
80
106
|
cleanUp(cmsField)
|
81
107
|
|
@@ -84,7 +110,6 @@ $ ->
|
|
84
110
|
event.preventDefault()
|
85
111
|
cmsField.data('scrivito_editors_last_click', event.timeStamp)
|
86
112
|
|
87
|
-
|
88
113
|
scrivito.on 'load', ->
|
89
114
|
if scrivito.in_editable_view()
|
90
115
|
initialize()
|
@@ -11,7 +11,7 @@ module ScrivitoEditors
|
|
11
11
|
# @param [String, Symbol] attribute_name
|
12
12
|
# @param [Hash] options passed to the ++scrivito_tag++ helper
|
13
13
|
def scrivito_edit_enum(object, attribute_name, options = {})
|
14
|
-
values = object
|
14
|
+
values = _values_for(object, attribute_name)
|
15
15
|
values |= [object[attribute_name].to_s]
|
16
16
|
|
17
17
|
options.reverse_merge!({
|
@@ -31,7 +31,7 @@ module ScrivitoEditors
|
|
31
31
|
# @param [String, Symbol] attribute_name
|
32
32
|
# @param [Hash] options passed to the ++scrivito_tag++ helper
|
33
33
|
def scrivito_edit_multienum(object, attribute_name, options = {})
|
34
|
-
values = object
|
34
|
+
values = _values_for(object, attribute_name)
|
35
35
|
|
36
36
|
options.reverse_merge!({
|
37
37
|
multiple: true,
|
@@ -125,6 +125,15 @@ module ScrivitoEditors
|
|
125
125
|
|
126
126
|
private
|
127
127
|
|
128
|
+
def _values_for(object, attribute_name)
|
129
|
+
if object.obj_class
|
130
|
+
# pre migration fallback
|
131
|
+
object.obj_class.attributes[attribute_name].try(:values) || []
|
132
|
+
else
|
133
|
+
object.attribute_definitions[attribute_name].try(:values) || []
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
128
137
|
def _edit_link_li(link)
|
129
138
|
query = link.query.present? ? "?#{link.query}" : ""
|
130
139
|
fragment = link.fragment.present? ? "##{link.fragment}" : ""
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scrivito_editors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.60.0.
|
4
|
+
version: 0.60.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scrivito
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coffee-rails
|
@@ -58,28 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.60.0.
|
61
|
+
version: 0.60.0.rc2
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.60.0.
|
68
|
+
version: 0.60.0.rc2
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: scrivito_sdk
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.60.0.
|
75
|
+
version: 0.60.0.rc2
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - '='
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.60.0.
|
82
|
+
version: 0.60.0.rc2
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: pry
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,7 +156,6 @@ files:
|
|
156
156
|
- app/assets/javascripts/scrivito_editors/referencelist_editor.js.coffee
|
157
157
|
- app/assets/javascripts/scrivito_editors/slider_editor.js.coffee
|
158
158
|
- app/assets/javascripts/scrivito_editors/string_editor.js.coffee
|
159
|
-
- app/assets/javascripts/scrivito_editors/text_editor.js.coffee
|
160
159
|
- app/assets/javascripts/scrivito_editors_addons.js
|
161
160
|
- app/assets/javascripts/scrivito_editors_core.js
|
162
161
|
- app/assets/stylesheets/jquery-ui-timepicker-addon.min.css
|
@@ -1,90 +0,0 @@
|
|
1
|
-
$ ->
|
2
|
-
# This file integrates contenteditable for text attributes.
|
3
|
-
# It provides multiline editing support.
|
4
|
-
|
5
|
-
onKey = (event) ->
|
6
|
-
cmsField = $(event.currentTarget)
|
7
|
-
key = event.keyCode || event.which
|
8
|
-
|
9
|
-
switch key
|
10
|
-
when 27 # Esc
|
11
|
-
event.stopPropagation()
|
12
|
-
cmsField.blur()
|
13
|
-
|
14
|
-
onInput = (event) ->
|
15
|
-
cmsField = $(event.currentTarget)
|
16
|
-
save(cmsField, false)
|
17
|
-
|
18
|
-
onBlur = (event) ->
|
19
|
-
cmsField = $(event.currentTarget)
|
20
|
-
|
21
|
-
save(cmsField, true).done ->
|
22
|
-
if cmsField.attr('data-reload') == 'true'
|
23
|
-
cmsField.scrivito('reload')
|
24
|
-
|
25
|
-
save = (cmsField, andClose) ->
|
26
|
-
cleanUp(cmsField)
|
27
|
-
|
28
|
-
clone = cmsFieldAndPastedContent(cmsField).clone()
|
29
|
-
clone.find('div:not(:has(br))').before('\n')
|
30
|
-
clone.find('br').replaceWith('\n')
|
31
|
-
content = clone.text()
|
32
|
-
clone.remove()
|
33
|
-
|
34
|
-
if andClose
|
35
|
-
cmsField.text(content)
|
36
|
-
|
37
|
-
# Save only if the content has changed.
|
38
|
-
if content != cmsField.scrivito('content')
|
39
|
-
cmsField.scrivito('save', content).done ->
|
40
|
-
cmsField.trigger('save.scrivito_editors')
|
41
|
-
else
|
42
|
-
$.Deferred().resolve()
|
43
|
-
|
44
|
-
cleanUp = (cmsField) ->
|
45
|
-
siblings = cmsFieldAndPastedContent(cmsField)
|
46
|
-
pasted = siblings.not(cmsField)
|
47
|
-
if pasted.length > 0
|
48
|
-
pasted.remove()
|
49
|
-
cmsField.text(siblings.text())
|
50
|
-
|
51
|
-
cmsFieldAndPastedContent = (cmsField) ->
|
52
|
-
siblingsBefore = cmsField.data('scrivito_editors_siblings_before_edit')
|
53
|
-
siblings = cmsField.siblings()
|
54
|
-
needsReset = !siblingsBefore || siblings.filter(siblingsBefore).length < siblingsBefore.length
|
55
|
-
if needsReset
|
56
|
-
cmsField.data('scrivito_editors_siblings_before_edit', siblings)
|
57
|
-
else
|
58
|
-
cmsField.siblings().addBack().not(siblingsBefore)
|
59
|
-
|
60
|
-
DOUBLE_CLICK_MS = 300
|
61
|
-
|
62
|
-
initialize = ->
|
63
|
-
$(':root').on 'mouseenter', '[data-scrivito-field-type="text"]:not([data-editor]), [data-editor~="text"]', (event) ->
|
64
|
-
cmsField = $(@)
|
65
|
-
|
66
|
-
unless cmsField.attr('contenteditable')?
|
67
|
-
html = cmsField.html()
|
68
|
-
html_nl2br = html.replace(/\n/g, '<br />')
|
69
|
-
if html != html_nl2br
|
70
|
-
cmsField.html(html_nl2br)
|
71
|
-
|
72
|
-
cmsField
|
73
|
-
.attr('contenteditable', true)
|
74
|
-
.blur(onBlur)
|
75
|
-
.keypress(onKey)
|
76
|
-
.keyup(onKey)
|
77
|
-
.on('input', onInput)
|
78
|
-
|
79
|
-
$(':root').on 'click', '[data-scrivito-field-type="text"]:not([data-editor]), [data-editor~="text"]', (event) ->
|
80
|
-
cmsField = $(@)
|
81
|
-
cleanUp(cmsField)
|
82
|
-
|
83
|
-
# Prevent editable link strings from being opened on click, but allow an enforcing double click
|
84
|
-
unless event.timeStamp - cmsField.data('scrivito_editors_last_click') < DOUBLE_CLICK_MS
|
85
|
-
event.preventDefault()
|
86
|
-
cmsField.data('scrivito_editors_last_click', event.timeStamp)
|
87
|
-
|
88
|
-
scrivito.on 'load', ->
|
89
|
-
if scrivito.in_editable_view()
|
90
|
-
initialize()
|