scrivito_editors 0.0.14 → 0.0.15

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e68077db1a5df9620e228f62c35ba73a45551155
4
- data.tar.gz: 5e123dd72c8dbcc44586e5f597976562ecd60419
3
+ metadata.gz: ab01a47f8d3930f53b531f531e876af4b2cdfcfb
4
+ data.tar.gz: a763ce5cb7a1bb7cc08d3d982f14849f9871cf52
5
5
  SHA512:
6
- metadata.gz: 10872a133c7a89f83f011685f357ed0bb247d94c998457f0000871cc91eef2b918b8eb6a3403e6b4386d22499955d64f84731d44eb0c25c1f290a801dd3f04c4
7
- data.tar.gz: a32e8317fefc45cc77632a5fb4bedfade91381849df5c98f92758c1595bc9eb206002d6ad822a4df46a6d9bb3cc2ea49d514f5f3d0153d5a12f6a9ae89220b23
6
+ metadata.gz: 7c893e87c20a703ad41b0b3700ea5c8ad0e81055bbbba85bc13e0200996870c2e83bba4998b2a4635986807892fecfd48365648791dacec6698a4919cdd6f2a4
7
+ data.tar.gz: 6e9d5f21d7b3eef301331583cfea7875871b8ed556fdbfdee6698e6427a75983cfa8ef21ce864addd99d4cd765c268c37e85f2c24bfff52fb6625f7bd5ecc354
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # v0.0.15
2
+ * Reduce unwanted `nbsp` in HTML editor
3
+ * Resolved issues in string and text editor
4
+ * Experimental feature: double clicking editable link texts follow the link
5
+
1
6
  # v0.0.14
2
7
  * Added the `CmsTagHelper` module containing methods that are needed to render the html for
3
8
  certain editors.
@@ -19,6 +19,7 @@ $ ->
19
19
  # Stores redactor options, custom settings and configures callbacks.
20
20
  redactorOptions = ->
21
21
  return {} =
22
+ cleanSpaces: false
22
23
  convertLinks: false
23
24
  formattingPre: false
24
25
  paragraphy: false
@@ -94,18 +95,16 @@ $ ->
94
95
  $.Deferred().resolve()
95
96
 
96
97
  # Registers Redactor for all CMS html attributes found in the given scope of the DOM element.
97
- addOnclickRedactorHandlers = (domElement) ->
98
- domElement.on 'click', '[data-scrivito-field-type="html"]:not([data-editor]), [data-editor~="html"]', (event) ->
98
+ addOnclickRedactorHandlers = ->
99
+ $(':root').on 'click.scrivito_editors', '[data-scrivito-field-type="html"]:not([data-editor]), [data-editor~="html"]', (event) ->
99
100
  event.preventDefault()
100
101
  cmsField = $(@)
101
102
 
102
103
  unless cmsField.hasClass('redactor_editor')
103
- cmsField.replaceWith(cmsField = cmsField.clone(true, true))
104
104
  cmsField.redactor(redactorOptions())
105
105
  cmsField.redactor('set', cmsField.scrivito('content'), false)
106
106
  cmsField.redactor('focus')
107
107
 
108
- # Registers all handlers when content has changed.
109
- scrivito.on 'content', (domElement) ->
108
+ scrivito.on 'load', ->
110
109
  if scrivito.in_editable_view()
111
- addOnclickRedactorHandlers($(domElement))
110
+ addOnclickRedactorHandlers()
@@ -50,15 +50,22 @@ $ ->
50
50
  cmsField.text(siblings.text())
51
51
 
52
52
  cmsFieldAndPastedContent = (cmsField) ->
53
- cmsField.siblings().addBack().not(cmsField.data('siblings_before_edit'))
53
+ siblingsBefore = cmsField.data('scrivito_editors_siblings_before_edit')
54
+ siblings = cmsField.siblings()
55
+ needsReset = !siblingsBefore || siblings.filter(siblingsBefore).length < siblingsBefore.length
56
+ if needsReset
57
+ cmsField.data('scrivito_editors_siblings_before_edit', siblings)
58
+ else
59
+ cmsField.siblings().addBack().not(siblingsBefore)
60
+
61
+ DOUBLE_CLICK_MS = 300
54
62
 
55
63
  initialize = ->
