module Redwood
-class ResumeMode < ComposeMode
+class ResumeMode < EditMessageMode
def initialize m
- super()
- @id = m.id
- @header, @body = parse_file m.draft_filename
- @header.delete "Date"
- @header["Message-Id"] = gen_message_id # generate a new'n
- regen_text
- @sent = false
+ @m = m
+ @safe = false
+
+ header, body = parse_file m.draft_filename
+ header.delete "Date"
+
+ super :header => header, :body => body, :have_signature => true
+ end
+
+ def killable?
+ return true if @safe
+
+ case BufferManager.ask_yes_or_no "Discard draft?"
+ when true
+ DraftManager.discard @m
+ BufferManager.flash "Draft discarded."
+ true
+ when false
+ if edited?
+ DraftManager.write_draft { |f| write_message f, false }
+ DraftManager.discard @m
+ BufferManager.flash "Draft saved."
+ end
+ true
+ else
+ false
+ end
end
def send_message
if super
- DraftManager.discard @id
- @sent = true
+ DraftManager.discard @m
+ @safe = true
end
end
- def cleanup
- unless @sent
- if BufferManager.ask_yes_or_no "discard draft?"
- DraftManager.discard @id
- BufferManager.flash "Draft discarded."
- else
- BufferManager.flash "Draft saved."
- end
- super
- end
+ def save_as_draft
+ @safe = true
+ DraftManager.discard @m if super
end
end