Launchpad entry: none yet
Created: 2006-06-10 by MatthewPaulThomas
Version 0.9 is whichever level is feature-complete by 2006-09-01. Version 1.0 is whichever version is shipped in Edgy.
Level A: Do one thing and do it excellently
The "File" menu should contain a single item, "Close", with the keyboard equivalent Ctrl+W. This item should be available only when a backup or restoration is not in progress.
The "Edit" menu should contain:
- Copy [Ctrl+C]
- Always enabled. Copies to the clipboard the pathname of the item selected to be backed up, or the path of the item selected to be restored, depending on which tab is displayed.
- Paste [Ctrl+V]
- Enabled only if the clipboard contains a valid pathname. Selects that pathname in the "Copy:" menu or the "From backup:" menu, whichever is visible, adding it to the menu if it wasn't there already.
The "Help" menu should contain "How to Back Up & Restore", a separator, and "About This Version".
At this simplest level, there should be one option for backing up: that of your entire home folder. Therefore, "Copy:" should be followed by the icon for the home folder, and the label "My files (/home/$USERNAME)" -- for example, "My files (/home/gertie)". ("Files" is not capitalized because that would look like the name of a folder.) If the path of the home folder is too long to display, the path should be ellipsized in the middle -- for example, "/home/gerti…ialidocious".
After the window opens, "Searching backup records…" should be changed to how long ago the home folder was successfully backed up, measured in days: for example, "You last backed up this folder yesterday.", "You last backed up this folder 1098 days ago.", or "You may not have backed up this folder yet.". (We use "may" for the last case, both because you may have used other software to perform the backup, and because the record of a previous backup might have been destroyed by the same loss which you're about to use the backup to restore.)
"Calculating size…" should be changed to the size of the home folder, shown to 1 decimal place in the unit most appropriate for its magnitude: for example, "989.1 MB", or "1.4 GB" (with no trailing period). If the size is not calculable because some or all of the contents do not have read access, the text should be changed to "Size unknown because some items require authentication.".
The "To:" menu should initially be disabled, and contain two items: "Detecting…", with an animated progress icon, and "Local Backups folder" (with its actual icon if ~/Documents/Backups exists yet, or a generic folder icon if it doesn't). When BUR has finished detecting writable external devices and populating the menu (a process that should not make the rest of the interface unresponsive), the "Detecting…" item should be removed, with the selected item becoming that of the most appropriate device if there are any, or "Local Backups folder" if there aren't, and the menu should become enabled. Whenever "Local Backups folder" is the selected item, the menu should be followed by the alert text "For safer backups, back up to a separate device instead." The list of devices in the menu should be updated as they are connected or disconnected, with newly-connected usable devices automatically being chosen in preference to "Local Backups folder".
When a CD and/or DVD burner is selected while the home folder is still being scanned for size and permissions, the text "Calculating number of discs required…" should appear under the menu. If the calculation is completed successfully, the text should be changed accordingly -- for example, "3 CDs required", or (for a dual burner) "3 CDs or 1 DVD required". If a partly used but still writable disc is in the drive, the measurement should take this into account -- for example, "Current CD + 2 more required".
For other devices, if BUR can calculate that the device does not have enough free space to perform the desired backup, its item should be disabled in the list, and " (not enough space)" should be appended to its text. This should not change which item is selected, however, because -- with the calculation taking a long time -- that might cause the selected item to change milliseconds before the "Start" button was clicked. Whenever the selected item in the "To:" menu is an unavailable one, the "Start" button should also be unavailable. If all the items in the "To:" menu are unavailable (including "Local Backups folder"), the menu should be followed by the alert text "No sufficient discs or drives found" (this should trump the normal alert text for "Local Backups folder").
Clicking "Start" should open a separate progress window that is not modal and does not stay on top of the main window.
The "Stop" button should have Esc as its keyboard equivalent. The progress bar should be indeterminate at first, while Backup finishes scanning the source and destination to check that all the source files are readable (opening an authentication alert if necessary), and that the destination is large enough. If it is not, the progress window should close, there should be an error sound, and the "To:" value should be treated just as it would have been if the problem had been discovered earlier (disabled, with " (not enough space)" appended to it). Otherwise, the backup should begin, with the progress bar becoming determinate to show the data copied so far. When a new disc needs to be inserted, the current one should be ejected, and the progress bar should temporarily be replaced by the text "Please insert another blank disc."
A successfully completed backup should produce a note alert; an unsuccessful one, an error alert. (Normally alerts should be avoided, but for a backup tool they provide necessary reassurance.)
Back in the main window, the "Start" button should be disabled as long as the "Copy:" and "To:" values are the same as a backup currently in progress. (Alternatively, if BUR is not yet capable of carrying out multiple backups simultaneously, all its controls should be disabled except for the "Remind me to back up:" menu.)
The "Remind me to back up:" menu should contain "Never", a separator, "Monthly", "Fortnightly", "Weekly", and "Daily".
The "From backup:" menu should contain all devices detected as containing backups, a separator, and an "Other…" item that opens a file selector. Dragging a device that contains a backup, or a backup itself, onto the menu should select it, adding it to the menu if necessary.
For Level A, "Restore:" should be static text, with the value "All files".
The restoration process should use a progress window similar to that used for a backup.
When you log in and n time has passed since (a) your account was created, (b) you *** were last reminded about backing up, or (c) you last began a successful backup, and the Backup window is not already open and focused, a notification balloon with the backup icon should appear in the corner of the screen. n should default to a month [for testing this specification, it should be possible to set n to two minutes]. If you have not done a successful backup before, the balloon's primary text should be "Keep your files safe by backing up regularly."; otherwise, "It’s time to back up your home folder." In either case, the secondary text should be "You can change these reminders in the Back Up/Restore program." The balloon should point at a temporary menu that appears in the panel; the menu should contain "Open Backup/Restore", a separator, and "Remind Me Next Time". Selecting either menu item should remove the menu from the panel.
Sebastian (glatzor) Heinlein:
it is quite hard to discuss your proposal since you didn't include a rationale. it would be better if you could specify the use cases and workflows that you want to target.
why use a menu at all? why would somebody need the copy&paste function? it is quite uncommon to copy and paste the content of a file selector widget, since there is no text selection. the term file should only be used if you actually use a file and cannot find a better name. so "backup" would be much better term. but why keep these minimal menus at all? a "close" and "help" button could do the same job much better, since the functions wouldn't be hidden in menus.
furthermore I would generally suggest to use a statusbar. changing text of labels in runtime is quite problematic for screen readers. the statusbar could show e.g. "calculating backup size..." during the size calculation and "Total backup size is 788 (1 CD or 1 DVD)".
does the backend really supports reusing the same media?
how to want to handle incremental backups?
why use a custom file selector widget? there is an icon for the home folder that identifies it very clearly.
the "start" button should be "backup" - start is quite generic.
the backup process needs to be more fine grained: how to handle file conflicts? doing a dump overwrite? allow to restore only single files or folders? if you accidentially delete a file you perhaps won't like to restore your 40 gbyte of video and music files.
why put restore and backup separated by tabs in the same window? we could detect backup files by mime-type or special backup mediums by hal hooks.
perhaps we should collect all possible use cases and and write down the possible workflows before we design the window.
offer to empty Trash (or previous backup) on removable device
"Copy:" is an option menu, containing:
- "My files (/home/$USERNAME)"
- "Everyone’s personal files (/home)" (using a real apostrophe)
- "System settings (/etc)"
- a separator
- any custom backups, e.g. "~/Messages"
- another separator, only if there are any custom backups
- "Other...", which opens a filepicker for you to choose a device, folder, or file to add to the menu as a custom backup, then selects that item. A custom backup is retained in the menu next time Backup is launched only if a backup of that item was previously started (even if it was not finished).
Each menu item begins with the icon for the relevant file/folder/device. After the window opens (so as not to delay the initial display), the size of each item in the menu is calculated, and if its size is calculable without authenticating, it is added (shown to 1 decimal place in the unit most appropriate for its magnitude) in the bracketed section: for example, "My files (/home/gertie, 1.9 GB)". The same applies to custom backups after they are added to the menu: for example, "/home/gertie/Messages (2.1 MB)". If, during this process, Backup discovers that some or all of the item is not readable without authenticating, its icon is changed to a closed padlock, and Backup does not attempt to display its size. If an item is too long to display in the menu, the path is ellipsized in the middle: for example, "/home/sivan…ialidocious".
If a folder or device is dragged to the Copy menu, or if the menu is selected when a valid path is in the clipboard and "Paste" is activated, that path is selected in the menu (being added to the section
- Whenever a custom backup has been removed from the list in this session, the "Undo" item is enabled and reads "Undo Item Removal".
- If some or all of any item in the "Copy:" menu needs administrator access , during the scan to discover an item's size, Backup discovers that administrator access is required to read some or all of it, in which case it begins with a padlock icon until you are authenticated
The Edit menu should contain:
- Remove From List [Del, also Backspace]
- Enabled only when one of the custom backups is selected. Removes that backup from the list.