VRFS-2700 added state deferred call; RecordingSource subclass
This commit is contained in:
parent
4aa845cfc8
commit
78321ce374
|
|
@ -15,11 +15,10 @@ context.JK.SiteValidator = class SiteValidator
|
|||
@checkmark = @input_div.find('.validate-checkmark')
|
||||
this.setSiteStatus(null)
|
||||
this.showFormatStatus()
|
||||
if @site_type.match(/^rec_.*$/)
|
||||
@is_rec_src = true
|
||||
else
|
||||
@is_rec_src = false
|
||||
@is_rec_src = false
|
||||
@recording_source_id = null
|
||||
@deferred_status_check = null
|
||||
@is_validating = false
|
||||
|
||||
init: () =>
|
||||
this.renderErrors({})
|
||||
|
|
@ -29,6 +28,8 @@ context.JK.SiteValidator = class SiteValidator
|
|||
validator.did_blur()
|
||||
@data_input.on 'focus', ->
|
||||
validator.showFormatStatus()
|
||||
@data_input.on 'change', ->
|
||||
@site_status = null
|
||||
|
||||
dataToValidate: () =>
|
||||
url = @data_input.val()
|
||||
|
|
@ -60,34 +61,38 @@ context.JK.SiteValidator = class SiteValidator
|
|||
|
||||
processSiteCheck: (response) =>
|
||||
@spinner.hide()
|
||||
if @is_rec_src
|
||||
@recording_source_id = response.recording_id
|
||||
|
||||
if 'Valid Site' == response.message
|
||||
this.setSiteStatus('valid')
|
||||
this.setSiteStatus(true)
|
||||
this.renderErrors({})
|
||||
if @deferred_status_check
|
||||
@deferred_status_check.resolve
|
||||
else
|
||||
this.setSiteStatus('invalid')
|
||||
this.setSiteStatus(false)
|
||||
this.renderErrors(response)
|
||||
if @deferred_status_check
|
||||
@deferred_status_check.reject
|
||||
@logger.debug("site_status = "+@site_status)
|
||||
|
||||
processSiteCheckFail: (response) =>
|
||||
@logger.error("site check error")
|
||||
this.setSiteStatus('invalid')
|
||||
this.setSiteStatus(false)
|
||||
if @deferred_status_check
|
||||
@deferred_status_check.reject
|
||||
|
||||
setSiteStatus: (status) =>
|
||||
@site_status = status
|
||||
@spinner.hide()
|
||||
if 'valid' == status
|
||||
if true == status
|
||||
@checkmark.show()
|
||||
else
|
||||
@checkmark.hide()
|
||||
|
||||
siteIsValid: () =>
|
||||
this.setSiteStatus('valid')
|
||||
this.setSiteStatus(true)
|
||||
|
||||
siteIsInvalid: () =>
|
||||
this.setSiteStatus('invalid')
|
||||
this.setSiteStatus(false)
|
||||
|
||||
renderErrors: (errors) =>
|
||||
errdiv = @input_div.find('.error')
|
||||
|
|
@ -99,3 +104,35 @@ context.JK.SiteValidator = class SiteValidator
|
|||
@checkmark.show()
|
||||
errdiv.hide()
|
||||
errdiv.html('')
|
||||
|
||||
state: () =>
|
||||
dfr = $.Deferred()
|
||||
if null == @site_status
|
||||
@deferred_status_check = dfr
|
||||
this.validateSite()
|
||||
else
|
||||
if true == @site_status
|
||||
dfr.resolve()
|
||||
else
|
||||
dfr.reject()
|
||||
return dfr.promise()
|
||||
|
||||
context.JK.RecordingSourceValidator = class RecordingSourceValidator extends SiteValidator
|
||||
constructor: (site_type) ->
|
||||
super(site_type)
|
||||
@recording_sources = []
|
||||
@is_rec_src = true
|
||||
@add_btn = @input_div.find('.rec_src_add')
|
||||
|
||||
init: (sources) =>
|
||||
super()
|
||||
if sources
|
||||
@recording_sources = sources
|
||||
|
||||
processSiteCheck: (response) =>
|
||||
super()
|
||||
@recording_source_id = response.recording_id
|
||||
|
||||
addSource: () ->
|
||||
@add_btn.addClass('disabled')
|
||||
|
||||
|
|
|
|||
|
|
@ -7,19 +7,39 @@ describe "SiteValidator", ->
|
|||
fixture.preload("siteValidator.html")
|
||||
|
||||
beforeEach ->
|
||||
this.server = sinon.fakeServer.create();
|
||||
@server = sinon.fakeServer.create();
|
||||
window.jamClient = sinon.stub()
|
||||
@fixtures = fixture.load("siteValidator.html", true)
|
||||
window.gon = {}
|
||||
window.gon.isNativeClient = true
|
||||
|
||||
afterEach ->
|
||||
this.server.restore();
|
||||
@server.restore();
|
||||
|
||||
it "displays validator widget", ->
|
||||
site_validator = new JK.SiteValidator('url')
|
||||
site_validator.init()
|
||||
|
||||
site_validator.data_input.val('http://www.jamkazam.com')
|
||||
site_validator.siteIsValid()
|
||||
expect(site_validator.checkmark).toBeVisible()
|
||||
|
||||
it "displays error for bad url", ->
|
||||
site_validator = new JK.SiteValidator('url')
|
||||
site_validator.init()
|
||||
site_validator.data_input.val('www.jamkazam.com')
|
||||
site_validator.did_blur()
|
||||
expect(site_validator.checkmark).toBeHidden()
|
||||
|
||||
xit "validates a good url", ->
|
||||
url = 'http://www.jamkazam.com'
|
||||
@server.respondWith("GET", '/api/data_validation?sitetype=url&data=' + encodeURIComponent(url),
|
||||
[200, { "content-type": "application/json" }, '{ "message": "Valid Site" }'])
|
||||
sinon.spy()
|
||||
site_validator = new JK.SiteValidator('url')
|
||||
site_validator.init()
|
||||
site_validator.data_input.val(url)
|
||||
site_validator.did_blur()
|
||||
@server.respond()
|
||||
expect(site_validator.checkmark).toBeVisible()
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue