ManageIQ / manageiq-ui-classic

Classic UI of ManageIQ
Apache License 2.0
49 stars 360 forks source link

Policies wizard design #7075

Open himdel opened 4 years ago

himdel commented 4 years ago

There was a planned policies wizard, but looks like no issue was ever opened, moving info here.

Old UX feedback from 2018: http://talk.manageiq.org/t/ux-feedback-policies/3336

Step 1 is converting existing forms to react: https://github.com/ManageIQ/manageiq-ui-classic/pull/6296


Preliminary designs from https://docs.google.com/document/d/1Vnt-oOzwLOOKaFsxCauW9CJcHGdBUmcVLuKKXkfRa2s/edit

Overview

Policies is a commonly used feature in CloudForms, but currently is not very user friendly.

Our goal

Create a step by step guided flow that is easy to understand for CF user. Policies should be an easy to do task even for someone who doesn’t do much coding.

Current Pain Points

Very hard to understand the flow, it is like a puzzle that is hard to solve. Read the summit results to understand the pain points.

Resources

Prototype - https://marvelapp.com/75ihb1f/screen/58499282 Guided flow - Summit results - https://docs.google.com/presentation/d/1Prb6uOnGH2VCrQp0U2UXalUZWRDQ_Ha2Z5201sL7Ks4/edit#slide=id.g5a55b21844_0_0 Usability script from Summit - https://docs.google.com/document/d/1WeOfuHUm5hFez4ISrjbAgbjMfLg9tTx044Ar_G9WK7o/edit Previous Study at Foss North - https://docs.google.com/presentation/d/17MrQSoUIm9lI6yrdRI9R_DQNINQ0x12EDqOZSIkc99o/edit#slide=id.g57efb1baf2_1_4

himdel commented 4 years ago

Meeting Notes Oct 1 Kickoff with Martin P and Martin H

TODO: where to put this - a toolbar under Control > Explorer for now TODO: figure out which steps are required and which are not TODO: maybe per-step indicator of filled out/not TODO: clicking on individual steps, and in summary TODO: saving after each step surprising?

Oct 7

DB hierarchy:

(PP has many P, P has many C, E, P+E has(1/0?) Ac Ac (of type evaluate alerts) has many Al)

models + api collections:

policy profile MiqPolicySet /api/policy_profiles/
policy MiqPolicy /api/policies/
event MiqEvent? MiqEventDefinition? -/api/events/ (=definition)
condition Condition /api/conditions/
action MiqAction /api/policy_actions/
alert MiqAlertMiqAlertStatus?MiqAlertStatusAction? /api/alert_definitions/
(alert profile) MiqAlertSet /api/alert_definition_profiles/

MH questions:

what is this for? I can see how to add a new policy this way, is that it? (= No editing ever using the wizard?) (Should it be possible to use this to just assign an existing unchanged policy profile to a couple of new things?) no editing yet, could be phase 2 for now solving the case of adding 0 or 1 policy profiles, and 0 to multiple policies

question re policy profile list columns in https://marvelapp.com/75ihb1f/screen/58499284

policies, updated - should be easy

applied to - "5 vms", will need that info for the assign screen too

step 2 - the mock is limited to name, compliance/control, type (host/vm/…) - missing scope, notes, active (conditions&events later) Keep what’s in the current solution (+the types)

add multiple p - - possible in the mock, but how to map which is which for the following steps? (asked in https://marvelapp.com/75ihb1f/screen/58499288) WIP - terka is working on it :)

really go for full page wizard with popup modals for each form? why not put all the steps into ..steps :) may be problematic to have modals over modals, we'll see

question re checkboxes & which policies to show in https://marvelapp.com/75ihb1f/screen/58499287 show all the policies, checkbox means added to the profile

filtering conditons by policy type? https://marvelapp.com/75ihb1f/screen/58499288 yes

possibly summary should distinguish between things it just created and things that were just assigned? (not needed if we really save after each step) not needed, the summary should show what we're applying (=full current state) . events can't be created, step 4 shouldn't have the "add" button ok

actions need to be pluggable in the implementation, 14 kinds of action now ok

policies - default events? .. right now, creating a VM policy creates it with a "VM Compliance Check" event assigned to it - that should probably be reflected in the wizard https://github.com/ManageIQ/manageiq-ui-classic/blob/master/app/controllers/miq_policy_controller/policies.rb#L58-L63 the wizard should also do this - auto add a per kind event to every compliance policy

alerts .. "evaluate alerts" is a kind of action, no events otherwise - https://marvelapp.com/75ihb1f/screen/58499295 - should we magically autocreate such actions when alerts are added? Or make the tab inaccessible when no such action is present? (TODO, we'll see)

summary for existing profiles - all or just new? (https://marvelapp.com/75ihb1f/screen/58499297) show all of them

no alert profiles anywhere? correct, unrelated

policies, conditions and assignments (and alert profiles) go by type, but a policy profile can mix multiple types. Is that useful? yes, a profile applied to hosts applies its vm policies to vms under the host

policy profiles don't seem to show what they're assigned to anywhere (in existing ui), should they? Yes, we want that ability (assign as a separate screen can go in phase 2)

Oct 17 Went over mockups and discussed the order and details

image1 (^ "only show Alert step when you can add one" (=right action type))

image2

image3 (^ "4.. must choose from a list"; "policy 2 .. show but disabled") editing may need to explicitly warn user about which policies any change would affect (adding an alert to an existing action would affect the following policies using that action) vs copy

himdel commented 4 years ago

Cc @Fryguy , @Ashley-Johnson28 , @chessbyte , @h-kataria , @skateman

Materials for the policies redesign we dicsussed