This is an automated email from the ASF dual-hosted git repository. rubys 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 71bc5a4 oops, forgot a file 71bc5a4 is described below commit 71bc5a4fdf600647ee93cc3a08432efffdfb5bd2 Author: Sam Ruby <ru...@intertwingly.net> AuthorDate: Sun Apr 1 16:36:15 2018 -0400 oops, forgot a file --- www/board/agenda/views/pages/feedback.js.rb | 108 ++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/www/board/agenda/views/pages/feedback.js.rb b/www/board/agenda/views/pages/feedback.js.rb new file mode 100644 index 0000000..061dd1a --- /dev/null +++ b/www/board/agenda/views/pages/feedback.js.rb @@ -0,0 +1,108 @@ +# +# Select and send item comments as feedback. +# + +class Feedback < Vue + def self.buttons() + return [{button: SendFeedback}] + end + + def initialize + @list = nil + end + + def render + if @list == nil + _p 'loading' + else + @list.each do |item| + _h2 do + _input type: 'checkbox', domPropsChecked: item.checked, + onClick:-> {item.checked = !item.checked} + _ item.title + end + _pre.feedback item.mail + end + end + end + + def mounted() + EventBus.on :potential_feedback, self.potential_feedback + + fetch('feedback.json', credentials: 'include').then do |response| + response.json().then do |json| + # initially check each item which has not yet been sent + json.each {|item| item.checked = !item.sent} + + EventBus.emit :potential_feedback, json + end + end + end + + def beforeDestroy() + EventBus.off :potential_feedback, self.potential_feedback + end + + def potential_feedback(list) + @list = list + end +end + +# +# Send feedback button +# + +class SendFeedback < Vue + def initialize + @disabled = false + @list = [] + end + + def render + _button.btn.btn_primary 'send email', onClick: self.click, + disabled: @disabled || @list.empty? || + @list.all? {|item| !item.checked} + end + + def mounted() + EventBus.on :potential_feedback, self.potential_feedback + end + + def beforeDestroy() + EventBus.off :potential_feedback, self.potential_feedback + end + + def potential_feedback(list) + @list = list + end + + def click(event) + # gather a list of checked items + checked = {} + + @list.each do |item| + checked[item.title.gsub(/\s/, '_')] = true if item.checked + end + + # construct arguments to fetch + args = { + method: 'post', + credentials: 'include', + headers: {'Content-Type' => 'application/json'}, + body: checked.inspect + } + + # send feedback + @disabled = true + fetch('feedback.json', args).then do |response| + response.json().then do |json| + # check each item which still has yet to be sent + json.each {|item| item.checked = !item.sent} + + @list = json + EventBus.emit :potential_feedback, @list + @disabled = false + end + end + end +end -- To stop receiving notification emails like this one, please contact ru...@apache.org.