This is an automated email from the ASF dual-hosted git repository.
sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git
The following commit(s) were added to refs/heads/master by this push:
new 0ab150c0 Never used
0ab150c0 is described below
commit 0ab150c05e9f7c1bbe2f1bfd09dcbe49833b09c5
Author: Sebb <[email protected]>
AuthorDate: Wed Feb 1 11:19:18 2023 +0000
Never used
---
lib/whimsy/asf/forms2.rb | 183 -----------------------------------------------
1 file changed, 183 deletions(-)
diff --git a/lib/whimsy/asf/forms2.rb b/lib/whimsy/asf/forms2.rb
deleted file mode 100644
index 0989c0d6..00000000
--- a/lib/whimsy/asf/forms2.rb
+++ /dev/null
@@ -1,183 +0,0 @@
-require 'wunderbar'
-require 'wunderbar/markdown'
-
-# Define common page features for whimsy tools using bootstrap styles
-class Wunderbar::HtmlMarkup
-
- # Emit a form control based on a hash of options with a type:
- def _whimsy_field_chooser(args)
- _p "DEBUG #{__method__} #{args.inspect} /// #{args['type']}"
- case args['type']
- when 'subhead'
- _whimsy_forms_subhead args
- when 'text'
- _whimsy_forms_input args
- when 'textarea'
- args['rows'] ||= '3'
- _whimsy_forms_input args
- when 'select'
- _whimsy_forms_select args
- when 'radio', 'checkbox'
- _whimsy_forms_checkradio args
- else
- _div "#{__method__}(#{args['type']}) TODO: Error condition?"
- end
- end
-
- # Utility function to add icons after form controls
- def _whimsy_forms_iconlink(**args)
- if args['iconlink']
- _div.input_group_btn do
- _a.btn.btn_default type: 'button', aria_label: iconlabel, href:
args['iconlink'], target: 'whimsy_help' do
- _span.glyphicon class: args['icon'], aria_label: args['iconlabel']
- end
- end
- elsif args['icon']
- _span.input_group_addon do
- _span.glyphicon class: args['icon'], aria_label: args['iconlabel']
- end
- end
- end
-
- # Utility function for divs around form controls, including help
- def _whimsy_control_wrapper(**args)
- _div.form_group do
- _label.control_label.col_sm_3 args['label'], for: args['name']
- _div.col_sm_9 do
- _div.input_group do
- yield
- _whimsy_forms_iconlink(**args)
- end
- if args['helptext']
- _span.help_block id: args['aria_describedby'] do
- _markdown args['helptext']
- end
- end
- end
- end
- end
-
- # Display a subheader separator between sections of a form
- # @param text string to display
- def _whimsy_forms_subhead(text: 'Form Section')
- _div.form_group do
- _label.col_sm_offset_3.col_sm_9.strong.text_left text
- end
- end
-
- # Display a single input control within a form; or if rows, then a textarea
- # @param name required string ID of control's label/id
- def _whimsy_forms_input(**args)
- return unless args['name']
- args['label'] ||= 'Enter string'
- args['type'] ||= 'text'
- args['id'] = args['name']
- args['aria_describedby'] = "#{args['name']}_help" if args['helptext']
- _whimsy_control_wrapper(**args) do
- args['class'] = 'form-control'
- if args['rows']
- _textarea! type: args['type'], name: args['name'], id: args['id'],
value: args['value'], class: args['class'],
- aria_describedby: args['aria_describedby'], rows:
args['rows'] do
- _! args['value']
- end
- else
- _input type: args['type'], name: args['name'], id: args['id'], value:
args['value'], class: args['class'],
- aria_describedby: args['aria_describedby']
- end
- end
- end
-
- # Display an optionlist control within a form
- # @param name required string ID of control's label/id
- # @param options required ['value'] or {"value" => 'Label for value'} of all
selectable values
- # @param values required 'value' or ['value'] or {"value" => 'Label for
value'} of all selected values
- # @param placeholder Currently displayed text if passed (not selectable)
- def _whimsy_forms_select(**args)
- return unless args['name']
- return unless args['values']
- args['label'] ||= 'Select value(s)'
- args['id'] = args['name']
- args['aria_describedby'] = "#{args['name']}_help" if args['helptext']
- _whimsy_control_wrapper(**args) do
- if args['multiple']
- args['multiple'] = 'true'
- end
- _select.form_control type: args['type'], name: args['name'], id:
args['id'], value: args['value'],
- aria_describedby: args['aria_describedby'],
multiple: args['multiple'] do
- if ''.eql?(args['placeholder'])
- _option '', value: '', selected: 'selected'
- else
- _option args['placeholder'], value: '', selected: 'selected',
disabled: 'disabled', hidden: 'hidden'
- end
- # Construct selectable list from values (first) then options
- if args['values'].kind_of?(Array)
- args['values'].each do |val|
- _option val, value: val, selected: true
- end
- elsif args['values'].kind_of?(Hash)
- args['values'].each do |val, disp|
- _option disp, value: val, selected: true
- end
- elsif args['values'] # Fallback for simple case of single string value
- _option args['values'], value: args['values'], selected: true
- args['values'] = [args['values']] # Ensure supports .include? for
options loop below
- end
- if args['options'].kind_of?(Array)
- args['options'].each do |val|
- _option val, value: val unless args['values'].include?(val)
- end
- elsif args['options'].kind_of?(Hash)
- args['options'].each do |val, disp|
- _option disp, value: val unless args['values'].include?(val)
- end
- end
- end
- end
- end
-
- # Display a list of radio or checkbox controls
- # @param name required string ID of control's label/id
- # @param type required FORM_CHECKBOX|FORM_RADIO
- # @param options required ['value'...] or {"value" => 'Label for value'} of
all values
- # @param selected optional 'value' or ['value'...] of all selected values
- def _whimsy_forms_checkradio(**args)
- return unless args['name']
- return unless args['type']
- return unless args['options']
- args['label'] ||= 'Select value(s)'
- args['id'] = args['name']
- args['aria_describedby'] = "#{args['name']}_help" if args['helptext']
- args['selected'] = [args['selected']] if args['selected'].kind_of?(String)
- _whimsy_control_wrapper(**args) do
- # Construct list of all :options; mark any that are in :selected
- if args['options'].kind_of?(Array)
- args['options'].each do |val|
- checked = true if args['selected']&.include?(val.to_s)
- _input type: args['type'], name: args['name'], id: args['id'],
value: val, class: args['class'],
- aria_describedby: args['aria_describedby'], checked: checked
do
- _! val
- end
- end
- elsif args['options'].kind_of?(Hash)
- args['options'].each do |val, disp|
- checked = true if args['selected']&.include?(val.to_s)
- _input type: args['type'], name: args['name'], id: args['id'],
value: val, class: args['class'],
- aria_describedby: args['aria_describedby'], checked: checked
do
- _! disp
- end
- end
- end
- end
- end
-
- # Gather POST form data into submission Hash
- # @returns {field: 'string', field2: ['array', 'only for', 'multivalue'] ...}
- def _whimsy_params2formdata(params)
- formdata = {}
- params.each do |k, v|
- v && (v.length == 1) ? formdata[k] = v[0] : formdata[k] = v
- end
- return formdata
- end
-
-end