You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by cu...@apache.org on 2019/05/02 13:07:39 UTC
[whimsy] 03/03: Revert "Revert "Select multiple attr must be either
present or not at all""
This is an automated email from the ASF dual-hosted git repository.
curcuru pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git
commit 80d5db8ae8fd8f69baf7ff1fa18d81eb8923f09e
Author: Shane Curcuru <as...@shanecurcuru.org>
AuthorDate: Thu May 2 09:00:26 2019 -0400
Revert "Revert "Select multiple attr must be either present or not at all""
This reverts commit f9b09ab67906f96642a4913cb50fe4aa21f2cabb.
---
lib/whimsy/asf/forms.rb | 8 ++++++-
www/members/mentor-format.rb | 53 +++++++++++++++++++++++++++++++++++++++++++
www/members/mentor-update.cgi | 25 +++++++++++++++-----
3 files changed, 79 insertions(+), 7 deletions(-)
diff --git a/lib/whimsy/asf/forms.rb b/lib/whimsy/asf/forms.rb
index 5e54c3b..e5f8a8d 100644
--- a/lib/whimsy/asf/forms.rb
+++ b/lib/whimsy/asf/forms.rb
@@ -87,7 +87,13 @@ class Wunderbar::HtmlMarkup
_label.control_label.col_sm_3 label, for: "#{name}"
_div.col_sm_9 do
_div.input_group do
- _select.form_control name: "#{name}", id: "#{name}", aria_describedby: "#{aria_describedby}", required: required, readonly: readonly do
+ args = {
+ name: "#{name}", id: "#{name}", aria_describedby: "#{aria_describedby}", required: required, readonly: readonly
+ }
+ if multiple
+ args['multiple'] = 'true'
+ end
+ _select.form_control args do
if ''.eql?(value)
if ''.eql?(placeholder)
_option '', value: '', selected: 'selected'
diff --git a/www/members/mentor-format.rb b/www/members/mentor-format.rb
index 29eee37..924a8ec 100644
--- a/www/members/mentor-format.rb
+++ b/www/members/mentor-format.rb
@@ -11,6 +11,59 @@ class MentorFormat
ERRORS = 'errors'
TIMEZONE = 'timezone'
TZ = TZInfo::Timezone.all_country_zone_identifiers
+ PREFERS_TYPES = [
+ 'email',
+ 'phone',
+ 'Slack',
+ 'irc',
+ 'Hangouts',
+ 'Facebook',
+ 'Skype',
+ 'other (text chat)',
+ 'other (video chat)'
+ ]
+ LANGUAGES = [ # Wikipedia top list by total speakers, plus EU
+ 'Arabic',
+ 'Bengali',
+ 'Bulgarian',
+ 'Chinese',
+ 'Croatian',
+ 'Czech',
+ 'Danish',
+ 'Dutch',
+ 'English',
+ 'Estonian',
+ 'Finnish',
+ 'French',
+ 'German',
+ 'Greek',
+ 'Hindi',
+ 'Hungarian',
+ 'Indonesean',
+ 'Irish',
+ 'Italian',
+ 'Japanese',
+ 'Korean',
+ 'Latvian',
+ 'Lithuanian',
+ 'Maltese',
+ 'Marathi',
+ 'Polish',
+ 'Portugese',
+ 'Punjabi',
+ 'Romanian',
+ 'Russian',
+ 'Slovak',
+ 'Slovene',
+ 'Spanish',
+ 'Swahili',
+ 'Swedish',
+ 'Tamil',
+ 'Telugu',
+ 'Thai',
+ 'Turkish',
+ 'Vietnamese'
+ ]
# Read mapping of labels to fields
def self.get_uimap(path)
diff --git a/www/members/mentor-update.cgi b/www/members/mentor-update.cgi
index af80e33..51b76c2 100755
--- a/www/members/mentor-update.cgi
+++ b/www/members/mentor-update.cgi
@@ -45,8 +45,20 @@ def emit_form(apacheid, mdata, button_help, uimap)
helptext: uimap[field][1]
)
emit_mentor_input('availability', mdata, uimap, 'glyphicon-hourglass')
- emit_mentor_input('prefers', mdata, uimap, 'glyphicon-ok-sign')
- emit_mentor_input('languages', mdata, uimap, 'glyphicon-globe')
+ field = 'prefers'
+ _whimsy_forms_select(label: uimap[field][0], name: field, multiple: true,
+ value: (mdata[field] ? mdata[field] : ''),
+ options: MentorFormat::PREFERS_TYPES,
+ icon: 'glyphicon-ok-sign', iconlabel: 'ok-sign',
+ helptext: uimap[field][1]
+ )
+ field = 'languages'
+ _whimsy_forms_select(label: uimap[field][0], name: field, multiple: true,
+ value: (mdata[field] ? mdata[field] : ''),
+ options: MentorFormat::LANGUAGES,
+ icon: 'glyphicon-globe', iconlabel: 'globe',
+ helptext: uimap[field][1]
+ )
_div.form_group do
_label.col_sm_offset_3.col_sm_9.strong.text_left 'What You Could Help Mentees With'
@@ -201,18 +213,19 @@ _html do
# Display data to the user, depending if we're GET (existing mentor record or just blank data) or POST (show SVN checkin results)
if _.post?
- submission = { # TODO make this a loop over uimap.keys; TODO check if we want any other fields
+ submission = {
"timezone" => "#{@timezone}",
"availability" => "#{@availability}",
"contact" => "#{@contact}",
- "prefers" => "#{@prefers}",
"available" => "#{@available}",
"mentoring" => "#{@mentoring}",
"experience" => "#{@experience}",
- "languages" => "#{@languages}",
"pronouns" => "#{@pronouns}",
"aboutme" => "#{@aboutme}",
- "homepage" => "#{@homepage}"
+ "homepage" => "#{@homepage}",
+ # Multiple select fields
+ "prefers" => _.params['prefers'],
+ "languages" => _.params['languages']
}
if @notavailable
submission['notavailable'] = "#{@notavailable}"