Skip to content
This repository has been archived by the owner on Apr 6, 2023. It is now read-only.

CoApp UI Workflow (draft)

ericschultz edited this page Feb 8, 2012 · 3 revisions

#CoApp UI Workflow ##Package ###Go to Package Screen

  1. User presses package name on its owning product screen

###Package Install (On package page of uninstalled package)

  1. 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
      1. Blocked packages are unblocked automatically
      2. 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

###Package Uninstall (On package page of installed package)

  1. 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
    • Package is not a dependency
      • User has install rights
        • Package is not blocked
          • Package uninstalls
        • Package is blocked but user has block rights
          1. Package automatically unblocks
          2. 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
      • User does not have install rights
        • User is asked if they would like to smart restart the program as admin

###Package Blocking (On package page of unblocked package)

  • User has block rights
    1. 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
    1. User clicks "Unblock”
      • Package is unblocked
  • 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
          1. Package and dependencies are automatically unblocked
          2. “Binary compatible” update installs
        • Package and dependencies are not blocked
          1. “Binary compatible” update installs
      • User does not have block rights AND the package and dependencies are not blocked
        1. “Binary compatible” update installs
      • User does not have block rights AND the package or a dependency is blocked
        1. User is asked if they would like to smart restart the program as admin
    • User does not have update rights or install rights
      1. User is asked if they would like to smart restart the program as admin
  • 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
    1. “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)

  1. User presses "Install"
    • User has install rights AND product and dependencies are not blocked
      1. 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
      1. 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
      1. User is asked if they would like to smart restart the program as admin

###Product Uninstall (On product page of installed product)

  1. User presses “Uninstall”
    • Product is a dependency
      1. User is notified of the dependent products
      2. User presses “Uninstall All”
        • User has block rights for all dependent products
          1. 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
          1. User is asked if they would like to smart restart the program as admin
    • Product is not a dependency
      • User has install rights
        • Product is not blocked
          1. Product uninstalls
        • Product is blocked but user has block rights
          1. Product automatically unblocks
          2. Product uninstalls
        • Product is blocked and use does not have block rights
          1. User is asked if they would like to smart restart the program as admin
      • User does not have install rights
        1. User is asked if they would like to smart restart the program as admin

###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
    1. User clicks “Unblock”
    2. 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
          1. Product and dependencies update
        • Product or a dependency is blocked
          1. Product and dependencies are automatically unblocked
          2. Product and dependencies update
      • User does not have blocking rights
        • Product and dependencies are not blocked
          1. Product and dependencies update
        • Product or a dependency is blocked
          1. User is asked if they would like to smart restart the program as admin
    • User does not have update rights (or install see question)
      1. User is asked if they would like to smart restart the program as admin
  • 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
      1. The updater downloads and installs updates in the background
    • CoApp not set to automatically update
      1. The updater adds an icon to the system tray or user starts the updater program manually
      2. User double clicks updater tray icon.
      3. CoApp Update opens saying products are available for update. (likely with all products selected for update?)
      4. 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.
      5. User presses “Install Updates”

##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

  1. User selects from relevant dropdown boxes and controls on search page

###Remove Rating/NSFW/etc. filter

  1. User presses the button corresponding to an applied filter

###Perform sort of search results

  1. User selects the type of sorting they’d like from the dropdown on search page

##Feeds

###View Feeds

  1. User clicks the Settings link on the top right of any screen
  2. User presses the Feeds link on the left side of the Settings screen
  3. Feeds panel displays on the right of the settings screen

###Remove Feed (on Settings screen, Feeds panel)

  1. User selects one of the feeds in the listbox
  2. User presses Remove
    • User had feed modification rights
      1. The feed is removed.
    • User does not have feed modifications rights
      1. User is asked if they would like to smart restart the program as admin

###Add Feed (on Settings screen, Feeds panel)

  1. User types the url of the feed in the Add A Feed textbox.
  2. User presses Add
    • User had feed modification rights
      1. The feed is removed.
    • User does not have feed modifications rights
      1. User is asked if they would like to smart restart the program as admin

##Policy

###View policy as it applies to the user

  1. User clicks the Settings link on the top right of any screen
  2. User presses the Permissions link on the left side of the Settings screen
  3. Permissions panel displays on the right of the settings screen

###Modify policy as it applies to the user (on Settings screen, Permissions pane)

  1. User changes the policy (the choices are to give the user permission all the time or only when the user is running as admin)
  2. User presses the Save button
    • User is running as administrator
      1. The policies are changed
    • User is not running as administrator
      1. User is asked if they would like to smart restart the program as admin

#Questions

  1. Which packages should a product uninstall actually uninstall? Latest? All?
  2. When a product is (un)blocked does that mean the LATEST package version of the product is (un)blocked? Any version?
  3. When a product is (un)blocked which package versions are (un)blocked?
  4. How does the concept of a packages being “current” interact with all of this?
  5. 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.

Clone this wiki locally