Bug: Ensure state happen at the correct times
This commit is contained in:
@@ -183,6 +183,7 @@ module.exports = class ItemPageController extends PageController
|
|||||||
_refreshDescription: ->
|
_refreshDescription: ->
|
||||||
if @model.item?.description?.length > 0
|
if @model.item?.description?.length > 0
|
||||||
@_descriptionController.model = @model.item.description
|
@_descriptionController.model = @model.item.description
|
||||||
|
@_descriptionController.resetToDefaultState()
|
||||||
@show @$descriptionSection
|
@show @$descriptionSection
|
||||||
else if @user?
|
else if @user?
|
||||||
@show @$descriptionSection
|
@show @$descriptionSection
|
||||||
|
|||||||
@@ -50,12 +50,23 @@ module.exports = class MarkdownSectionController extends BaseController
|
|||||||
# saved however is appropriate. The promise must reject if saving failed for some reason.
|
# saved however is appropriate. The promise must reject if saving failed for some reason.
|
||||||
@_endEditing = options.endEditing
|
@_endEditing = options.endEditing
|
||||||
|
|
||||||
|
# Public Methods ###############################################################################
|
||||||
|
|
||||||
|
resetToDefaultState: ->
|
||||||
|
if @model?
|
||||||
|
@state = State.viewing
|
||||||
|
else
|
||||||
|
if @editable?
|
||||||
|
@state = State.creating
|
||||||
|
else
|
||||||
|
@state = State.waiting
|
||||||
|
|
||||||
# Event Methods ################################################################################
|
# Event Methods ################################################################################
|
||||||
|
|
||||||
onCancelClicked: (event)->
|
onCancelClicked: (event)->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
@model = @_originalModel
|
@model = @_originalModel
|
||||||
@_resetToDefaultState()
|
@resetToDefaultState()
|
||||||
|
|
||||||
onEditClicked: (event)->
|
onEditClicked: (event)->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
@@ -69,7 +80,7 @@ module.exports = class MarkdownSectionController extends BaseController
|
|||||||
.catch (e)=>
|
.catch (e)=>
|
||||||
logger.warning "cannot begin editing: #{e.stack}"
|
logger.warning "cannot begin editing: #{e.stack}"
|
||||||
@state = State.appologizing
|
@state = State.appologizing
|
||||||
w(true).delay(@confirmDuration).then => @_resetToDefaultState()
|
w(true).delay(@confirmDuration).then => @resetToDefaultState()
|
||||||
|
|
||||||
onPreviewClicked: (event)->
|
onPreviewClicked: (event)->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
@@ -82,7 +93,6 @@ module.exports = class MarkdownSectionController extends BaseController
|
|||||||
onSaveClicked: (event)->
|
onSaveClicked: (event)->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
||||||
@model = @$textarea.val()
|
|
||||||
@state = State.waiting
|
@state = State.waiting
|
||||||
@_endEditing()
|
@_endEditing()
|
||||||
.then =>
|
.then =>
|
||||||
@@ -95,7 +105,8 @@ module.exports = class MarkdownSectionController extends BaseController
|
|||||||
@state = State.viewing
|
@state = State.viewing
|
||||||
|
|
||||||
onTextChanged: (event)->
|
onTextChanged: (event)->
|
||||||
@tryRefresh()
|
event.preventDefault()
|
||||||
|
@model = @$textarea.val()
|
||||||
|
|
||||||
# Property Methods #############################################################################
|
# Property Methods #############################################################################
|
||||||
|
|
||||||
@@ -127,7 +138,7 @@ module.exports = class MarkdownSectionController extends BaseController
|
|||||||
@$textarea = @$('textarea')
|
@$textarea = @$('textarea')
|
||||||
@$title = @$('h2')
|
@$title = @$('h2')
|
||||||
|
|
||||||
@_resetToDefaultState()
|
@resetToDefaultState()
|
||||||
|
|
||||||
super
|
super
|
||||||
|
|
||||||
@@ -139,7 +150,6 @@ module.exports = class MarkdownSectionController extends BaseController
|
|||||||
super
|
super
|
||||||
|
|
||||||
onWillChangeModel: (oldModel, newModel)->
|
onWillChangeModel: (oldModel, newModel)->
|
||||||
_.defer => @_resetToDefaultState()
|
|
||||||
@$textarea.val newModel
|
@$textarea.val newModel
|
||||||
super oldModel, newModel
|
super oldModel, newModel
|
||||||
|
|
||||||
@@ -172,14 +182,14 @@ module.exports = class MarkdownSectionController extends BaseController
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
_updateSizer: ->
|
_updateSizer: ->
|
||||||
text = @$textarea.val()
|
text = @model
|
||||||
if @model?
|
if @model?
|
||||||
text = text.replace /\n/g, '<br>'
|
text = text.replace /\n/g, '<br>'
|
||||||
|
|
||||||
@$sizer.html text
|
@$sizer.html text
|
||||||
|
|
||||||
_updatePreview: ->
|
_updatePreview: ->
|
||||||
text = @$textarea.val()
|
text = @model
|
||||||
if @model?
|
if @model?
|
||||||
text = @_convertWikiLinks text
|
text = @_convertWikiLinks text
|
||||||
text = @_convertImageLinks text
|
text = @_convertImageLinks text
|
||||||
@@ -187,16 +197,6 @@ module.exports = class MarkdownSectionController extends BaseController
|
|||||||
|
|
||||||
@$markdownPanel.html text
|
@$markdownPanel.html text
|
||||||
|
|
||||||
_resetToDefaultState: ->
|
|
||||||
if @model?
|
|
||||||
@state = State.viewing
|
|
||||||
else
|
|
||||||
if @editable?
|
|
||||||
@state = State.creating
|
|
||||||
else
|
|
||||||
@state = State.waiting
|
|
||||||
|
|
||||||
|
|
||||||
_updateStateVisibility: ->
|
_updateStateVisibility: ->
|
||||||
return if @_lastUpdatedState is @state
|
return if @_lastUpdatedState is @state
|
||||||
@_lastUpdatedState = @state
|
@_lastUpdatedState = @state
|
||||||
|
|||||||
Reference in New Issue
Block a user