File Sync UX Specification
















 

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:



  1. File Sync UX Specification
    1. 1.    Task definition
      1. 1.1    Define problem
      2. 1.2    Define objectives
      3. 1.3    Benefits to the user as a narrative
      4. 1.4    Summary of proposed solution
      5. 1.5    Questions
      6. 1.6    Scope table
    2. 2.    Interaction architecture
      1. 2.1.A    Enable Ubuntu One services on a folder
      2. 2.1.Z    Enable Ubuntu One services on a folder
      3. 2.2    Remote computer receives new file via sync
      4. 2.3.A    Remote computer receives new folder via sync
      5. 2.3.Z    Remote computer receives new folder via sync
      6. 2.4.A    Disable Ubuntu One services on a folder directly marked as Ubuntu One enabled
      7. 2.4.Z    Disable Ubuntu One services on a folder directly marked as Ubuntu One enabled
      8. 2.5.A    User moves or copies a non-Ubuntu One enabled folder or file into a Ubuntu One enabled folder
      9. 2.5.Z    User moves or copies a non-Ubuntu One enabled folder or file into a Ubuntu One enabled folder
      10. 2.6    Move a folder or file which is Ubuntu One enabled inside another Ubuntu One enabled folder
      11. 2.7    Move a folder or file out of a Ubuntu One enabled folder
      12. 2.8    Delete a folder or file that is Ubuntu One enabled
      13. 2.9    File edited or created in a Ubuntu One enabled location while online
      14. 2.10  File edited or created in a Ubuntu One enabled location while offline
      15. 2.11.A  Computer reconnected to Ubuntu One
      16. 2.11.Z  Computer reconnected to Ubuntu One
      17. 2.12    Name of Ubuntu One enabled file or folder changed
      18. 2.13    First time sync runs when a new user joins Ubuntu One
      19. 2.14    First time sync runs when a new computer is connected to a Registered User's personal cloud network
      20. 2.15   Ubuntu One file services disabled on a Specific Computer
    3. 3.    Data definitions


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:


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/

.1    User browses to a folder in Nautilus which is on the list of folders for which Ubuntu One services are blocked.  See "3.1 Folders where Ubuntu One services are blocked" for a complete list. [done]
[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/

.1    User browses to a folder in Nautilus which is on the list of folders for which Ubuntu One services are blocked.  See "3.1 Folders where Ubuntu One services are blocked" for a complete list.

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

1.    This user journey is documented in the Control Panel Phase 2 specificationReview use case 2.1 including Variation 8.a and 8.b.

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

1.    This user journey is documented in the Control Panel Phase 2 specification.  Review use case 2.2 including Variation  6.a and 6.b.

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.