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