This is something I've been struggling with, because there seems to be a lack of standard for it (as far as I can tell).
There are two scenarios.
Save & Close and Save & Add New
We are creating new items. A modal pops up, and we have Save & Close, Save & Add New and Cancel at the bottom. Save & Close saves the current item and closes the modal. Save & Add New saves the current item and displays an empty form to create a new item. Cancel just dismisses the current item and closes the modal.
Now, we have an evaluate screen (without auto-save)...
Save, Done and Cancel
During evaluation, Save saves the state of the evaluation (which can be a quite lengthy process), Done saves the state and returns you to a list of evaluable items. Cancel dismisses all changes made (after the last Save is any) and returns you to a list of evaluable items.
I suppose my question is, is this the best way to handle these things? Something doesn't seem quite right, but I can't put my finger on it. Maybe it's just wording?
Keep in mind, there is no auto-save. Maybe Done can replace Cancel completely and show a prompt about whether or not we want to save the changes?
I would say you need to use 'Cancel' and 'Close' appropriately, and use consistent patterns.
I have always used 'Close' and 'Cancel' in the following ways:
'Close': by pressing this you are dismissing something like a dialogue, nothing bad will happen, and there will be no state change in your process.
'Cancel': the user has invoked a process and they are trying to do something.. by pressing 'Cancel' the user has made a decision to stop doing part or all of that process.
I would potentially look at aligning the buttons across the system, I would change Cancel button on the modal dialogue to Close, or even a link stating 'Close' depending on what you have done throughout the system.
I would also add a confirmation to the Cancel button press to inform the users that they will lose the data they have entered and provide the modal dialogue allowing them to "Save & Close", "Save & Add New".
I would also change the 'Done' to 'Save & Done' or 'Save & Finish' or 'Save & Update' depending on the users understanding of the terminology used.
Save & Close and Save & Add New
Here's an interesting approach done by Jira.
Basically they add a checkbox to Create another similar item, if the checkbox is selected, the dialog will remain open, a new item will be filled with the same information as the one before it.
You can see than Cancel is clearly a link (not a button), this helps the users to know that clicking on this button will not result in an action that changes the system (as opposed to the "Create" action).
Generally it's a good pattern to use links for:
1- secondary actions or navigation actions (vs primary actions)
2- non-destructive actions (that do not change the system's state): cancel, close
Save, Done and Cancel Use the following naming conventions:
1- Apply to mean save but keep the current window open.
2- Save to mean save and close
3- Close (link not button) to mean close without saving
Here's a link to conventions used in Property sheets in Windows http://msdn.microsoft.com/en-us/library/windows/desktop/aa511266.aspx
I'm referring to the latter part of your question - the Save, Done and Cancel.
I think it's important to know what you want your users to do before AND after the process. By knowing that, you can determine the options that you want to add in your form or survey. Standards are good but it's always great to ensure that you implement the necessary steps.
Here's my suggestion: Have a Save button available for them to save their changes at any time. Have a Cancel button to either chuck everything or remove everything from last save point. Last but not least, I'd change the Save button to Finish once all the fields or form is complete. This will save the users feedback and then return them to the list of evaluatable items. A little different but I'm sure it will work well.
Hope that you find this helpful!