[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[phpGroupWare-developers] linking items across applications
From: |
Sigurd Nes |
Subject: |
[phpGroupWare-developers] linking items across applications |
Date: |
Sat, 27 Oct 2007 10:53:44 +0200 |
User-agent: |
Thunderbird 2.0.0.6 (X11/20070914) |
Hi all,
As Dave already has announced - there is a project hosted in Norway to
develop phpGroupWare into a Facilities Management System. A lot of work
has been focused on the application "property".
At this stage we are looking into possibilities of linking items across
applications - some sort of "interlink" (there might be a better word
for it).
As an example - it would be nice to be able to link in projects from the
application "projects" as work performed with internal employees - as
opposed to work order from external vendors (which already is implemented).
I have used a similar approach within the app "property" - linking items
from the helpdesk with reports/requirements/orders.
So - is there a interest in the community to have this as a general
feature within the API?
My proposal (as it is used in property) is as follows:
The idea is to link from a location (the acl-location) within an
application as origin - to a corresponding destination.
origin <--> destination
For this I think we need a table "phpgw_interlink" (see attachment) to
hold the relations - and a new column in the table "phpgw_acl_location"
- let's call it "baselink"
phpgw_acl_location.baselink can hold the information on where to point
the link.
example:
The baselink for tts (the helpdesk) within property would be "uitts.view"
Any thoughts or better ideas ?
Regards
Sigurd
'phpgw_interlink' => array(
'fd' => array(
'origin_app' => array('type' =>
'varchar','precision' => '25','nullable' => False),
'origin_location' => array('type' =>
'varchar','precision' => '12','nullable' => False),
'origin_id' => array('type' =>
'int','precision' => '4','nullable' => False),
'destination_app' => array('type' =>
'varchar','precision' => '25','nullable' => False),
'destination_location' => array('type' =>
'varchar','precision' => '12','nullable' => False),
'destination_id' => array('type' =>
'int','precision' => '4','nullable' => False),
'user_id' => array('type' => 'int','precision'
=> '4','nullable' => True),
'entry_date' => array('type' =>
'int','precision' => '4','nullable' => True)
),
'pk' =>
array('origin_app','origin_location','origin_id','destination_app','destination_location','destination_id'),
'fk' => array(),
'ix' => array(),
'uc' => array()
),