I'm at a fork in the road about a programming choice and hope the community can share some wisdom with me. It simply involves this:
Suppose you have a web app that has a number of reference data editors
for the administrators of the app. Think of an e-commerce
site where assorted data has to be edited from time to time:
- Products: Descriptions, prices, photos, etc.
- Customers: Address, phone numbers, e-mail address, etc.
Let's say that an admin goes into one of these editors and makes
changes affecting 20 records (some editing, some inserting of new
records, some deleting of existing ones). He hears lightning outside
and is concerned that power in his office may be lost, so he presses
"Save" on the web app. He's been taught that this will save his work
to date on the server if the power is ever lost but must press "All
Done" to finalize the changes.
So he continues his work, affecting another 10 records and then his work is done. He can then press one of 2 buttons:
- All Done - This will commit all changes he's made in this current session and they'll be permanent.
- Abort - Perhaps he's informed that the changes he was told to make were all wrong and he didn't want any changes committed.
Note: If the power does go off before he presses either then the next time he starts the web app he'll be presented with a message informing him that he had previously saved 20 records but hadn't yet finalized (committed) them.
To me, this approach seems like a very Web 2.0 way of doing things and gives the
user maximum flexibility and power. But one of my colleagues has
suggested that each & every record should be changed permanently,
before proceeding with the next record.
I'm most curious to get your thoughts!
--
Robert Werner
Vancouver, BC