     id = @getId()
     plan = TaskPlanStore.get(id)
 
-    isEnabled = plan?.title and plan?.due_at and plan?.settings?.page_ids?.length > 0
-
+    saveable = plan?.title and plan?.due_at and plan?.settings?.page_ids?.length > 0
+    publishable = saveable and not TaskPlanStore.isChanged(id)
+    deleteable = not TaskPlanStore.isNew(id)
     headerText = if id then 'Edit Reading' else 'Add Reading'
     topics = TaskPlanStore.getTopics(id)
 
-    footer= <ReadingFooter enabled={isEnabled} onPublish={@publishPlan} onDelete={@deletePlan}/>
+    footer= <ReadingFooter 
+              onSave={@savePlan if saveable}
+              onPublish={@publishPlan if publishable}
+              onDelete={@deletePlan if deleteable}/>
 
     <BS.Panel bsStyle="default" className="create-reading" footer={footer}>
       <h1>{headerText}</h1>

ReadingFooter = React.createClass
  render: ->
    classes = []
    classes.push('disabled') unless @props.enabled
    classes = classes.join(' ')

    deleteLink = <BS.Button bsStyle="link" onClick={@props.onDelete}>Delete</BS.Button> if @props.enabled

    <span>
      <BS.Button bsStyle="primary" className={classes} onClick={@props.onPublish}>Publish</BS.Button>
      {deleteLink}
    </span>


    value = @refs.title.getDOMNode().value
    TaskPlanActions.updateTitle(id, value)

  savePlan: ->
    id = @getId()
    TaskPlanActions.save(id)
    @transitionTo('editReading', {id})

  publishPlan: ->
    id = @getId()
    TaskPlanActions.publish(id)
