Commit 082e196760d1ada114d4cf68440ce2b2c6e4fb68

Authored by Neil Blakey-Milner
1 parent c596bfc4

Add link type for document links to describe the relationship

Submitted by:	Marcel Berteler (pluk77)
SF Tracker:	1013935
SF Tracker:	971712


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3370 c91229c3-7414-0410-bfa2-8a42b809f60b
config/siteMap.inc
... ... @@ -132,6 +132,8 @@ $default->siteMap->addPage("systemAdministration", "/presentation/lookAndFeel/kn
132 132  
133 133 $default->siteMap->addPage("browseAdministration", "/presentation/lookAndFeel/knowledgeTree/administration/browsemanagement/editBrowserBL.php", "Administration", SysAdmin, _("Browse Management"), true, 15);
134 134  
  135 +$default->siteMap->addPage("docLinkManagement", "/presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/listLinkTypesBL.php", "Administration", SysAdmin, _("Link Type Management"), true, 16);
  136 +
135 137 $default->siteMap->addSectionColour("Administration", "th", "056DCE");
136 138 $default->siteMap->addSectionColour("Administration", "td", "6699FF");
137 139  
... ... @@ -260,4 +262,12 @@ $default->siteMap->addDefaultPage("addComment", "/presentation/lookAndFeel/knowl
260 262  
261 263 $default->siteMap->addSectionColour("Discussion Threads", "td", "BDDFE0");
262 264 $default->siteMap->addSectionColour("Discussion Threads", "th", "57AFAE");
  265 +
  266 +// Document link management
  267 +$default->siteMap->addPage("listLinkTypes", "/presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/listLinkTypesBL.php", "Administration", SysAdmin, "List Link Types", false);
  268 +$default->siteMap->addPage("addLinkType", "/presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/addLinkTypeBL.php", "Administration", SysAdmin, "Add A Link Type", false);
  269 +$default->siteMap->addPage("addLinkTypeSuccess", "/presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/addLinkTypeSuccess.php", "Administration", SysAdmin, "Add A Link Type Success ", false);
  270 +$default->siteMap->addDefaultPage("editLinkType", "/presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/editLinkTypeBL.php", "Administration", SysAdmin, _("Edit Link Type Properties"), false);
  271 +$default->siteMap->addDefaultPage("removeLinkType", "/presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/removeLinkTypeBL.php", "Administration", SysAdmin, _("Remove a Link Type"), false);
  272 +
263 273 ?>
... ...
config/tableMappings.inc
... ... @@ -111,4 +111,6 @@ $default->time_unit_lookup_table = "time_unit_lookup";
111 111 $default->archive_restoration_table = "archive_restoration_request";
112 112 $default->status_table = "status_lookup";
113 113 $default->search_permissions_table = "search_document_user_link";
114   -?>
115 114 \ No newline at end of file
  115 +$default->document_link_types_table = "document_link_types";
  116 +$default->upgrades_table = "upgrades";
  117 +?>
... ...
lib/documentmanagement/DocumentLink.inc
... ... @@ -34,7 +34,8 @@ class DocumentLink extends KTEntity {
34 34 var $iParentDocumentID;
35 35 /** document title name */
36 36 var $iChildDocumentID;
37   -
  37 + /** type of link */
  38 + var $iLinkTypeID;
38 39  
39 40 /**
40 41 * Default constructor
... ... @@ -43,12 +44,13 @@ class DocumentLink extends KTEntity {
43 44 * @param Child document primary key
44 45 *
45 46 */
46   - function DocumentLink($iNewParentDocumentID, $iNewChildDocumentID) {
  47 + function DocumentLink($iNewParentDocumentID, $iNewChildDocumentID, $iLinkTypeID) {
47 48 //object not created yet
48 49 global $default;
49 50 $this->iId = -1;
50 51 $this->iParentDocumentID = $iNewParentDocumentID;
51 52 $this->iChildDocumentID = $iNewChildDocumentID;
  53 + $this->iLinkTypeID = $iLinkTypeID;
52 54 }
53 55  
54 56 /**
... ... @@ -98,10 +100,25 @@ class DocumentLink extends KTEntity {
98 100 $this->iChildDocumentID = $iNewValue;
99 101 }
100 102  
  103 + /**
  104 + * Get the primary key of the link type
  105 + */
  106 + function getLinkTypeID() {
  107 + return $this->iLinkTypeID;
  108 + }
  109 +
  110 + /**
  111 + * Set the primary key of the link type
  112 + */
  113 + function setLinkTypeID($iNewValue) {
  114 + $this->iLinkTypeID = $iNewValue;
  115 + }
  116 +
101 117 function _fieldValues () {
102 118 return array(
103 119 'parent_document_id' => $this->iParentDocumentID,
104 120 'child_document_id' => $this->iChildDocumentID,
  121 + 'link_type_id' => $this->iLinkTypeID,
105 122 );
106 123 }
107 124  
... ...
lib/documentmanagement/LinkType.inc 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Represents the type of link between documents
  6 + *
  7 + * Copyright (c) 2005 Jam Warehouse http://www.jamwarehouse.com
  8 + *
  9 + * This program is free software; you can redistribute it and/or modify
  10 + * it under the terms of the GNU General Public License as published by
  11 + * the Free Software Foundation; either version 2 of the License, or
  12 + * (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program; if not, write to the Free Software
  21 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22 + *
  23 + * @version $Revision$
  24 + * @author Neil Blakey-Milner, Jam Warehouse (Pty) Ltd, South Africa
  25 + */
  26 +
  27 +require_once(KT_DIR . '/lib/ktentity.inc');
  28 +
  29 +class LinkType extends KTEntity {
  30 + var $sName;
  31 + var $sDescription;
  32 +
  33 + function LinkType($sName, $sDescription) {
  34 + $this->iId = -1;
  35 + $this->sName = $sName;
  36 + $this->sDescription = $sDescription;
  37 + }
  38 +
  39 + function getDescription() {
  40 + return $this->sDescription;
  41 + }
  42 +
  43 + function setDescription($sNewValue) {
  44 + $this->sDescription = $sNewValue;
  45 + }
  46 +
  47 + function getName() {
  48 + return $this->sName;
  49 + }
  50 +
  51 + function setName($sNewValue) {
  52 + $this->sName = $sNewValue;
  53 + }
  54 +
  55 + function _fieldValues () {
  56 + return array(
  57 + 'name' => $this->sName,
  58 + 'description' => $this->sDescription,
  59 + );
  60 + }
  61 +
  62 + function _table () {
  63 + global $default;
  64 + return $default->document_link_types_table;
  65 + }
  66 +
  67 + function getList($sWhereClause = null) {
  68 + return KTEntityUtil::getList(Link::_table(), 'LinkType', $sWhereClause);
  69 + }
  70 +
  71 + function &get($id) {
  72 + $sQuery = "SELECT id, name, description FROM " . LinkType::_table() . " WHERE id = ?";
  73 + $aParams = array($id);
  74 + $res = DBUtil::getOneResult(array($sQuery, $aParams));
  75 + if (PEAR::isError($res)) {
  76 + return $res;
  77 + }
  78 + if (is_null($res)) {
  79 + // XXX: No such key exception type
  80 + return $res;
  81 + }
  82 + $oLinkType =& new LinkType($res['name'], $res['description']);
  83 + $oLinkType->iId = $res['id'];
  84 + return $oLinkType;
  85 + }
  86 +}
  87 +
  88 +function &linktypecreateFromArray($aParameters) {
  89 + $oLinkType = & new LinkType($aParameters[0], $aParameters[1], $aParameters[2], $aParameters[3], $aParameters[4], $aParameters[5], $aParameters[6], $aParameters[7], $aParameters[8], $aParameters[9], $aParameters[10]);
  90 + return $oLinkType;
  91 +}
  92 +
  93 +
  94 +?>
... ...
presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/addLinkTypeBL.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Add a document link type
  6 + *
  7 + * Copyright (c) 2005 Jam Warehouse http://www.jamwarehouse.com
  8 + *
  9 + * This program is free software; you can redistribute it and/or modify
  10 + * it under the terms of the GNU General Public License as published by
  11 + * the Free Software Foundation; either version 2 of the License, or
  12 + * (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program; if not, write to the Free Software
  21 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22 + *
  23 + * @version $Revision$
  24 + * @author Neil Blakey-Milner, Jam Warehouse (Pty) Ltd, South Africa
  25 + */
  26 +
  27 +require_once("../../../../../config/dmsDefaults.php");
  28 +
  29 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCreate.inc");
  30 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
  31 +
  32 +require_once("$default->fileSystemRoot/presentation/Html.inc");
  33 +require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/administration/adminUI.inc");
  34 +require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  35 +
  36 +require_once("$default->fileSystemRoot/lib/documentmanagement/LinkType.inc");
  37 +require_once("addLinkTypeUI.inc");
  38 +
  39 +if (!checkSession()) {
  40 + die("Session failed");
  41 +}
  42 +
  43 +KTUtil::extractGPC('fLinkID');
  44 +
  45 +if ($submitted) {
  46 + // include the page template (with navbar)
  47 +
  48 + $sToRender = renderHeading(_("Add Link Type"));
  49 + $sToRender .= "<TABLE BORDER=\"0\" CELLSPACING=\"2\" CELLPADDING=\"2\">\n";
  50 + $sToRender .= "<tr>\n";
  51 + if ($fLinkID != -1) {
  52 + $sToRender .= "<td><b>" . _("New Link Type Added SuccessFully") . "!<b></td></tr>\n";
  53 + } else {
  54 + $sToRender .= "<td><b>" . _("Addition Unsuccessful") . "</b>...</td>\n";
  55 + $sToRender .= "</tr>\n";
  56 + $sToRender .= "<tr></tr>\n";
  57 + $sToRender .= "<tr></tr>\n";
  58 + $sToRender .= "<tr>\n";
  59 + $sToRender .= "<td>Please Check Name and Rank for duplicates!</td>\n";
  60 + $sToRender .= "</tr>\n";
  61 + $sToRender .= "<tr>\n";
  62 + $sToRender .="<td>&nbsp;</td>\n";
  63 + }
  64 +
  65 + $sToRender .= "<tr></tr>\n";
  66 + $sToRender .= "<tr></tr>\n";
  67 + $sToRender .= "<tr></tr>\n";
  68 + $sToRender .= "<tr></tr>\n";
  69 + $sToRender .= "<tr>\n";
  70 + $sToRender .= "<td align = right><a href=\"$default->rootUrl/control.php?action=addLinkType\">" . KTHtml::getBackButton() . "</a></td>\n";
  71 + $sToRender .= "</tr>\n";
  72 + $sToRender .= "</table>\n";
  73 +
  74 + $oPatternCustom = & new PatternCustom();
  75 + $oPatternCustom->setHtml($sToRender);
  76 + $main->setCentralPayload($oPatternCustom);
  77 + $main->render();
  78 +} else {
  79 + $oPatternCustom = & new PatternCustom();
  80 + $oPatternCustom->setHtml(getPage());
  81 + $main->setCentralPayload($oPatternCustom);
  82 + $main->setFormAction("$default->rootUrl/presentation/lookAndFeel/knowledgeTree/create.php?fRedirectURL=".urlencode("$default->rootUrl/control.php?action=addLinkTypeSuccess&fLinkID="));
  83 + $main->setHasRequiredFields(true);
  84 + $main->render();
  85 +}
  86 +
  87 +?>
... ...
presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/addLinkTypeSuccess.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Add a document link type success page.
  6 + *
  7 + * Copyright (c) 2005 Jam Warehouse http://www.jamwarehouse.com
  8 + *
  9 + * This program is free software; you can redistribute it and/or modify
  10 + * it under the terms of the GNU General Public License as published by
  11 + * the Free Software Foundation; either version 2 of the License, or
  12 + * (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program; if not, write to the Free Software
  21 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22 + *
  23 + * @version $Revision$
  24 + * @author Neil Blakey-Milner, Jam Warehouse (Pty) Ltd, South Africa
  25 + */
  26 +
  27 +require_once("../../../../../config/dmsDefaults.php");
  28 +
  29 +require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  30 +
  31 +KTUtil::extractGPC('fLinkID');
  32 +
  33 +if(checkSession()) {
  34 +
  35 + // include the page template (with navbar)
  36 + $Center .= renderHeading(_("Add Link Type"));
  37 + $Center .= "<TABLE BORDER=\"0\" CELLSPACING=\"2\" CELLPADDING=\"2\">\n";
  38 + $Center .= "<tr>\n";
  39 + if ($fLinkID != -1) {
  40 + $Center .= "<td><b>" . _("New Link Type Added Successfully") . "!<b></td></tr>\n";
  41 + } else {
  42 + $Center .= "<td><b>" . _("Addition Unsuccessful") . "</b>...</td>\n";
  43 + $Center .= "</tr>\n";
  44 + $Center .= "<tr></tr>\n";
  45 + $Center .= "<tr></tr>\n";
  46 + $Center .= "<tr>\n";
  47 + $Center .= "<td>Please Check Name and Rank for duplicates!</td>\n";
  48 + $Center .= "</tr>\n";
  49 + $Center .= "<tr>\n";
  50 + $Center .="<td>&nbsp;</td>\n";
  51 + }
  52 +
  53 + $Center .= "<tr></tr>\n";
  54 + $Center .= "<tr></tr>\n";
  55 + $Center .= "<tr></tr>\n";
  56 + $Center .= "<tr></tr>\n";
  57 + $Center .= "<tr>\n";
  58 + $Center .= "<td align = right><a href=\"$default->rootUrl/control.php?action=addLinkType\"><img src=\"" . KTHtml::getBackButton() . "\" border = \"0\" /></a></td>\n";
  59 + $Center .= "</tr>\n";
  60 + $Center .= "</table>\n";
  61 +
  62 + $oPatternCustom = & new PatternCustom();
  63 + $oPatternCustom->setHtml($Center);
  64 + $main->setCentralPayload($oPatternCustom);
  65 + $main->render();
  66 +}
  67 +?>
... ...
presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/addLinkTypeUI.inc 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Add a document link type UI functions.
  6 + *
  7 + * Copyright (c) 2005 Jam Warehouse http://www.jamwarehouse.com
  8 + *
  9 + * This program is free software; you can redistribute it and/or modify
  10 + * it under the terms of the GNU General Public License as published by
  11 + * the Free Software Foundation; either version 2 of the License, or
  12 + * (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program; if not, write to the Free Software
  21 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22 + *
  23 + * @version $Revision$
  24 + * @author Neil Blakey-Milner, Jam Warehouse (Pty) Ltd, South Africa
  25 + */
  26 +// get add pages
  27 +function getPage() {
  28 +
  29 + global $default;
  30 +
  31 + $aDisplayRowNames = array(_("Name") . ":", _("Description") . ":");
  32 + $aParameterNumbers = array(0,1);
  33 + $aDisplayColumnTypes = array(1,1);
  34 + $aRequired = array(1,1);
  35 +
  36 + // create a text field that is required
  37 + $oPatternCreate = & new PatternCreate("LinkType", "documentmanagement/LinkType.inc",$aDisplayRowNames, $aParameterNumbers, $aDisplayColumnTypes, $aRequired);
  38 + $oPatternCreate->setUniqueName("linktype");
  39 +
  40 + $sToRender .= renderHeading(_("Add Link Type"));
  41 + $sToRender .= "<table>\n";
  42 + $sToRender .= "<tr>\n";
  43 + $sToRender .= "<tr>\n";
  44 + $sToRender .= "<td>" . $oPatternCreate->render() . "</td>\n";
  45 + $sToRender .= "</tr>\n";
  46 + $sToRender .= "<tr>\n";
  47 + $sToRender .= "</tr>\n";
  48 + $sToRender .= "<tr><td align = right><input type=\"image\" src =\"" . KTHtml::getAddButton() . "\" value=\"Submit\" border=\"0\"/>";
  49 + $sToRender .= getCancelButton("listLinkTypes") . "</td>\n";
  50 + $sToRender .= "</table>\n";
  51 +
  52 + return $sToRender;
  53 +}
  54 +
  55 + // TODO .. do a check if rank already taken...as well as do a check if name already exists when inserting
  56 + // if edition is successful print out success page
  57 +function getAddPageFail() {
  58 + global $default;
  59 +
  60 + $sToRender .= renderHeading(_("Add Link Type"));
  61 + $sToRender .= "<table>\n";
  62 + $sToRender .= "<tr><td><b>" . _("Addition Unsuccessful") . "</b></td></tr>\n";
  63 + $sToRender .= "<tr></tr>\n";
  64 + $sToRender .= "<tr></tr>\n";
  65 + $sToRender .= "<tr>\n";
  66 + $sToRender .= "<td></td><td align = right><a href=\"$default->rootUrl/control.php?action=addLinkType\">" . KTHtml::getBackButton() . "</a></td>\n";
  67 + $sToRender .= "</tr>\n";
  68 + $sToRender .= "</table>\n";
  69 +
  70 + return $sToRender;
  71 +}
  72 +?>
... ...
presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/editLinkTypeBL.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Edit a document link type.
  6 + *
  7 + * Copyright (c) 2005 Jam Warehouse http://www.jamwarehouse.com
  8 + *
  9 + * This program is free software; you can redistribute it and/or modify
  10 + * it under the terms of the GNU General Public License as published by
  11 + * the Free Software Foundation; either version 2 of the License, or
  12 + * (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program; if not, write to the Free Software
  21 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22 + *
  23 + * @version $Revision$
  24 + * @author Neil Blakey-Milner, Jam Warehouse (Pty) Ltd, South Africa
  25 + */
  26 +
  27 +require_once("../../../../../config/dmsDefaults.php");
  28 +
  29 +KTUtil::extractGPC('fLinkID', 'fLinkName', 'fDescription', 'fForStore');
  30 +
  31 +if (checkSession()) {
  32 + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
  33 + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc");
  34 + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
  35 +
  36 + require_once("$default->fileSystemRoot/presentation/Html.inc");
  37 + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  38 +
  39 + require_once("$default->fileSystemRoot/lib/documentmanagement/LinkType.inc");
  40 + require_once("editLinkTypeUI.inc");
  41 +
  42 +
  43 + $oPatternCustom = & new PatternCustom();
  44 +
  45 + if (isset($fForStore)){
  46 + $oLink = LinkType::get($fLinkID);
  47 + $oLink->setName($fLinkName);
  48 + $oLink->setDescription($fDescription);
  49 +
  50 + if ($oLink->update()) {
  51 + // if successfull print out success message
  52 + $oPatternCustom->setHtml(getEditPageSuccess());
  53 +
  54 + } else {
  55 + // if fail print out fail message
  56 + $oPatternCustom->setHtml(getEditPageFail());
  57 + }
  58 + } else if (isset($fLinkID)){
  59 + // post back on Link select from manual edit page
  60 + $oPatternCustom->setHtml(getEditPage($fLinkID));
  61 + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForStore=1");
  62 +
  63 +
  64 + } else {
  65 + // if nothing happens...just reload edit page
  66 + $oPatternCustom->setHtml(getEditPage(null));
  67 + $main->setFormAction($_SERVER["PHP_SELF"]);
  68 +
  69 + }
  70 + //render the page
  71 + $main->setCentralPayload($oPatternCustom);
  72 + $main->setHasRequiredFields(true);
  73 + $main->render();
  74 +}
  75 +?>
... ...
presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/editLinkTypeUI.inc 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Edit a document link type UI functions.
  6 + *
  7 + * Copyright (c) 2005 Jam Warehouse http://www.jamwarehouse.com
  8 + *
  9 + * This program is free software; you can redistribute it and/or modify
  10 + * it under the terms of the GNU General Public License as published by
  11 + * the Free Software Foundation; either version 2 of the License, or
  12 + * (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program; if not, write to the Free Software
  21 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22 + *
  23 + * @version $Revision$
  24 + * @author Neil Blakey-Milner, Jam Warehouse (Pty) Ltd, South Africa
  25 + */
  26 +
  27 +function getEditPage($iLinkID) {
  28 + global $default;
  29 + $oLink = null;
  30 + if (isset($iLinkID)) {
  31 + $oLink = LinkType::get($iLinkID);
  32 + } else {
  33 + $sHeading = _("Please select a Link") . ":";
  34 + }
  35 + $sToRender .= renderHeading(_("Edit Link Type"));
  36 + $sToRender .= "<table>\n";
  37 + $sToRender .= "<tr><td>$sHeading</td></tr>\n";
  38 + $sToRender .= "<tr>\n";
  39 + $sToRender .= "<td>" . _("Link Name") . ": </td><td>" . getLinkDisplay($oLink) . "</td>\n";
  40 + $sToRender .= "</tr>\n";
  41 + $sToRender .= "<tr>\n";
  42 + $sToRender .= "</tr>\n";
  43 + $sToRender .= "<tr>\n";
  44 +
  45 + // if a Link selected...show checkboxes
  46 + if (isset($iLinkID)) {
  47 + $sToRender .= "</tr>\n";
  48 + $sToRender .= "<tr>\n";
  49 + $sToRender .= "<td>" . _("Description") . ": </td><td>" . getDescr($oLink) . "</td>\n";
  50 + $sToRender .= "</tr>\n";
  51 + $sToRender .= "<tr>\n";
  52 + $sToRender .= "</tr>\n";
  53 + }
  54 +
  55 +
  56 + $sToRender .= "<tr>\n";
  57 + $sToRender .= "</tr>\n";
  58 + $sToRender .= "<td></td>" . getUpdateButton($oLink);
  59 + $sToRender .= getCancelButton($oLink);
  60 + $sToRender .= "</table>\n";
  61 +
  62 + $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n";
  63 + $sToRender .= "function validateForm(theForm) {\n";
  64 + $sToRender .= "\tif (!(validRequired(theForm.fLinkName, 'Link Name'))) {\n";
  65 + $sToRender .= "\t\treturn false;\n";
  66 + $sToRender .= "\t}\n";
  67 + $sToRender .= "\tif (!(validRequired(theForm.fDescription, 'Description'))) {\n";
  68 + $sToRender .= "\t\treturn false;\n";
  69 + $sToRender .= "\t}\n";
  70 + $sToRender .= "return true;\n}\n";
  71 + $sToRender .= "//-->\n</script>\n\n";
  72 +
  73 + return $sToRender;
  74 +}
  75 +
  76 +// if edition is successful print otu success page
  77 +function getEditPageSuccess() {
  78 + global $default;
  79 +
  80 + $sToRender .= renderHeading(_("Edit Link Type"));
  81 + $sToRender .= "<b>Success!</b>\n";
  82 + $sToRender .= "<table>\n";
  83 + $sToRender .= "<br></br>\n";
  84 + $sToRender .= "<tr></tr>\n";
  85 + $sToRender .= "<tr><td>" . _("The Link Type was successfully modified") . "</td></tr>\n";
  86 + $sToRender .= "<tr></tr>\n";
  87 + $sToRender .= "<tr></tr>\n";
  88 + $sToRender .= "<tr>\n";
  89 + $sToRender .= "<td></td><td align = right><a href=\"$default->rootUrl/control.php?action=listLinkTypes\">" . generateImage(KTHtml::getBackButton()) . "</a></td>\n";
  90 + $sToRender .= "</tr>\n";
  91 + $sToRender .= "</table>\n";
  92 +
  93 +
  94 + return $sToRender;
  95 +}
  96 +
  97 +
  98 +// gets the page if edition fails
  99 +function getEditPageFail() {
  100 + global $default;
  101 +
  102 + $sToRender .= renderHeading(_("Edit Link Type"));
  103 + $sToRender .= "<b>" . _("Success") . "!</b>\n";
  104 + $sToRender .= "<table>\n";
  105 + $sToRender .= "<br></br>\n";
  106 + $sToRender .= "<tr></tr>\n";
  107 + $sToRender .= "<tr><td>" . _("The Link Type modification failed") . "!</td></tr>\n";
  108 + $sToRender .= "<tr></tr>\n";
  109 + $sToRender .= "<tr></tr>\n";
  110 + $sToRender .= "<tr>\n";
  111 + $sToRender .= "<td></td><td align = right><a href=\"$default->rootUrl/control.php?action=listLinkTypes\">" . generateImage(KTHtml::getBackButton()) . "</a></td>\n";
  112 + $sToRender .= "</tr>\n";
  113 + $sToRender .= "</table>\n";
  114 +
  115 +
  116 + return $sToRender;
  117 +}
  118 +
  119 +// show the list box when no Link selected
  120 +// then shows a text box with the Link's name
  121 +function getLinkDisplay($oLink) {
  122 + global $default;
  123 + if (!isset($oLink)) {
  124 + $oPatternListBox = & new PatternListBox($default->document_links_types_table, "name", "id", "fLinkID");
  125 + //$oPatternListBox->setIncludeDefaultValue(true);
  126 + $oPatternListBox->setPostBackOnChange(true);
  127 + return $oPatternListBox->render();
  128 + } else {
  129 + return "<input type=\"hidden\" name=\"fLinkID\" value=\"" . $oLink->iId . "\">\n" .
  130 + "<input size = \"40\" type=\"text\" name=\"fLinkName\" value=\"" . $oLink->getName() . "\">";
  131 + }
  132 +
  133 +}
  134 +
  135 +
  136 +// returns the checkbox ticked or unticked
  137 +function getDescr($oLink) {
  138 + if (!isset($oLink)) {
  139 + return "";
  140 + } else {
  141 + return "<input size = \"40\" type=\"text\" name=\"fDescription\" value=\"" . $oLink->getDescription() . "\">";
  142 + }
  143 +}
  144 +
  145 +
  146 +// gets the updatebutton when a Link is selected
  147 +function getUpdateButton($oLink) {
  148 + global $default;
  149 + if (isset($oLink)) {
  150 + return "<td align = right><input type=\"image\" src =\"" . KTHtml::getUpdateButton() . "\" value=\"submit\" border=\"0\"/></td>\n";
  151 + }
  152 +}
  153 +
  154 +// gets the cancel button when a Link is selected
  155 +function getCancelButton($oLink) {
  156 + global $default;
  157 + if (!isset($oLink)) {
  158 + //return "<td align = right><a href=\"$default->rootUrl/control.php?action=LinkManagement\"><img src =\"$default->graphicsUrl/widgets/cancel.gif\" value=\"cancel\" /></a></td>\n";
  159 + } else {
  160 + return "<td align = right><a href=\"$default->rootUrl/control.php?action=listLinkTypes\">" . generateImage(KTHtml::getCancelButton()) . "</a></td>\n";
  161 + }
  162 +}
  163 +?>
... ...
presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/listLinkTypesBL.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * List document link types.
  6 + *
  7 + * Copyright (c) 2005 Jam Warehouse http://www.jamwarehouse.com
  8 + *
  9 + * This program is free software; you can redistribute it and/or modify
  10 + * it under the terms of the GNU General Public License as published by
  11 + * the Free Software Foundation; either version 2 of the License, or
  12 + * (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program; if not, write to the Free Software
  21 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22 + *
  23 + * @version $Revision$
  24 + * @author Neil Blakey-Milner, Jam Warehouse (Pty) Ltd, South Africa
  25 + */
  26 +
  27 +require_once("../../../../../config/dmsDefaults.php");
  28 +
  29 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCreate.inc");
  30 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
  31 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc");
  32 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternBrowsableSearchResults.inc");
  33 +require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
  34 +
  35 +require_once("$default->fileSystemRoot/presentation/Html.inc");
  36 +require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  37 +require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/administration/adminUI.inc");
  38 +
  39 +require_once("listLinkTypesUI.inc");
  40 +
  41 +if (checkSession()) {
  42 + $oPatternCustom = & new PatternCustom();
  43 + $oPatternCustom->setHtml(getPage());
  44 + $main->setCentralPayload($oPatternCustom);
  45 + $main->setFormAction($_SERVER['PHP_SELF']);
  46 + $main->render();
  47 +}
  48 +?>
... ...
presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/listLinkTypesUI.inc 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * List document link types UI functions.
  6 + *
  7 + * Copyright (c) 2005 Jam Warehouse http://www.jamwarehouse.com
  8 + *
  9 + * This program is free software; you can redistribute it and/or modify
  10 + * it under the terms of the GNU General Public License as published by
  11 + * the Free Software Foundation; either version 2 of the License, or
  12 + * (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program; if not, write to the Free Software
  21 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22 + *
  23 + * @version $Revision$
  24 + * @author Neil Blakey-Milner, Jam Warehouse (Pty) Ltd, South Africa
  25 + */
  26 +
  27 +function getLinkTypes() {
  28 + global $default;
  29 + $sQuery = "SELECT id as LinkID, name as LinkName, description as LinkDescr, " .
  30 + "'Edit', 'Delete' " .
  31 + "FROM " . $default->document_link_types_table . " " .
  32 + "ORDER BY name";
  33 +
  34 + $aColumns = array("LinkName", "LinkDescr", "Edit", "Delete");
  35 + $aColumnNames = array("Linktype Name","Description", "Edit", "Delete");
  36 + $aColumnTypes = array(1,1,3,3);
  37 + $aDBColumnArray = array("LinkID");
  38 + $aQueryStringVariableNames = array("fLinkID");
  39 +
  40 + $aHyperLinkDescr = array( 2=> "$default->rootUrl/control.php?action=editLinkType",
  41 + 3=> "$default->rootUrl/control.php?action=removeLinkType");
  42 +
  43 +
  44 + $oSearchResults = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnNames, "100%", $aHyperLinkDescr,$aDBColumnArray,$aQueryStringVariableNames);
  45 + $oSearchResults->setDisplayColumnHeadings(true);
  46 + return $oSearchResults->render() ;
  47 +}
  48 +
  49 +function getPage() {
  50 + global $default;
  51 + $sToRender .= renderHeading(_("Link Types Management"));
  52 +
  53 + // add user link
  54 + $sToRender .= getAddLink("addLinkType", "Add A Link Type");
  55 + $sToRender .= getLinkTypes();
  56 + return $sToRender;
  57 +}
  58 +?>
... ...
presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/removeLinkTypeBL.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Remove a document link type.
  6 + *
  7 + * Copyright (c) 2005 Jam Warehouse http://www.jamwarehouse.com
  8 + *
  9 + * This program is free software; you can redistribute it and/or modify
  10 + * it under the terms of the GNU General Public License as published by
  11 + * the Free Software Foundation; either version 2 of the License, or
  12 + * (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program; if not, write to the Free Software
  21 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22 + *
  23 + * @version $Revision$
  24 + * @author Neil Blakey-Milner, Jam Warehouse (Pty) Ltd, South Africa
  25 + */
  26 +require_once("../../../../../config/dmsDefaults.php");
  27 +
  28 +KTUtil::extractGPC('fLinkID', 'fLinkName', 'fForDelete');
  29 +
  30 +if (checkSession()) {
  31 + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
  32 + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableListFromQuery.inc");
  33 + require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
  34 +
  35 + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
  36 + require_once("$default->fileSystemRoot/presentation/Html.inc");
  37 +
  38 + require_once("$default->fileSystemRoot/lib/documentmanagement/LinkType.inc");
  39 + require_once("removeLinkTypeUI.inc");
  40 +
  41 + $oPatternCustom = & new PatternCustom();
  42 +
  43 + // get main page
  44 + if (isset($fLinkID)) {
  45 +
  46 + $oPatternCustom->setHtml(getDeletePage($fLinkID));
  47 + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForDelete=1");
  48 +
  49 + // get delete page
  50 + } else {
  51 + $oPatternCustom->setHtml(getDeletePage(null));
  52 + $main->setFormAction($_SERVER["PHP_SELF"]);
  53 + }
  54 +
  55 + // if delete entry
  56 + if (isset($fForDelete)) {
  57 + $oLink = LinkType::get($fLinkID);
  58 + $oLink->setName($fLinkName);
  59 +
  60 + if ($oLink->delete()) {
  61 + $oPatternCustom->setHtml(getDeleteSuccessPage());
  62 +
  63 + } else {
  64 + $oPatternCustom->setHtml(getDeleteFailPage());
  65 + }
  66 + }
  67 +
  68 + $main->setCentralPayload($oPatternCustom);
  69 + $main->render();
  70 +}
  71 +?>
... ...
presentation/lookAndFeel/knowledgeTree/administration/doclinkmanagement/removeLinkTypeUI.inc 0 → 100644
  1 +<?php
  2 +/**
  3 + * $Id$
  4 + *
  5 + * Remove document link type UI functions.
  6 + *
  7 + * Copyright (c) 2005 Jam Warehouse http://www.jamwarehouse.com
  8 + *
  9 + * This program is free software; you can redistribute it and/or modify
  10 + * it under the terms of the GNU General Public License as published by
  11 + * the Free Software Foundation; either version 2 of the License, or
  12 + * (at your option) any later version.
  13 + *
  14 + * This program is distributed in the hope that it will be useful,
  15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 + * GNU General Public License for more details.
  18 + *
  19 + * You should have received a copy of the GNU General Public License
  20 + * along with this program; if not, write to the Free Software
  21 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22 + *
  23 + * @version $Revision$
  24 + * @author Neil Blakey-Milner, Jam Warehouse (Pty) Ltd, South Africa
  25 + */
  26 +
  27 +// gets the delete stuff
  28 +function getDeletePage($iLinkID) {
  29 + global $default;
  30 + $oLink = null;
  31 + if (isset($iLinkID)) {
  32 + $oLink = LinkType::get($iLinkID);
  33 + $sHeading .= "<b>" . _("Are you sure you wish to memove this Link Type?") . ":</b>\n";
  34 + } else {
  35 + $sHeading .= _("Please select a Link Type") . ":";
  36 + }
  37 +
  38 + $sToRender .= renderHeading(_("Remove Document Link Type"));
  39 + $sToRender .= "<table>\n";
  40 + $sToRender .= "<tr><td colspan=\"2\">$sHeading</td></tr>\n";
  41 + $sToRender .= "<tr>\n";
  42 + $sToRender .= "<td>Link Name: </td><td>" . getLinkDisplay($oLink) . "</td>\n";
  43 + $sToRender .= "</tr>\n";
  44 + $sToRender .= "<tr>\n";
  45 + $sToRender .= "</tr>\n";
  46 + $sToRender .= "<tr>\n";
  47 + $sToRender .= "<td>" . getDescr($oLink) . "</td>\n";
  48 + $sToRender .= "</tr>\n";
  49 + $sToRender .= "<tr>\n";
  50 + $sToRender .= "</tr>\n";
  51 + $sToRender .= "<tr>\n";
  52 + $sToRender .= "</tr>\n";
  53 + $sToRender .= "<tr><td/>" . getDeleteButton($oLink) . "</tr>\n";
  54 + $sToRender .= "</table>\n";
  55 +
  56 + return $sToRender;
  57 +}
  58 +
  59 +// get successfully deletion page
  60 +function getDeleteSuccessPage() {
  61 +
  62 + global $default;
  63 +
  64 + $sToRender .= renderHeading(_("Remove Document Link Type"));
  65 + $sToRender .= "<TABLE BORDER=\"0\" CELLSPACING=\"2\" CELLPADDING=\"2\">\n";
  66 + $sToRender .= "<tr>\n";
  67 + $sToRender .= "<td><b>" . _("Document Link Type successfully removed") . "!</b></td>\n";
  68 + $sToRender .= "</tr>\n";
  69 + $sToRender .= "<tr></tr>\n";
  70 + $sToRender .= "<tr></tr>\n";
  71 + $sToRender .= "<tr></tr>\n";
  72 + $sToRender .= "<tr></tr>\n";
  73 + $sToRender .= "<tr>\n";
  74 + $sToRender .= "<td align = right><a href=\"$default->rootUrl/control.php?action=listLinkTypes\">" . generateImage(KTHtml::getBackButton()) . "</a></td>\n";
  75 + $sToRender .= "</tr>\n";
  76 + $sToRender .= "</table>\n";
  77 +
  78 + return $sToRender;
  79 +}
  80 +
  81 +// get deletion failed page
  82 +function getDeleteFailPage() {
  83 +
  84 + global $default;
  85 +
  86 + $sToRender .= renderHeading(_("Remove Document Link Type"));
  87 + $sToRender .= "<TABLE BORDER=\"0\" CELLSPACING=\"2\" CELLPADDING=\"2\">\n";
  88 + $sToRender .= "<tr>\n";
  89 + $sToRender .= "<td><b>" . _("Deletion failed") . "!</b></td>\n";
  90 + $sToRender .= "</tr>\n";
  91 + $sToRender .= "<tr></tr>\n";
  92 + $sToRender .= "<tr></tr>\n";
  93 + $sToRender .= "<tr><td>" . _("Please ensure that all document links from this type have been removed") . ".</td></tr>\n";
  94 + $sToRender .= "<tr></tr>\n";
  95 + $sToRender .= "<tr></tr>\n";
  96 + $sToRender .= "</tr>\n";
  97 + $sToRender .= "<tr><td align = right><a href=\"$default->rootUrl/control.php?action=listLinkTypes\">" . generateImage(KTHtml::getBackButton()) . "</a></td></tr>\n";
  98 + $sToRender .= "</table>\n";
  99 +
  100 + return $sToRender;
  101 +}
  102 +
  103 +// show listbox...or the text name
  104 +function getLinkDisplay($oLink) {
  105 + global $default;
  106 + if (!isset($oLink)) {
  107 + $oPatternListBox = & new PatternListBox($default->quicklinks_table, "name", "id", "fLinkID");
  108 + $oPatternListBox->setIncludeDefaultValue(true);
  109 + $oPatternListBox->setPostBackOnChange(true);
  110 + return $oPatternListBox->render();
  111 + } else {
  112 + return "<input type=\"hidden\" name=\"fLinkID\" value=\"" . $oLink->iId . "\">\n" .
  113 + "<b>" . $oLink->getName() . "</b>";
  114 + }
  115 +}
  116 +
  117 +// show check box
  118 +function getDescr($oLink) {
  119 + if (!isset($oLink)) {
  120 + return "";
  121 + } else {
  122 + return _("Description") . ": </td><td>" . $oLink->getDescription();
  123 + }
  124 +}
  125 +
  126 +// show delete button
  127 +function getDeleteButton($oLink) {
  128 + global $default;
  129 + if (isset($oLink)) {
  130 + return "<td colspan=\"2\" align=\"right\"><input type=\"image\" src=\"" . KTHtml::getDeleteButton() . "\" value=\"submit\" border=\"0\"/>\n".
  131 + "<a href=\"$default->rootUrl/control.php?action=listLinks\">" . generateImage(KTHtml::getCancelButton()) . "</a></td>\n";
  132 + }
  133 +}
  134 +?>
... ...
presentation/lookAndFeel/knowledgeTree/documentmanagement/addDocumentLinkBL.php
... ... @@ -31,13 +31,14 @@
31 31  
32 32 require_once("../../../../config/dmsDefaults.php");
33 33  
34   -KTUtil::extractGPC('fDocumentID', 'fForStore', 'fTargetDocumentID');
  34 +KTUtil::extractGPC('fDocumentID', 'fForStore', 'fTargetDocumentID', 'fLinkTypeID');
35 35  
36 36 if (checkSession()) {
37 37 require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc");
38 38 require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentLink.inc");
39 39 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc");
40 40 require_once("$default->fileSystemRoot/lib/security/Permission.inc");
  41 + require_once("$default->fileSystemRoot/lib/linktypes/LinkType.inc");
41 42 require_once("$default->fileSystemRoot/presentation/Html.inc");
42 43 require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc");
43 44 require_once("documentUI.inc");
... ... @@ -48,7 +49,7 @@ if (checkSession()) {
48 49 //user has permission to link this document to another
49 50 if (isset($fForStore)) {
50 51 //create a new document link
51   - $oDocumentLink = & new DocumentLink($fDocumentID, $fTargetDocumentID);
  52 + $oDocumentLink = & new DocumentLink($fDocumentID, $fTargetDocumentID, $fLinkTypeID);
52 53 if ($oDocumentLink->create()) {
53 54 controllerRedirect("viewDocument", "fDocumentID=$fDocumentID&fShowSection=linkedDocuments");
54 55 } else {
... ...
presentation/lookAndFeel/knowledgeTree/documentmanagement/addDocumentLinkUI.inc
... ... @@ -41,6 +41,10 @@ function getPage($iDocumentID) {
41 41 //for netscape 4.7 do this
42 42 $sToRender .= "<td>" . _("Document to link") . "</td><td><input type=\"text\" value=\"\" name=\"fTargetDocument\" onblur=\"disable(document.MainForm.fTargetDocument);\" /><input type=\"button\" value=\"Browse\" onClick=\"disable(document.MainForm.fTargetDocument);newWindow('" . generateControllerUrl("templateBrowse") . "','window2')\"></td>\n";
43 43 }
  44 + $sToRender .= "<tr>";
  45 + $sToRender .= "<td>Link Type</td><td>".getLinkTypesList($name="fLinkTypeID")."</td>\n";
  46 + $sToRender .= "</tr>\n";
  47 +
44 48 $sToRender .= "</tr>\n";
45 49 $sToRender .= "<tr>\n";
46 50 $sToRender .= "<td><table><tr><td><input type=\"image\" src=\"" . KTHtml::getUpdateButton() . "\" border=\"0\"/></td><td><a href=\"" . $default->rootUrl . "/control.php?action=viewDocument&fDocumentID=$iDocumentID\"><img src=\"" . KTHtml::getCancelButton() . "\" border=\"0\"/></a></td></tr></table>\n";
... ... @@ -70,4 +74,20 @@ function getBrowseJavaScript() {
70 74 $sToRender .= "//--></script>\n";
71 75 return $sToRender;
72 76 }
  77 +
  78 +function getLinkTypesList($name="", $selected="") {
  79 + $sToRender = "\n<select name=\"$name\">";
  80 + $objects = LinkType::getList();
  81 + for ($x=0; $x<count($objects); $x++){
  82 + $sToRender .="<option value=\"";
  83 + $sToRender .= $objects[$x]->iId;
  84 + $sToRender .="\">";
  85 + $sToRender .= $objects[$x]->sName;
  86 + $sToRender .="</option>";
  87 + }
  88 +
  89 + $sToRender .= "</select>";
  90 + return $sToRender;
  91 +}
  92 +
73 93 ?>
... ...
presentation/lookAndFeel/knowledgeTree/documentmanagement/viewUI.inc
... ... @@ -297,16 +297,18 @@ function renderNonEditableDocumentRouting($oDocument) {
297 297 function renderEditableLinkedDocuments($oDocument) {
298 298 global $default;
299 299  
300   - /*ok*/ $sQuery = array("SELECT D.id AS child_document_id, D.name, DL.id as document_link_id, DL.parent_document_id AS parent_document_id, 'Unlink' AS unlink " .
  300 + /*ok*/ $sQuery = array("SELECT D.id AS child_document_id, D.name, DL.id as document_link_id, " .
  301 + "DL.parent_document_id AS parent_document_id, DLT.name AS link_type, 'Unlink' AS unlink " .
301 302 "FROM $default->documents_table AS D INNER JOIN $default->document_link_table AS DL ON D.id = DL.child_document_id " .
  303 + "INNER JOIN $default->document_link_types_table AS DLT ON DL.link_type_id = DLT.id " .
302 304 "WHERE DL.parent_document_id = ?", $oDocument->getID());
303 305  
304   - $aColumns = array("name", "unlink");
305   - $aColumnHeaders = array(_("Document"));
306   - $aColumnTypes = array(3,3);
  306 + $aColumns = array("name", "link_type", "unlink");
  307 + $aColumnHeaders = array(_("Document"), _("Document Link Type"));
  308 + $aColumnTypes = array(3,3,3);
307 309 $aDBColumnArray = array("parent_document_id", "child_document_id","document_link_id", "child_document_id");
308 310 $aQueryStringVariableNames = array("fParentDocumentID","fChildDocumentID", "fDocumentLinkID", "fDocumentID");
309   - $aLinkURLs = array(0=>"$default->rootUrl/control.php?action=viewDocument", 1=>"$default->rootUrl/control.php?action=removeDocumentLink");
  311 + $aLinkURLs = array(0=>"$default->rootUrl/control.php?action=viewDocument", 2=>"$default->rootUrl/control.php?action=removeDocumentLink");
310 312  
311 313 $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "500", $aLinkURLs, $aDBColumnArray, $aQueryStringVariableNames);
312 314 $oPatternTableSqlQuery->setTableHeading(_("Linked documents"));
... ...
sql/mysql/install/data.sql
... ... @@ -97,6 +97,7 @@ INSERT INTO document_fields VALUES (1, &#39;Category&#39;, &#39;STRING&#39;, 1, NULL);
97 97 -- Dumping data for table `document_link_types`
98 98 --
99 99  
  100 +INSERT INTO document_link_types VALUES (0, 'Default', 'Default link type');
100 101  
101 102 --
102 103 -- Dumping data for table `document_subscriptions`
... ... @@ -644,6 +645,7 @@ INSERT INTO zseq_document_link VALUES (1);
644 645 -- Dumping data for table `zseq_document_link_types`
645 646 --
646 647  
  648 +INSERT INTO zseq_document_link_types VALUES(2);
647 649  
648 650 --
649 651 -- Dumping data for table `zseq_document_subscriptions`
... ...
sql/mysql/install/structure.sql
... ... @@ -211,7 +211,7 @@ CREATE TABLE document_link (
211 211 id int(11) NOT NULL default '0',
212 212 parent_document_id int(11) NOT NULL default '0',
213 213 child_document_id int(11) NOT NULL default '0',
214   - link_type_id int(11) default NULL,
  214 + link_type_id int(11) NOT NULL default '0',
215 215 UNIQUE KEY id (id)
216 216 ) TYPE=InnoDB;
217 217  
... ...