Difference between revisions of "Inventory Functional Spec"

From Second Life Wiki
Jump to navigation Jump to search
 
(24 intermediate revisions by 5 users not shown)
Line 15: Line 15:


Will this feature affect:
Will this feature affect:
* Client FPS? YES. Large inventories take longer to draw. (perhaps this is fixed)
* Client FPS? YES. Large inventories take longer to draw (perhaps this is fixed).
* Simulator FPS? YES. Inventory is fetched from dataserver on the Simulator, so it may have a small effect on Simulator performance.
* Simulator FPS? YES. Inventory is fetched from dataserver on the Simulator, so it may have a small effect on Simulator performance.
* Database? YES. The dataserver fetches inventor from the Database.
* Database? YES. The dataserver fetches inventory from the Database.
* Asset server? YES. Rezzing items reads from the Asset server. Creating invetory items writes to the Asset server.
* Asset server? YES. Rezzing items reads from the Asset server. Creating inventory items writes to the Asset server.
* Network load? YES. The inventory structure must be streamed to you. Rezzed or opened items must be streamed to you. Uploaded items must be streamed to the asset server.
* Network load? YES. The inventory structure must be streamed to you. Rezzed or opened items must be streamed to you. Uploaded items must be streamed to the asset server.
* Any other system? NO.
* Any other system? NO.
Line 24: Line 24:
== Design Constraints ==
== Design Constraints ==


* Will this feature be unavailable on certain hardware? NO
* Will this feature be unavailable on certain hardware? NO.
* Is this feature consistent (similar look & feel) with other features? PARTIAL. Inventory has it's own Menu which is not accessible from the keyboard.
* Is this feature consistent (similar look & feel) with other features? PARTIAL. Inventory has its own Menu, which is not accessible from the keyboard.
* Is this feature well integrated (accessible when you need it, and in the place(s) you expect to find it)? YES
* Is this feature well integrated (accessible when you need it, and in the place(s) you expect to find it)? YES.
* Is this feature discoverable (newbie friendly)? PARTIAL. There's room for improvement.
* Is this feature discoverable (newbie friendly)? PARTIAL. There's room for improvement.
* Is this feature Safe, Predictable, and Responsive? YES.
* Is this feature Safe, Predictable, and Responsive? YES.
Line 39: Line 39:


== Security risks ==
== Security risks ==
* Does this feature give access to something it should not?
* Does this feature give access to something it should not? NO.
NO


== Feature Rules ==
== Feature Rules ==
The rules of the feature, organized in order of precedence. (eg. Rule 1 supersedes Rule 2, which supersedes Rule 3)
The rules of the feature, organized in order of precedence. (eg. Rule 1 supersedes Rule 2, which supersedes Rule 3)


Object taken or returned into inventory go into their previous folder.
* Object taken or returned into inventory go into their previous folder.
Returned object that have no previous folder will be put in the Lost and Found folder.
* Returned object that have no previous folder will be put in the Lost and Found folder.


 
* Accepted or uploaded assets of a certain type (eg. Clothing, Script, Animation) will go into a system folder of the same type.
Accepted or uploaded assets of a certain type (eg. Clothing, Script, Animation) will go into a system folder of the same type.
* Accepted categories will go into the Inventory folder.
Accepted categories will go into the Inventory folder.


== Feature Usage ==
== Feature Usage ==
Line 59: Line 57:




Inventory


== Default inventory ==
A new user will have the following default inventory folders:


TASK: Ben or me- write inventory usage spec. What does tab, typing, arrows do when each area of inventory is highlighted? How does drag and drop work between open /closed folders, between windows, when scrolling.
* Animations
* Body Parts
* ??Calling Cards
* Clothing
* Gestures
* Landmarks
* ??Lost and Found
* Notecards
* Objects
* Photo Album
* Scripts
* Sounds
* Textures
* ??Trash
* Library


== Adding Inventory ==


=== Uploading Assets ===


Inventory
=== Creating objects in world and taking them ===


Create a new object, right click > take it, will remove it from the world and place it into your Objects folder.


Creating
Taking an item or a copy of an item that was originally rezzed from inventory will put the item back into its previous folder.
item goes into particular folder


If you create an item on someone else's land and they may return it to you.
Returned items go to the folder they were rezzed from.
If the object never had a folder or that folder has been deleted, object is put "Lost and Found" folder.


Modifying items
=== Creating new items via context menu ===
Right click on a folder and click one of the following.
New Folder
New Script
New Note
New Gesture
New Clothes
New Body Parts
The new item will be placed in the folder you right clicked.


Property panel
- You may not create items in the Library. The Library is read-only.


=== Creating new items via Create menu ===
Click the Inventory Create menu, and choose one of the following.
New Folder
New Script
New Note
New Gesture
New Clothes
New Body Parts
The new item will be automatically sorted into the appropriate system folder.


Managing inventory (or drag and drop behavior)
=== Creating Landmarks via World menu ===
World menu > Create Landmark Here


Opening
=== Creating Body parts and Clothing via Appearance mode ===
Dragging


dragging over closed folders auto opens them. folder will close again after drop.
=== Create scripts via Object contents button ===


after dropping in an open folder


dragging onto scroll bars will scroll the inv [no longer works?]


dragging onto "recent items tab will open the recent items tab" [bug?]
=== Automatic sorting into folders ===


=== Accepting inventory ===


Accepting inv item


scrolling
Same for items received while offline


Rezing


Accepting auto-opening inv item


Taking into inv
Same for items received while offline
item goes into previous folder
else item goes into Objects folder


Returned items go to the folder they were rezzed from.
If the object never had a folder or that folder has been deleted, object is put "Lost and Found" folder.


Accepting inv category


Window behavior when receiving inventory
Same for items received while offline
received item from person or script
received auto-open item from person or script
received category from person or script
received group notice attachment


=== Declining inventory ===


Accepting and declining inventory
Declining inventory item


Accepting inv item
Declining inv item
Same for items received while offline
Same for items received while offline


Declining auto-opening inventory item


Accepting auto-openning inv item
Declining auto-openning inv item
Same for items received while offline
Same for items received while offline


Accepting inv category
Declining inventory category
Declining inv category
 
Same for items received while offline
Same for items received while offline


 
=== Automatic Declining inventory ===
While in busy mode
While in busy mode


Line 134: Line 162:
From muted group
From muted group


=== Window behavior when receiving inventory ===
received item from person or script
received auto-open item from person or script
received category from person or script
received group notice attachment




Inventory behavior




Finding
== Rezzing from inventory ==


Sorting


Opening folders


== Attaching from inventory ==


Metrics
=== Context menu ===
Speed - how fast the inventory loads


Reponsiveness (time between clicking/dragging an inventory item to ground and the cursor switching from "not" to "allow drop")(this time seems to be increasing - may be related to sim data server load)
You get a collision prompt when using "Attach to" option if there's an attachment already on that attach point. You do not get a warning if you drag and drop the attachment onto your Avatar or select Wear via context menu.


Accuracy
=== Dragging on your Avatar ===


Clearing
=== Dragging a folder onto your Avatar ===




keyboard navigation
=== Dragging a Library folder onto your Avatar ===


Dragging items from the Library folder onto your avatar will place a copy of the items in your Inventory. (The acquired date will not be set on these objects. bug?)
== Searching Inventory ==
Keyboard:
ctrl-I toggles inventory open / closed
ctrl-I toggles inventory open / closed
(should it do anything other than hide it? close or open any folders?)
(should it do anything other than hide it? close or open any folders?)
Line 163: Line 198:
focus should be in the search field by default when inventory is opened
focus should be in the search field by default when inventory is opened


Inventory search.
search for item
search for item


Line 176: Line 209:


press tab
press tab
When searching, items matching the search, only items matching the search term and the folder the item resides in will be displayed.
Selecting a folder, then clearing the search field will  keep the folder selected.
??Closing inventory, then reopening inventory will clear the search field and place the cursor in the sierch field.
??Pressing the down arrow while focus is in search field will move focus to inventory contents.
After accepting an inventory item, the system folder the item was sorted into will be opened, and the item will ??have tentative selection ??be highlighted. Opening the inventory at this point will scroll the inventory so the highlighted item is in view.
When an item has ??highlight (eg. It is outlined, but the color of the item name is not inversed), ??pressing the down arrow key once will move select the item below it.
After accepting a category, the category is added as the last folder in your folder.
(??bugs)The category is not sorted or highlighted. The next time you login, the category will be sorted alphabetically.




Visible item search
== Visible item search (what's the name of this feature?)  ==
cursor is in inventory tree area of inventory window
cursor is in inventory tree area of inventory window
type an item name
type a few letters of an item name
first item matching will be highlighted
first item matching will be highlighted
1 second(?) typing timeout  
1 second(??) typing timeout
 
=== Filters ===
 
=== Recent Items ===
default filter for recent items is everything since the last time you logged in.
 
Filters can be changed for both the inventory tab and the recent items tab. Filters are reset when you relog.
 
=== Sorting ===
sort order defaults to sort by date in descending order. This only affects items, and folders are always sorted alphabetically.
 
Sort order can be changed to alphabetically.
 
Sort order is saved session to session.
 
== Organizing Inventory (or drag and drop behavior) ==
 
=== Multi select items ===
shift-click
ctrl-click
 
Keyboard:
shift up-arrow
shift down-arrow
 
=== Moving Items ===
dragging onto scroll bars will scroll the inv [no longer works?]
 
dragging over closed folders auto opens them. folder will close again after drop.
 
after dropping in an open folder
 
dragging onto "recent items tab will open the recent items tab" [bug?]
 
=== Copying Items ===
 
=== Renaming Items ===
 
=== Changing item properies ===
 
=== Opening a second Inventory window ===
 
=== Closing all folders ===
 
== Deleting Inventory ==
Deleting an item via the UI or keyboard delete key moves the item to the Trash folder.
 
 
Inventory File menu > Empty Trash to remove the contents of the trash forever.
 
(Future implementations will automatically empty the trash)
 
 
 
== Object Inventory ==
any items with duplicate names in an object will be renamed by adding a number to the end name, even if it's a no-modify item
 
=== Drag rules ===
Esc will cancel a drag operation
 
dragging items onto another avatar or their name tag will give it to them
 
??dragging items onto avatars transparent attachment will not give the item to the av.
??Transparent is defined as 80%.
 
dragging an item over an object in world will show a selection silhouette around the object.
 
ctrl dragging a an item over an object will highlight the object, indicating the item will be put into the object contents.
 
ctrl-dragging a script onto an object will turn the script off.
 
dragging items onto an object will automatically put them into the root prim.
 
Ctrl-dragging will drop the item into the prim even if it's a child.
 
Dragging a no copy item from object contents to your inventory will pop up a warning that you will be removing(and not copying) the item from the object contents.
 
??you can multi select inventory items and drag them to an object's contents.
 
you can drag a folder of contents onto an object
 
You cannot multi select items in an object and drag them to inventory
 
Rezzing an object by dragging it from inventory into world will keep the object highlighted, but not selected, in your inventory. If you hit delete once, the in-world object will be deleted, if you hit delete a second time the item in your inventory will Not be deleted, because it's only highlighted.
 
== Inventory usability ==
=== Keyboard interaction ===
 
Hitting tab while focus is in the inventory will cycle focus between the search folder, the inventory tabs and the inventory contents (??what is the name of this portion of the window?).
 
Enter key operation:
* objects - will open properties panel
* everything else - view the item
 
Arrow keys:
* The up and down arrow keys will move focus up and down in the inventory.
** Pressing down while your cursor is in the search field will move focus to the "My Inventory" folder.
** Pressing up while the "My Inventory" folder is focused will move the cursor into the search field.
 
The right arrow key will open a folder.
 
The left arrow key will close a folder.
 
The Home key will jump the inventory to the top, but will not move the selection.
 
The End key will jump inventory to the bottom, but will not move the selection.


Selecting multiple items
The Page Up/Page Down keys will scroll up and down respectively, but will not move the selection.


Attaching items
=== Mouse interaction ===
Context menu


Drag and drop item on avatar.
Dragging items to the top or bottom of the inventory will scroll the inventory up or down.
Drag and drop category on avatar (see some other test script?)


Dragging items to the top of the inventory often inadvertantly opens the "Recent Items" tab.


if you have multiple inventories open close them all, and reopen inventory, the open folders will match that of the last inventory that was closed.


Inventory searching
== Metrics ==
Speed - how fast the inventory opens and loads.


Library folders
Responsiveness - time between clicking/dragging an inventory item to ground and the cursor switching from "not" to "allow drop" (this time seems to be increasing - may be related to sim data server load)


Predictability - Do you know what's going to happen when you release the mouse button?


Recent items tab
Safety - Do we help you avoid disaster?
sorting filters

Latest revision as of 12:34, 7 September 2007

The Functional Spec explains how a user interacts with a feature, and what results they can expect from the feature. Ideally, the UI will indicate what the user can expect to happen next. Use screenshots when appropriate.

General Description

What does this feature do? Allows the user to store items.

Interface Requirements

How does the user use/activate this feature? Clicking the Inventory button or hitting ctrl-i.

Performance Requirements

Will this feature affect:

  • Client FPS? YES. Large inventories take longer to draw (perhaps this is fixed).
  • Simulator FPS? YES. Inventory is fetched from dataserver on the Simulator, so it may have a small effect on Simulator performance.
  • Database? YES. The dataserver fetches inventory from the Database.
  • Asset server? YES. Rezzing items reads from the Asset server. Creating inventory items writes to the Asset server.
  • Network load? YES. The inventory structure must be streamed to you. Rezzed or opened items must be streamed to you. Uploaded items must be streamed to the asset server.
  • Any other system? NO.

Design Constraints

  • Will this feature be unavailable on certain hardware? NO.
  • Is this feature consistent (similar look & feel) with other features? PARTIAL. Inventory has its own Menu, which is not accessible from the keyboard.
  • Is this feature well integrated (accessible when you need it, and in the place(s) you expect to find it)? YES.
  • Is this feature discoverable (newbie friendly)? PARTIAL. There's room for improvement.
  • Is this feature Safe, Predictable, and Responsive? YES.

Feature Dependencies

  • Features that this feature will affect

Attachments, Rezzing objects

  • Features that affect this feature

Upload Assets, Focus, Take, Take Copy


Security risks

  • Does this feature give access to something it should not? NO.

Feature Rules

The rules of the feature, organized in order of precedence. (eg. Rule 1 supersedes Rule 2, which supersedes Rule 3)

  • Object taken or returned into inventory go into their previous folder.
  • Returned object that have no previous folder will be put in the Lost and Found folder.
  • Accepted or uploaded assets of a certain type (eg. Clothing, Script, Animation) will go into a system folder of the same type.
  • Accepted categories will go into the Inventory folder.

Feature Usage

When appropriate, the feature will be laid out in chronological order, or in the order they are most likely to be used. (eg. Create a group, then add members, then deed land, ... kick members, leave group)



Inventory

Default inventory

A new user will have the following default inventory folders:

  • Animations
  • Body Parts
  • ??Calling Cards
  • Clothing
  • Gestures
  • Landmarks
  • ??Lost and Found
  • Notecards
  • Objects
  • Photo Album
  • Scripts
  • Sounds
  • Textures
  • ??Trash
  • Library

Adding Inventory

Uploading Assets

Creating objects in world and taking them

Create a new object, right click > take it, will remove it from the world and place it into your Objects folder.

Taking an item or a copy of an item that was originally rezzed from inventory will put the item back into its previous folder.

If you create an item on someone else's land and they may return it to you. Returned items go to the folder they were rezzed from. If the object never had a folder or that folder has been deleted, object is put "Lost and Found" folder.

Creating new items via context menu

Right click on a folder and click one of the following. New Folder New Script New Note New Gesture New Clothes New Body Parts The new item will be placed in the folder you right clicked.

- You may not create items in the Library. The Library is read-only.

Creating new items via Create menu

Click the Inventory Create menu, and choose one of the following. New Folder New Script New Note New Gesture New Clothes New Body Parts The new item will be automatically sorted into the appropriate system folder.

Creating Landmarks via World menu

World menu > Create Landmark Here

Creating Body parts and Clothing via Appearance mode

Create scripts via Object contents button

Automatic sorting into folders

Accepting inventory

Accepting inv item

Same for items received while offline


Accepting auto-opening inv item

Same for items received while offline


Accepting inv category

Same for items received while offline

Declining inventory

Declining inventory item

Same for items received while offline

Declining auto-opening inventory item

Same for items received while offline

Declining inventory category

Same for items received while offline

Automatic Declining inventory

While in busy mode

From muted person or item

From muted group

Window behavior when receiving inventory

received item from person or script received auto-open item from person or script received category from person or script received group notice attachment



Rezzing from inventory

Attaching from inventory

Context menu

You get a collision prompt when using "Attach to" option if there's an attachment already on that attach point. You do not get a warning if you drag and drop the attachment onto your Avatar or select Wear via context menu.

Dragging on your Avatar

Dragging a folder onto your Avatar

Dragging a Library folder onto your Avatar

Dragging items from the Library folder onto your avatar will place a copy of the items in your Inventory. (The acquired date will not be set on these objects. bug?)

Searching Inventory

Keyboard: ctrl-I toggles inventory open / closed (should it do anything other than hide it? close or open any folders?)

focus should be in the search field by default when inventory is opened

search for item

press return, where does focus go?

press up and down arrow keys, where does focus go?

press up and down arrow keys while search is loading & searching your inv, where does focus go?

press right and left arrow keys opens and closes folders

press tab

When searching, items matching the search, only items matching the search term and the folder the item resides in will be displayed.

Selecting a folder, then clearing the search field will keep the folder selected.

??Closing inventory, then reopening inventory will clear the search field and place the cursor in the sierch field.

??Pressing the down arrow while focus is in search field will move focus to inventory contents.

After accepting an inventory item, the system folder the item was sorted into will be opened, and the item will ??have tentative selection ??be highlighted. Opening the inventory at this point will scroll the inventory so the highlighted item is in view. When an item has ??highlight (eg. It is outlined, but the color of the item name is not inversed), ??pressing the down arrow key once will move select the item below it.

After accepting a category, the category is added as the last folder in your folder. (??bugs)The category is not sorted or highlighted. The next time you login, the category will be sorted alphabetically.


Visible item search (what's the name of this feature?)

cursor is in inventory tree area of inventory window type a few letters of an item name first item matching will be highlighted 1 second(??) typing timeout

Filters

Recent Items

default filter for recent items is everything since the last time you logged in.

Filters can be changed for both the inventory tab and the recent items tab. Filters are reset when you relog.

Sorting

sort order defaults to sort by date in descending order. This only affects items, and folders are always sorted alphabetically.

Sort order can be changed to alphabetically.

Sort order is saved session to session.

Organizing Inventory (or drag and drop behavior)

Multi select items

shift-click ctrl-click

Keyboard: shift up-arrow shift down-arrow

Moving Items

dragging onto scroll bars will scroll the inv [no longer works?]

dragging over closed folders auto opens them. folder will close again after drop.

after dropping in an open folder

dragging onto "recent items tab will open the recent items tab" [bug?]

Copying Items

Renaming Items

Changing item properies

Opening a second Inventory window

Closing all folders

Deleting Inventory

Deleting an item via the UI or keyboard delete key moves the item to the Trash folder.


Inventory File menu > Empty Trash to remove the contents of the trash forever.

(Future implementations will automatically empty the trash)


Object Inventory

any items with duplicate names in an object will be renamed by adding a number to the end name, even if it's a no-modify item

Drag rules

Esc will cancel a drag operation

dragging items onto another avatar or their name tag will give it to them

??dragging items onto avatars transparent attachment will not give the item to the av. ??Transparent is defined as 80%.

dragging an item over an object in world will show a selection silhouette around the object.

ctrl dragging a an item over an object will highlight the object, indicating the item will be put into the object contents.

ctrl-dragging a script onto an object will turn the script off.

dragging items onto an object will automatically put them into the root prim.

Ctrl-dragging will drop the item into the prim even if it's a child.

Dragging a no copy item from object contents to your inventory will pop up a warning that you will be removing(and not copying) the item from the object contents.

??you can multi select inventory items and drag them to an object's contents.

you can drag a folder of contents onto an object

You cannot multi select items in an object and drag them to inventory

Rezzing an object by dragging it from inventory into world will keep the object highlighted, but not selected, in your inventory. If you hit delete once, the in-world object will be deleted, if you hit delete a second time the item in your inventory will Not be deleted, because it's only highlighted.

Inventory usability

Keyboard interaction

Hitting tab while focus is in the inventory will cycle focus between the search folder, the inventory tabs and the inventory contents (??what is the name of this portion of the window?).

Enter key operation:

  • objects - will open properties panel
  • everything else - view the item

Arrow keys:

  • The up and down arrow keys will move focus up and down in the inventory.
    • Pressing down while your cursor is in the search field will move focus to the "My Inventory" folder.
    • Pressing up while the "My Inventory" folder is focused will move the cursor into the search field.

The right arrow key will open a folder.

The left arrow key will close a folder.

The Home key will jump the inventory to the top, but will not move the selection.

The End key will jump inventory to the bottom, but will not move the selection.

The Page Up/Page Down keys will scroll up and down respectively, but will not move the selection.

Mouse interaction

Dragging items to the top or bottom of the inventory will scroll the inventory up or down.

Dragging items to the top of the inventory often inadvertantly opens the "Recent Items" tab.

if you have multiple inventories open close them all, and reopen inventory, the open folders will match that of the last inventory that was closed.

Metrics

Speed - how fast the inventory opens and loads.

Responsiveness - time between clicking/dragging an inventory item to ground and the cursor switching from "not" to "allow drop" (this time seems to be increasing - may be related to sim data server load)

Predictability - Do you know what's going to happen when you release the mouse button?

Safety - Do we help you avoid disaster?