scrivito_editors 0.0.14 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
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