[cvs] [Wiki] changed: HermesAddressBook

Chuck Hagenbuch chuck at horde.org
Sun Jan 20 22:52:30 UTC 2008


chuck  Sun, 20 Jan 2008 17:52:30 -0500

Modified page: http://wiki.horde.org/HermesAddressBook
New Revision:  1.7
Change log:  remove unnecessary hard breaks

@@ -2,57 +2,38 @@

 (or how to stop all my friends from being listed when creating a timesheet
entry)


-+++ Some insight on where Hermes (Time Tracking) gets it data for use
within the
-pulldowns menu (as well as invoices, etc)
++++ Some insight on where Hermes (Time Tracking) gets it data for use
within the pulldowns menu (as well as invoices, etc)

-Hermes requires a good working install of Turba (Address Book). This is
because Hermes
-needs an address book for the clients names. Go to {{Office -> Time
Tracking -> Enter
-Time -> Client}} to see what I am talking about. If you saw everyone in
your address book
-as an option, then you probably have your default Turba address book
selected (in Turba),
-annoying eh? My address books contain several hundred entries, causing that
 pulldown to
-look horrible.
+Hermes requires a good working install of Turba (Address Book). This is
because Hermes needs an address book for the clients names. Go to {{Office
-> Time Tracking -> Enter Time -> Client}} to see what I am talking about.
If you saw everyone in your address book as an option, then you probably
have your default Turba address book selected (in Turba), annoying eh? My
address books contain several hundred entries, causing that pulldown to look
horrible.

 Solution?  Create a separate address book for use by Hermes.

 +++ Step 1

-Let's create a new table that is exactly the same as the default address
book but with a
-different name. For the purposes of this document, I will use the name
hordeclientdb for
-the new database table. (This is assuming you are using a sql backend).
+Let's create a new table that is exactly the same as the default address
book but with a different name. For the purposes of this document, I will
use the name hordeclientdb for the new database table. (This is assuming you
are using a sql backend).

 ++++ 1a.  Create a new table.

-Go to {{turba/scripts/sql}} and copy the file that you used to create your
original Turba
-table.  So, assuming that you are using !MySQL, copy
{{turba_objects.mysql.sql}} to
-something like {{turba_clients.mysql.sql}}.  Edit the new file,
-{{turba_clients.mysql.sql}} and change all entries that have
{{turba_objects}} and change
-them with the new name, {{turba_clients}}. You should encounter three
instances of
-{{turba_objects}}, one for the {{CREATE TABLE}}, another for a {{CREATE
INDEX}}, and the
-last for a {{GRANT}} commands.
+Go to {{turba/scripts/sql}} and copy the file that you used to create your
original Turba table.  So, assuming that you are using !MySQL, copy
{{turba_objects.mysql.sql}} to something like {{turba_clients.mysql.sql}}. 
Edit the new file, {{turba_clients.mysql.sql}} and change all entries that
have {{turba_objects}} and change them with the new name, {{turba_clients}}.
You should encounter three instances of {{turba_objects}}, one for the
{{CREATE TABLE}}, another for a {{CREATE INDEX}}, and the last for a
{{GRANT}} commands.

-Save your file and create the table.  I.e., in !MySQL do {{mysql -p <
-turba_clients.mysql.sql}}
-Assuming you've had no errors, continue to step 1b.
+Save your file and create the table.  I.e., in !MySQL do {{mysql -p <
turba_clients.mysql.sql}}. Assuming you've had no errors, continue to step
1b.

 ++++ 1b.  Edit  {{turba/config/sources.php}}.

 Add entries identical to the original table, leaving the original intact.

-There is a bit of a cheat you can do in SQL (it has to be a recent version
of MySQL if
-that is what you are using, eg. 5.x, maybe 4.x will do it) to get existing
timeslice
-clients into your new table, I am not sure if Chuck will like it though ;-)
+There is a bit of a cheat you can do in SQL (it has to be a recent version
of MySQL if that is what you are using, eg. 5.x, maybe 4.x will do it) to
get existing timeslice clients into your new table, I am not sure if Chuck
will like it though ;-)

 <pre>
 insert into turba_clients
 SELECT * FROM turba_objects WHERE object_id IN (
 select clientjob_id FROM hermes_timeslices
 );
 </pre>

-It will fall down if you use the above 'sql script' method, and your
turba_clients table
-has had any extra fields added to it though, so you must make sure they are
the same.
+It will fall down if you use the above 'sql script' method, and your
turba_clients table has had any extra fields added to it though, so you must
make sure they are the same.

 Another cheat to make sure they are the same, combined with the above is:

 <pre>
@@ -74,61 +55,41 @@
 </code>

 (Look over the rest of the entries for the new table, ensuring that it is
readable, etc.)

-This new source must be made 'browseable' (set the element 'browse' =>
true) otherwise
-the underlying search for 'all entries' will fail, and you'll get "There
are no clients
-which you have access to" instead of a drop-down list of clients when you
stop the clock
-on a timeslice. (Kev Green).
+This new source must be made 'browseable' (set the element 'browse' =>
true) otherwise the underlying search for 'all entries' will fail, and
you'll get "There are no clients which you have access to" instead of a
drop-down list of clients when you stop the clock on a timeslice. (Kev
Green).

 +++ Step 2

