You'll want to hack the addrbook files under <zimbra_src>/ZimbraWebClient/WebRoot/
js/zimbraMail/abook
The best way to learn this code is to thru a debugger such as Venkman. For example, place a breakpoint on ZmContactListController's "show" method and step thru the code.
- ZmContact holds all the contact data.
- ZmContactList holds all the contacts (a list of ZmContact's)
- ZmContactView has code to edit or create a new contact
- ZmContactSplitView and ZmContactCardsView is what you see when viewing contacts (ZmContactsBaseView is their base class).
Once you make any changes, you'll want to redeploy a development build (vs. production) of the web client (you are doing this on a test machine, right?). Do this by running "ant deploy" in the ZimbraWebClient folder to redeploy the entire project (i.e. deploying for the first time) or "ant dev-sync" to just copy the files that were modified (i.e. every subsequent time you make any additional changes).
I have to warn you, this wont be easy as there are many other factors involved beyond the scope of this post. Not to mention, you are risking incompatibility with future versions of ZCS.
Goodluck.