-
Notifications
You must be signed in to change notification settings - Fork 24
CoApp UI Workflow (draft)
#CoApp UI Workflow ##Package ###Go to Package Screen
- User presses package name on its owning product screen
###Package Install (On package page of uninstalled package)
- User presses “Install”
- User has install rights AND package is not blocked AND
- Package and all dependencies install
- User has install rights AND package or dependencies is blocked AND user has rights to unblock all blocked packages
- Blocked packages are unblocked automatically
- Package and all dependencies install
- User does not have install rights *User is asked if they would like to smart restart the program as admin
- Package or dependencies are blocked AND the user does not have block rights for all blocked packages
- User is asked if they would like to smart restart the program as admin
- User has install rights AND package is not blocked AND
###Package Uninstall (On package page of installed package)
- User presses “Uninstall”
- Package is a dependency
- User is notified of the dependent package
- User presses “Uninstall All”
- User has block rights for all dependent packages
- This and all dependent packages uninstall
- User does not have block rights for all dependent packages AND some dependent packages are blocked
- User is asked if they would like to smart restart the program as admin
- User has block rights for all dependent packages
- User presses “Uninstall All”
- User is notified of the dependent package
- Package is not a dependency
- User has install rights
- Package is not blocked
- Package uninstalls
- Package is blocked but user has block rights
- Package automatically unblocks
- Package uninstalls
- Package is blocked and use does not have block rights
- User is asked if they would like to smart restart the program as admin
- Package is not blocked
- User does not have install rights
- User is asked if they would like to smart restart the program as admin
- User has install rights
- Package is a dependency
###Package Blocking (On package page of unblocked package)
- User has block rights
- User clicks “Block” 1.. Package is blocked
- User does not have block rights
- “Block” button is not visible
###Package Unblocking (On package page of blocked package)
- User has block rights
- User clicks "Unblock”
- Package is unblocked
- User clicks "Unblock”
- User does not have block rights
- "Unblock” button is not available
###Package Updating
- User clicks “Update” (on package page of an installed package with a “binary compatible” update)
- User has update rights or install rights
- User has blocking rights
- Package or dependencies are blocked
- Package and dependencies are automatically unblocked
- “Binary compatible” update installs
- Package and dependencies are not blocked
- “Binary compatible” update installs
- Package or dependencies are blocked
- User does not have block rights AND the package and dependencies are not blocked
- “Binary compatible” update installs
- User does not have block rights AND the package or a dependency is blocked
- User is asked if they would like to smart restart the program as admin
- User has blocking rights
- User does not have update rights or install rights
- User is asked if they would like to smart restart the program as admin
- User has update rights or install rights
- Package updater program finds that a “binary compatible” update is available for an installed package and the update package and its dependencies are not blocked
- “Binary compatible” update installs in background
##Product
###Go to Product Screen
- User presses product tile on search screen
- User presses product tile on Home page
- User presses product name in list of dependencies of another products screen
- User presses product tile on publisher screen
###Product Install (On product page of uninstalled product)
- User presses "Install"
- User has install rights AND product and dependencies are not blocked
- Latest version of package and all dependencies install
- User has install rights AND product or dependencies is blocked AND user has rights to unblock all blocked products
- Blocked products are unblocked automatically
- Latest version of package and all dependencies install
- User does not have install rights
- User is asked if they would like to smart restart the program as admin
- Product or dependencies are blocked AND the user does not have block rights for all blocked products
- User is asked if they would like to smart restart the program as admin
- User has install rights AND product and dependencies are not blocked
###Product Uninstall (On product page of installed product)
- User presses “Uninstall”
- Product is a dependency
- User is notified of the dependent products
- User presses “Uninstall All”
- User has block rights for all dependent products
- This and the latest packages for all dependent products uninstall
- User does not have block rights for all dependent products AND some dependent products are blocked
- User is asked if they would like to smart restart the program as admin
- User has block rights for all dependent products
- Product is not a dependency
- User has install rights
- Product is not blocked
- Product uninstalls
- Product is blocked but user has block rights
- Product automatically unblocks
- Product uninstalls
- Product is blocked and use does not have block rights
- User is asked if they would like to smart restart the program as admin
- Product is not blocked
- User does not have install rights
- User is asked if they would like to smart restart the program as admin
- User has install rights
- Product is a dependency
###Product Blocking (On product page of unblocked product) * User has block rights 1. User clicks “Block” 2. Product is blocked * User does not have block rights * "Block" button is not visible
###Product Unblocking (On product page of blocked product)
- User has block rights
- User clicks “Unblock”
- Product is unblocked
- User does not have block rights
- “Unblock” button is not available
###Product Updating
- User clicks “Update” (on product page of an installed product with an update)
- User has update rights (or install see questions)
- User has blocking rights
- Product and dependencies are not blocked
- Product and dependencies update
- Product or a dependency is blocked
- Product and dependencies are automatically unblocked
- Product and dependencies update
- Product and dependencies are not blocked
- User does not have blocking rights
- Product and dependencies are not blocked
- Product and dependencies update
- Product or a dependency is blocked
- User is asked if they would like to smart restart the program as admin
- Product and dependencies are not blocked
- User has blocking rights
- User does not have update rights (or install see question)
- User is asked if they would like to smart restart the program as admin
- User has update rights (or install see questions)
- Updater program finds that an update is available for an installed product and the update product and its dependencies are not blocked
- CoApp set to automatically update
- The updater downloads and installs updates in the background
- CoApp not set to automatically update
- The updater adds an icon to the system tray or user starts the updater program manually
- User double clicks updater tray icon.
- CoApp Update opens saying products are available for update. (likely with all products selected for update?)
- If user wants to change the products updated, they can click the link “X updates are available.” This takes them to a screen for selecting particular products.
- User presses “Install Updates”
- CoApp set to automatically update
##Searching ###Perform search of all products (get to search screen)
- User begins typing at any non-option page while not focused on a textbox
- User begins typing on category pages and presses “Search All”
- User presses “Search” on Home screen/all screens(?)
###Add Rating/NSFW/etc. filter
- User selects from relevant dropdown boxes and controls on search page
###Remove Rating/NSFW/etc. filter
- User presses the button corresponding to an applied filter
###Perform sort of search results
- User selects the type of sorting they’d like from the dropdown on search page
##Feeds
###View Feeds
- User clicks the Settings link on the top right of any screen
- User presses the Feeds link on the left side of the Settings screen
- Feeds panel displays on the right of the settings screen
###Remove Feed (on Settings screen, Feeds panel)
- User selects one of the feeds in the listbox
- User presses Remove
- User had feed modification rights
- The feed is removed.
- User does not have feed modifications rights
- User is asked if they would like to smart restart the program as admin
- User had feed modification rights
###Add Feed (on Settings screen, Feeds panel)
- User types the url of the feed in the Add A Feed textbox.
- User presses Add
- User had feed modification rights
- The feed is removed.
- User does not have feed modifications rights
- User is asked if they would like to smart restart the program as admin
- User had feed modification rights
##Policy
###View policy as it applies to the user
- User clicks the Settings link on the top right of any screen
- User presses the Permissions link on the left side of the Settings screen
- Permissions panel displays on the right of the settings screen
###Modify policy as it applies to the user (on Settings screen, Permissions pane)
- User changes the policy (the choices are to give the user permission all the time or only when the user is running as admin)
- User presses the Save button
- User is running as administrator
- The policies are changed
- User is not running as administrator
- User is asked if they would like to smart restart the program as admin
- User is running as administrator
#Questions
- Which packages should a product uninstall actually uninstall? Latest? All?
- When a product is (un)blocked does that mean the LATEST package version of the product is (un)blocked? Any version?
- When a product is (un)blocked which package versions are (un)blocked?
- How does the concept of a packages being “current” interact with all of this?
- Do update rights allow a user to update a product or just update to “binary compatible” packages?
#Glossary
Product – Represents the latest version of packages with a given name, architecture and public key token.
Smart restart – Restarts the program while keeping the current navigation stack intact.
Navigation stack – The stack of pages that keep history of locations the user has been. Primarily used for back button.