-Now tell Hermes which address book to use.  Using an Administrator enabled
login, go to
-{{Administration -> Setup -> Address Book (turba) -> name of client address
book}} In the
-field above, enter the name of the database you wish to use, we used
{{hordeclientdb}}.
+Now tell Hermes which address book to use.  Using an Administrator enabled
login, go to {{Administration -> Setup -> Address Book (turba) -> name of
client address book}}. In the field above, enter the name of the database
you wish to use, we used {{hordeclientdb}}.

-Populate the new table with just the names and addresses for your clients,
within Turba
-as you would any addressbook entry.
+Populate the new table with just the names and addresses for your clients,
within Turba as you would any addressbook entry.

 Permission your users to see/use this new database.

 Result? you should now have a nicely trimmed selection list.

-+++ Alternatively, if you are using Turba 2.1 or higher and are using
shared address
-books, you can do this:
-For this example, we are using shares on a source called localsql and want
to create a
-shared, client address book called Our Clients.
+++ Alternate solution
+
+If you are using Turba 2.1 or higher and are using shared address books,
you can follow these steps.  For this example, we are using shares on a
source called localsql and want to create a shared, client address book
called Our Clients.

 +++ Step 1

-Create a new shared address book.  If you already have a shared address
book created for
-you client list, skip to step 2.
+Create a new shared address book.  If you already have a shared address
book created for your client list, skip to step 2.


-**1a.** Log in to Turba as the account that you want to be the owner of the
shared
-address book.
-**1b.** Click on {{My Address Books}},  choose a name for the new address
book (Our
-Clients in this example).
-**1c.** Choose the new address book (Our Clients) in the {{Edit Address
Books}} section,
-and click on {{Edit Permissions}}.  Set permissions appropriate to your
needs.
+**1a.** Log in to Turba as the account that you want to be the owner of the
shared address book.
+**1b.** Click on {{My Address Books}},  choose a name for the new address
book (Our Clients in this example).
+**1c.** Choose the new address book (Our Clients) in the {{Edit Address
Books}} section, and click on {{Edit Permissions}}.  Set permissions
appropriate to your needs.

 +++ Step 2

-While logged on as an administrator, go to {{Administration -> !DataTree}}
and expand the
-{{horde.shares.turba}} branch.  Expand the branch for your shared source (
localsql in
-this example) and locate the entry for the address book we just created.
+While logged on as an administrator, go to {{Administration -> !DataTree}}
and expand the {{horde.shares.turba}} branch.  Expand the branch for your
shared source ( localsql in this example) and locate the entry for the
address book we just created.

+**Turba 2.2 and up:** Shares are no longer hierarchical in nature, so you
will not see the source type as described above.  You will only see a list
containing an entry for every Turba share.

-**Turba 2.2 and up:** Shares are no longer hierarchical in nature, so you
will not see
-the source type as described above.  You will only see a list containing an
entry for
-every Turba share.
+Now, the tricky part.  If you have a fairly large user base,  you will most
likely have to browse through a good number of entries.  Most of the entries
will be your user's default address books, these will be named after the
user.  What you are looking for is an entry such as 
{{82e8f032c1ab043b5efaa4fde50653d2}}.  These are user created address books.
 In our example, the one we are looking for will have something like this
when you expand it:

-Now, the tricky part.  If you have a fairly large user base,  you will most
likely have
-to browse through a good number of entries.  Most of the entries will be
your user's
-default address books, these will be named after the user.  What you are
looking for is
-an entry such as  {{82e8f032c1ab043b5efaa4fde50653d2}}.  These are user
created address
-books.  In our example, the one we are looking for will have something like
this when you
-expand it:
 <code>
 Array ( )
 Array (
    [0] => Array (
@@ -158,19 +119,13 @@
 and paste if you do so.

 +++ Step 3

-Go to the {{Administration -> Setup -> Address Book (turba)}} and fill the
following in
-to the Name of Client Addressbook field:
+Go to the {{Administration -> Setup -> Address Book (turba)}} and fill the
following in to the Name of Client Addressbook field:

 {{localsql:82e8f032c1ab043b5efaa4fde50653d2}}

-That's the source name (localsql) followed by a colon, followed by the uid
of the address
-book we want to use.
-
-**Turba 2.2 and up:** You no longer should include the source type in the
name.  For the
-above example, the correct value to enter in the Name of Client Addressbook
field would
-be {{82e8f032c1ab043b5efaa4fde50653d2}}.
+That's the source name (localsql) followed by a colon, followed by the uid
of the address book we want to use.

-Your shared client address book should now be visible in Hermes, without
having to create
-an entirely seperate sql source.
+**Turba 2.2 and up:** You no longer should include the source type in the
name.  For the above example, the correct value to enter in the Name of
Client Addressbook field would be {{82e8f032c1ab043b5efaa4fde50653d2}}.

+Your shared client address book should now be visible in Hermes, without
having to create an entirely seperate sql source.


More information about the cvs mailing list