effective_bootstrap 0.0.27 → 0.0.28

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: 6cc4dc8605f978a57f6ae9c843dc44d4278ecd5d
4
- data.tar.gz: 190608e681e7b4c355e8ebd7d871750ff8445343
3
+ metadata.gz: c86bfcfaf09f0b377e597a73666b33345fe4cbfb
4
+ data.tar.gz: 903be952705a11736f591a3cf7dacf78ed9a3979
5
5
  SHA512:
6
- metadata.gz: 81a5fc220dcff6ff77d9323d4eaef179f8c7cfc3663ea8391e5101cb1ee2ff9518de4cdf9092a8940ce212288b77e41984715bf497c59c4b8d3264dce6113efd
7
- data.tar.gz: 3fcdc2ec8c1c48ab4d4407818b5999935554d74f290ef48c7568158381544051e0129d4f0572c7020d865d7a2a5be1be8de6d88dadde4fb0bd9f92685cf65139
6
+ metadata.gz: ba71de31350daf7d706034f2bf39837b893446573ab616be7ae962ef7e798901eeb0a72826da659dfc9e4bf79cacfa7a85557f05f24f184eaf22ff2ff9785efb
7
+ data.tar.gz: 4983d532de3560846fdb43667bf845feb0ec2aff2805e2cd384eb1734e6c100696cded837d112402172bee362d4eef1f6fdacaa9a2e56c80435d77345ccacc93
@@ -3,12 +3,29 @@
3
3
  (this.EffectiveBootstrap || {}).effective_editor = ($element, options) ->
4
4
  editor = '#' + $element.attr('id') + '_editor'
5
5
 
6
+ delta = options['delta']
7
+ delete options['delta']
8
+
6
9
  quill = new Quill(editor, options)
7
- quill.pasteHTML($element.val())
10
+ content = $element.val() || ''
11
+
12
+ if content.length > 0
13
+ if content.startsWith('{') then quill.setContents(JSON.parse(content)) else quill.pasteHTML(content)
8
14
 
9
- quill.on 'text-change', (delta, old, source) ->
10
- html = $(editor).children('.ql-editor').html()
11
- html = '' if html == '<p><br></p>' || html == '<p></p>'
12
- $element.val(html)
15
+ if delta
16
+ quill.on 'text-change', (delta, old, source) ->
17
+ $element.val(JSON.stringify(quill.getContents()))
18
+ else
19
+ quill.on 'text-change', (delta, old, source) ->
20
+ html = $(editor).children('.ql-editor').html()
21
+ html = '' if html == '<p><br></p>' || html == '<p></p>'
22
+ $element.val(html)
13
23
 
14
24
  $element.on 'quill:focus', (event) -> quill.focus()
25
+
26
+ # This is the read only region. Always delta.
27
+ (this.EffectiveBootstrap || {}).effective_editor_tag = ($element, options) ->
28
+ quill = new Quill('#' + $element.attr('id'), options)
29
+
30
+ if $element.data('delta')
31
+ quill.setContents($element.data('delta'))
@@ -4162,7 +4162,7 @@ var Scroll = function (_Parchment$Scroll) {
4162
4162
  }, {});
4163
4163
  }
4164
4164
  // Some reason fixes composition issues with character languages in Windows/Chrome, Safari
4165
- // _this.domNode.addEventListener('DOMNodeInserted', function () {});
4165
+ // matt: _this.domNode.addEventListener('DOMNodeInserted', function () {});
4166
4166
  _this.optimize();
4167
4167
  _this.enable();
4168
4168
  return _this;
@@ -1,4 +1,4 @@
1
- .effective-editor { height: 0; width: 0; padding: 0; margin: 0; visibility: hidden; }
1
+ .effective_editor { height: 0; width: 0; padding: 0; margin: 0; visibility: hidden; }
2
2
 
3
3
  // Bootstrap 4 Feedback client side
4
4
  .was-validated .form-control:invalid ~ .ql-container, { border-color: #dc3545; }
@@ -11,3 +11,15 @@
11
11
  .form-control.is-invalid ~ .ql-toolbar { border-color: #dc3545; }
12
12
  .form-control.is-valid ~ .ql-container { border-color: #28a745; }
13
13
  .form-control.is-valid ~ .ql-toolbar { border-color: #28a745; }
14
+
15
+ .ql-effective.ql-container {
16
+ font-family: inherit;
17
+ font-size: inherit;
18
+ }
19
+
20
+ // Now for the editor itself
21
+ .effective_editor_content.ql-container {
22
+ border: none;
23
+
24
+ .ql-editor { padding: 0; }
25
+ }
@@ -0,0 +1,9 @@
1
+ module EffectiveEditorHelper
2
+
3
+ def effective_editor_tag(delta)
4
+ input_js = { method_name: 'effective_editor_tag', theme: 'snow', readOnly: true, modules: { toolbar: false } }
5
+
6
+ content_tag(:div, '', id: "ql-#{delta.object_id}", class: 'effective_editor_content ql-effective', data: { 'input-js-options': input_js, 'delta': delta.presence || '{}'})
7
+ end
8
+
9
+ end
@@ -10,23 +10,33 @@ module Effective
10
10
  end
11
11
 
12
12
  def input_html_options
13
- { class: 'effective-editor form-control', id: unique_id }
13
+ { class: 'effective_editor form-control', id: unique_id }
14
14
  end
15
15
 
16
16
  def input_js_options
17
- { modules: { toolbar: toolbar }, theme: 'snow', placeholder: "Add #{name.to_s.pluralize}..." }
17
+ { modules: { toolbar: toolbar }, theme: 'snow', placeholder: "Add #{name.to_s.pluralize}...", delta: delta? }
18
18
  end
19
19
 
20
20
  def toolbar
21
21
  [
22
- [{ 'header': [1, 2, 3, 4, false] }],
22
+ [{'header': [1, 2, 3, 4, false] }],
23
23
  ['bold', 'italic', 'underline'],
24
24
  ['link', 'image', 'video', 'code-block'],
25
- [{ 'list': 'ordered'}, { 'list': 'bullet' }],
26
- [{ 'align': [] }, 'clean'],
25
+ [{'list': 'ordered'}, { 'list': 'bullet' }],
26
+ [{'align': [] }, 'clean'],
27
27
  ]
28
28
  end
29
29
 
30
+ def delta? # default false
31
+ return @delta unless @delta.nil?
32
+
33
+ if options.key?(:html)
34
+ @delta = (options.delete(:html) == false)
35
+ else
36
+ @delta = (options.delete(:delta) || false)
37
+ end
38
+ end
39
+
30
40
  end
31
41
  end
32
42
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveBootstrap
2
- VERSION = '0.0.27'.freeze
2
+ VERSION = '0.0.28'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.27
4
+ version: 0.0.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
@@ -421,6 +421,7 @@ files:
421
421
  - app/assets/stylesheets/effective_select/select2.css
422
422
  - app/assets/stylesheets/effective_time/input.scss
423
423
  - app/helpers/effective_bootstrap_helper.rb
424
+ - app/helpers/effective_editor_helper.rb
424
425
  - app/helpers/effective_form_builder_helper.rb
425
426
  - app/helpers/effective_icons_helper.rb
426
427
  - app/models/effective/access_denied.rb