Inventory Functional Spec

From Second Life Wiki
Jump to navigation Jump to search

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

Bold text=== 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?