56
- $('body').on 'mouseenter', '[data-scrivito-field-type="string"]:not([data-editor]), [data-editor~="string"]', (event) ->
57
- cmsField = $(event.currentTarget)
64
+ $(':root').on 'mouseenter', '[data-scrivito-field-type="string"]:not([data-editor]), [data-editor~="string"]', (event) ->
65
+ cmsField = $(@)
58
66
 
59
67
  unless cmsField.attr('contenteditable')?
60
68
  cmsField
61
- .data('siblings_before_edit', cmsField.siblings())
62
69
  .attr('contenteditable', true)
63
70
  .blur(onBlur)
64
71
  .keypress(onKey)
@@ -67,9 +74,15 @@ $ ->
67
74
  if cmsField.attr('data-autosave') != 'false'
68
75
  cmsField.on('input', onInput)
69
76
 
70
- # Prevent editable link strings to follow the link target on click.
71
- $('body').on 'click', '[data-scrivito-field-type="string"]:not([data-editor]), [data-editor~="string"]', (event) ->
72
- event.preventDefault()
77
+ $(':root').on 'click', '[data-scrivito-field-type="string"]:not([data-editor]), [data-editor~="string"]', (event) ->
78
+ cmsField = $(@)
79
+ cleanUp(cmsField)
80
+
81
+ # Prevent editable link strings from being opened on click, but allow an enforcing double click
82
+ unless event.timeStamp - cmsField.data('scrivito_editors_last_click') < DOUBLE_CLICK_MS
83
+ event.preventDefault()
84
+ cmsField.data('scrivito_editors_last_click', event.timeStamp)
85
+
73
86
 
74
87
  scrivito.on 'load', ->
75
88
  if scrivito.in_editable_view()
@@ -48,11 +48,17 @@ $ ->
48
48
  cmsField.text(siblings.text())
49
49
 
50
50
  cmsFieldAndPastedContent = (cmsField) ->
51
- cmsField.siblings().addBack().not(cmsField.data('siblings_before_edit'))
51
+ siblingsBefore = cmsField.data('scrivito_editors_siblings_before_edit')
52
+ siblings = cmsField.siblings()
53
+ needsReset = !siblingsBefore || siblings.filter(siblingsBefore).length < siblingsBefore.length
54
+ if needsReset
55
+ cmsField.data('scrivito_editors_siblings_before_edit', siblings)
56
+ else
57
+ cmsField.siblings().addBack().not(siblingsBefore)
52
58
 
53
59
  initialize = ->
54
- $('body').on 'mouseenter', '[data-scrivito-field-type="text"]:not([data-editor]), [data-editor~="text"]', (event) ->
55
- cmsField = $(event.currentTarget)
60
+ $(':root').on 'mouseenter', '[data-scrivito-field-type="text"]:not([data-editor]), [data-editor~="text"]', (event) ->
61
+ cmsField = $(@)
56
62
 
57
63
  unless cmsField.attr('contenteditable')?
58
64
  html = cmsField.html()
@@ -61,16 +67,20 @@ $ ->
61
67
  cmsField.html(html_nl2br)
62
68
 
63
69
  cmsField
64
- .data('siblings_before_edit', cmsField.siblings())
65
70
  .attr('contenteditable', true)
66
71
  .blur(onBlur)
67
72
  .keypress(onKey)
68
73
  .keyup(onKey)
69
74
  .on('input', onInput)
70
75
 
71
- # Prevent editable link text to follow the link target on click.
72
- $('body').on 'click', '[data-scrivito-field-type="text"]:not([data-editor]), [data-editor~="text"]', (event) ->
73
- event.preventDefault()
76
+ $(':root').on 'click', '[data-scrivito-field-type="text"]:not([data-editor]), [data-editor~="text"]', (event) ->
77
+ cmsField = $(@)
78
+ cleanUp(cmsField)
79
+
80
+ # Prevent editable link strings from being opened on click, but allow an enforcing double click
81
+ unless event.timeStamp - cmsField.data('scrivito_editors_last_click') < DOUBLE_CLICK_MS
82
+ event.preventDefault()
83
+ cmsField.data('scrivito_editors_last_click', event.timeStamp)
74
84
 
75
85
  scrivito.on 'load', ->
76
86
  if scrivito.in_editable_view()
@@ -1,3 +1,3 @@
1
1
  module ScrivitoEditors
2
- VERSION = '0.0.14'
2
+ VERSION = '0.0.15'
3
3
  end
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.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scrivito
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-17 00:00:00.000000000 Z
11
+ date: 2014-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties