conceptualization of the slow moving mind
By basd on Jan 19, 2009 | In cloud computing
So, I was hacking on my copy of PHProjekt, which I use for as my basic PIM, tracking projects, client billing, calendaring and the like. This puts all this information available to my nearest web browser. Yay! I had to climb a conceptual mountain and it didn't come quickly to mind.
...
I wanted to address two issues: (a) how to more effectively link my client list to their documents, billing, email & websites; and (b) how to see more stuff on the screen at one time.
I had already created an addon that to manage contacts more effectively and drop the font down to font size 1.
As you know, php passes variables via the html address. So, it's easy to use links to execute a different part of the program.
The PHProjekt contacts table is set up with an entry for a url and two emails. They're "clickable" in the main contacts interface; and I also made the clickable in my addon. But, one url would only give me one link to "something". What something? Email folder? Client's website? My client's document database? Client's billing.
You see the problem. So, initially I thought to expand the table with new fields. But how do you anticipate how many fields you need? What about all the white space you are injecting into the table, via unused fields?
At last the slow moving mind made a connection: I needed to setup a relation to a second table that was simply a list of URLs tied to the client. Actually not to difficult to do, but first I had to think of it.
Now I can add all the links I want. Click on the client and I get the client's data -- and a list of "links." But the structure also instantly addressed a different problem: What if I need more telephone numbers or the like? In addition, the existing fields don't tell me what "tel1" actually is. But, in the new structure, I can just as easily entries such as "home: 999.999.9999" as an html url. Or an additional email.
The second issue was as perceptual as conceptual: I like nice, neat columns with headers on them. That would be the normal way of setting up the fields in a set of records, correct? But PHProjekt has all sorts of fields I don't even use; and many that are occasionally used. Does the entry have 1 telephone? Two? What do I really want to see?
Well, I want the main email on the screen, of course. I want to see the telephone numbers right away. So, I re-ordered everything from "most needed" to "least needed". That way, the stuff off the edge of the screen that needs scrolling is the lesser important. Then I took all the empty fields out.
This meant that a "column" did not hold consistent data, because some fields are filled in some records, but empty in others. Did I really want to do this? Then the column headers wouldn't tell me what was in the column!
After a bit of use, I realized this worked for me. Now the list is very compact, all the phone numbers are accessible, etc. And -- for any client, if I want more detail, I click on the client and get a full screen of info to just that client. Another click, I'm back to the (previously filtered) list.
I added a clickable link for "view" and one for "edit". Trade-off problem: takes up space, but I can get to either screen with one click. Remove the "edit" link and "edit" is one additional click after "view."
I decided it was more efficient to have the screen real estate, so I removed my [very clever, if I do say so] "edit" button. (BTW, I created "buttons" by using form buttons -- with no form!)
One last comment today for PHProjekt users/potential users. I'm not fond of the PHProjekt email interface. But, I created an addon that would plug in Squirrel Mail. It's part of my ISP package, but it's also available as an open source d/l.
Now, the trick I was chasing was how to retrieve my emails by client -- which is actually where all this programming started out. Once folders are created in Squirrel Mail, the link to the folder can be retrieved via a right click on the folder. That link could be put in the contact's url -- and voila, a clickable link to the client's emails. (Have to first "log in" Squirrel Mail, of course.)
But there were issues. It's a very long url and rather ugly to look at. The PHProjekkt url field was not big enough (at 80 char.). I first expanded it to accommodate -- but it was still ugly on screen.
So, when I made the expandable link list, I created a normal hyperlink setup, with a field for the link "name" and one for the actual url. So, my display shows a hyperlink called "email folder" and not the actual hyperlink.
Thank you for listening and have a pleasant tomorrow.
Trackback address for this post
Trackback URL (right click and copy shortcut/link location)
No feedback yet
| « another "songbird" comment | 8 days to kde 4.2 » |