scrivito_editors 0.70.2 → 0.71.0.rc1

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: 368d73a788a8236caba480f936e5a8e3bf732bc4
4
- data.tar.gz: 56dd5778059e509c4c42c9d6ffc27a46829e9762
3
+ metadata.gz: aa97297b8ea4b3d766e89626c337ed8d92f91c8f
4
+ data.tar.gz: 1ac6e84c3983669d660304519dfa51e9614869a9
5
5
  SHA512:
6
- metadata.gz: 6ec896e7020ebb040b9bd93859413d365f336bc1788dcc1817b50a268d77b9bf5d5b552d03b4d30259303e7d02af0a65e7d9e7f80a6e4c3c46e935327d987ca6
7
- data.tar.gz: a15151bb67477177691a314349347f3b28d001862c41e0dcae0dad611b31477e4e6d9dc2a012e2e171abe40c7e60e59f65f41b66a10cfd142b94f33dbec609af
6
+ metadata.gz: 2e13fce3cc15a0ccf9170f677f5d17abc348958660bde6e17d0add7a26d3da3ac88b60f8cec80e8a40153b23f84a133c06b2dd7dc47687947c203a27ffdbb8d7
7
+ data.tar.gz: 0e66886e9bca14bf739b46f9792934aa441efc72d2a38541c89daee03d0473cbceaf8c27e4aa21d19d7f2914ef2b08d3d602992ad5704df284e4212afe9c581d
@@ -51,35 +51,15 @@ setup_image_kit_container = (element, dialog) ->
51
51
  image = new Image()
52
52
  url = element.scrivito("content").url
53
53
 
54
- #Order is important for CORS problem in browsers http://stackoverflow.com/a/18422548
55
- image.crossOrigin = "Anonymous"
56
- image.src = url
57
-
58
- #S3 compatible (as of 2015-10) workaround to prevent crossOrigin warnings in chrome and safari
59
- fallbackUrl = url
54
+ #workaround to prevent crossOrigin warnings in chrome and safari
60
55
  if url.indexOf("?") < 0
61
- fallbackUrl = url + "?=" + new Date().getTime()
56
+ url += "?" + new Date().getTime()
62
57
  else
63
- fallbackUrl = url + "&=" + new Date().getTime()
58
+ url += "&" + new Date().getTime()
64
59
 
65
- image.onerror = ->
66
- if image.src is fallbackUrl
67
- $("""
68
- <div style='padding:20px'>
69
- <h1>We're sorry,</h1>
70
- <p>Scrivito can't edit this image in your browser. What now?</p>
71
- <ul>
72
- <li>Check for browser updates</li>
73
- <li>Try using a different browser</li>
74
- <li>Contact us at
75
- <a href="https://scrivito.com/support" target="_blank">https://scrivito.com/support</a>
76
- </li>
77
- </ul>
78
- </div>
79
- """).appendTo(container)
80
- else
81
- console.info("Scrivito detected a probable CORS browser cache mismatch, trying uncached load")
82
- image.src = fallbackUrl
60
+ #Order is important for CORS problem in browsers http://stackoverflow.com/a/18422548
61
+ image.crossOrigin = "Anonymous"
62
+ image.src = url
83
63
 
84
64
  image.onload = ->
85
65
  kit = setup_image_kit(image, container)
