Commit 06838eeea7cc1d8eab680592294935e58e701d7e:
disable save button when item changed
Branch: refs/heads/master
Author: Sam Ruby <[email protected]>
Committer: Sam Ruby <[email protected]>
Pusher: rubys <[email protected]>
------------------------------------------------------------
spec/form_spec.rb | +++ ---
views/forms/add-comment.js.rb | +++++++++ ---
views/models/pending.js.rb | +
------------------------------------------------------------
30 changes: 21 additions, 9 deletions.
------------------------------------------------------------
diff --git a/spec/form_spec.rb b/spec/form_spec.rb
index f9514d1..706808f 100644
--- a/spec/form_spec.rb
+++ b/spec/form_spec.rb
@@ -6,7 +6,7 @@
it "has an add-comment form with a disabled Save button" do
on_react_server do
server = {pending: {}, initials: 'sr'}
- React.render _AddComment(server: server), document.body do
+ React.render _AddComment(item: {}, server: server), document.body do
response.end document.body.innerHTML
end
end
@@ -22,10 +22,10 @@
it "should enable Save button after input" do
on_react_server do
server = {pending: {}, initials: 'sr'}
- React.render _AddComment(server: server), document.body do
+ React.render _AddComment(item: {}, server: server), document.body do
node = ~'#comment_text'
node.textContent = 'Good job!'
- Simulate.input node, target: {value: 'Good job!'}
+ Simulate.change node, target: {value: 'Good job!'}
response.end document.body.innerHTML
end
end
diff --git a/views/forms/add-comment.js.rb b/views/forms/add-comment.js.rb
index 3a0e5ff..b5eb4e6 100644
--- a/views/forms/add-comment.js.rb
+++ b/views/forms/add-comment.js.rb
@@ -1,6 +1,7 @@
class AddComment < React
def initialize
@save_disabled = true
+ @base = @comment = @@item.pending
end
def self.button
@@ -28,8 +29,8 @@ def render
#input field: comment text
_div.form_group do
_label 'Comment', for: 'comment-text'
- _textarea.comment_text!.form_control label: 'Comment',
- placeholder: 'comment', rows: 5, onInput: self.input
+ _textarea.comment_text!.form_control value: @comment, label: 'Comment',
+ placeholder: 'comment', rows: 5, onChange: self.change
end
# footer buttons
@@ -45,17 +46,27 @@ def componentDidMount()
end
end
- # enable/disable save when input changes
- def input(event)
- @save_disabled = ( event.target.value.length == 0 )
+ # enable/disable save when comment changes
+ def change(event)
+ @save_disabled = ( event.target.value == @base )
+ @comment = event.target.value
end
+ # when item changes, reset base and comment
+ def componentWillReceiveProps(props)
+ if props.item.href != @@item.href
+ @base = @comment = props.item.pending || ''
+ @save_disabled = true
+ end
+ end
+
+ # when save button is pushed, post comment and dismiss modal when complete
def save(event)
data = {
agenda: Agenda.file,
attach: @@item.attach,
initials: ~'#comment_initials'.value,
- comment: ~'#comment_text'.value
+ comment: @comment
}
post 'comment', data do |pending|
diff --git a/views/models/pending.js.rb b/views/models/pending.js.rb
index ed7398b..29c147c 100644
--- a/views/models/pending.js.rb
+++ b/views/models/pending.js.rb
@@ -6,6 +6,7 @@
class Pending
def self.load(value)
Server.pending = value
+ Main.refresh()
return value
end