Commit 02db75330a01c05fc7f0c719c72a2b842044b299

Authored by michael
1 parent 3b006136

changed to use switched divs


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2168 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/documentmanagement/viewUI.inc
1 <?php 1 <?php
2 /** 2 /**
3 -* documentViewUI.php  
4 -* Contains HTML information required to build the document view page.  
5 -* Will be used by documentViewBL.php  
6 -*  
7 -* Variables expected:  
8 -* o $fDocumentID Primary key of document to view  
9 -*  
10 -*  
11 -* @author Rob Cherry, Jam Warehouse (Pty) Ltd, South Africa  
12 -* @date 21 January 2003  
13 -* @package presentation.lookAndFeel.knowledgeTree.documentManager  
14 -*/ 3 + * $Id$
  4 + *
  5 + * Contains HTML information required to build the document view page.
  6 + * Will be used by documentViewBL.php
  7 + *
  8 + * Variables expected:
  9 + * o $fDocumentID Primary key of document to view
  10 + *
  11 + *
  12 + * @author Rob Cherry, Jam Warehouse (Pty) Ltd, South Africa
  13 + * @date 21 January 2003
  14 + * @package presentation.lookAndFeel.knowledgeTree.documentmanagement
  15 + */
15 16
16 -function renderDocumentPath($oDocument) { 17 +function renderDocumentPath($oDocument, $bDisplayActions) {
17 global $default; 18 global $default;
18 $sSectionName = $default->siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"]))); 19 $sSectionName = $default->siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"])));
19 - $sTDBGColour = $default->siteMap->getSectionColour($sSectionName, "td");  
20 - $sDocumentPath = displayFolderPathLink(Folder::getFolderPathAsArray($oDocument->getFolderID()), Folder::getFolderPathNamesAsArray($oDocument->getFolderID()), "$default->rootUrl/control.php?action=browse") . " > ";  
21 - $sDocumentPath .= "<a href=\"$default->rootUrl/presentation/lookAndFeel/knowledgeTree/documentmanagement/viewBL.php?fDocumentID=" . $oDocument->getID() . "&fForInlineView=1\">" . $oDocument->getName() . "</a>";  
22 - return "<table border=0 cellpadding=\"5\" width = 100%><tr><td bgcolor=\"$sTDBGColour\">$sDocumentPath</td></tr></table>\n"; 20 + $sTDBGColour = $default->siteMap->getSectionColour($sSectionName, "td");
  21 + if ($bDisplayActions) {
  22 + $sDocumentPath = displayFolderPathLink(Folder::getFolderPathAsArray($oDocument->getFolderID()), Folder::getFolderPathNamesAsArray($oDocument->getFolderID()), "$default->rootUrl/control.php?action=browse") . " > ";
  23 + $sDocumentPath .= "<a onClick=\"alert('This will view a copy of the document current in the DMS. Any changes to this file will not be managed in the DMS.'); return true;\" href=\"" . generateControllerUrl("viewDocument", "fDocumentID=" . $oDocument->getID() . "&fForInlineView=1") . "\">" . $oDocument->getName() . "</a>";
  24 + //$sDocumentPath .= generateControllerLink("viewDocument", "fDocumentID=" . $oDocument->getID() . "&fForInlineView=1", $oDocument->getName());
  25 + } else {
  26 + $sDocumentPath = $oDocument->getDisplayPath();
  27 + }
  28 + return "<table border=0 cellpadding=\"5\" width=\"610\"><tr bgcolor=\"$sTDBGColour\"><td width=\"87%\">$sDocumentPath</td>" . ($bDisplayActions ? "<td width=\"15%\">Actions</td>" : "") . "</tr></table>\n";
