Start editing after login needed for editing

When a user isn't logged in, click the "Edit" button on an item
description will initiate the login process.  After it is complete,
the user is placed back on the page where they started.  However,
the edit box remains closed.  So, after all the activity which
resulted in trying to edit, they user still has to click the edit
button one more time to actually start editing.

This change makes it so that the user returning from the login
process is placed directly into edit mode without having to click the
button a second time.

fixes #237
This commit is contained in:
Andrew Miner
2016-05-07 08:12:39 -07:00
parent 6fa18c764b
commit 5eae2bb488
4 changed files with 21 additions and 12 deletions
@@ -60,16 +60,15 @@ module.exports = class MarkdownSectionController extends BaseController
# Event Methods ################################################################################
onCancelClicked: (event)->
event.preventDefault()
@model = @_originalModel
@resetToDefaultState()
@_imageListController.reset()
@_updatePreview()
return false
onEditClicked: (event)->
event.preventDefault()
return unless @editable
return false unless @editable
@_originalModel = @model
@state = @State.waiting
@@ -81,22 +80,22 @@ module.exports = class MarkdownSectionController extends BaseController
@state = @State.appologizing
w(true).delay(@_confirmDuration).then => @resetToDefaultState()
return false
onQuestionClicked: (event)->
event.preventDefault()
@_enterFeedback ''
return false
onPreviewClicked: (event)->
event.preventDefault()
@_updatePreview()
@state = @State.previewing
return false
onReturnClicked: (event)->
event.preventDefault()
@state = @State.editing
return false
onSaveClicked: (event)->
event.preventDefault()
@state = @State.waiting
@_endEditing()
.then =>
@@ -109,9 +108,11 @@ module.exports = class MarkdownSectionController extends BaseController
.then =>
@state = @State.viewing
return false
onTextChanged: (event)->
event.preventDefault()
@model = @$textarea.val()
return false
# Property Methods #############################################################################
@@ -41,6 +41,7 @@ module.exports = class ItemPageController extends PageController
@_itemSlug = options.itemSlug
@_modPack = options.modPack
@_router = options.router
@_triggerEditing = options.login
@_modPack.on c.event.change, =>
@tryRefresh()
@@ -138,6 +139,10 @@ module.exports = class ItemPageController extends PageController
else
@hide @$craftingPlanButton
if @_triggerEditing
@_triggerEditing = false
@_descriptionController.onEditClicked {}
@show()
else
@hide()
+5 -2
View File
@@ -98,12 +98,15 @@ module.exports = class Router extends Backbone.Router
@_siteController.setPage 'browseMod', controller
route__browseModItem: (modSlug, itemSlug)->
params = new UrlParams login:{type:'boolean', default:false}
slug = new ItemSlug modSlug, itemSlug
controller = new ItemPageController @_makeOptions {itemSlug:slug}
controller = new ItemPageController @_makeOptions {itemSlug:slug, login:params.login}
@_siteController.setPage 'browseModItem', controller
route__browseTutorial: (modSlug, tutorialSlug)->
controller = new TutorialPageController @_makeOptions {modSlug:modSlug, tutorialSlug:tutorialSlug}
params = new UrlParams login:{type:'boolean', default:false}
controller = new TutorialPageController @_makeOptions
login:params.login, modSlug:modSlug, tutorialSlug:tutorialSlug
@_siteController.setPage 'browseTutorial', controller
route__configure: ->
+1 -1
View File
@@ -84,7 +84,7 @@ module.exports = class SiteController extends BaseController
resumeAfterLogin: ->
url = @storage.load 'post-login-url'
url = if (not url? or url is 'null') then null else url
url = if (not url? or url is 'null') then null else url + '?login=true'
if url? then @router.navigate url, trigger:true
@storage.store 'post-login-url', null