avo-rhino_field 0.0.11 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,14 +1,9 @@
1
1
  <%= field_wrapper **field_wrapper_args, full_width: true do %>
2
2
  <%= content_tag :div, class: "relative block overflow-x-auto max-w-4xl" do %>
3
3
  <%= content_tag 'avo-rhino-editor',
4
- data: {
5
- controller: "rhino-field",
6
- blob_url_template: helpers.main_app.rails_service_blob_url(":signed_id", ":filename"),
7
- direct_upload_url: helpers.main_app.rails_direct_uploads_url,
8
- action: "rhino-before-initialize->rhino-field#onRhinoBeforeInitialize rhino-initialize->rhino-field#onRhinoInitialize rhino-change->rhino-field#onRhinoChange rhino-paste->rhino-field#onRhinoPaste rhino-selection-change->rhino-field#onRhinoSelectionChange rhino-focus->rhino-field#onRhinoFocus rhino-blur->rhino-field#onRhinoBlur rhino-file-accept->rhino-field#onRhinoFileAccept rhino-attachment-add->rhino-field#onRhinoAttachmentAdd rhino-attachment-remove->rhino-field#onRhinoAttachmentRemove",
9
- **@field.get_html(:data, view: view, element: :input)
10
- },
11
- input: field_id,
4
+ data:,
5
+ input: unique_id,
6
+ class: class_names(unique_id),
12
7
  placeholder: @field.placeholder do %>
13
8
  <button
14
9
  type="button"
@@ -44,13 +39,23 @@
44
39
  class="h-3.5 w-5 bg-transparent -mt-px -mb-1"
45
40
  />
46
41
  </button>
42
+ <button
43
+ type="button"
44
+ slot="before-attach-files-button"
45
+ class="toolbar__button rhino-toolbar-button flex flex-col items-center grow-0 text-sm hidden-until-rhino-boots-up"
46
+ data-role="toolbar-item"
47
+ tabindex="-1"
48
+ data-action="click->rhino-field#openGallery"
49
+ >
50
+ <%= helpers.svg "heroicons/outline/photo", class: "!min-h-4 !max-h-4" %>
51
+ </button>
47
52
  <% end %>
48
53
  <%= @form.text_area @field.id,
49
54
  value: @field.value.try(:to_trix_html) || @field.value,
50
55
  class: classes("w-full hidden"),
51
56
  data: @field.get_html(:data, view: view, element: :input),
52
57
  disabled: disabled?,
53
- id: field_id,
58
+ id: unique_id,
54
59
  placeholder: @field.placeholder,
55
60
  style: @field.get_html(:style, view: view, element: :input)
56
61
  %>
@@ -9,13 +9,30 @@ class Avo::Fields::RhinoField::EditComponent < Avo::Fields::EditComponent
9
9
  @resource_name = args[:resource_name] || @resource&.singular_route_key
10
10
 
11
11
  super(**args)
12
+
13
+ @unique_random_id = SecureRandom.hex(4)
12
14
  end
13
15
 
14
- def field_id
16
+ def unique_id
15
17
  if @resource_name.present?
16
- "rhino_#{@resource_name}_#{@field.id}"
18
+ "rhino_#{@resource_name}_#{@field.id}_#{@unique_random_id}"
17
19
  elsif form.present?
18
- "rhino_#{form.index}_#{@field.id}"
20
+ "rhino_#{form.index}_#{@field.id}_#{@unique_random_id}"
19
21
  end
20
22
  end
23
+
24
+ def unique_selector = ".#{unique_id}"
25
+
26
+ def data
27
+ {
28
+ controller: "rhino-field",
29
+ rhino_field_unique_selector_value: unique_selector, # mandatory
30
+ rhino_field_resource_name_value: @resource_name,
31
+ rhino_field_resource_id_value: @resource_id,
32
+ blob_url_template: helpers.main_app.rails_service_blob_url(":signed_id", ":filename"),
33
+ direct_upload_url: helpers.main_app.rails_direct_uploads_url,
34
+ action: "rhino-before-initialize->rhino-field#onRhinoBeforeInitialize rhino-initialize->rhino-field#onRhinoInitialize rhino-change->rhino-field#onRhinoChange rhino-paste->rhino-field#onRhinoPaste rhino-selection-change->rhino-field#onRhinoSelectionChange rhino-focus->rhino-field#onRhinoFocus rhino-blur->rhino-field#onRhinoBlur rhino-file-accept->rhino-field#onRhinoFileAccept rhino-attachment-add->rhino-field#onRhinoAttachmentAdd rhino-attachment-remove->rhino-field#onRhinoAttachmentRemove",
35
+ **@field.get_html(:data, view: view, element: :input)
36
+ }
37
+ end
21
38
  end
@@ -9,7 +9,7 @@ module Avo
9
9
  ActiveSupport.on_load(:avo_boot) do
10
10
  Avo.plugin_manager.register :rhino
11
11
 
12
- Avo.plugin_manager.register_field :rhino, Avo::Fields::RhinoField
12
+ Avo.plugin_manager.register_field :rhino, Avo::RhinoField::Fields::RhinoField
13
13
 
14
14
  Avo.asset_manager.add_stylesheet "avo-rhino_field"
15
15
  Avo.asset_manager.add_javascript "avo-rhino_field"
@@ -1,5 +1,5 @@
1
1
  module Avo
2
2
  module RhinoField
3
- VERSION = "0.0.11" unless const_defined?(:VERSION)
3
+ VERSION = "0.0.13" unless const_defined?(:VERSION)
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avo-rhino_field
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Marin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-15 00:00:00.000000000 Z
11
+ date: 2024-12-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: rhino field for Avo.
14
14
  email: adrian@adrianthedev.com