This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 267626

Summary: Usability issues with the TaskRepository portion of the Commit dialog
Product: ide Reporter: ivan <ivan>
Component: UIAssignee: issues@ide <issues>
Status: NEW ---    
Severity: normal    
Priority: P3    
Version: 8.2   
Hardware: PC   
OS: Linux   
Issue Type: DEFECT Exception Reporter:

Description ivan 2016-08-17 17:29:59 UTC
I suppose for developers who work with NB every day the quirks of this
process have been absorbed into habits but for someone who only periodically
works on NB, like the comet in the Karel Zeman movie, the quirks
can be frustrating.

The (hg) Commit dialog has an UpdateTask part which is used for
automatically updating a bug. But the UI is wonky and it took me forever
to figure it out. Here's a travelogue followed by concrete suggestions

- I have NetBeans as the TaskRepository. Is that the correct one?
  Looks like yes.
  Why does it say Tasks Not Bugs? Tasks are the TODO list that Tor added
  this has nothing to do with that.

- I paste a bugid into the Task field and press TAB but nothing happens.
  I thoughtlessly pressed Return and that committed my stuff :-(

- At one point something _did_ happen and it started connecting to the database
  but came back and said "Can't do it w/o a password - go register the
  password <there>".
  No button to conveniently take me <there>. I dismissed the error popup
  and went looking for <there> but couldn't find it.
  OK, so let's bring up the error again ... but no luck. See previous item.

- Restart NB.
  This time pasting a bugid works and I see "Search task repository ..."
  I'm thinking, shouldn't it say "Searching"? Then it dawns on me ... it's
  a button. A very wide button.
  So I press it and get the connection error popup.
  It mentions "Task Repositories view". Which doesn't exist.
  It should say "Task Repositories item under Services".

- Again pasting or pressing tab doesn't work.
  Ah! One needs to re-edit the bugid to get a "Search ..." button.
  I guess it's checking for property changes on Tab or paste and if it
  doesn't find any changes it won't do anything.

  Behaviour with Paste (X-style middle button) seems capricious.
  Sometimes it works (i.e. I get the "Search" button. Sometimes it doesn't.

  So see concrete suggestion at the end.

- I finally get my credentials in order via the Task Repositories item
  under Services but now it won't find any bugid's.
  Do I need to prefix the bugid with #? Doesn't help.
  The whole bug URL? No.

- Restart NB.
  This time when I press Search it brings up EditTaskRepository. I guess
  it wants my passwords so I oblige it.
  Then it brings up a (gnome) keyring password dialog which I Cancel.
      I didn't and don't want to use the keyring which is presumably why
      after NB restarts it's asking me for passwords again.
      That's expected.
  But it doesn't work. NB keeps popping up the EditTaskRepository dialog.
  I.e. NB doesn't take the Cancellation of the keyring password dialog
  as indication of "I don't want to use keyring".

  Maybe I need to press the Validate button in EditTaskRepository?
  Ah! it says can't connect ... but it could just a cycle ago!
  Try it via browser ... now I get "Account locked because of too many
  failed attempts".

  5 Minutes ... drum drum
  5 more minutes .... Arrr let me in.
  Say, is it _really_ 5 minutes or longer?

- Finally can login to bugzilla via web.

  To validate in EditTaskRepository
  - fill both password fields
  - ivan not
  I can validate in EditTaskRepository but then I get the keyring password
  dialog and round and round we go as before.

- I close the Commit dialog and reopen it.
  Now when I press the Search button doesn't popup EditTaskRepository or
  the keyring password dialog but my bugid's can't be found.
  Turns out I'm locked out again.

- OK, let's try _with_ the keyring.
  After a bunch of mucking I get in.
  And the format of the bugid is just the number. No #'s or URL's.

  The problem is that on previous attempts a "login disallowed" was
  presented as "search failed" and sent me off to look for the 
  wrong cause of the failure.

- So I tried to file a bug about all of the above but got this:

    The entered text was classified as SPAM or your account was added
    to a list of blacklisted users due to your malicious activity in
    the past. If you believe this happened in error, let us please know
    explaining what you try to achieve. Thanks for your understanding.

  I guess my multiple lockouts constitute the "malicious activity in the past"
  ... so the problems with this UI have "far-reaching" consequences.

Concrete suggestions:

- Add a real Search button under the Task field in the Commit dialog
  Make it always be enabled.

  If there's validation possible for the ID have the validator put out
  why the form of the ID is incorrect in a red label next to the button.

- Change the phrase "Task Repositories view" to "Task Repositories item
  under Services" in the connection failed dialog.

- Allow keyring-less operation. I.e. don't go into infinite loop if I
  Cancel my gnome keyring dialog.

- If login failed because of lockout don't say "search failed" say
  "login failed because of lockout" or if it's too hard to figure
  why just says "connection failed". "search failed" implies that 
  you type the wrong ID or something.

- In the EditTaskRepository dialog. Why do username and password appear
  Even when I use the keychain the one under HTTP Authentication doesn't
  seem to get remembered and is empty.
  The first password does seem to be remembered but is it remembered/sent
  in cleartext?

- Another oddity is this. Why do I even need to login/authenticate
  just to Search for a bug id? OTOH Admittedly if didn't then
  all of the above problems would've showed up at push time and maybe
  would've even be harder to deal with.

  Or maybe I don't need to check HTTP Authentication for queries but only
  if I'm modifying bugs?