@@ -0,0 +1,111 @@
1
+ scrivito.on 'content', (content) ->
2
+ return unless scrivito.in_editable_view()
3
+
4
+ $(content).find('''
5
+ [data-scrivito-field-name="_permalink"]:not([data-editor]),
6
+ [data-editor~=permalink]
7
+ ''').each -> create($(@))
8
+
9
+ create = (field) ->
10
+ editor = field.html(render(field.scrivito('content') || ''))
11
+ input = editor.find('input')
12
+ button = editor.find('a')
13
+ error = editor.find('div.scrivito_error')
14
+ clear = editor.find('.scrivito_clear')
15
+
16
+ input.on 'input', ->
17
+ permalink = input.val()
18
+ if permalink == field.scrivito('content')
19
+ hideError()
20
+ disableSaveButton()
21
+ else if permalink.match(/^([\w._-]+[\/\w._-]*)?$/)
22
+ hideError()
23
+ enableSaveButton()
24
+ else
25
+ showError(
26
+ 'The permalink may only contain letters from A to Z, periods, hyphens, and underscores.')
27
+ disableSaveButton()
28
+
29
+ clear.on 'click', ->
30
+ input.val('')
31
+ hideError()
32
+ if !field.scrivito('content')
33
+ disableSaveButton()
34
+ else
35
+ enableSaveButton()
36
+ off
37
+
38
+ button.on 'click', ->
39
+ trySave()
40
+ off
41
+
42
+ editor.on 'keyup', (event) ->
43
+ switch event.keyCode
44
+ when 13 # Enter
45
+ trySave()
46
+ when 27 # Esc
47
+ input.val(field.scrivito('content'))
48
+ hideError()
49
+ disableSaveButton()
50
+ input.blur()
51
+
52
+ trySave = ->
53
+ return off if button.hasClass('scrivito_disabled')
54
+
55
+ showSaving()
56
+
57
+ permalink = input.val()
58
+ if permalink
59
+ scrivito.obj_where('_permalink', 'equals', permalink).size().then (total) ->
60
+ if total > 0
61
+ hideSaving()
62
+ showError('Permalink already taken.')
63
+ disableSaveButton()
64
+ input.focus()
65
+ else
66
+ save(permalink)
67
+ else
68
+ save(null)
69
+
70
+ disableSaveButton = ->
71
+ button.addClass('scrivito_disabled')
72
+
73
+ enableSaveButton = ->
74
+ button.removeClass('scrivito_disabled scrivito_saving')
75
+
76
+ showError = (message) ->
77
+ disableSaveButton()
78
+ input.addClass('scrivito_error')
79
+ error.text(message)
80
+ error.show()
81
+
82
+ hideError = ->
83
+ input.removeClass('scrivito_error')
84
+ error.hide()
85
+
86
+ showSaving = ->
87
+ input.attr('disabled', 'disabled')
88
+ disableSaveButton()
89
+ button.addClass('scrivito_saving')
90
+ button.find('span').text('Saving...')
91
+
92
+ hideSaving = ->
93
+ input.removeAttr('disabled')
94
+ enableSaveButton()
95
+ button.find('span').text('Save')
96
+
97
+ save = (permalink) ->
98
+ field.scrivito('save', permalink).then ->
99
+ create(field)
100
+
101
+ render = (content) ->
102
+ """
103
+ <div class="scrivito_permalink_editor">
104
+ <input type="text" value="#{content}" />
105
+ <span class="scrivito_clear"></span>
106
+ <a href="#" class="scrivito_editing_button scrivito_disabled">
107
+ <span>Save</span>
108
+ </a>
109
+ <div class="scrivito_error"></div>
110
+ </div>
111
+ """
@@ -98,7 +98,7 @@ $ ->
98
98
  DOUBLE_CLICK_MS = 300
99
99
 
100
100
  editSelector = '''
101
- [data-scrivito-field-type="string"]:not([data-editor]),
101
+ [data-scrivito-field-type="string"]:not([data-editor]):not([data-scrivito-field-name=_permalink]),
102
102
  [data-editor~="string"],
103
103
  [data-editor~="text"]
104
104
  '''
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.70.2
4
+ version: 0.71.0.rc1
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-02 00:00:00.000000000 Z
11
+ date: 2015-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coffee-rails
@@ -72,28 +72,28 @@ dependencies:
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 0.70.2
75
+ version: 0.71.0.rc1
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.70.2
82
+ version: 0.71.0.rc1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: scrivito_sdk
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 0.70.2
89
+ version: 0.71.0.rc1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 0.70.2
96
+ version: 0.71.0.rc1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -235,6 +235,7 @@ files:
235
235
  - app/assets/javascripts/scrivito_editors/link_editor.js.coffee
236
236
  - app/assets/javascripts/scrivito_editors/linklist_editor.js.coffee
237
237
  - app/assets/javascripts/scrivito_editors/multienum_editor.js.coffee
238
+ - app/assets/javascripts/scrivito_editors/permalink_editor.js.coffee
238
239
  - app/assets/javascripts/scrivito_editors/placeholder.js.coffee
239
240
  - app/assets/javascripts/scrivito_editors/redactor_plugins/scrivito_editors_image_manager.js.coffee
240
241
  - app/assets/javascripts/scrivito_editors/redactor_plugins/scrivito_editors_link_manager.js.coffee