       saveLink =
           <AsyncButton
             className='-save'
-            onClick={onSave}
-            isWaiting={isWaiting}
+            onClick={@onSave}
+            isWaiting={isWaiting and @state.saving}
             isFailed={isFailed}
             waitingText='Saving…'
             >

      TaskPlanActions.delete(id)
      @context.router.transitionTo('taskplans', {courseId})

  onCancel: ->
    {id, courseId} = @props
    if confirm('Are you sure you want to cancel?')

        <AsyncButton
          bsStyle='primary'
          className='-publish'
          onClick={@onPublish}
          isWaiting={isWaiting and @state.publishing}
          isFailed={isFailed}
          waitingText='Publishing…'
          >
