Class: CellsV1::Input::Cell

Inherits:
Cell
  • Object
show all
Defined in:
app/cells/lato_view/cells_v1/input/cell.rb

Overview

Cella Input

Constant Summary collapse

@@types =

Lista di tipologie di input accettate

%w(text number select password email editor checkbox radio
textarea file date multiple-select time)
@@widths =

Lista dei parametri accettati per l’attributo width

VIEW_INPUTWIDTH

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type: 'text', name: 'input', placeholder: '', value: '', label: '', width: 'large', required: false, password_visible: true, custom_class: '', options: [], option_blank: false, disabled: false, multiple_files: false, birthdate: false, min: nil, max: nil, create: nil) ⇒ Cell

Returns a new instance of Cell.



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 88

def initialize(type: 'text', name: 'input', placeholder: '',
               value: '', label: '', width: 'large', required: false,
               password_visible: true, custom_class: '', options: [],
               option_blank: false, disabled: false,
               multiple_files: false, birthdate: false, min: nil, max: nil, create: nil)
  # eseguo brevi controlli sull'input
  raise 'Input Concept: type has not a correct value' unless @@types.include? type
  raise 'Input Concept: width has not a correct value' unless @@widths.include? width
  raise 'Input Concept: options must be an array' if options && !options.is_a?(Array)
  # assegno i valori alle variabili di istanza
  @type = type
  @name = name
  @placeholder = placeholder
  @value = value
  @label = label
  @width = width
  @required = required
  @password_visible = password_visible
  @options = options
  @custom_class = custom_class
  @select_class = create == true ? 'select-create' : 'select'
  @option_blank = option_blank
  @disabled = disabled
  @multiple_files = multiple_files
  @min = min 
  @max = max
  @datepicker_class = birthdate ? 'birthdate-picker' : 'date-picker'
end

Instance Attribute Details

#birthdateObject

Valore booleano usato per indicare se il datepicker è un birthdatepicker

  • default: false



45
46
47
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 45

def birthdate
  @birthdate
end

#createObject

Valore che indica se il create è attivo nel caso di input select

  • default: nil



81
82
83
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 81

def create
  @create
end

#custom_classObject

Classi custom da inserire nel codice dell’input

  • default: nil



54
55
56
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 54

def custom_class
  @custom_class
end

#disabledObject

Valore che indica se disattivare o meno l’input

  • default: false



69
70
71
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 69

def disabled
  @disabled
end

#labelObject

Testo da inserire nella label dell’input

  • default: nil



32
33
34
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 32

def label
  @label
end

#maxObject

Valore che indica il massimo nel caso di input number

  • default: nil



77
78
79
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 77

def max
  @max
end

#minObject

Valore che indica il minimo nel caso di input number

  • default: nil



73
74
75
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 73

def min
  @min
end

#multiple_filesObject

Valore che indica (nel caso di input file) se accettare piu’ file o uno singolarmente

  • default: false



86
87
88
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 86

def multiple_files
  @multiple_files
end

#nameObject

Nome da assegnare all’input

  • default: ‘input’



20
21
22
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 20

def name
  @name
end

#option_blankObject

Valore booleano che indica (nel caso di input select) se mostrare o meno la prima opzione del select vuota

  • default: false



65
66
67
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 65

def option_blank
  @option_blank
end

#optionsObject

Lista di opzioni da mostrare (nel caso di input select o radio buttons e checkbox). La struttura deve essere [[‘value1’, ‘Name 1’], [‘value2’, ‘Name 2’]]

  • default: []



60
61
62
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 60

def options
  @options
end

#password_visibleObject

Valore booleano che indica (nel caso di input password) se mostrare il pulsante per vedere la password

  • default: true



50
51
52
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 50

def password_visible
  @password_visible
end

#placeholderObject

Valore da inserire come placeholder all’input

  • default: nil



24
25
26
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 24

def placeholder
  @placeholder
end

#requiredObject

Valore booleano usato per indicare se l’input e’ obbligatorio nel form in cui si trova

  • default: false



41
42
43
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 41

def required
  @required
end

#typeObject

Tipologia di input da inizializzare (text, number, select, password, email, multiple-select, date, checkbox, radio, textarea, file)

  • default: ‘text’



16
17
18
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 16

def type
  @type
end

#valueObject

Valore gia’ impostato nell’input

  • default: nil



28
29
30
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 28

def value
  @value
end

#widthObject

Dimensione dell’input (half, third, fourth, two-third)

  • default: nil (‘large’)



36
37
38
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 36

def width
  @width
end

Class Method Details

.generate_options_from_activerecords(activerecords, value, name) ⇒ Object

Funzione che prende in input un activerecords, il nome dell’attributo da usare come valore e il nome dell’attributo da usare come nome e ritorna un array da usare come options per un input select o un radio buttons



158
159
160
161
162
163
164
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 158

def self.generate_options_from_activerecords(activerecords, value, name)
  rows = []
  activerecords.each do |row|
    rows.push([row.send(value), row.send(name)])
  end
  rows
end

Instance Method Details

#showObject



117
118
119
# File 'app/cells/lato_view/cells_v1/input/cell.rb', line 117

def show
  render "#{@type.downcase}.html" if @type
end