Skip to content

Commit

Permalink
- Adds UI validation for percentage values fixes jnunemaker#7
Browse files Browse the repository at this point in the history
- Errors alerts are shown an ajax requests fails with 404 or server failure fixes jnunemaker#6 fixes jnunemaker#5
  • Loading branch information
gabceb committed May 14, 2013
1 parent 8a7bb13 commit c45f108
Show file tree
Hide file tree
Showing 2 changed files with 119 additions and 62 deletions.
54 changes: 36 additions & 18 deletions lib/flipper/ui/assets/javascripts/application.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -25,26 +25,27 @@ class Gate extends Spine.Model
url: ->
"#{Flipper.Config.url}/features/#{encodeURIComponent @feature_id}/#{encodeURIComponent @name}"

disableSetMember: (member) ->
options =
type: 'POST'
url: @url()
data:
operation: 'disable'
value: member
success: (data, status, xhr) =>
@value = data.value
$.ajax options
disableSetMember: (member, success_callback, error_callback) ->
@setMember('disable', member, success_callback, error_callback)

enableSetMember: (member) ->
enableSetMember: (member, success_callback, error_callback) ->
@setMember('enable', member, success_callback, error_callback)

setMember: (operation, member, success_callback, error_callback) ->
options =
type: 'POST'
url: @url()
data:
operation: 'enable'
operation: operation
value: member
success: (data, status, xhr) =>
@value = data.value
success_callback(data, status, xhr) if success_callback
error: (data, status, error) =>
response = if data.responseText then $.parseJSON data.responseText else message: "Something went wrong..."
alert "ERROR: #{response.message}"
error_callback(data, status) if error_callback

$.ajax options

save: (opts) ->
Expand All @@ -58,6 +59,10 @@ class Gate extends Spine.Model
url: @url()
data:
value: @value
error: (data, status, error) =>
response = if data.responseText then $.parseJSON data.responseText else message: "Something went wrong..."
alert "ERROR: #{response.message}"

$.ajax options

class App extends Spine.Controller
Expand Down Expand Up @@ -207,16 +212,18 @@ class App.Gate.Set extends App.Gate
event.preventDefault()
member = $(event.currentTarget).closest('.member')
value = member.attr('data-value')
@gate.disableSetMember value
member.remove()
@gate.disableSetMember value, (data, status, xhr) ->
member.remove()

submit: (event) ->
event.preventDefault()
value = @dom_input.val()
@gate.enableSetMember value
html = @template "#gate-member-template", value
@dom_members.append html
@dom_input.val ''
self = @

@gate.enableSetMember value, (data, status, xhr) ->
html = self.template "#gate-member-template", value
self.dom_members.append html
self.dom_input.val ''

class App.Gate.Group extends App.Gate.Set
constructor: ->
Expand All @@ -235,9 +242,20 @@ class App.Gate.Percentage extends App.Gate
events:
'submit form': 'submit'

validate: ()->
float_value = parseFloat(@gate.value)
valid = true

if isNaN(float_value) || float_value < 0 || float_value > 100
alert "The percentage value provided is not valid"
valid = false

return valid

submit: (event) ->
event.preventDefault()
@gate.value = @input.val()
return unless @validate()
@gate.save()

class App.Gate.PercentageOfActors extends App.Gate.Percentage
Expand Down
Loading

0 comments on commit c45f108

Please sign in to comment.