New Invoice Dialog Box
Geert Janssens
janssens-geert at telenet.be
Wed Jan 20 09:25:48 EST 2010
On Saturday 16 January 2010, Derek Atkins wrote:
> Hi,
>
> Geert Janssens <janssens-geert at telenet.be> writes:
> > I certainly agree on the concept: protect the invoice metadata while
> > entering the invoice content.
> >
> > I do believe on the other hand this can also be achieved within one
> > single window:
> > * New invoice could immediately open the invoice, with the metadata
> > fields enabled for input.
> > * Add a "Done" or "Proceed" or whatever button to the metadata fields.
> > * Once clicked, disable the metadata fields (with visual feedback) and
> > shift focus to the ledger to enter invoice content.
> > * Keep the "Edit Invoice" button to allow changing the metadata later on.
> > * When clicked, re-enable the metadata fields (also with visual feedback)
> > and lock the ledger, until done is clicked again.
>
> I honestly think this would be more confusing to the average user than
> the current interface design. If you still need to have an 'edit'
> button then what have you saved? If all it does is change which section
> of the invoice window is editable, the next question would be "why not
> make it all editable all the time"?
>
> Also, what does the HIG say about this? If you have required
> information necessary before you can effectively enter data then I think
> the HIG does require it to be on separate pages, so you cannot get to
> stage 2 before you finish stage 1. You NEED to select the customer for
> the invoice before you can create the register because you need to know
> what default currency to use.
>
I agree I should probably first read up on the HIG before I can propose any
serious decisions (and I will for sure). On the other hand it's called
"Guidelines", which mean they are to be followed when they make sense in the
given context.
So the customer is the only information that is REQUIRED before you can create
the register. I'll keep that in mind for the future. It could be interesting
to try a design where only the customer is asked beforehand in a dialog.
> > With visual feedback I imagine changing the background color of either
> > the fields or the complete metadata block.
>
> EWWWWW!!! As a colorblind person I object to using color to signal
> information. There are too many people who cannot differentiate colors,
> and any colors you chose would potentially conflict with someone's ideal
> theme colors.
>
I seem to have hit a sensitive spot here. If so, I apologize.
But let me clarify. When I said changing the color, my first idea was to "dim"
the background of the fields from whatever it is now to grey. Isn't this a
common way to show a field is not active ?
There are other forms of visual feedback. I didn't elaborate as I only wanted
to present a concept, not a full detailed solution. For example, all text
fields could be changed into label fields when they're not editable.
Just to say that changing the color was just a (bad) example of indicating the
difference between an active field and and inactive field in some visual form.
> > The above is only a rough sketch of the idea. It obviously still needs
> > refining. And I'm aware it requires several often user-invisible changes
> > to the widgets used on the invoice window.
> >
> > This approach essentially integrates the dialog box into the invoice
> > window.
> >
> > Why would I want this ?
> > Mainly because my usage of GnuCash often involves repetitive invoice
> > creation (enter x invoices in a row). Every popup window that can be
> > avoided in such a workflow increases the efficiency.
> >
> > I don't think the use case where invoices are only occasionally entered
> > are negatively affected with such a change.
>
> I think the negative impact is more on confusing users and conflating
> invoice contents and invoice metadata into a single screen.
>
It all depends indeed on how strongly the invoice metadata should be
protected. I started questioning this during the discussion we have now,
though I don't have a conclusive answer yet. In a sense, I can perfectly live
with the idea that metadata is only protected as soon as the invoice is
posted. The invoice metadata is not fixed anyway before the invoice is posted.
Such a scenario would only ask for the Customer/Vendor/Employee in a dialog
box and have all other metadata freely editable in the main invoice window.
Until the invoice is posted, that is. And obviously, you wouldn't be allowed
to post the invoice unless the required metadata is there.
I know I'm risking the Wrath of Warlord with this suggestion ;). I'm not even
saying this is a good idea. I do believe though it's sometimes
useful/interesting to challenge the obvious. It leads to interesting new ideas
and concepts from time to time. So here I go, testing the traditional models
:)
Coming back on the level of confusion. I agree my original idea would cause
some confusion. This lead me to realize that that current invoice window ALSO
causes a lot of confusion: only the notes field and the Active field are
editable (which I just learned from you), yet all the fields display as if
they are as well. Only you can't. For me this meta data block gives in
inconsistent impression as it is now.
So whatever way it will evolve, I think the invoice window could use some
improvement. If it will be "No metadata editing in the main window", then all
the text fields should change into simple labels. At least then it's clear
beyond any doubt these fields are not supposed to be edited.
> Honestly, I think there are many other ways to make repetative invoice
> creation easier. I think the #1 task should be a "Duplicate Invoice"
> feature that let's you take an existing invoice (posted or not) and
> duplicate it. When you click the "Duplicate" button it would pop up
> the Edit Invoice window with the Customer/Job/Terms already filled in,
> and then it would copy the invoice line items to the new invoice once
> you accept that.
>
> Obviously you could change the target customer in this process if you
> want to duplicate an invoice to another customer.
>
> I think adding this feature would go a LONG way towards easing your task
> without making the entry more confusing.
>
Agreed this would be useful as well, especially for customer invoices and
employee voucher. It does less for vendor bills, at least in my businesses.
> Other things that would improve invoice entry:
>
> * Real Autocompletion. So it remembers other line-item entries from
> some other invoices and lets you autocomplete on them
> * Employee hourly rate lookups for 'Hours' entries
> * Actually implementing Invoice Templates / Scheduled Invoices. Having
> Invoice duplication would be a good start to this.
>
> I think all of these are features that would be extremely worthwhile,
> useful, and fit in the current design without adding to the confusion of
> data entry.
>
Agreed.
On the other hand, I'm not up to adding these features (yet). I'm still
learning the GC internals. Things that touch the interfaces only with some
higher level engine or query stuff, I can manage already. Going deeper is
quite a challenge and takes me considerably more time to learn...
> I'm glad you're interested in improving the business features.. It's
> been in long need of some love.
>
Heh, I've got the impression you and I are the only dev's using the business
features...
It itches enough though to scratch what I can. :)
Geert
More information about the gnucash-devel
mailing list