Class: Ruflet::UI::Services::RufletServicesComponents::FilePickerControl

Inherits:
Control
  • Object
show all
Includes:
CurrentServiceMethods
Defined in:
lib/ruflet_ui/ruflet/ui/services/current_service_methods.rb,
lib/ruflet_ui/ruflet/ui/services/ruflet/filepicker_control.rb

Constant Summary collapse

TYPE =
"filepicker".freeze
WIRE =
"FilePicker".freeze
KEYWORDS =
[:data, :key, :on_result, :on_upload].freeze

Constants inherited from Control

Control::HOST_EXPANDED_TYPES, Control::SCHEMA_METADATA_CACHE

Instance Attribute Summary

Attributes inherited from Control

#children, #id, #props, #runtime_page, #type, #wire_id

Instance Method Summary collapse

Methods inherited from Control

#attach_handler, #emit, generate_id, #has_handler?, #merge_props, #on, #to_patch

Constructor Details

#initialize(id: nil, data: nil, key: nil, on_result: nil, on_upload: nil) ⇒ FilePickerControl

Returns a new instance of FilePickerControl.



12
13
14
15
16
17
18
19
# File 'lib/ruflet_ui/ruflet/ui/services/ruflet/filepicker_control.rb', line 12

def initialize(id: nil, data: nil, key: nil, on_result: nil, on_upload: nil)
  props = {}
  props[:data] = data unless data.nil?
  props[:key] = key unless key.nil?
  props[:on_result] = on_result unless on_result.nil?
  props[:on_upload] = on_upload unless on_upload.nil?
  super(type: TYPE, id: id, **props)
end

Instance Method Details

#get_directory_path(dialog_title: nil, initial_directory: nil, timeout: 10, on_result: nil) ⇒ Object



81
82
83
# File 'lib/ruflet_ui/ruflet/ui/services/current_service_methods.rb', line 81

def get_directory_path(dialog_title: nil, initial_directory: nil, timeout: 10, on_result: nil)
  invoke_service_method("get_directory_path", args: service_args(dialog_title: dialog_title, initial_directory: initial_directory), timeout: timeout, on_result: on_result)
end

#pick_files(dialog_title: nil, initial_directory: nil, file_type: :any, allowed_extensions: nil, allow_multiple: false, with_data: false, timeout: 10, on_result: nil) ⇒ Object



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/ruflet_ui/ruflet/ui/services/current_service_methods.rb', line 99

def pick_files(dialog_title: nil, initial_directory: nil, file_type: :any,
               allowed_extensions: nil, allow_multiple: false, with_data: false,
               timeout: 10, on_result: nil)
  invoke_service_method(
    "pick_files",
    args: service_args(
      dialog_title: dialog_title,
      initial_directory: initial_directory,
      file_type: file_type,
      allowed_extensions: allowed_extensions,
      allow_multiple: allow_multiple,
      with_data: with_data
    ),
    timeout: timeout,
    on_result: on_result
  )
end

#save_file(dialog_title: nil, file_name: nil, initial_directory: nil, file_type: :any, allowed_extensions: nil, src_bytes: nil, timeout: 10, on_result: nil) ⇒ Object



85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/ruflet_ui/ruflet/ui/services/current_service_methods.rb', line 85

def save_file(dialog_title: nil, file_name: nil, initial_directory: nil, file_type: :any,
              allowed_extensions: nil, src_bytes: nil, timeout: 10, on_result: nil)
  args = service_args(
    dialog_title: dialog_title,
    file_name: file_name,
    initial_directory: initial_directory,
    file_type: file_type,
    allowed_extensions: allowed_extensions
  )
  args["src_bytes"] = src_bytes.pack("C*").b if byte_array?(src_bytes)
  args["src_bytes"] = src_bytes unless src_bytes.nil? || byte_array?(src_bytes)
  invoke_service_method("save_file", args: args, timeout: timeout, on_result: on_result)
end

#upload(files, timeout: 10, on_result: nil) ⇒ Object



77
78
79
# File 'lib/ruflet_ui/ruflet/ui/services/current_service_methods.rb', line 77

def upload(files, timeout: 10, on_result: nil)
  invoke_service_method("upload", args: { "files" => service_value(files) }, timeout: timeout, on_result: on_result)
end