File Sync UX Specification
Author: John Lea
Reviewer: Michael Forrest
Draft
Task definition signed off by:
|
Matt Griffin (18/1/2010)
Michael Forrest (19/1/2010)
|
Interaction architecture signed off by:
|
|
View with http://use-case-mapper.canonical.com/specificationSs/0AU5sFuLRpCpBZGZra2pqY2pfMjY1ZjRodG5nZDg
1. Task definition
1.1 Define problem
The file sync service can best be described as something that 'just works'; it doesn't need to be configured, it doesn't have any options, and it does what the user expects. It delivers one easily understood feature: all your files are always available on all your computers.
Sync is the foundation feature of Ubuntu One and is the default state of all Ubuntu One enabled data. All data types supported by Ubuntu One can be synced.
This specification defines the desktop file and folder sync user experience. What exactly does sync do? What value does sync deliver to the user? Is sync what users actually want and need? What interactions are needed to meet the user requirements? Can sync be made approachable, intuitive and easy to understand?
1.2 Define objectives
The objective of the file sync functionality is to automatically make a user's files available on all computing devices they own or use. The complexity of the functionality must be kept to the minimum required to meet this single objective. This service must be:
-
zero friction - it just works out of the box and does not require any user management or configuration
-
intuitive - its behaviour matches user expectations, it does not surprise the user
-
small learning curve
-
connection status agnostic - user interactions are consistent irrespective of connectivity status
-
secure
-
assuring - users should be confident that their files are synced as expected
-
scalable - a unlimited number of devices can be synced
-
accessible - users in mixed platform environments have access to service features and their data
1.3 Benefits to the user as a narrative
Celine has recently started using Ubuntu both at home and at her university. She started using Ubuntu One specifically for the file sync service when a colleague recommended it after she forgot to bring some files from home into work on a USB stick. When she tried to use it for the first time she was pleasantly surprised to find that all she needed to do was to enter her details on both computers and she could magically see both her home and work files! Since using Ubuntu One for the first time she has not changed any Ubuntu One settings, everything just continues to work. She has quickly got used to having all her files available on both computers and now cannot imagine going back to emailing files to herself and using a USB stick. When someone mentions not having a file they need at hand she sometimes tells the story about how that used to happen to her before she started using Ubuntu One.
1.4 Summary of proposed solution
All Ubuntu One enabled files and folders are always synced. By default most standard user file locations are Ubuntu One enabled. A user can enable or disable Ubuntu One services for the contents of arbitrary directories. It is visually apparent at a glance which files and folders are Ubuntu One enabled.
1.5 Questions
Questions
|
Answers
|
Answered by
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.6 Scope table
Description of item
|
In Lucid
|
In Lucid +1
|
Out
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Interaction architecture
Note that in the use cases below the Ubuntu One cloud replication functionality is mostly implicit. e.g. it is assumed that when a file is moved, that action is also replicated on the cloud server which in turn passes the action request to the other clients as soon as possible. Sometimes cloud replication functionality is explicitly called out for clarity, but if nothing else is said a statement like "Ubuntu retains a record of any child folders which were previously directly Ubuntu One enabled." implies that the action will be performed on all devices connected to a user's personal cloud network.
Actor
|
Related Personas
|
Description
|
Registered User
|
Celine, Lola, Joseph, Mikhail, Federica
|
A user who is registered with Ubuntu One
|
User
|
Celine, Lola, Joseph, Mikhail, Federica
|
A Ubuntu user who may or may not be registered with Ubuntu One
|
Ubuntu One
|
n/a
|
The Ubuntu One cloud service
|
Ubuntu
|
n/a
|
The Ubuntu desktop operating system running on single computer
|
Specific Computer
|
n/a
|
A specific single physical computer
|
Nautilus
|
n/a
|
The Nautilus file manager
|
Remote Computer
|
n/a
|
A computer other than the one the user is currently interacting with
|
Receiving Computer
|
n/a
|
A computer that is receiving a sync
|
2.1.A Enable Ubuntu One services on a folder
Level
|
Sea
|
Primary Actor
|
User
|
Other Actors
|
Ubuntu One, Ubuntu, Specific Computer
|
Trigger
|
User wishes to enable Ubuntu One services for a specific folder.
|
Preconditions
|
The Specific Computer being used is connected to Ubuntu One.
There is sufficient free space in the Registered User's Ubuntu One account to sync the folder.
The folder the User wishes to enable is not a child of a Ubuntu One enabled folder.
The folder is not blocked from being Ubuntu One enabled.
The Specific Computer is connected to the internet.
|
Success End Condition
|
Ubuntu One services enabled for the contents of the selected directory.
|
Required features
|
'None'
|
Targeted to land by
|
10.10
|
Primary Scenario
1. User browses to a folder in Nautilus. The folder is not currently Ubuntu One enabled either directly or via inheritance. [#598093]
Wireframe
|
Design
|
Implementation
|
|
|
|
2. User presses the 'Enable' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
3. Ubuntu One successfully verifies that the contents of the folder will fit within the User's available Ubuntu One data allowance (if offline, the cached record of available storage space is used) [#602348]
4. Ubuntu starts syncing the data and displays 'Ubuntu One enabled'. A indicator (that indicates activity, not % of activity remaining) is displayed and individual sync animations are overlayed on the icons. [#598142]
Wireframe
|
Design
|
Implementation
|
|
|
|
5. Ubuntu removes the sync animation overlay from each individual file or folder when it completes syncing. [#598142]
Wireframe
|
Design
|
Implementation
|
|
|
|
6. Ubuntu completes the entire sync operation and displays the 'Ubuntu One enabled' graphics in Nautilus. [done]
Wireframe
|
Design
|
Implementation
|
|
|
|
7. User navigates up one level in Nautilus to the parent folder.
Wireframe
|
Design
|
Implementation
|
|
|
|
8. Ubuntu removes the sync animation overlay and adds a embossed Ubuntu One logo to the folder that is now directly Ubuntu One enabled. Nautilus displays the partially enabled state graphics. [#598162]
USE CASE ENDS
1.a Variation - The folder is currently Ubuntu One enabled via inheritance
.1 User browses to a folder in Nautilus. The folder is currently Ubuntu One enabled via inheritance. [done]
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 Ubuntu does not display the 'Enable' or 'Disable' button. [done]
USE CASE ENDS
1.b Variation - User browses to a folder for which Ubuntu One services are blocked e.g. /sys/
[done]
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 Ubuntu does not display the Ubuntu One bar. [done]
USE CASE ENDS
1.c Variation - User browses to a folder which contains a child folder that is Ubuntu One enabled
.1 User browses to a folder that contains a child folder which is Ubuntu One enabled.
.2 Ubuntu displays the standard Ubuntu One Nautilus visual decorations along with a message informing the User that they cannot Ubuntu One enable the folder because it contains a child folder that is already Ubuntu One enabled.
USE CASE ENDS
3.a Variation - The User has not yet connected the Specific Computer to Ubuntu One
.1 Ubuntu opens the Control Panel window. [#598109]
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 User completes the process of either registering with Ubuntu One or connecting the Specific Computer to Ubuntu One. See use case 2.1 and 2.2 in the Control Panel Phase 2 spec for further details. [#598109]
RETURN TO 3
3.b Variation - The User has not yet connected the Specific Computer to Ubuntu One. No internet connectivity is present.
.1 Ubuntu opens a window that states "A internet connection is required to enable Ubuntu One services for the first time. Connect this computer to the internet and then press next to continue". [#598114]
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 Ubuntu continuously checks to see if a internet connection has been established. [#598114]
.3 User connects the computer to the internet.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu detects that a internet connection has been established. The window morphs to confirm the internet connection and the 'next' button is un-grayed. [#598114]
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 User presses 'Next'. [#598114]
Wireframe
|
Design
|
Implementation
|
|
|
|
.6 Ubuntu morphs the window to display the Control Panel. [#598114]
Wireframe
|
Design
|
Implementation
|
|
|
|
.7 User completes the process of either registering with Ubuntu One or connecting the Specific Computer to Ubuntu One.
RETURN TO 3
3.c Variation - User with a free account does not have enough free Ubuntu One data allowance to sync the folder.
.1 Ubuntu One discovers that the contents of the folder will not fit within the User's available Ubuntu One data allowance.
.2 Ubuntu One opens a dialogue window informing the user that enabling the folder would exceed their current data allowance.
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User clicks on the 'Upgrade Subscription' link.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu One opens a web browser displaying the 'Upgrade Subscription' web page.
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Registered User successfully completes the upgrade process on the website.
.6 Ubuntu One imports the Registered User's address into the Ubuntu One Contacts Database.
.7 Ubuntu automatically morphs the dialogue window to the Control Panel. A message informing the Registered User that they have successfully upgraded to a paid account is displayed.
Wireframe
|
Design
|
Implementation
|
|
|
|
RETURN TO 4
3.d Variation - User with a paid account does not have enough free Ubuntu One data allowance to sync the folder
.1 Ubuntu One discovers that the contents of the folder will not fit within the User's available Ubuntu One data allowance.
.2 Ubuntu opens a window that displays the message "This folder contains XXGB data which will not fit within the XXGB that is currently unused out of your 50GB data allowance. Try enabling Ubuntu One services on on a smaller portion of data".
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 User presses 'OK'.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu closes window.
.5 Ubuntu One informs the Ubuntu One team that a Registered User has attempted to use more than 50GB storage.
USE CASE ENDS
4.a Variation - No internet connection present
.1 Ubuntu displays the 'Ubuntu One enabled' graphics in Nautilus along with the message "Awaiting sync. These files will be synced to your other devices as soon as internet connectivity is established."
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
5.a Variation - Internet connectivity lost while first sync is in progress
.1 Ubuntu loses internet connectivity
.2 Ubuntu informs the Registered User that the synchronization is incomplete
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Ubuntu adds 'not yet synced' emblems to the appropriate files.
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Ubuntu reestablishes internet connectivity
.4 Ubuntu restarts the synchronization operation
Wireframe
|
Design
|
Implementation
|
|
|
|
RETURN TO 5
5.b Variation - User navigates away from folder immediately after pressing 'Enable' and then returns
.1 Registered User navigates up to the parent folder immediately after pressing the 'Enable' button.
.2 Ubuntu displays the parent folder with standard Ubuntu One Nautilus visual decorations along with a message informing the User that they cannot Ubuntu One enable the folder because it contains a child folder that is already Ubuntu One enabled. [#603106]
.3 Registered User navigates back into to the folder they Ubuntu One enabled.
RETURN TO 4
2.1.Z Enable Ubuntu One services on a folder
Level
|
Sea
|
Primary Actor
|
User
|
Other Actors
|
Ubuntu One, Ubuntu, Specific Computer
|
Trigger
|
User wishes to enable Ubuntu One services for a specific folder.
|
Preconditions
|
The Specific Computer being used is connected to Ubuntu One.
There is sufficient free space in the Registered User's Ubuntu One account to sync the folder.
The folder the User wishes to enable is not a child of a Ubuntu One enabled folder.
The folder is not blocked from being Ubuntu One enabled.
The Specific Computer is connected to the internet.
|
Success End Condition
|
Ubuntu One services enabled for the contents of the selected directory.
|
Required features
|
'Nested UDFs'
|
Targeted to land by
|
Future
|
Primary Scenario
1. User browses to a folder in Nautilus. The folder is not currently Ubuntu One enabled either directly or via inheritance.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. User presses the 'Enable' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
3. Ubuntu One successfully verifies that the contents of the folder will fit within the User's available Ubuntu One data allowance (if offline, the cached record of available storage space is used)
4. Ubuntu starts syncing the data and displays 'Ubuntu One enabled'. A 'Sync in progress...' indicator (that indicates activity, not % of activity remaining) is displayed and individual sync animations are overlayed on the icons.
Wireframe
|
Design
|
Implementation
|
|
|
|
5. Ubuntu One does not delete any information about directly enabled child folders.
6. Ubuntu removes the sync animation overlay from each individual file or folder when it completes syncing.
Wireframe
|
Design
|
Implementation
|
|
|
|
7. Ubuntu completes the entire sync operation and displays the 'Ubuntu One enabled' graphics in Nautilus.
Wireframe
|
Design
|
Implementation
|
|
|
|
8. User navigates up one level in Nautilus to the parent folder.
Wireframe
|
Design
|
Implementation
|
|
|
|
9. Ubuntu removes the sync animation overlay and adds a embossed Ubuntu One logo to the folder that is now directly Ubuntu One enabled. Nautilus displays the partially enabled state graphics.
USE CASE ENDS
1.a Variation - The folder is currently Ubuntu One enabled via inheritance
.1 User browses to a folder in Nautilus. The folder is currently Ubuntu One enabled via inheritance.
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 Ubuntu does not display the 'Enable' or 'Disable' button.
USE CASE ENDS
1.b Variation - User browses to a folder for which Ubuntu One services are blocked e.g. /sys/
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 Ubuntu displays a message informing the user that this folder cannot be Ubuntu One enabled.
USE CASE ENDS
3.a Variation - The User has not yet connected the Specific Computer to Ubuntu One
.1 Ubuntu opens the Control Panel window.
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 User completes the process of either registering with Ubuntu One or connecting the Specific Computer to Ubuntu One.
RETURN TO 3
3.b Variation - The User has not yet connected the Specific Computer to Ubuntu One. No internet connectivity is present.
.1 Ubuntu opens a window that states "A internet connection is required to enable Ubuntu One services for the first time. Connect this computer to the internet and then press next to continue".
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 Ubuntu continuously checks to see if a internet connection has been established.
.3 User connects the computer to the internet.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu detects that a internet connection has been established. The window morphs to confirm the internet connection and the 'next' button is un-grayed.
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 User presses 'Next'.
Wireframe
|
Design
|
Implementation
|
|
|
|
.6 Ubuntu morphs the window to display the Control Panel.
Wireframe
|
Design
|
Implementation
|
|
|
|
.7 User completes the process of either registering with Ubuntu One or connecting the Specific Computer to Ubuntu One.
RETURN TO 3
3.c Variation - User with a free account does not have enough free Ubuntu One data allowance to sync the folder. Note that this variation can be triggered when a file or folder is shared, see use case 4.7 variation 5.a in the File Share spec for a typical example.
.1 Ubuntu One discovers that the contents of the folder will not fit within the User's available Ubuntu One data allowance.
.2 Ubuntu One opens a dialogue window informing the user that enabling the folder would exceed their current data allowance.
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User clicks on the 'Upgrade Subscription' link.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu One opens a web browser displaying the 'Upgrade Subscription' web page.
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Registered User successfully completes the upgrade process on the website.
.6 Ubuntu One imports the Registered User's address into the Ubuntu One Contacts Database.
.7 Ubuntu automatically morphs the dialogue window to the Control Panel. A message informing the Registered User that they have successfully upgraded to a paid account is displayed.
Wireframe
|
Design
|
Implementation
|
|
|
|
RETURN TO 4
3.d Variation - User with a paid account does not have enough free Ubuntu One data allowance to sync the folder
.1 Ubuntu One discovers that the contents of the folder will not fit within the User's available Ubuntu One data allowance.
.2 Ubuntu opens a window that displays the message "This folder contains XXGB data which will not fit within the XXGB that is currently unused out of your 50GB data allowance. Try enabling Ubuntu One services on on a smaller portion of data".
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 User presses 'OK'.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu closes window.
.5 Ubuntu One informs the Ubuntu One team that a Registered User has attempted to use more than 50GB storage.
USE CASE ENDS
4.a Variation - No internet connection present
.1 Ubuntu displays the 'Ubuntu One enabled' graphics in Nautilus along with the message "Awaiting sync. These files will be synced to your other devices as soon as internet connectivity is established."
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
6.a Variation - Internet connectivity lost while first sync is in progress
.1 Ubuntu loses internet connectivity
.2 Ubuntu informs the Registered User that the synchronization is incomplete
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Ubuntu reestablishes internet connectivity
.4 Ubuntu restarts the synchronization operation
Wireframe
|
Design
|
Implementation
|
|
|
|
RETURN TO 6
2.2 Remote computer receives new file via sync
Level
|
Sea
|
Primary Actor
|
Ubuntu One
|
Other Actors
|
Registered User, Ubuntu, Remote Computer, Nautilus
|
Trigger
|
Ubuntu One detects incoming file sync
|
Preconditions
|
|
Success End Condition
|
Remote computer successfully receives new file
|
Required features
|
'None'
|
Targeted to land by
|
10.10
|
Primary Scenario
1. Ubuntu One running on a Remote Computer detects a new file being synced.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Ubuntu One finishes receiving the file.
3. Ubuntu moves the file into the directory structure.
4. Ubuntu refreshes any open Nautilus windows that are could display changed content as a result of the sync event.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
3.a Variation - Same Ubuntu One user has different user names on their different computers
.1 Ubuntu detects that the same Registered User has different account names on different computers connected to their personal cloud network.
.2 Ubuntu moves the file into the directory structure abstracting the different computer account names if required. e.g. /home/FredMobile/Music/MerryChristmas.mp3 is moved into /home/Fred/Music/MerryChristmas.mp3
RETURN TO 4
2.3.A Remote computer receives new folder via sync
Level
|
Sea
|
Primary Actor
|
Ubuntu One
|
Other Actors
|
Registered User, Ubuntu, Remote Computer, Nautilus
|
Trigger
|
Ubuntu One detects incoming folder sync
|
Preconditions
|
|
Success End Condition
|
Remote computer successfully receives incomming folder
|
Required features
|
'None'
|
Targeted to land by
|
10.10
|
Primary Scenario
1. Ubuntu One running on a Remote Computer detects a new folder being synced.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Ubuntu One creates the folder on the Remote Computer
Wireframe
|
Design
|
Implementation
|
|
|
|
3. Ubuntu refreshes any open Nautilus windows that are could display changed content as a result of the sync event.
4. Ubuntu One starts fetching the contents of the folder.
USE CASE ENDS
2.a Variation - Same Ubuntu One user has different user names on their different computers
.1 Ubuntu detects that the same Registered User has different account names on different computers connected to their personal cloud network.
.2 Ubuntu creates the requested folder abstracting the different computer account names if required. e.g. If the /Films folder resides on the originating computer in /home/john/Videos and the receiving computer has /home/JohnLea/Videos, the directory /Films will be added inside /JohnLea/Videos.
RETURN TO 3
2.b Variation - The Receiving Computer contains a non-Ubuntu One enabled empty folder that clashes with the path required by a incoming newly synced folder
.1 Ubuntu detects that the incoming newly synced folder shares the same path with a folder that already exists on the Receiving Computer which is empty and is not Ubuntu One enabled. e.g the incoming /home/john/Videos folder clashes with a existing folder /home/john/Videos on the Receiving Computer which is not Ubuntu One enabled.
.2 Ubuntu merges the folders, and enables Ubuntu One services on the merged folder on the Receiving Computer. All the Ubuntu One enabled flags assigned to subfolders are included in the sync operation.
Wireframe
|
Design
|
Implementation
|
|
|
|
RETURN TO 3
2.c Variation - The Receiving Computer contains a non-Ubuntu One enabled folder (non-empty) that clashes with the path required by a incoming newly synced folder
.1 Ubuntu detects that the incoming newly synced folder shares the same path with a folder that already exists on the Receiving Computer that is not Ubuntu One enabled and which contains one or more files or folders. e.g the incoming /home/john/Videos folder clashs with a existing folder /home/john/Videos (or home/JohnLea/Videos) on the Receiving Computer that is not Ubuntu One enabled.
.2 Ubuntu automatically merges the folders, renaming any conflicting files.
.3 Ubuntu refreshes any open Nautilus windows that are could display changed content as a result of the sync event.
USE CASE ENDS
2.3.Z Remote computer receives new folder via sync
Level
|
Sea
|
Primary Actor
|
Ubuntu One
|
Other Actors
|
Registered User, Ubuntu, Remote Computer, Nautilus
|
Trigger
|
Ubuntu One detects incoming folder sync
|
Preconditions
|
|
Success End Condition
|
Remote computer successfully receives incomming folder
|
Required features
|
'Merge handling'
|
Targeted to land by
|
Future
|
Primary Scenario
1. Ubuntu One running on a Remote Computer detects a new folder being synced.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Ubuntu One creates the folder on the Remote Computer
Wireframe
|
Design
|
Implementation
|
|
|
|
3. Ubuntu refreshes any open Nautilus windows that are could display changed content as a result of the sync event.
4. Ubuntu One starts fetching the contents of the folder.
USE CASE ENDS
2.a Variation - Same Ubuntu One user has different user names on their different computers
.1 Ubuntu detects that the same Registered User has different account names on different computers connected to their personal cloud network.
.2 Ubuntu creates the requested folder abstracting the different computer account names if required. e.g. If the /Films folder resides on the originating computer in /home/john/Videos and the receiving computer has /home/JohnLea/Videos, the directory /Films will be added inside /JohnLea/Videos.
RETURN TO 3
2.b Variation - The Receiving Computer contains a non-Ubuntu One enabled empty folder that clashes with the path required by a incoming newly synced folder
.1 Ubuntu detects that the incoming newly synced folder shares the same path with a folder that already exists on the Receiving Computer which is empty and is not Ubuntu One enabled. e.g the incoming /home/john/Videos folder clashes with a existing folder /home/john/Videos on the Receiving Computer which is not Ubuntu One enabled.
.2 Ubuntu merges the folders, and enables Ubuntu One services on the merged folder on the Receiving Computer. All the Ubuntu One enabled flags assigned to subfolders are included in the sync operation.
Wireframe
|
Design
|
Implementation
|
|
|
|
RETURN TO 3
2.c Variation - The Receiving Computer contains a non-Ubuntu One enabled folder (non-empty) that clashes with the path required by a incoming newly synced folder
.1 Ubuntu detects that the incoming newly synced folder shares the same path with a folder that already exists on the Receiving Computer that is not Ubuntu One enabled and which contains one or more files or folders. e.g the incoming /home/john/Videos folder clashs with a existing folder /home/john/Videos (or home/JohnLea/Videos) on the Receiving Computer that is not Ubuntu One enabled.
.2 Ubuntu finishes receiving all the contents of the incoming folder.
.3 Ubuntu One verifies that the Registered User has enough free Ubuntu One storage space to merge the two folders.
.4 Ubuntu issues a Notify OSD notification informing the Registered User that the incoming folder requires a merge decision.
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Ubuntu adds a 'awaiting merge decision' item to the Messaging Menu.
Wireframe
|
Design
|
Implementation
|
|
|
|
.6 Registered User opens the Messaging Menu and clicks on 'Merge synchronised folders?'.
Wireframe
|
Design
|
Implementation
|
|
|
|
.7 Ubuntu opens a dialogue window on the Receiving Computer asking the Registered User if they would like to merge the folders or rename the folder on the Receiving Computer.
Wireframe
|
Design
|
Implementation
|
|
|
|
.8 Registered User chooses to not to merge and sync the folder.
Wireframe
|
Design
|
Implementation
|
|
|
|
.9 Ubuntu moves the synced folder into the destination folder, and renames the original folder from /home/john/Videos to /home/john/Videos_not_synchronised
Wireframe
|
Design
|
Implementation
|
|
|
|
.10 Ubuntu refreshes any open Nautilus windows that are could display changed content as a result of the sync event.
.11 Ubuntu removes the 'Merge synchronised folders?' item from the Messaging Menu.
USE CASE ENDS
2.d Variation - The Receiving Computer contains a non-Ubuntu One enabled folder (non-empty) that clashes with the path required by a incoming newly synced folder. Conflicts occur as a result of the merge event.
1. Variation needs writing.
USE CASE ENDS
2.e Variation - The Receiving Computer contains a non-Ubuntu One enabled folder (non-empty) that clashes with the path required by a incoming newly synced folder. The Registered User has a free account and there is not enough free Ubuntu One storage space available to merge the folders.
.1 Ubuntu detects that the incoming newly synced folder shares the same path with a folder that already exists, is not Ubuntu One enabled and which contains one or more files or folders. e.g the incoming /home/john/Videos folder clashs with a existing folder /home/john/Videos (or home/JohnLea/Videos) on the Receiving Computer that is not Ubuntu One enabled.
.2 Ubuntu finishes receiving all the contents of the incoming folder.
.3 Ubuntu One discovers that the Registered User does not have enough Ubuntu One storage space to merge the two folders.
.4 Ubuntu issues a Notify OSD notification informing the Registered User that the incoming folder requires a merge decision.
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Ubuntu adds a 'awaiting merge decision' item to the Messaging Menu.
Wireframe
|
Design
|
Implementation
|
|
|
|
.6 Registered User opens the Messaging Menu and clicks on 'Merge synchronised folders?'.
Wireframe
|
Design
|
Implementation
|
|
|
|
.7 Ubuntu One opens a dialogue window informing the user that to merge the incoming folder they will need more storage space.
Wireframe
|
Design
|
Implementation
|
|
|
|
.8 Registered User clicks on the 'Upgrade Subscription' link.
Wireframe
|
Design
|
Implementation
|
|
|
|
.9 Ubuntu One opens a web browser displaying the 'Upgrade Subscription' web page.
Wireframe
|
Design
|
Implementation
|
|
|
|
.10 Registered User successfully completes the upgrade process on the website.
.11 Ubuntu One imports the Registered User's address into the Ubuntu One Contacts Database.
.12 Ubuntu automatically morphs the dialogue window to the Control Panel. A message informing the Registered User that they have successfully upgraded to a paid account is displayed.
Wireframe
|
Design
|
Implementation
|
|
|
|
.10 Ubuntu merges the folders, and enables Ubuntu One services on the merged folder. All the Ubuntu One enabled flags assigned to subfolders are included in the sync operation. If conflicts occur see the process outlined in use case 2.11
Wireframe
|
Design
|
Implementation
|
|
|
|
.11 Ubuntu refreshes any open Nautilus windows that are could display changed content as a result of the sync event.
.12 Ubuntu removes the 'Merge synchronised folders?' item from the Messaging Menu.
USE CASE ENDS
2.f Variation - The Receiving Computer contains a non-Ubuntu One enabled folder (non-empty) that clashes with the path required by a incoming newly synced folder. The Registered User has a premium account and there is not enough free Ubuntu One storage space available to merge the folders.
.1 Ubuntu detects that the incoming newly synced folder shares the same path with a folder that already exists on the Receiving Computer that is not Ubuntu One enabled and which contains one or more files or folders. e.g the incoming /home/john/Videos folder clashs with a existing folder /home/john/Videos (or home/JohnLea/Videos) on the Receiving Computer that is not Ubuntu One enabled.
.2 Ubuntu finishes receiving all the contents of the incoming folder.
.3 Ubuntu One discovers that the Registered User does not have enough Ubuntu One storage space to merge the two folders.
.4 Ubuntu One informs the Ubuntu One team that a Registered User could have usefully used more than 50GB storage.
.5 Ubuntu issues a Notify OSD notification informing the Registered User that there is insufficient space to merge the folders.
Wireframe
|
Design
|
Implementation
|
|
|
|
.6 Ubuntu renames the folder on the Receiving Computer. e.g. from /home/john/Videos to /home/john/Videos_not_syncronised
.7 Ubuntu moves the synced folder into the destination folder.
Wireframe
|
Design
|
Implementation
|
|
|
|
.8 Ubuntu refreshes any open Nautilus windows that are could display changed content as a result of the sync event.
.9 Ubuntu adds a 'Cannot merge folders' item to the Messaging Menu.
Wireframe
|
Design
|
Implementation
|
|
|
|
.10 Registered User opens the Messaging Menu and clicks on 'Cannot merge folders'.
Wireframe
|
Design
|
Implementation
|
|
|
|
.11 Ubuntu opens a dialogue window on the Receiving Computer informing the Registered User that there is not enough space to merge the folders. The only option given is 'OK'.
Wireframe
|
Design
|
Implementation
|
|
|
|
.12 Registered User presses 'OK'
Wireframe
|
Design
|
Implementation
|
|
|
|
.13 Ubuntu removes the 'Cannot merge folders' item from the Messaging Menu.
USE CASE ENDS
2.4.A Disable Ubuntu One services on a folder directly marked as Ubuntu One enabled
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Ubuntu, Remote Computer, Nautilus
|
Trigger
|
User wishes to disable Ubuntu One services for a specific folder.
|
Preconditions
|
The folder is directly marked as Ubuntu One enabled
|
Success End Condition
|
Ubuntu One services disabled for the contents of the selected directory.
|
Required features
|
'None'
|
Targeted to land by
|
10.10
|
Primary Scenario
1. Registered User browses to a folder in Nautilus. The folder is directly Ubuntu One enabled.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Registered User presses the 'Disable' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
3. Ubuntu One successfully verifies that no files or folders have been shared or published.
4. Ubuntu disables Ubuntu One services for all data residing in the selected folder (on all computers).
5. Ubuntu One removes the selected data from the cloud. Ubuntu One queues commands to all devices that are currently disconnected, directing them to disable Ubuntu One services for the specified folder on reconnection.
6. Ubuntu changes the visual decoration in Nautilus to the 'disabled' state.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
1.a Variation - Registered User cannot disable Ubuntu One services for specific folders
.1 User browses to a folder in Nautilus. The disabling of Ubuntu One services is specifically prohibited on this folder. Currently only the 'Ubuntu One Music' and 'Shared Files' folders fall into this category.
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 Ubuntu does not display the 'Disable' button.
USE CASE ENDS
1.b Variation - Registered User cannot disable Ubuntu One services directly on a folder which has inherited Ubuntu One enabled status
.1 Registered User browses to a folder that has inherited Ubuntu One enabled status (this includes folders which used to be directly Ubuntu One enabled until this was superseded by inheritance)
.2 Ubuntu does not display any 'Disable' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
3.a Variation - selected folders have been shared or published
.1 Ubuntu One discovers that the selected folder or one or more of the files or folders it contains has been either shared or published.
.2 Ubuntu One opens a window informing the Registered User that proceeding with this action will unshare and unpublish all selected files and folders. A list of the affected files and folders is displayed. 'OK' and 'Cancel' options are given.
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User presses 'OK'
Wireframe
|
Design
|
Implementation
|
|
|
|
RETURN TO 4
2.4.Z Disable Ubuntu One services on a folder directly marked as Ubuntu One enabled
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Ubuntu, Remote Computer, Nautilus
|
Trigger
|
User wishes to disable Ubuntu One services for a specific folder.
|
Preconditions
|
The folder is directly marked as Ubuntu One enabled
|
Success End Condition
|
Ubuntu One services disabled for the contents of the selected directory.
|
Required features
|
'Nested UDFs'
|
Targeted to land by
|
Future
|
Primary Scenario
1. Registered User browses to a folder in Nautilus. The folder is directly Ubuntu One enabled.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Registered User presses the 'Disable' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
3. Ubuntu One successfully verifies that no child folders have been directly set as Ubuntu One enabled.
4. Ubuntu One successfully verifies that no files or folders have been shared or published.
5. Ubuntu disables Ubuntu One services for all data residing in the selected folder (on all computers).
6. Ubuntu One removes the selected data from the cloud. Ubuntu One queues commands to all devices that are currently disconnected, directing them to disable Ubuntu One services for the specified folder on reconnection.
7. Ubuntu changes the visual decoration in Nautilus to the 'disabled' state.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
1.a Variation - Registered User cannot disable Ubuntu One services for specific folders
.1 User browses to a folder in Nautilus. The disabling of Ubuntu One services is specifically prohibited on this folder. 'Ubuntu One Music' and '/home/Shared Files/' folders fall into this category.
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 Ubuntu does not display the 'Disable' button.
USE CASE ENDS
1.b Variation - Registered User cannot disable Ubuntu One services directly on a folder which has inherited Ubuntu One enabled status
.1 Registered User browses to a folder that has inherited Ubuntu One enabled status (this includes folders which used to be directly Ubuntu One enabled until this was superseded by inheritance)
.2 Ubuntu does not display any 'Disable' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
3.a Variation - Child folders have been previously set as Ubuntu One enabled.
.1 Ubuntu One discovers that the selected folder has one or more child folders that have previously been directly set as Ubuntu One enabled.
.2 Ubuntu opens an alert window asking the Registered User if the would like to remove all folders from Ubuntu One or retain Ubuntu One enabled status for the directly enabled child folders (a list of these folders is displayed). Options of 'All', 'Exclude those listed' and 'Cancel' are given.
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User presses the 'Exclude those listed' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu One successfully verifies that none of the files or folders which will loose their Ubuntu One enabled status have been shared or published.
.5 Ubuntu disables Ubuntu One services for the folder contents and all child folders apart from those that were previously directly Ubuntu One enabled. The child folders that were previously Ubuntu One enabled retain their Ubuntu One enabled status.
.6 Ubuntu One removes the selected data from the cloud. Ubuntu One queues commands to all devices that are currently disconnected, directing them to disable Ubuntu One services for the specified folders on reconnection.
.7 Ubuntu changes the visual decoration in Nautilus to either the 'disabled' or 'partially disabled' state.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
4.a Variation - selected folders have been shared or published
.1 Ubuntu One discovers that the selected folder or one or more of the files or folders it contains has been either shared or published.
.2 Ubuntu One opens a window informing the Registered User that proceeding with this action will unshare and unpublish all selected files and folders. A list of the affected files and folders is displayed. 'OK' and 'Cancel' options are given.
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User presses 'OK'
Wireframe
|
Design
|
Implementation
|
|
|
|
RETURN TO 5
2.5.A User moves or copies a non-Ubuntu One enabled folder or file into a Ubuntu One enabled folder
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Ubuntu, Nautilus
|
Trigger
|
Registered User wishes to move a folder into a Ubuntu One enabled folder
|
Preconditions
|
The folder(s) are not directly Ubuntu One enabled
|
Success End Condition
|
The folder successfully inherits Ubuntu One enabled status
|
Required features
|
'None'
|
Targeted to land by
|
10.10
|
Primary Scenario
1. Registered User attempts to move or copy folder(s) or file(s) (which are not Ubuntu One enabled either directly or via inheritance) into a Ubuntu One enabled folder.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Ubuntu moves or copies the folder or file to the location requested by the Registered User
Wireframe
|
Design
|
Implementation
|
|
|
|
3. Ubuntu One successfully verifies that the contents of the folder or file will fit within the Registered User's available Ubuntu One data allowance (if no internet connection is present, Ubuntu One checks a cached value of the last known data usage)
4. Ubuntu starts syncing the data and displays a 'Sync in progress...' indicator (that indicates activity, not % of activity remaining) and sync animation overlays on the moved folders or files within Nautilus.
Wireframe
|
Design
|
Implementation
|
|
|
|
5. Ubuntu removes the sync animation overlay from each moved or copied folder when it completes syncing.
Wireframe
|
Design
|
Implementation
|
|
|
|
6. Ubuntu returns Nautilus to it's 'Ubuntu One enabled' state when the sync is complete.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
3.a Variation - User with a free account does not have enough free Ubuntu One data allowance to move or copy the files(s) or folder(s)
.1 Ubuntu One discovers that the contents of the folder or file will not fit within the Registered User's available Ubuntu One data allowance.
.2 Ubuntu opens a dialogue window informing the user that they do not have sufficient storage space to move or copy the files(s) and/or folder(s).
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User clicks on the 'Upgrade Subscription' link.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu One opens a web browser displaying the 'Upgrade Subscription' web page and closes the alert window.
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Registered User successfully completes the upgrade process on the website.
RETURN TO 4
3.b Variation - User with a paid account does not have enough free Ubuntu One data allowance to sync the folder(s) or file(s)
.1 Ubuntu One discovers that the contents of the folder (or file) will not fit within the Registered User's available Ubuntu One data allowance.
.2 Ubuntu opens a window that displays the message "The file(s) and folder(s) contains XXGB data which will not fit within the XXGB that is currently unused out of your 50GB data allowance. Try enabling Ubuntu One services on on a smaller portion of data".
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User presses 'OK'.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu marks the folder with a error emblem to indicate that it is not Ubuntu One enabled.
.5 Ubuntu One informs the Ubuntu One team that a Registered User has attempted to use more than 50GB storage.
USE CASE ENDS
4.a Variation - No internet connection present
.1 Ubuntu queues the folder or file for transfer when internet connectivity is reestablished.
USE CASE ENDS
2.5.Z User moves or copies a non-Ubuntu One enabled folder or file into a Ubuntu One enabled folder
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Ubuntu, Nautilus
|
Trigger
|
Registered User wishes to move a folder into a Ubuntu One enabled folder
|
Preconditions
|
The folder(s) are not directly Ubuntu One enabled
|
Success End Condition
|
The folder successfully inherits Ubuntu One enabled status
|
Required features
|
'File manager interaction'
|
Targeted to land by
|
Future
|
Primary Scenario
1. Registered User attempts to move or copy folder(s) or file(s) (which are not Ubuntu One enabled either directly or via inheritance) into a Ubuntu One enabled folder.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Ubuntu One successfully verifies that the contents of the folder or file will fit within the Registered User's available Ubuntu One data allowance (if no internet connection is present, Ubuntu One checks a cached value of the last known data usage)
3. Ubuntu moves or copies the folder or file to the location requested by the Registered User
Wireframe
|
Design
|
Implementation
|
|
|
|
4. Ubuntu starts syncing the data and displays a 'Sync in progress...' indicator (that indicates activity, not % of activity remaining) and sync animation overlays on the moved folders or files within Nautilus.
Wireframe
|
Design
|
Implementation
|
|
|
|
5. Ubuntu removes the sync animation overlay from each moved or copied folder when it completes syncing.
Wireframe
|
Design
|
Implementation
|
|
|
|
6. Ubuntu returns Nautilus to it's 'Ubuntu One enabled' state when the sync is complete.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
2.a Variation - User with a free account does not have enough free Ubuntu One data allowance to move or copy the files(s) or folder(s)
.1 Ubuntu One discovers that the contents of the folder or file will not fit within the Registered User's available Ubuntu One data allowance.
.2 Ubuntu opens a dialogue window informing the user that they do not have sufficient storage space to move or copy the files(s) and/or folder(s).
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User clicks on the 'Upgrade Subscription' link.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu One opens a web browser displaying the 'Upgrade Subscription' web page.
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Registered User successfully completes the upgrade process on the website.
.6 Ubuntu One imports the Registered User's address into the Ubuntu One Contacts Database.
.7 Ubuntu automatically morphs the dialogue window to the Control Panel. A message informing the Registered User that they have successfully upgraded to a paid account is displayed.
Wireframe
|
Design
|
Implementation
|
|
|
|
RETURN TO 3
2.b Variation - User with a paid account does not have enough free Ubuntu One data allowance to sync the folder(s) or file(s)
.1 Ubuntu One discovers that the contents of the folder (or file) will not fit within the Registered User's available Ubuntu One data allowance.
.2 Ubuntu opens a window that displays the message "The file(s) and folder(s) contains XXGB data which will not fit within the XXGB that is currently unused out of your 50GB data allowance. Try enabling Ubuntu One services on on a smaller portion of data".
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User presses 'OK'.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu abandons the move or copy action.
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Ubuntu One informs the Ubuntu One team that a Registered User has attempted to use more than 50GB storage.
USE CASE ENDS
4.a Variation - No internet connection present
.1 Ubuntu queues the folder or file for transfer when internet connectivity is reestablished.
USE CASE ENDS
2.6 Move a folder or file which is Ubuntu One enabled inside another Ubuntu One enabled folder
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Ubuntu
|
Trigger
|
Registered User wishes to move a folder which is Ubuntu One enabled into another Ubuntu One enabled folder.
|
Preconditions
|
The folder or file is already Ubuntu One enabled either directly or via inheritance
|
Success End Condition
|
The folder successfully moved retaining previous Ubuntu One settings and metainformation.
|
Required features
|
'Robust folder and file tracking'
|
Targeted to land by
|
Future
|
Primary Scenario
1. Registered User moves a file or folder (that is already Ubuntu One enabled either directly or via inheritance) inside a Ubuntu One enabled folder.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Ubuntu moves the folder or file to the location requested by the Registered User
Wireframe
|
Design
|
Implementation
|
|
|
|
3. Ubuntu ensures that all Ubuntu One meta information is moved with the file e.g. which folders were previously directly Ubuntu One enabled, what files and folders are published, etc...
4. Ubuntu One queues the relevant commands for unconnected devices to replicate the action on reconnection.
USE CASE ENDS
1.a Variation - File or folder AND the destination folder is shared with (or by) another user
.1 Registered User moves a file or folder (that is already Ubuntu One enabled either directly or via inheritance) inside a Ubuntu One enabled folder. Both the file or folder in question AND the destination folder is shared with another user.
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 Ubuntu moves the folder or file to the location requested by the Registered User.
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Ubuntu One replicates the move on the computers belonging to the other user who is either sharing the file or who the file is shared with.
RETURN TO 3
1.b Variation - File or folder is shared with (or by) another user but the destination folder is not shared with this same user.
.1 Registered User moves a file or folder (that is already Ubuntu One enabled either directly or via inheritance) inside a Ubuntu One enabled folder. The file or folder is shared with (or by) another user but the destination folder is not shared with this same user.
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 Ubuntu opens a alert window and informs the Registered User that the file or folder is shared with one or more other users and that moving it to a folder not shared with these other users will remove their access to the file. 'OK' and 'Cancel' options are given.
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User presses the 'Proceed' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu moves the file or folder to the location requested by the Registered User.
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Ubuntu One deletes the file or folder from the personal cloud networks belonging to users with whom it was shared (who do not also share the destination folder).
RETURN TO 4
2.7 Move a folder or file out of a Ubuntu One enabled folder
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Ubuntu, Remote Computers
|
Trigger
|
Registered User wishes to move a folder or file out of a Ubuntu One enabled folder
|
Preconditions
|
The folder or file was not previously directly Ubuntu One enabled
|
Success End Condition
|
The folder successfully moved and removed from the cloud and all other devices.
|
Required features
|
'File manager interaction', 'Robust folder and file tracking', 'Nested UDFs'
|
Targeted to land by
|
Future
|
Primary Scenario
1. Registered User moves a folder or file out of a Ubuntu One enabled folder.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Ubuntu One successfully verifies that no child folders have been directly set as Ubuntu One enabled.
3. Ubuntu One successfully verifies that no files or folders have been shared or published.
4. Ubuntu moves the folder or file to the requested location and disables Ubuntu One services for all the moved data.
5. Ubuntu One removes the moved data from the cloud and all other devices. Ubuntu One queues delete commands for unconnected devices to receive on reconnection.
USE CASE ENDS
1.a Variation - Folder being moved had previously been directly set as Ubuntu One enabled.
.1 Registered User moves a folder that had previously been directly Ubuntu One enabled out of a Ubuntu One enabled folder.
Wireframe
|
Design
|
Implementation
|
|
|
|
.2 Ubuntu opens a window asking the Registered User if they would like the folder to retain Ubuntu One enabled status.
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User clicks 'Yes'.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu moves the folder to the requested location. This action is replicated on the cloud and all other devices connected to the personal cloud network.
USE CASE ENDS
2.a Variation - Child folders have been previously set as Ubuntu One enabled.
.1 Ubuntu One discovers that the selected folder has one or more child folders that have been directly set as Ubuntu One enabled.
.2 Ubuntu opens an alert window informing the Registered User that the requested action will remove the selected files and folders from both the cloud and any Remote Computers. The Registered User is asked if the would like to remove all folders from Ubuntu One or retain Ubuntu One enabled status for directly enabled child folders (a list of these folders is displayed). Options of 'Cancel', 'Disable all' and 'Exclude those listed' are given.
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User presses the 'Exclude those listed' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Ubuntu One successfully verifies that none of the files or folders which will loose their Ubuntu One enabled status have been shared or published.
.5 Ubuntu disables Ubuntu One services for the folder contents and all child folders apart from those that were previously directly Ubuntu One enabled. The child folders that were previously Ubuntu One enabled retain their Ubuntu One enabled status.
.6 Ubuntu moves the folder to the requested location.
.7 Ubuntu One removes the selected data from the cloud and other connected devices. Ubuntu One queues delete commands for unconnected devices to receive on reconnection.
USE CASE ENDS
3.a Variation - Selected folders have been shared or published
.1 Ubuntu One discovers that the selected folder or one or more of the files or folders it contains has been either shared or published.
.2 Ubuntu One opens a window informing the Registered User that proceeding with this action will unshare and unpublish all selected files and folders. A list of the affected files/folders and users is displayed. 'OK' and 'Cancel' options are given.
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Registered User presses 'OK'
Wireframe
|
Design
|
Implementation
|
|
|
|
RETURN TO 4
2.8 Delete a folder or file that is Ubuntu One enabled
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One
|
Trigger
|
Registered User wishes to delete a folder or file that is Ubuntu One enabled
|
Preconditions
|
|
Success End Condition
|
The folder successfully deleted from the cloud, any devices it is shared with and all devices connected the Registered User's personal cloud network.
|
Required features
|
'None'
|
Targeted to land by
|
10.10
|
Primary Scenario
1. Registered User deletes a file or folder that is Ubuntu One enabled.
2. Ubuntu One removes the file or folder from the cloud. A delete command is queued with all devices who access the file or folder either via a share or that are part of the Registered User's personal cloud network.
3. Ubuntu One executes the delete command on all remote computers as soon as it is received. The folder and all children are deleted even if the folder contains folders and/or files that are newer than those in the folder that was originally deleted.
USE CASE ENDS
2.9 File edited or created in a Ubuntu One enabled location while online
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Ubuntu, Nautilus
|
Trigger
|
Registered User edits or creates a file while online
|
Preconditions
|
A internet connection is currently established.
The file is located inside a Ubuntu One enabled folder.
|
Success End Condition
|
File successfully uploaded to cloud
|
Required features
|
'None'
|
Targeted to land by
|
10.10
|
Primary Scenario
1. Registered User opens Nautilus
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Registered User edits and saves a file or creates a new file in a location that is Ubuntu One enabled.
Wireframe
|
Design
|
Implementation
|
|
|
|
3. Ubuntu One starts syncing the data.
4. Nautilus displays the 'Sync in progress' state and overlays a sync animation over the newly saved icon.
Wireframe
|
Design
|
Implementation
|
|
|
|
5. Ubuntu One completes syncing the data.
6. Nautilus displays the 'Ubuntu One enabled' state and removes the sync overlay animation.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
2.10 File edited or created in a Ubuntu One enabled location while offline
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Ubuntu, Nautilus
|
Trigger
|
Registered User edits or creates a file while offline
|
Preconditions
|
The file is located inside a Ubuntu One enabled folder.
|
Success End Condition
|
File successfully uploaded to cloud
|
Required features
|
'None'
|
Targeted to land by
|
10.10
|
Primary Scenario
1. Registered User opens Nautilus
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Registered User edits and saves a file or creates a new file in a location that is Ubuntu One enabled.
Wireframe
|
Design
|
Implementation
|
|
|
|
3. Ubuntu adds a 'not yet synced' emblem to the file.
Wireframe
|
Design
|
Implementation
|
|
|
|
4. Ubuntu waits until the next time a internet connection is established.
5. Ubuntu One starts syncing the data.
6. Nautilus displays the 'Sync in progress' state and overlays a sync animation over the newly saved icon.
Wireframe
|
Design
|
Implementation
|
|
|
|
7. Ubuntu One completes syncing the data.
8. Nautilus displays the 'Ubuntu One enabled' state and removes the sync overlay animation.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
2.11.A Computer reconnected to Ubuntu One
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Nautilus
|
Trigger
|
Ubuntu reestablishes a internet connection
|
Preconditions
|
|
Success End Condition
|
Ubuntu One successfully receives all updated files and folders.
|
Required features
|
'None'
|
Targeted to land by
|
10.10
|
Primary Scenario
1. Ubuntu One checks for any new, updated or deleted files and folders.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Ubuntu One performs any requested delete actions.
3. Ubuntu One starts downloading the files and folders and performs any requested move actions.
4. Ubuntu One successfully verifies that each downloaded file does not conflict with an existing file.
5. Nautilus only displays each file and folder after it has finished downloading. If required Nautilus automatically refreshes.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
4.a Variation - File conflict handling
.1 Ubuntu One detects that a downloaded file conflicts with a file on the receiving computer.
.2 Ubuntu One renames the conflicting files.
USE CASE ENDS
2.11.Z Computer reconnected to Ubuntu One
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Nautilus
|
Trigger
|
Ubuntu reestablishes a internet connection
|
Preconditions
|
|
Success End Condition
|
Ubuntu One successfully receives all updated files and folders.
|
Required features
|
'Conflict resolution'
|
Targeted to land by
|
Future
|
Primary Scenario
1. Ubuntu One checks for any new, updated or deleted files and folders.
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Ubuntu One performs any requested delete actions.
3. Ubuntu One starts downloading the files and folders and performs any requested move actions.
4. Ubuntu One successfully verifies that each downloaded file does not conflict with an existing file.
5. Nautilus only displays each file and folder after it has finished downloading. If required Nautilus automatically refreshes.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
4.a Variation - Resolving file conflicts by keeping both files
.1 Ubuntu One detects that a downloaded file conflicts with a file on the receiving computer.
.2 Ubuntu One issues a Notify OSD notification informing the Registered User that a conflict has occured
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Ubuntu One adds a conflict resolution item to the Messaging Menu.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Registered User opens the Messaging Menu and clicks on "Conflict Awaiting Resolution"
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Ubuntu One opens a window that asks the Registered User to deconflict the files. The newest file is always on the left. Gloobus (gloobus.net) is integrated into this window and used to view the files.
Wireframe
|
Design
|
Implementation
|
|
|
|
.6 Registered User presses the 'Keep both' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
.7 Ubuntu One closes the window.
.8 Ubuntu One renames the older file appending the word ' (old)' to the end of its filename.
.9 Ubuntu One sends the rename commands to the cloud. All Ubuntu One meta information is updated in line with the rename e.g. if the file was previously shared, both of the new files now have the previous share permissions. The same applies to publishing.
.10 If a Nautilus window is already open and displaying the location of the conflict, it automatically refreshes to display the files.
Wireframe
|
Design
|
Implementation
|
|
|
|
.11
Ubuntu One removes the 'Conflict awaiting resolution' item from the
Messaging Menu.
USE CASE ENDS
4.b Variation - Resolving file conflicts by selecting a file
.1 Ubuntu One detects that a downloaded file conflicts with a file on the receiving computer.
.2 Ubuntu One issues a Notify OSD notification informing the user that a conflict has occured
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Ubuntu One adds a conflict resolution item to the Messaging Menu.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Registered User opens the Messaging Menu and clicks on "Conflict Awaiting Resolution"
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Ubuntu One opens a window that asks the user to deconflict the files. The newest file is always on the left. Gloobus (gloobus.net) is integrated into this window and used to view the files.
Wireframe
|
Design
|
Implementation
|
|
|
|
.6 Registered User presses the 'Keep newest' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
.7 Ubuntu One closes the window.
.8 Ubuntu One removes the file that the Registered User does not want to keep from the cloud and moves it into the 'Deleted Items' folder on the Specific Computer they are using.
.9 Ubuntu One removes the 'Conflict awaiting resolution' item from the Messaging Menu.
RETURN TO 5
4.c Variation - Registered User needs to investigate files further before deciding which one to keep
.1 Ubuntu One detects that a downloaded file conflicts with a file on the receiving computer.
.2 Ubuntu One issues a Notify OSD notification informing the user that a conflict has occured
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Ubuntu One adds a conflict resolution item to the Messaging Menu.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Registered User opens the Messaging Menu and clicks on "Conflict Awaiting Resolution"
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Ubuntu One opens a window that asks the user to deconflict the files. The newest file is always on the left. Gloobus (gloobus.net) is integrated into this window and used to view the files.
Wireframe
|
Design
|
Implementation
|
|
|
|
.6 Registered User presses the 'Open File' icon to open one or both of the conflicting files in their associated applications.
Wireframe
|
Design
|
Implementation
|
|
|
|
.7 Registered User examines the files.
.8 Registered User presses the 'Keep newest' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
.9 Ubuntu One removes the file that the Registered User does not want to keep from the cloud and moves it into the 'Deleted Items' folder on the Specific Computer they are using.
.10 Ubuntu One removes the 'Conflict awaiting resolution' item from the Messaging Menu.
RETURN TO 5
4.e Variation - More than one conflict detected
.1 Ubuntu One detects more than one conflict.
.2 Ubuntu One issues a Notify OSD notification informing the user that a conflict has occured
Wireframe
|
Design
|
Implementation
|
|
|
|
.3 Ubuntu One adds a conflict resolution item to the Messaging Menu.
Wireframe
|
Design
|
Implementation
|
|
|
|
.4 Registered User opens the Messaging Menu and clicks on "Conflict Awaiting Resolution"
Wireframe
|
Design
|
Implementation
|
|
|
|
.5 Ubuntu One opens a dialogue informing the user that a number of conflicting files have been detected. They are given the options of a) Keeping only the newest b) Keeping both c) Reviewing each conflict individually
Wireframe
|
Design
|
Implementation
|
|
|
|
.6 Registered User presses the "Decide individually" button.
Wireframe
|
Design
|
Implementation
|
|
|
|
.7 Ubuntu One morphs the window to present the first file to the user for deconflicting. Gloobus (gloobus.net) is integrated into this window and used to view the files.
Wireframe
|
Design
|
Implementation
|
|
|
|
.8 Registered User presses the 'Or keep this one?' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
.8 Ubuntu One removes the file that the Registered User does not want to keep from the cloud and moves it into the 'Deleted Items' folder on the Specific Computer they are using.
.9 Ubuntu One morphs the window to display the second file to the user for deconflicting.
Wireframe
|
Design
|
Implementation
|
|
|
|
.10 Registered User presses the 'Keep this one?' button.
Wireframe
|
Design
|
Implementation
|
|
|
|
.11 Ubuntu One removes the file that the Registered User does not want to keep from the cloud and moves it into the 'Deleted Items' folder on the Specific Computer they are using.
.12 Registered User closes the deconflict window before they have finished deconflicting all the files.
.13 Ubuntu One updates conflict resolution item to the Messaging Menu to display the number of remaining number of conflicts.
Wireframe
|
Design
|
Implementation
|
|
|
|
RETURN TO 5
2.12 Name of Ubuntu One enabled file or folder changed
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One
|
Trigger
|
Registered User wishes to rename a Ubuntu One enabled file or folder
|
Preconditions
|
The file or folder is Ubuntu One enabled either directly or via inheritance.
|
Success End Condition
|
The file or folder is successfully renamed retaining it's associated Ubuntu One metadata e.g. who it is shared with, etc...
|
Required features
|
'Robust folder and file tracking'
|
Targeted to land by
|
Future
|
Primary Scenario
1. Registered User renames a Ubuntu One enabled file or folder.
2. Ubuntu One updates all meta information relating to the file or folder e.g. shares, published details etc...
3. Ubuntu One propagates the rename and updated meta information to the cloud, any other computers who are sharing the file and all computers connected to Registered User's personal cloud network.
USE CASE ENDS
2.13 First time sync runs when a new user joins Ubuntu One
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Ubuntu
|
Trigger
|
User joins Ubuntu One and it starts syncing their data to the cloud for the first time
|
Preconditions
|
|
Success End Condition
|
The newly Registered User's data is synced to the cloud
|
Required features
|
'None'
|
Targeted to land by
|
See 'Control Panel Phase 2' specification
|
Primary Scenario
USE CASE ENDS
2.14 First time sync runs when a new computer is connected to a Registered User's personal cloud network
Level
|
Sea
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Ubuntu
|
Trigger
|
Registered User connects a new computer to their personal cloud network
|
Preconditions
|
The Registered User has a free Ubuntu One account.
|
Success End Condition
|
The newly Registered User's data is synced to the cloud
|
Required features
|
'None'
|
Targeted to land by
|
See 'Control Panel Phase 2' specification
|
Primary Scenario
USE CASE ENDS
2.15 Ubuntu One file services disabled on a Specific Computer
Level
|
Sea
|
Primary Actor
|
User
|
Other Actors
|
Ubuntu One, Ubuntu, Specific Computer
|
Trigger
|
Ubuntu One file services are switched off for the specific computer. This setting is displayed in the Control Panel.
|
Preconditions
|
The Specific Computer being used is connected to Ubuntu One.
|
Success End Condition
|
Registered User is made aware that file sync services are switched off on the specific computer.
|
Required features
|
'None'
|
Targeted to land by
|
10.10
|
Primary Scenario
1. Registered User browses to a folder in Nautilus. The folder was previously Ubuntu One enabled either directly or via inheritance before file services were switched off.
2. Ubuntu displays a status message saying "Ubuntu One file services including synchronisation are currently disabled on this computer. Open the Control Panel to re-enable." No 'Enable' button is displayed, but the other standard Ubuntu One visual elements are present.
3. Registered User clicks on the 'Control Panel' link.
4. Ubuntu opens the control panel directly on the 'Applications' tab.
USE CASE ENDS
1.a Variation - Folder was not Ubuntu One enabled prior to file services being switched off
.1 Registered User browses to a folder in Nautilus. The folder was not Ubuntu One enabled either directly or via inheritance before file services were switched off.
.2 Ubuntu does not display any Ubuntu One options in Nautilus.
USE CASE ENDS
2.16 User switches off the display of Ubuntu One options in Nautilus.
Level
|
Fish
|
Primary Actor
|
Registered User
|
Other Actors
|
Ubuntu One, Ubuntu, Nautilus
|
Trigger
|
Registered User decides that they do not want to see the Ubuntu One options in Nautilus.
|
Preconditions
|
|
Success End Condition
|
Ubuntu One options removed from Nautilus
|
Targeted to land by
|
Future
|
Primary Scenario
1. Registered User opens any Nautilus window (irrespective of Ubuntu One enabled status of the folder displayed)
Wireframe
|
Design
|
Implementation
|
|
|
|
2. Registered User clicks on the 'View' option in Nautilus.
Wireframe
|
Design
|
Implementation
|
|
|
|
3. Nautilus opens the View drop down menu.
Wireframe
|
Design
|
Implementation
|
|
|
|
4. Registered User deselects the 'Ubuntu One' option.
Wireframe
|
Design
|
Implementation
|
|
|
|
5. Nautilus removes the Ubuntu One visual elements from all windows.
Wireframe
|
Design
|
Implementation
|
|
|
|
USE CASE ENDS
3. Data definitions
3.1 Folders where Ubuntu One services are blocked
All folders outside of the user's home (/home/username) are blocked. The /username/ folder itself cannot be Ubuntu One enabled but it's child folders all can.
3.2 Folders that are Ubuntu One enabled by default when a new user joins Ubuntu One
Enabling the following folders by default for all new Ubuntu One users is critical for providing a smooth share experience.
-
/home/[User]/Documents
-
/home/[User]/Desktop
-
/home/[User]/Music
-
/home/[User]/Pictures
-
/home/[User]/Shared Files