23 } 29 }
24 30
25 -function renderDocumentData($oDocument) { 31 +function renderDocumentData($oDocument, $bEditable) {
26 global $default; 32 global $default;
27 $sQuery = "SELECT D.name, D.modified, DTT.datetime AS created, U.name AS initiator, CONCAT(CONCAT(D.major_version, '.'), D.minor_version) AS version, WDSL.name AS status, DTL.name AS document_type, D.is_checked_out, COALESCE(U2.name, '') AS c_user " . 33 $sQuery = "SELECT D.name, D.modified, DTT.datetime AS created, U.name AS initiator, CONCAT(CONCAT(D.major_version, '.'), D.minor_version) AS version, WDSL.name AS status, DTL.name AS document_type, D.is_checked_out, COALESCE(U2.name, '') AS c_user " .
28 "FROM $default->owl_documents_table AS D INNER JOIN $default->owl_web_documents_table AS WD ON WD.document_id = D.ID " . 34 "FROM $default->owl_documents_table AS D INNER JOIN $default->owl_web_documents_table AS WD ON WD.document_id = D.ID " .
@@ -40,50 +46,24 @@ function renderDocumentData($oDocument) { @@ -40,50 +46,24 @@ function renderDocumentData($oDocument) {
40 $aColumnTypes = array(1,1,1,1,1,1,1,1); 46 $aColumnTypes = array(1,1,1,1,1,1,1,1);
41 $oPatternListFromQuery = & new PatternListFromQuery($sQuery, $aColumns, $aColumnNames, $aColumnTypes); 47 $oPatternListFromQuery = & new PatternListFromQuery($sQuery, $aColumns, $aColumnNames, $aColumnTypes);
42 $oPatternListFromQuery->setTableHeading("Document Data"); 48 $oPatternListFromQuery->setTableHeading("Document Data");
43 - $oPatternListFromQuery->setTableWidth("90%");  
44 - return $oPatternListFromQuery->render();  
45 -}  
46 -  
47 -function renderEditableLinkedDocuments($oDocument) {  
48 - global $default;  
49 -  
50 - $sQuery = "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 " .  
51 - "FROM documents AS D INNER JOIN document_link AS DL ON D.id = DL.child_document_id " .  
52 - "WHERE DL.parent_document_id = " . $oDocument->getID();  
53 -  
54 - $aColumns = array("name", "unlink");  
55 - $aColumnHeaders = array("Document");  
56 - $aColumnTypes = array(3,3);  
57 - $aDBColumnArray = array("parent_document_id", "child_document_id","document_link_id");  
58 - $aQueryStringVariableNames = array("fParentDocumentID","fChildDocumentID", "fDocumentLinkID");  
59 - $aLinkURLs = array(0=>"$default->rootUrl/control.php?action=viewDocument", 1=>"$default->rootUrl/control.php?action=removeDocumentLink");  
60 -  
61 - $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "100%", $aLinkURLs,$aDBColumnArray,$aQueryStringVariableNames);  
62 - $oPatternTableSqlQuery->setTableHeading("Linked documents");  
63 - $oPatternTableSqlQuery->setDisplayColumnHeadings(true);  
64 - return $oPatternTableSqlQuery->render();  
65 -  
66 -} 49 + $oPatternListFromQuery->setTableWidth("400");
  50 +
  51 + $sToRender .= "\t<table border=\"0\" width=\"100%\">\n";
  52 + $sToRender .= "\t<tr>\n";
  53 + $sToRender .= "\t\t<td>" . $oPatternListFromQuery->render() . "</td>\n";
  54 + $sToRender .= "\t</tr>\n";
  55 + if ($bEditable) {
  56 + $sToRender .= "\t<tr>\n";
  57 + $sToRender .= "<td colspan=\"2\"><a href=\"$default->rootUrl/control.php?action=modifyDocument&fDocumentID=" . $oDocument->getID() . "\"><image src=\"$default->graphicsUrl/widgets/edit.gif\" border=\"0\"></a></td>\n";
  58 + $sToRender .= "\t</tr>\n";
  59 + }
  60 + $sToRender .= "\t</table>\n";
67 61
68 -function renderNonEditableLinkedDocuments($oDocument) {  
69 - global $default;  
70 -  
71 - $sQuery = "SELECT D.id, D.name, 'Delete' AS del " .  
72 - "FROM documents AS D INNER JOIN document_link AS DL ON D.id = DL.child_document_id " .  
73 - "WHERE DL.parent_document_id = " . $oDocument->getID();  
74 -  
75 - $aColumns = array("name","del");  
76 - $aColumnNames = array("Document");  
77 - $aColumnTypes = array(1,3);  
78 -  
79 - $oPatternListFromQuery = & new PatternListFromQuery($sQuery, $aColumns, $aColumnNames, $aColumnTypes);  
80 - $oPatternListFromQuery->setTableHeading("Linked documents");  
81 - $oPatternListFromQuery->setTableWidth("90%");  
82 - return $oPatternListFromQuery->render(); 62 + return $sToRender;
83 } 63 }
84 64
85 65
86 -function renderGenericMetaData($oDocument) { 66 +function renderGenericMetaData($oDocument, $sDivName, $bEditable) {
87 global $default; 67 global $default;
88 $sQuery = "SELECT DF.name AS name, DFL.value as value " . 68 $sQuery = "SELECT DF.name AS name, DFL.value as value " .
89 "FROM $default->owl_documents_table AS D INNER JOIN $default->owl_document_fields_table AS DFL ON D.id = DFL.document_id " . 69 "FROM $default->owl_documents_table AS D INNER JOIN $default->owl_document_fields_table AS DFL ON D.id = DFL.document_id " .
@@ -93,13 +73,26 @@ function renderGenericMetaData($oDocument) { @@ -93,13 +73,26 @@ function renderGenericMetaData($oDocument) {
93 $aColumns = array("name", "value"); 73 $aColumns = array("name", "value");
94 $aColumnHeaders = array("Tag", "Value"); 74 $aColumnHeaders = array("Tag", "Value");
95 $aColumnTypes = array(1,1); 75 $aColumnTypes = array(1,1);
96 - $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "90%"); 76 + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "540");
97 $oPatternTableSqlQuery->setTableHeading("Generic Meta Data"); 77 $oPatternTableSqlQuery->setTableHeading("Generic Meta Data");
98 - return $oPatternTableSqlQuery->render();  
99 - 78 +
  79 + $sToRender .= "\t<table border=\"0\" width=\"100%\">\n";
  80 + $sToRender .= "\t<tr>\n";
  81 + $sToRender .= "\t<td>" . $oPatternTableSqlQuery->render() . "</td>\n";
  82 + $sToRender .= "\t</tr>\n";
  83 + if ($bEditable) {
  84 + $sToRender .= "\t<tr>\n";
  85 + $sToRender .= "<td><a href=\"$default->rootUrl/control.php?action=modifyDocumentGenericMetaData&fDocumentID=" . $oDocument->getID() . "\"><image src=\"$default->graphicsUrl/widgets/edit.gif\" border=\"0\"></a></td>\n";
  86 + $sToRender .= "\t</tr>\n";
  87 + }
  88 + $sToRender .= "\t</table>\n";
  89 +
  90 + return renderSectionDiv($sDivName, $sToRender);
100 } 91 }
101 92
102 -function renderTypeSpecificMetaData($oDocument) { 93 +function renderTypeSpecificMetaData($oDocument, $sDivName, $bEditable) {
  94 + global $default;
  95 +
103 $sQuery = "SELECT DF.name AS name, DFL.value AS value " . 96 $sQuery = "SELECT DF.name AS name, DFL.value AS value " .
104 "FROM documents AS D INNER JOIN document_fields_link AS DFL ON D.id = DFL.document_id " . 97 "FROM documents AS D INNER JOIN document_fields_link AS DFL ON D.id = DFL.document_id " .
105 "INNER JOIN document_fields AS DF ON DF.ID = DFL.document_field_id " . 98 "INNER JOIN document_fields AS DF ON DF.ID = DFL.document_field_id " .
@@ -110,58 +103,25 @@ function renderTypeSpecificMetaData($oDocument) { @@ -110,58 +103,25 @@ function renderTypeSpecificMetaData($oDocument) {
110 $aColumns = array("name", "value"); 103 $aColumns = array("name", "value");
111 $aColumnHeaders = array("Tag", "Value"); 104 $aColumnHeaders = array("Tag", "Value");
112 $aColumnTypes = array(1,1); 105 $aColumnTypes = array(1,1);
113 - $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "90%"); 106 + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "540");
114 $oPatternTableSqlQuery->setTableHeading("Type Specific Meta Data"); 107 $oPatternTableSqlQuery->setTableHeading("Type Specific Meta Data");
115 $oPatternTableSqlQuery->setEmptyTableMessage("No Type Specific Meta Data"); 108 $oPatternTableSqlQuery->setEmptyTableMessage("No Type Specific Meta Data");
116 - return $oPatternTableSqlQuery->render();  
117 -}  
118 -  
119 -function renderEditableDocumentRouting($oDocument) {  
120 - global $default;  
121 - $sQuery = "SELECT D.id as document_id, GFAL.id as id, R.name AS role_name, COALESCE(U.Name, U2.Name, 'Not assigned') AS name, GFAL.precedence AS precedence, COALESCE(FURL.active,0) AS active, COALESCE(FURL.done, 0) AS done, 'Edit' as edit " .  
122 - "FROM documents AS D INNER JOIN $default->owl_groups_folders_approval_table AS GFAL ON D.folder_id = GFAL.folder_id " .  
123 - "INNER JOIN roles AS R ON GFAL.role_id = R.id " .  
124 - "LEFT OUTER JOIN users AS U2 ON U2.id = GFAL.user_id " .  
125 - "LEFT OUTER JOIN folders_users_roles_link AS FURL ON FURL.group_folder_approval_id = GFAL.id AND FURL.document_id = D.id " .  
126 - "LEFT OUTER JOIN users AS U ON FURL.user_id = U.id " .  
127 - "WHERE D.id = " . $oDocument->getID() . " " .  
128 - "ORDER BY GFAL.precedence, role_name ASC";  
129 - $aColumns = array("role_name", "name", "precedence", "active", "done", "edit");  
130 - $aColumnHeaders = array("Role", "User", "Seq", "Active", "Done", "");  
131 - $aColumnTypes = array(1,1,1,1,1,3);  
132 - $aDBColumnArray = array("id","document_id","active","done");  
133 - $aQueryStringVariableNames = array("fFolderCollaborationID", "fDocumentID","fIsActive","fIsDone");  
134 - $aLinkURLs = array(5=>"$default->rootUrl/control.php?action=modifyDocumentRouting");  
135 -  
136 - $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "10%", $aLinkURLs,$aDBColumnArray,$aQueryStringVariableNames);  
137 - $oPatternTableSqlQuery->setTableHeading("Document Routing");  
138 - $oPatternTableSqlQuery->setDisplayColumnHeadings(true);  
139 - return $oPatternTableSqlQuery->render();  
140 -  
141 -}  
142 -  
143 -function renderNonEditableDocumentRouting($oDocument) {  
144 - global $default;  
145 - $sQuery = "SELECT D.id as document_id, GFAL.id as id, R.name AS role_name, COALESCE(U.Name, 'Not assigned') AS name, GFAL.precedence AS precedence, COALESCE(FURL.active,0) AS active, COALESCE(FURL.done, 0) AS done " .  
146 - "FROM documents AS D INNER JOIN $default->owl_groups_folders_approval_table AS GFAL ON D.folder_id = GFAL.folder_id " .  
147 - "INNER JOIN roles AS R ON GFAL.role_id = R.id " .  
148 - "LEFT OUTER JOIN folders_users_roles_link AS FURL ON FURL.group_folder_approval_id = GFAL.id AND FURL.document_id = D.id " .  
149 - "LEFT OUTER JOIN users AS U ON FURL.user_id = U.id " .  
150 - "WHERE D.id = " . $oDocument->getID() . " " .  
151 - "ORDER BY GFAL.precedence, role_name ASC";  
152 -  
153 - $aColumns = array("role_name", "name", "precedence", "active", "done");  
154 - $aColumnHeaders = array("Role", "User", "Seq", "Active", "Done");  
155 - $aColumnTypes = array(1,1,1,1,1);  
156 - $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "10%", "$default->rootUrl/control.php?action=modifyDocumentRouting",$aDBColumnArray,$aQueryStringVariableNames);  
157 - $oPatternTableSqlQuery->setTableHeading("Document Routing");  
158 - $oPatternTableSqlQuery->setDisplayColumnHeadings(true);  
159 - return $oPatternTableSqlQuery->render();  
160 - 109 +
  110 + $sToRender .= "\t<table border=\"0\" width=\"100%\">\n";
  111 + $sToRender .= "\t<tr>\n";
  112 + $sToRender .= "\t\t<td>" . $oPatternTableSqlQuery->render() . "</td>\n";
  113 + $sToRender .= "\t</tr>\n";
  114 + if ($bEditable) {
  115 + $sToRender .= "\t<tr>\n";
  116 + $sToRender .= "<td><a href=\"$default->rootUrl/control.php?action=modifyDocumentTypeMetaData&fDocumentID=" . $oDocument->getID() . "\"><image src=\"$default->graphicsUrl/widgets/edit.gif\" border=\"0\"></a></td>\n";
  117 + $sToRender .= "\t</tr>\n";
  118 + }
  119 + $sToRender .= "\t</table>\n";
  120 + return renderSectionDiv($sDivName, $sToRender);
161 } 121 }
162 122
163 -function renderDocumentArchiveSettings($oDocument) {  
164 - global $default; 123 +function renderEditableDocumentArchiveSettings($oDocument) {
  124 + global $default;
165 $sQuery = "SELECT d.id, atl.name, 'Edit' AS edit FROM $default->owl_document_archiving_table AS da " . 125 $sQuery = "SELECT d.id, atl.name, 'Edit' AS edit FROM $default->owl_document_archiving_table AS da " .
166 "INNER JOIN $default->owl_archiving_type_lookup_table AS atl ON da.archiving_type_id=atl.id " . 126 "INNER JOIN $default->owl_archiving_type_lookup_table AS atl ON da.archiving_type_id=atl.id " .
167 "INNER JOIN $default->owl_documents_table AS d ON da.document_id=d.id " . 127 "INNER JOIN $default->owl_documents_table AS d ON da.document_id=d.id " .
@@ -173,111 +133,74 @@ function renderDocumentArchiveSettings($oDocument) { @@ -173,111 +133,74 @@ function renderDocumentArchiveSettings($oDocument) {
173 $aDBColumnArray = array("id"); 133 $aDBColumnArray = array("id");
174 $aQueryStringVariableNames = array("fDocumentID"); 134 $aQueryStringVariableNames = array("fDocumentID");
175 $aLinkURLs = array(1=>"$default->rootUrl/control.php?action=modifyDocumentArchiveSettings"); 135 $aLinkURLs = array(1=>"$default->rootUrl/control.php?action=modifyDocumentArchiveSettings");
176 - $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "90%", $aLinkURLs ,$aDBColumnArray,$aQueryStringVariableNames); 136 + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "540", $aLinkURLs ,$aDBColumnArray,$aQueryStringVariableNames);
177 $oPatternTableSqlQuery->setTableHeading("Archiving Settings"); 137 $oPatternTableSqlQuery->setTableHeading("Archiving Settings");
178 $oPatternTableSqlQuery->setEmptyTableMessage("No archiving settings"); 138 $oPatternTableSqlQuery->setEmptyTableMessage("No archiving settings");
179 $oPatternTableSqlQuery->setDisplayColumnHeadings(true); 139 $oPatternTableSqlQuery->setDisplayColumnHeadings(true);
180 return $oPatternTableSqlQuery->render(); 140 return $oPatternTableSqlQuery->render();
181 } 141 }
182 142
183 -function displayActionButtons($oDocument, $bEdit) {  
184 - global $default;  
185 - if ($bEdit) {  
186 - // display the check in button if the document is checked out and you checked the document out  
187 - if ($oDocument->getIsCheckedOut() && ($oDocument->getCheckedOutUserID() == $_SESSION["userID"])) {  
188 - $sToRender = "<td><a href=\"" . generateControllerLink("checkInDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/checkin.gif\" border=\"0\" /></a></td>\n";  
189 - // otherwise display the check out button  
190 - } else {  
191 - $sToRender = "<td><a href=\"" . generateControllerLink("checkOutDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/checkout.gif\" border=\"0\" /></a></td>\n";  
192 - }  
193 - }  
194 -  
195 - $sToRender .= "<td><a href=\"" . generateControllerLink("emailDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/email.gif\" border=\"0\" /></a></td>\n";  
196 - if ($bEdit) {  
197 - $sToRender .= "<td><a href=\"" . generateControllerLink("deleteDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/delete.gif\" border=\"0\" /></a></td>\n";  
198 - }  
199 - $sToRender .= "<td><a href=\"" . generateControllerLink("viewHistory", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/history.gif\" border=\"0\" /></a></td>\n";  
200 - if ($bEdit) {  
201 - $sToRender .= "<td><a href=\"" . generateControllerLink("moveDocument", "fFolderID=" . $oDocument->getFolderID() . "&fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/move.gif\" border=\"0\" /></a></td>\n";  
202 - }  
203 -  
204 - // display the unsubscribe button if the user is subscribed to the document  
205 - if (Subscription::exists($_SESSION["userID"], $oDocument->getID(), SubscriptionConstants::subscriptionType("DocumentSubscription"))) {  
206 - $sToRender .= "<td><a href=\"" . generateControllerLink("removeSubscription", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/unsubscribe.gif\" border=\"0\" /></a></td>\n";  
207 - // otherwise display the subscribe button  
208 - } else {  
209 - $sToRender .= "<td><a href=\"" . generateControllerLink("addSubscription", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/subscribe.gif\" border=\"0\" /></a></td>\n";  
210 - }  
211 - $sToRender .= "<td><a onClick=\"alert('This will download a copy of the document and is not the same as Checking Out a document- changes to this downloaded file will not be managed in the DMS.'); return true;\" href=\"" . generateControllerLink("viewDocument", "fDocumentID=" . $oDocument->getID() . "&fForDownload=1") . "\"><img src=\"$default->graphicsUrl/widgets/download.gif\" border=\"0\" /></a></td>\n";  
212 - $sToRender .= "<td><a href=\"" . generateControllerLink("viewDiscussion", "fDocumentID=" . $oDocument->getID() . "&fForDiscussion=1") . "\"><img src=\"$default->graphicsUrl/widgets/discussion.gif\" border=\"0\" /></a></td>\n";  
213 - // only display the archive button for available documents  
214 - if (!$oDocument->getIsCheckedOut() || !$oDocument->hasCollaboration() || (!DocumentCollaboration::documentCollaborationStarted($oDocument->getID()))) {  
215 - $sToRender .= "<td><a href=\"" . generateControllerLink("archiveDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/archive.gif\" border=\"0\" /></a></td>\n";  
216 - } 143 +function renderNonEditableDocumentArchiveSettings($oDocument) {
  144 + global $default;
  145 + $sQuery = "SELECT d.id, atl.name FROM $default->owl_document_archiving_table AS da " .
  146 + "INNER JOIN $default->owl_archiving_type_lookup_table AS atl ON da.archiving_type_id=atl.id " .
  147 + "INNER JOIN $default->owl_documents_table AS d ON da.document_id=d.id " .
  148 + "WHERE d.id = " . $oDocument->getID();
217 149
218 - $sToRender .= "<td><a href=\"" . generateControllerLink("createDependantDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/archive.gif\" border=\"0\" /></a></td>\n";  
219 -  
220 - return $sToRender; 150 + $aColumns = array("name");
  151 + $aColumnHeaders = array("Archiving Type");
  152 + $aColumnTypes = array(1);
  153 + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "540", $aLinkURLs ,$aDBColumnArray,$aQueryStringVariableNames);
  154 + $oPatternTableSqlQuery->setTableHeading("Archiving Settings");
  155 + $oPatternTableSqlQuery->setEmptyTableMessage("No archiving settings");
  156 + $oPatternTableSqlQuery->setDisplayColumnHeadings(true);
  157 + return $oPatternTableSqlQuery->render();
221 } 158 }
222 159
223 -function getEditPage($oDocument) {  
224 - global $default;  
225 - $iDocumentID = $oDocument->getID();  
226 - $sToRender = renderHeading("Document Detail") . renderDocumentPath($oDocument) . "\n<br>\n";  
227 -  
228 - $sToRender .= "<table>\n";  
229 - $sToRender .= "<tr>\n";  
230 - $sToRender .= displayActionButtons($oDocument, true);  
231 - $sToRender .= "</tr>\n";  
232 - $sToRender .= "</table>\n";  
233 -  
234 - $sToRender .= "<table border = 0>\n";  
235 - $sToRender .= "<tr>\n";  
236 - $sToRender .= "<td>\n";  
237 -  
238 - $sToRender .= "\t<table border = 0>\n";  
239 - $sToRender .= "\t<tr>\n";  
240 - $sToRender .= "\t\t<td>" . renderDocumentData($oDocument) . "</td>\n";  
241 - $sToRender .= "\t</tr>\n";  
242 - $sToRender .= "\t<tr>\n";  
243 - $sToRender .= "<td><a href=\"$default->rootUrl/control.php?action=modifyDocument&fDocumentID=$iDocumentID\"><image src=\"$default->graphicsUrl/widgets/edit.gif\" border=\"0\"></a></td>\n";  
244 - $sToRender .= "\t</tr>\n";  
245 - $sToRender .= "\t<tr>\n";  
246 - $sToRender .= "\t<td>" . renderGenericMetaData($oDocument) . "</td>\n";  
247 - $sToRender .= "\t</tr>\n";  
248 - $sToRender .= "\t<tr>\n";  
249 - $sToRender .= "<td><a href=\"$default->rootUrl/control.php?action=modifyDocumentGenericMetaData&fDocumentID=$iDocumentID\"><image src=\"$default->graphicsUrl/widgets/edit.gif\" border=\"0\"></a></td>\n";  
250 - $sToRender .= "\t</tr>\n";  
251 - $sToRender .= "\t<tr>\n";  
252 - $sToRender .= "\t\t<td>" . renderTypeSpecificMetaData($oDocument) . "</td>\n";  
253 -  
254 - $sToRender .= "\t</tr>\n";  
255 - $sToRender .= "\t<tr>\n";  
256 - $sToRender .= "<td><a href=\"$default->rootUrl/control.php?action=modifyDocumentTypeMetaData&fDocumentID=$iDocumentID\"><image src=\"$default->graphicsUrl/widgets/edit.gif\" border=\"0\"></a></td>\n";  
257 - $sToRender .= "\t</tr>\n";  
258 - $sToRender .= "\t</table>\n";  
259 - $sToRender .= "</td>\n";  
260 - $sToRender .= "<td valign=top>\n";  
261 -  
262 - $sToRender .= "\t<table border=\"0\">\n";  
263 - 160 +function renderDocumentArchiveSettings($oDocument, $sDivName, $bEditable) {
  161 + global $default;
  162 +
  163 + $sToRender .= "\t<table border=\"0\" width=\"100%\">\n";
264 $sToRender .= "\t<tr>\n"; 164 $sToRender .= "\t<tr>\n";
265 - $sToRender .= "\t\t<td>" . renderDocumentArchiveSettings($oDocument) . "</td>\n"; 165 + $sToRender .= "\t\t<td>" . ($bEditable ? renderEditableDocumentArchiveSettings($oDocument) : renderNonEditableDocumentArchiveSettings($oDocument)) . "</td>\n";
266 $sToRender .= "\t</tr>"; 166 $sToRender .= "\t</tr>";
267 - // if there are no archiving settings then allow their addition  
268 - $oDocumentArchiving = DocumentArchiving::getFromDocumentID($iDocumentID);  
269 - if (!$oDocumentArchiving) {  
270 - $sToRender .= "\t<tr>\n";  
271 - $sToRender .= "\t\t<td><a href=\"$default->rootUrl/control.php?action=addDocumentArchiveSettings&fDocumentID=$iDocumentID\"><img src=\"$default->graphicsUrl/widgets/add.gif\" border=\"0\"/></a></td>\n"; 167 + if ($bEditable) {
  168 + $sToRender .= "\t<tr>\n";
  169 + // if there are no archiving settings then allow their addition
  170 + $oDocumentArchiving = DocumentArchiving::getFromDocumentID($oDocument->getID());
  171 + $sToRender .= "\t\t<td>" . ($oDocumentArchiving ? "" : generateControllerLink("addDocumentArchiveSettings", "fDocumentID=" . $oDocument->getID(), "<img src=\"$default->graphicsUrl/widgets/add.gif\" border=\"0\"/>")) . "</td>\n";
272 $sToRender .= "\t</tr>"; 172 $sToRender .= "\t</tr>";
273 - } 173 + }
  174 + $sToRender .= "\t</table>\n";
274 175
275 - $sToRender .= "\t<tr>\n";  
276 - $sToRender .= "\t\t<td>" . renderEditableDocumentRouting($oDocument) . "</td>\n";  
277 - $sToRender .= "\t</tr>";  
278 -  
279 - $sToRender .= "\t<tr>\n"; 176 + return renderSectionDiv($sDivName, $sToRender);
  177 +}
  178 +
  179 +function renderEditableDocumentRouting($oDocument, $sDivName) {
  180 + global $default;
  181 + $sQuery = "SELECT D.id as document_id, GFAL.id as id, R.name AS role_name, COALESCE(U.Name, 'Not assigned') AS name, GFAL.precedence AS precedence, COALESCE(FURL.active,0) AS active, COALESCE(FURL.done, 0) AS done, 'Edit' as edit " .
  182 + "FROM documents AS D INNER JOIN $default->owl_groups_folders_approval_table AS GFAL ON D.folder_id = GFAL.folder_id " .
  183 + "INNER JOIN roles AS R ON GFAL.role_id = R.id " .
  184 + "LEFT OUTER JOIN folders_users_roles_link AS FURL ON FURL.group_folder_approval_id = GFAL.id AND FURL.document_id = D.id " .
  185 + "LEFT OUTER JOIN users AS U ON FURL.user_id = U.id " .
  186 + "WHERE D.id = " . $oDocument->getID() . " " .
  187 + "ORDER BY GFAL.precedence, role_name ASC";
  188 + $aColumns = array("role_name", "name", "precedence", "active", "done", "edit");
  189 + $aColumnHeaders = array("Role", "User", "Seq", "Active", "Done", "");
  190 + $aColumnTypes = array(1,1,1,1,1,3);
  191 + $aDBColumnArray = array("id","document_id","active","done");
  192 + $aQueryStringVariableNames = array("fFolderCollaborationID", "fDocumentID","fIsActive","fIsDone");
  193 + $aLinkURLs = array(5=>"$default->rootUrl/control.php?action=modifyDocumentRouting");
  194 +
  195 + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "540", $aLinkURLs,$aDBColumnArray,$aQueryStringVariableNames);
  196 + $oPatternTableSqlQuery->setTableHeading("Document Routing");
  197 + $oPatternTableSqlQuery->setDisplayColumnHeadings(true);
280 198
  199 + $sToRender .= "\t<table border=\"0\" width=\"100%\">\n";
  200 + $sToRender .= "\t<tr>\n";
  201 + $sToRender .= "\t\t<td>" . $oPatternTableSqlQuery->render() . "</td>\n";
  202 + $sToRender .= "\t</tr>";
  203 + $sToRender .= "\t<tr>\n";
281 // collaboration cannot be started or approved/rejected unless the document is not checked out 204 // collaboration cannot be started or approved/rejected unless the document is not checked out
282 if (!$oDocument->getIsCheckedOut() && $oDocument->hasCollaboration() && (!DocumentCollaboration::documentCollaborationStarted($oDocument->getID())) && ($_SESSION["userID"] == $oDocument->getCreatorID())) { 205 if (!$oDocument->getIsCheckedOut() && $oDocument->hasCollaboration() && (!DocumentCollaboration::documentCollaborationStarted($oDocument->getID())) && ($_SESSION["userID"] == $oDocument->getCreatorID())) {
283 //if not all collaboration steps have been set, then you cannot start the collaboration process 206 //if not all collaboration steps have been set, then you cannot start the collaboration process
@@ -291,17 +214,16 @@ function getEditPage($oDocument) { @@ -291,17 +214,16 @@ function getEditPage($oDocument) {
291 // collaboration cannot be started or approved/rejected if the document is checked out 214 // collaboration cannot be started or approved/rejected if the document is checked out
292 if (!$oDocument->getIsCheckedOut()) { 215 if (!$oDocument->getIsCheckedOut()) {
293 $sToRender .= "\t\t<td align=\"center\"><a onClick=\"return confirm('Are you sure you want to approve? You will not have access to this document until the collaboration process is complete (unless the document is rejected in a subsequent step)');\" href=" . $_SERVER['PHP_SELF'] . "?fDocumentID=" . $oDocument->getID() . "&fCollaborationStepComplete=1><img src=\"$default->graphicsUrl/widgets/approve.gif\" border=\"0\"/></a></td>\n"; 216 $sToRender .= "\t\t<td align=\"center\"><a onClick=\"return confirm('Are you sure you want to approve? You will not have access to this document until the collaboration process is complete (unless the document is rejected in a subsequent step)');\" href=" . $_SERVER['PHP_SELF'] . "?fDocumentID=" . $oDocument->getID() . "&fCollaborationStepComplete=1><img src=\"$default->graphicsUrl/widgets/approve.gif\" border=\"0\"/></a></td>\n";
294 - $sToRender .= "\t\t<td align=\"center\"><a href=\"$default->rootUrl/control.php?action=collaborationStepReject&fDocumentID=$iDocumentID\"><img src=\"$default->graphicsUrl/widgets/reject.gif\" border=\"0\"/></a></td>\n"; 217 + $sToRender .= "\t\t<td align=\"center\"><a href=\"$default->rootUrl/control.php?action=collaborationStepReject&fDocumentID=" . $oDocument->getID() . "\"><img src=\"$default->graphicsUrl/widgets/reject.gif\" border=\"0\"/></a></td>\n";
295 } 218 }
296 $sToRender .= "\t\t</tr></table></td>\n"; 219 $sToRender .= "\t\t</tr></table></td>\n";
297 - }  
298 -  
299 - if (!DocumentCollaboration::documentIsPendingWebPublishing($iDocumentID) && !DocumentCollaboration::documentIsPublished($iDocumentID)) { 220 + }
  221 + if (!DocumentCollaboration::documentIsPendingWebPublishing($oDocument->getID())) {
300 // only display for unpublished documents 222 // only display for unpublished documents
301 // if there is collaboration 223 // if there is collaboration
302 if ($oDocument->hasCollaboration()) { 224 if ($oDocument->hasCollaboration()) {
303 // only display publish button if collaboration is complete and you're the last user in the collaboration process 225 // only display publish button if collaboration is complete and you're the last user in the collaboration process
304 - if (DocumentCollaboration::documentCollaborationDone($oDocument->getID()) && ($_SESSION["userID"] == DocumentCollaboration::getLastCollaboratorID($iDocumentID))) { 226 + if (DocumentCollaboration::documentCollaborationDone($oDocument->getID()) && ($_SESSION["userID"] == DocumentCollaboration::getLastCollaboratorID($oDocument->getID()))) {
305 $sToRender .= "<td><a href=" . $_SERVER['PHP_SELF'] . "?fDocumentID=" . $oDocument->getID() . "&fForPublish=1><img src=\"$default->graphicsUrl/widgets/publish.gif\" border=\"0\"/></a></td>\n"; 227 $sToRender .= "<td><a href=" . $_SERVER['PHP_SELF'] . "?fDocumentID=" . $oDocument->getID() . "&fForPublish=1><img src=\"$default->graphicsUrl/widgets/publish.gif\" border=\"0\"/></a></td>\n";
306 } 228 }
307 } else if ($_SESSION["userID"] == $oDocument->getCreatorID()) { 229 } else if ($_SESSION["userID"] == $oDocument->getCreatorID()) {
@@ -311,165 +233,212 @@ function getEditPage($oDocument) { @@ -311,165 +233,212 @@ function getEditPage($oDocument) {
311 } 233 }
312 } 234 }
313 $sToRender .= "\t</tr>"; 235 $sToRender .= "\t</tr>";
314 - $sToRender .= "\t<tr>\n";  
315 - $sToRender .= "\t\t<td>" . renderEditableLinkedDocuments($oDocument) . "</td>\n";  
316 - $sToRender .= "\t</tr>";  
317 - $sToRender .= "\t<tr>\n";  
318 - $sToRender .= "<td><a href=\"$default->rootUrl/control.php?action=addDocumentLink&fDocumentID=" . $oDocument->getID() ."\"><img src=\"$default->graphicsUrl/widgets/add.gif\" border=\"0\"/></a></td>\n";  
319 - $sToRender .= "\t</tr>";  
320 - $sToRender .= "\t</table>";  
321 - $sToRender .= "</td>\n";  
322 - $sToRender .= "</tr>\n";  
323 - $sToRender .= "</table>\n";  
324 -  
325 - $sToRender .= "<table>\n";  
326 - $sToRender .= "<tr>\n";  
327 - $sToRender .= displayActionButtons($oDocument, true);  
328 - $sToRender .= "</tr>\n";  
329 - $sToRender .= "</table>\n";  
330 -  
331 - return $sToRender; 236 + $sToRender .= "\t</table>\n";
  237 +
  238 + return renderSectionDiv($sDivName, $sToRender);
332 } 239 }
333 240
334 -function getViewPage($oDocument) { 241 +function renderNonEditableDocumentRouting($oDocument, $sDivName) {
335 global $default; 242 global $default;
336 - $iDocumentID = $oDocument->getID();  
337 - $sToRender = renderHeading("Document Detail") . renderDocumentPath($oDocument) . "\n<br>\n";  
338 -  
339 - $sToRender .= "<table>\n";  
340 - $sToRender .= "<tr>\n";  
341 - $sToRender .= displayActionButtons($oDocument, false);  
342 - $sToRender .= "</tr>\n";  
343 - $sToRender .= "</table>\n";  
344 -  
345 - $sToRender .= "<table border = 0>\n";  
346 - $sToRender .= "<tr>\n";  
347 - $sToRender .= "<td>\n";  
348 - $sToRender .= "\t<table border = 0 width = 280>\n";  
349 - $sToRender .= "\t<tr>\n";  
350 - $sToRender .= "\t\t<td>" . renderDocumentData($oDocument) . "</td>\n";  
351 - $sToRender .= "\t</tr>\n";  
352 - $sToRender .= "\t<tr>\n";  
353 - $sToRender .= "\t<td>" . renderGenericMetaData($oDocument) . "</td>\n";  
354 - $sToRender .= "\t<tr>\n";  
355 - $sToRender .= "\t<tr>\n";  
356 - $sToRender .= "\t\t<td>" . renderTypeSpecificMetaData($oDocument) . "</td>\n";  
357 - $sToRender .= "\t</tr>\n";  
358 - $sToRender .= "\t</table>\n";  
359 - $sToRender .= "</td>\n";  
360 - $sToRender .= "<td valign=top>\n";  
361 - $sToRender .= "\t<table border = 0, width = 230>\n"; 243 + $sQuery = "SELECT D.id as document_id, GFAL.id as id, R.name AS role_name, COALESCE(U.Name, 'Not assigned') AS name, GFAL.precedence AS precedence, COALESCE(FURL.active,0) AS active, COALESCE(FURL.done, 0) AS done " .
  244 + "FROM documents AS D INNER JOIN $default->owl_groups_folders_approval_table AS GFAL ON D.folder_id = GFAL.folder_id " .
  245 + "INNER JOIN roles AS R ON GFAL.role_id = R.id " .
  246 + "LEFT OUTER JOIN folders_users_roles_link AS FURL ON FURL.group_folder_approval_id = GFAL.id AND FURL.document_id = D.id " .
  247 + "LEFT OUTER JOIN users AS U ON FURL.user_id = U.id " .
  248 + "WHERE D.id = " . $oDocument->getID() . " " .
  249 + "ORDER BY GFAL.precedence, role_name ASC";
  250 +
  251 + $aColumns = array("role_name", "name", "precedence", "active", "done");
  252 + $aColumnHeaders = array("Role", "User", "Seq", "Active", "Done");
  253 + $aColumnTypes = array(1,1,1,1,1);
  254 + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "540", "$default->rootUrl/control.php?action=modifyDocumentRouting",$aDBColumnArray,$aQueryStringVariableNames);
  255 + $oPatternTableSqlQuery->setTableHeading("Document Routing");
  256 + $oPatternTableSqlQuery->setDisplayColumnHeadings(true);
  257 +
  258 + $sToRender .= "\t<table border=\"0\" width=\"100%\">\n";
362 $sToRender .= "\t<tr>\n"; 259 $sToRender .= "\t<tr>\n";
363 - $sToRender .= "\t\t<td>" . renderNonEditableDocumentRouting($oDocument) . "</td>\n"; 260 + $sToRender .= "\t\t<td>" . $oPatternTableSqlQuery->render() . "</td>\n";
364 $sToRender .= "\t</tr>"; 261 $sToRender .= "\t</tr>";
  262 +
365 if (DocumentCollaboration::userIsPerformingCurrentCollaborationStep($oDocument->getID())) { 263 if (DocumentCollaboration::userIsPerformingCurrentCollaborationStep($oDocument->getID())) {
366 //if the current user is responsible for an active step in the collaboration process 264 //if the current user is responsible for an active step in the collaboration process
367 $sToRender .= "\t\t<tr><td><table border=\"0\"><tr>\n"; 265 $sToRender .= "\t\t<tr><td><table border=\"0\"><tr>\n";
368 $sToRender .= "\t\t<td><b>You currently have an active role<br> in the collaboration process</b></td>\n"; 266 $sToRender .= "\t\t<td><b>You currently have an active role<br> in the collaboration process</b></td>\n";
369 $sToRender .= "\t\t<td align=\"center\"><a href=" . $_SERVER['PHP_SELF'] . "?fDocumentID=" . $oDocument->getID() . "&fCollaborationStepComplete=1><img src=\"$default->graphicsUrl/widgets/approve.gif\" border=\"0\"/></a></td>\n"; 267 $sToRender .= "\t\t<td align=\"center\"><a href=" . $_SERVER['PHP_SELF'] . "?fDocumentID=" . $oDocument->getID() . "&fCollaborationStepComplete=1><img src=\"$default->graphicsUrl/widgets/approve.gif\" border=\"0\"/></a></td>\n";
370 $sToRender .= "\t\t<td align=\"center\"><a href=\"$default->rootUrl/control.php?action=collaborationStepReject&fDocumentID=$iDocumentID\"><img src=\"$default->graphicsUrl/widgets/reject.gif\" border=\"0\"/></a></td>\n"; 268 $sToRender .= "\t\t<td align=\"center\"><a href=\"$default->rootUrl/control.php?action=collaborationStepReject&fDocumentID=$iDocumentID\"><img src=\"$default->graphicsUrl/widgets/reject.gif\" border=\"0\"/></a></td>\n";
371 - $sToRender .= "\t\t</tr></table></td>\n"; 269 + $sToRender .= "\t\t</tr></table></td></tr>\n";
372 } 270 }
373 - $sToRender .= "\t</table>";  
374 - $sToRender .= "</td>\n";  
375 - $sToRender .= "</tr>\n";  
376 - $sToRender .= "</table>";  
377 -  
378 - $sToRender .= "<table>\n";  
379 - $sToRender .= "<tr>\n";  
380 - $sToRender .= displayActionButtons($oDocument, false);  
381 - $sToRender .= "</tr>\n";  
382 - $sToRender .= "</table>\n";  
383 -  
384 - return $sToRender; 271 +
  272 + $sToRender .= "\t</table>\n";
  273 +
  274 + return renderSectionDiv($sDivName, $sToRender);
385 } 275 }
386 276
387 -/**  
388 - * Displays the document view page with additional input controls  
389 - * for checking out the document  
390 - *  
391 - * @param object the document to view and check out  
392 - */  
393 -function getCheckOutEditPage($oDocument, $bCheckedOut = false) {  
394 - global $default;  
395 - $sToRender = renderHeading("Document Detail") . renderDocumentPath($oDocument) . "\n<br>\n";  
396 - $sToRender .= "<table border = 0>\n";  
397 - $sToRender .= "<tr>\n";  
398 - $sToRender .= "<td>\n";  
399 - $sToRender .= "\t<table border = 0 width = 280>\n";  
400 - $sToRender .= "\t<tr>\n";  
401 - $sToRender .= "\t\t<td>" . renderDocumentData($oDocument) . "</td>\n";  
402 - $sToRender .= "\t</tr>\n";  
403 - $sToRender .= "\t<tr>\n";  
404 - $sToRender .= "\t<td>" . renderGenericMetaData($oDocument) . "</td>\n";  
405 - $sToRender .= "\t<tr>\n";  
406 - $sToRender .= "\t<tr>\n";  
407 - $sToRender .= "\t\t<td>" . renderTypeSpecificMetaData($oDocument) . "</td>\n";  
408 - $sToRender .= "\t</tr>\n";  
409 - $sToRender .= "\t</table>\n";  
410 - $sToRender .= "</td>\n";  
411 - $sToRender .= "<td valign=top>\n";  
412 - $sToRender .= "\t<table border = 0, width = 230>\n"; 277 +function renderEditableLinkedDocuments($oDocument, $sDivName) {
  278 + global $default;
  279 +
  280 + $sQuery = "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 " .
  281 + "FROM documents AS D INNER JOIN document_link AS DL ON D.id = DL.child_document_id " .
  282 + "WHERE DL.parent_document_id = " . $oDocument->getID();
  283 +
  284 + $aColumns = array("name", "unlink");
  285 + $aColumnHeaders = array("Document");
  286 + $aColumnTypes = array(3,3);
  287 + $aDBColumnArray = array("parent_document_id", "child_document_id","document_link_id", "child_document_id");
  288 + $aQueryStringVariableNames = array("fParentDocumentID","fChildDocumentID", "fDocumentLinkID", "fDocumentID");
  289 + $aLinkURLs = array(0=>"$default->rootUrl/control.php?action=viewDocument", 1=>"$default->rootUrl/control.php?action=removeDocumentLink");
  290 +
  291 + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "540", $aLinkURLs, $aDBColumnArray, $aQueryStringVariableNames);
  292 + $oPatternTableSqlQuery->setTableHeading("Linked documents");
  293 + $oPatternTableSqlQuery->setDisplayColumnHeadings(true);
  294 +
  295 + $sToRender .= "\t<table border=\"0\" width=\"100%\">\n";
413 $sToRender .= "\t<tr>\n"; 296 $sToRender .= "\t<tr>\n";
414 - $sToRender .= "\t\t<td>" . renderNonEditableDocumentRouting($oDocument) . "</td>\n"; 297 + $sToRender .= "\t\t<td>" . $oPatternTableSqlQuery->render() . "</td>\n";
  298 + $sToRender .= "\t</tr>";
415 $sToRender .= "\t<tr>\n"; 299 $sToRender .= "\t<tr>\n";
  300 + $sToRender .= "<td><a href=\"$default->rootUrl/control.php?action=addDocumentLink&fDocumentID=" . $oDocument->getID() ."\"><img src=\"$default->graphicsUrl/widgets/add.gif\" border=\"0\"/></a></td>\n";
  301 + $sToRender .= "\t</tr>";
  302 + $sToRender .= "\t</table>\n";
  303 + return renderSectionDiv($sDivName, $sToRender);
  304 +}
  305 +
  306 +function renderNonEditableLinkedDocuments($oDocument, $sDivName) {
  307 + global $default;
  308 +
  309 + $sQuery = "SELECT D.id, D.name " .
  310 + "FROM documents AS D INNER JOIN document_link AS DL ON D.id = DL.child_document_id " .
  311 + "WHERE DL.parent_document_id = " . $oDocument->getID();
  312 +
  313 + $aColumns = array("name");
  314 + $aColumnHeaders = array("Document");
  315 + $aColumnTypes = array(3);
  316 + $aDBColumnArray = array("id");
  317 + $aQueryStringVariableNames = array("fDocumentID");
  318 + $aLinkURLs = array(0=>"$default->rootUrl/control.php?action=viewDocument");
  319 +
  320 + $oPatternTableSqlQuery = & new PatternTableSqlQuery($sQuery, $aColumns, $aColumnTypes, $aColumnHeaders, "540", $aLinkURLs, $aDBColumnArray, $aQueryStringVariableNames);
  321 + $oPatternTableSqlQuery->setTableHeading("Linked documents");
  322 + $oPatternTableSqlQuery->setDisplayColumnHeadings(true);
  323 +
  324 + $sToRender .= "\t<table border=\"0\" width=\"100%\">\n";
416 $sToRender .= "\t<tr>\n"; 325 $sToRender .= "\t<tr>\n";
417 - if ($bCheckedOut) {  
418 - $sToRender .= "\t\t<td>You have now checked out this document. No one else can make updates to the document while you have it checked out. Click the Download button to get the latest version of the file. Please check it back in, as soon as you finish working on it.</td>\n";  
419 - $sToRender .= "\t</tr>";  
420 - $sToRender .= "\t<tr>\n";  
421 - $sToRender .= "<td><a href=\"$default->rootUrl/control.php?action=viewDocument&fDocumentID=" . $oDocument->getID() . "&fForDownload=1\"><img src=\"$default->graphicsUrl/widgets/download.gif\" border=\"0\" /></a>\n";  
422 - $sToRender .= "<a href=\"$default->rootUrl/control.php?action=viewDocument&fDocumentID=" . $oDocument->getID() . "\"><img src=\"$default->graphicsUrl/widgets/back.gif\" border=\"0\" /></a></td>\n";  
423 - } else {  
424 - $sToRender .= "\t\t<td>" . renderCheckOutPage($oDocument) . "</td>\n";  
425 - } 326 + $sToRender .= "\t\t<td>" . $oPatternTableSqlQuery->render() . "</td>\n";
426 $sToRender .= "\t</tr>"; 327 $sToRender .= "\t</tr>";
427 - $sToRender .= "\t</table>";  
428 - $sToRender .= "</td>\n";  
429 - $sToRender .= "</tr>\n";  
430 - $sToRender .= "</table>"; 328 + $sToRender .= "\t</table>\n";
  329 + return renderSectionDiv($sDivName, $sToRender);
  330 +}
  331 +
431 332
  333 +function displayActionButtons($oDocument, $bEdit) {
  334 + global $default;
  335 + if ($bEdit) {
  336 + // display the check in button if the document is checked out and you checked the document out
  337 + if ($oDocument->getIsCheckedOut() && ($oDocument->getCheckedOutUserID() == $_SESSION["userID"])) {
  338 + $sToRender .= "<tr><td align=\"left\"><a href=\"" . generateControllerLink("checkInDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/docactions/checkin.gif\" border=\"0\" /></a></td></tr>\n";
  339 + // otherwise display the check out button
  340 + } else {
  341 + $sToRender .= "<tr><td align=\"left\"><a href=\"" . generateControllerLink("checkOutDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/docactions/checkout.gif\" border=\"0\" /></a></td></tr>\n";
  342 + }
  343 + }
  344 +
  345 + $sToRender .= "<tr><td align=\"left\"><a href=\"" . generateControllerLink("emailDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/docactions/email.gif\" border=\"0\" /></a></td></tr>\n";
  346 + if ($bEdit) {
  347 + $sToRender .= "<tr><td align=\"left\"><a href=\"" . generateControllerLink("deleteDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/docactions/delete.gif\" border=\"0\" /></a></td></tr>\n";
  348 + }
  349 + $sToRender .= "<tr><td align=\"left\"><a href=\"" . generateControllerLink("viewHistory", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/docactions/history.gif\" border=\"0\" /></a></td></tr>\n";
  350 + if ($bEdit) {
  351 + $sToRender .= "<tr><td align=\"left\"><a href=\"" . generateControllerLink("moveDocument", "fFolderID=" . $oDocument->getFolderID() . "&fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/docactions/move.gif\" border=\"0\" /></a></td></tr>\n";
  352 + }
  353 +
  354 + // display the unsubscribe button if the user is subscribed to the document
  355 + if (Subscription::exists($_SESSION["userID"], $oDocument->getID(), SubscriptionConstants::subscriptionType("DocumentSubscription"))) {
  356 + $sToRender .= "<tr><td align=\"left\"><a href=\"" . generateControllerLink("removeSubscription", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/docactions/unsubscribe.gif\" border=\"0\" /></a></td></tr>\n";
  357 + // otherwise display the subscribe button
  358 + } else {
  359 + $sToRender .= "<tr><td align=\"left\"><a href=\"" . generateControllerLink("addSubscription", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/docactions/subscribe.gif\" border=\"0\" /></a></td></tr>\n";
  360 + }
  361 + $sToRender .= "<tr><td align=\"left\"><a onClick=\"alert('This will download a copy of the document and is not the same as Checking Out a document. Changes to this downloaded file will not be managed in the DMS.'); return true;\" href=\"" . generateControllerLink("viewDocument", "fDocumentID=" . $oDocument->getID() . "&fForDownload=1") . "\"><img src=\"$default->graphicsUrl/widgets/docactions/download.gif\" border=\"0\" /></a></td></tr>\n";
  362 + $sToRender .= "<tr><td align=\"left\"><a href=\"" . generateControllerLink("viewDiscussion", "fDocumentID=" . $oDocument->getID() . "&fForDiscussion=1") . "\"><img src=\"$default->graphicsUrl/widgets/docactions/discussion.gif\" border=\"0\" /></a></td></tr>\n";
  363 + // only display the archive button for available documents
  364 + if (!$oDocument->getIsCheckedOut() || !$oDocument->hasCollaboration() || (!DocumentCollaboration::documentCollaborationStarted($oDocument->getID()))) {
  365 + $sToRender .= "<tr><td align=\"left\"><a href=\"" . generateControllerLink("archiveDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/docactions/archive.gif\" border=\"0\" /></a></td></tr>\n";
  366 + }
  367 + $sToRender .= "<td align=\"left\"><a href=\"" . generateControllerLink("createDependantDocument", "fDocumentID=" . $oDocument->getID()) . "\"><img src=\"$default->graphicsUrl/widgets/docactions/dependentdoc.gif\" border=\"0\" /></a></td>\n";
  368 +
432 return $sToRender; 369 return $sToRender;
433 } 370 }
434 371
435 -/**  
436 - * Displays the document view page with additional input controls  
437 - * for checking in the document  
438 - *  
439 - * @param object the document to view and check out  
440 - */  
441 -function getCheckInEditPage($oDocument) { 372 +function renderSectionDiv($sDivName, $sHtml) {
  373 + global $default;
  374 +
  375 + if ( $default->browser == "ie" ) {
  376 + return "<div id=\"$sDivName\" style=\"position:absolute;visibility:hidden;top:280px;left:135px;\">$sHtml</div>";
  377 + } else {
  378 + return "<div id=\"$sDivName\" style=\"position:absolute;visibility:hidden;top:260px;left:133px;\">$sHtml</div>";
  379 + }
  380 +}
  381 +
  382 +function renderDocumentSection($sHeading) {
  383 + return "<tr bgcolor=\"" . getColour($iColour) . "\"><td width=\"100%\">$sHeading</td></tr>\n";
  384 +}
  385 +
  386 +function getPage($oDocument, $bEdit, $sHtml = "") {
442 global $default; 387 global $default;
443 - $sToRender = renderHeading("Document Detail") . renderDocumentPath($oDocument) . "\n<br>\n";  
444 - $sToRender .= "<table border = 0>\n";  
445 - $sToRender .= "<tr>\n";  
446 - $sToRender .= "<td>\n";  
447 - $sToRender .= "\t<table border = 0 width = 280>\n";  
448 - $sToRender .= "\t<tr>\n";  
449 - $sToRender .= "\t\t<td>" . renderDocumentData($oDocument) . "</td>\n";  
450 - $sToRender .= "\t</tr>\n";  
451 - $sToRender .= "\t<tr>\n";  
452 - $sToRender .= "\t<td>" . renderGenericMetaData($oDocument) . "</td>\n";  
453 - $sToRender .= "\t<tr>\n";  
454 - $sToRender .= "\t<tr>\n";  
455 - $sToRender .= "\t\t<td>" . renderTypeSpecificMetaData($oDocument) . "</td>\n";  
456 - $sToRender .= "\t</tr>\n";  
457 - $sToRender .= "\t</table>\n";  
458 - $sToRender .= "</td>\n";  
459 - $sToRender .= "<td valign=top>\n";  
460 - $sToRender .= "\t<table border = 0, width = 230>\n";  
461 - $sToRender .= "\t<tr>\n";  
462 - $sToRender .= "\t\t<td>" . renderNonEditableDocumentRouting($oDocument) . "</td>\n";  
463 - $sToRender .= "\t<tr>\n";  
464 - $sToRender .= "\t<tr>\n";  
465 - $sToRender .= "\t\t<td>" . renderCheckInPage($oDocument) . "</td>\n";  
466 - $sToRender .= "\t</tr>";  
467 - $sToRender .= "\t</table>";  
468 - $sToRender .= "</td>\n";  
469 - $sToRender .= "</tr>\n";  
470 - $sToRender .= "</table>"; 388 +
  389 + if ($sHtml <> "") {
  390 + $sToRender .= renderHeading("Document Detail");
  391 + $sToRender .= renderDocumentPath($oDocument, ($sHtml == "")) . "\n\n";
  392 + $sToRender .= $sHtml;
  393 + $sToRender .= renderDocumentData($oDocument, $bEdit);
  394 + } else {
  395 +
  396 + if ( $default->browser == "ie" ) {
  397 + $sToRender = "<div id=\"headings\" style=\"position:absolute;visibility:visible;top:120px;left:134px;\">";
  398 + } else {
  399 + $sToRender = "<div id=\"headings\" style=\"position:absolute;visibility:visible;top:106px;left:134px;\">";
  400 + }
  401 + $sToRender .= renderHeading("Document Detail");
  402 + $sToRender .= renderDocumentPath($oDocument, ($sHtml == "")) . "\n\n";
  403 +
  404 + $sToRender .= "<table border=\"0\" width=\"530\">";
  405 + $sToRender .= renderDocumentSection("<a href=\"javascript:void();\" onClick=\"switchDiv('documentData');\">Document Data</a>");
  406 + $sToRender .= renderDocumentSection("<a href=\"javascript:void();\" onClick=\"switchDiv('genericMetaData');\">Generic Meta Data</a>");
  407 + $sToRender .= renderDocumentSection("<a href=\"javascript:void();\" onClick=\"switchDiv('typeSpecificMetaData');\">Type Specific Meta Data</a>");
  408 + $sToRender .= renderDocumentSection("<a href=\"javascript:void();\" onClick=\"switchDiv('archiveSettings');\">Archive Settings</a>");
  409 + $sToRender .= renderDocumentSection("<a href=\"javascript:void();\" onClick=\"switchDiv('documentRouting');\">Document Routing</a>");
  410 + $sToRender .= renderDocumentSection("<a href=\"javascript:void();\" onClick=\"switchDiv('linkedDocuments');\">Linked Documents</a>");
  411 + $sToRender .= "</table>";
  412 + $sToRender .= "</div>";
  413 +
  414 + $sToRender .= renderSectionDiv("documentData", renderDocumentData($oDocument, $bEdit));
  415 + $sToRender .= renderDocumentArchiveSettings($oDocument, "archiveSettings", $bEdit);
  416 + if ($bEdit) {
  417 + $sToRender .= renderEditableDocumentRouting($oDocument, "documentRouting");
  418 + } else {
  419 + $sToRender .= renderNonEditableDocumentRouting($oDocument, "documentRouting");
  420 + }
  421 +
  422 + $sToRender .= renderGenericMetaData($oDocument, "genericMetaData", $bEdit);
  423 + if ($bEdit) {
  424 + $sToRender .= renderEditableLinkedDocuments($oDocument, "linkedDocuments");
  425 + } else {
  426 + $sToRender .= renderNonEditableLinkedDocuments($oDocument, "linkedDocuments", $bEdit);
  427 + }
  428 + $sToRender .= renderTypeSpecificMetaData($oDocument, "typeSpecificMetaData", $bEdit);
  429 +
  430 + if ( $default->browser == "ie" ) {
  431 + $sToRender .= "<div id=\"actionButtons\" style=\"position:absolute;visibility:visible;top:170px;left:665px;\">";
  432 + } else {
  433 + $sToRender .= "<div id=\"actionButtons\" style=\"position:absolute;visibility:visible;top:155px;left:665px;\">";
  434 + }
  435 + $sToRender .= "<table cellspacing=\"0\" cellpadding=\"0\">\n";
  436 + $sToRender .= displayActionButtons($oDocument, $bEdit);
  437 + $sToRender .= "</table>\n";
  438 + $sToRender .= "</div>";
  439 + }
471 440
472 - return $sToRender; 441 + return $sToRender;
473 } 442 }
474 443
475 function getWebPublishPage($oDocument) { 444 function getWebPublishPage($oDocument) {
@@ -477,57 +446,41 @@ function getWebPublishPage($oDocument) { @@ -477,57 +446,41 @@ function getWebPublishPage($oDocument) {
477 446
478 $oPatternListBox = & new PatternListBox($default->owl_web_sites_table, "web_site_name", "id", "fWebSiteID"); 447 $oPatternListBox = & new PatternListBox($default->owl_web_sites_table, "web_site_name", "id", "fWebSiteID");
479 448
480 - $sToRender = renderHeading("Document Detail") . renderDocumentPath($oDocument) . "\n<br>\n";  
481 - $sToRender .= "<table border = 0>\n";  
482 - $sToRender .= "<tr>\n";  
483 - $sToRender .= "<td>\n";  
484 - $sToRender .= "\t<table border = 0 width = 280>\n";  
485 - $sToRender .= "\t<tr>\n";  
486 - $sToRender .= "\t\t<td>" . renderDocumentData($oDocument) . "</td>\n";  
487 - $sToRender .= "\t</tr>\n";  
488 - $sToRender .= "\t<tr>\n";  
489 - $sToRender .= "\t<td>" . renderGenericMetaData($oDocument) . "</td>\n";  
490 - $sToRender .= "\t<tr>\n";  
491 - $sToRender .= "\t<tr>\n";  
492 - $sToRender .= "\t\t<td>" . renderTypeSpecificMetaData($oDocument) . "</td>\n";  
493 - $sToRender .= "\t</tr>\n";  
494 - $sToRender .= "\t</table>\n";  
495 - $sToRender .= "</td>\n";  
496 - $sToRender .= "<td valign=top>\n";  
497 - $sToRender .= "\t<table border=\"0\" width=\"230\">\n";  
498 - $sToRender .= "\t<tr>\n";  
499 - $sToRender .= "\t\t<td>" . renderNonEditableDocumentRouting($oDocument) . "</td>\n";  
500 - $sToRender .= "\t<tr>\n";  
501 - $sToRender .= "\t<tr>\n"; 449 + $sToRender .= "<table>\n";
  450 + $sToRender .= "\t<tr>";
502 $sToRender .= "\t\t<th align=\"left\">Choose the website to publish to:</th>\n"; 451 $sToRender .= "\t\t<th align=\"left\">Choose the website to publish to:</th>\n";
503 $sToRender .= "\t</tr>"; 452 $sToRender .= "\t</tr>";
504 $sToRender .= "\t<tr>\n"; 453 $sToRender .= "\t<tr>\n";
505 $sToRender .= "\t\t<td>" . $oPatternListBox->render() . "</td>\n"; 454 $sToRender .= "\t\t<td>" . $oPatternListBox->render() . "</td>\n";
506 - $sToRender .= "\t\t<input type=\"hidden\" name=\"fForPublish\" value=\"1\" />\n";  
507 - $sToRender .= "\t\t<input type=\"hidden\" name=\"fSubmit\" value=\"1\" />\n";  
508 - $sToRender .= "\t</tr>"; 455 + $sToRender .= "\t</tr>";
509 $sToRender .= "\t<tr>\n"; 456 $sToRender .= "\t<tr>\n";
510 $sToRender .= "\t\t<th nowrap align=\"left\">Enter a comment for the web master:</th>\n"; 457 $sToRender .= "\t\t<th nowrap align=\"left\">Enter a comment for the web master:</th>\n";
511 $sToRender .= "\t</tr>"; 458 $sToRender .= "\t</tr>";
512 $sToRender .= "\t<tr>\n"; 459 $sToRender .= "\t<tr>\n";
513 - $sToRender .= "\t\t<td><input type=\"text\" name=\"fComment\" size=\"30\" /></td>\n"; 460 + $sToRender .= "\t\t<td><input type=\"text\" name=\"fComment\" size=\"30\"/></td>\n";
514 $sToRender .= "\t</tr>"; 461 $sToRender .= "\t</tr>";
  462 + $sToRender .= "\t\t<input type=\"hidden\" name=\"fForPublish\" value=\"1\"/>\n";
  463 + $sToRender .= "\t\t<input type=\"hidden\" name=\"fSubmit\" value=\"1\"/>\n";
515 $sToRender .= "\t<tr>\n"; 464 $sToRender .= "\t<tr>\n";
516 $sToRender .= "\t\t<td><input type=\"image\" src=\"$default->graphicsUrl/widgets/publish.gif\" border=\"0\"/></a>"; 465 $sToRender .= "\t\t<td><input type=\"image\" src=\"$default->graphicsUrl/widgets/publish.gif\" border=\"0\"/></a>";
517 $sToRender .= "\t\t<a href=\"$default->rootUrl/control.php?action=viewDocument&fDocumentID=" . $oDocument->getID() . "\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\" /></a></td>\n"; 466 $sToRender .= "\t\t<a href=\"$default->rootUrl/control.php?action=viewDocument&fDocumentID=" . $oDocument->getID() . "\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\" /></a></td>\n";
518 - $sToRender .= "\t</tr>";  
519 - $sToRender .= "\t</table>";  
520 - $sToRender .= "</td>\n";  
521 - $sToRender .= "</tr>\n";  
522 - $sToRender .= "</table>"; 467 + $sToRender .= "\t</tr>";
  468 + $sToRender .= "</table>\n";
523 469
524 - return $sToRender; 470 + $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n";
  471 + $sToRender .= "function validateForm(theForm) {\n";
  472 + $sToRender .= "\tif (!(validRequired(document.MainForm.fWebSiteID,'Website'))) {\n";
  473 + $sToRender .= "\t\treturn false;\n\t}\n";
  474 + $sToRender .= "\tif (!(validRequired(document.MainForm.fComment,'Publish comment'))) {\n";
  475 + $sToRender .= "\t\treturn false;\n\t}\n";
  476 + $sToRender .= "return true;\n}\n";
  477 + $sToRender .= "//-->\n</script>\n\n";
  478 +
  479 + return getPage($oDocument, false, $sToRender);
525 } 480 }
526 481
527 -/**  
528 - * Wraps html in a bordered table  
529 - */  
530 function wrapInTable($sHtml) { 482 function wrapInTable($sHtml) {
531 return "\n\t\t\t<table border = 1, width = 100%><tr><td>$sHtml</td></tr></table>\n"; 483 return "\n\t\t\t<table border = 1, width = 100%><tr><td>$sHtml</td></tr></table>\n";
532 } 484 }
  485 +
533 ?> 486 ?>
534 \ No newline at end of file 487 \ No newline at end of file