owl_document_types_table", "name", "id", "fDocumentTypeID",$sWhereClause); $oPatternListBox->setIncludeDefaultValue(true); $oPatternListBox->setFromClause("INNER JOIN $default->owl_folder_doctypes_table AS FDL ON ST.id = FDL.document_type_id"); $oPatternListBox->setPostBackOnChange(true); $oPatternListBox->setOnChangeAction("setActionAndSubmit('" . $_SERVER["PHP_SELF"] . "?fFolderID=$iFolderID" . (isset($iDependantDocumentID) ? "&fDependantDocumentID=$iDependantDocumentID" : "") . "')"); if ($iDocumentTypeID) { $oPatternListBox->setSelectedValue($iDocumentTypeID); $sHeading = "Document Type"; } else { $sHeading = "Please select the document type:"; } return "
$sHeading
" . $oPatternListBox->render() . "
"; } /** * Displays the file browse widget */ function getUploadDocument() { global $default; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "
Document to add:
File
Title
\n"; return $sToRender; } /** * Displays the generic meta data fields form */ function getGenericMetaDataForm() { global $default; $sQuery = "SELECT DISTINCT -1 AS document_id, DF.id AS document_field_id, DF.name AS field_name, -1 AS id " . "FROM document_fields AS DF LEFT OUTER JOIN document_fields_link AS DFL ON DF.id = DFL.document_field_id " . "WHERE DF.is_generic = 1 "; $aStoreColumnNames = array("document_id", "document_field_id", "value"); $aDisplayColumnNames = array("document_id", "field_name", "value"); $aMetaDataColumnNames = array(2=>"field_name"); $aColumnsEditable = array(0,0,1); $aColumnsVisible = array(0,1,1); $aColumnDisplayTypes = array(1,1,4); $aColumnDatabaseTypes = array(4,0,1); $oPatternTableSqlQuery = & new PatternEditableTableSqlQuery($sQuery, "document_fields_link", $aStoreColumnNames, $aDisplayColumnNames, $aColumnsEditable, $aColumnsVisible, $aColumnDisplayTypes, $aColumnDatabaseTypes); $oPatternTableSqlQuery->setTableCaption("Generic Meta Data"); $oPatternTableSqlQuery->setUniqueName("gmd"); $oPatternTableSqlQuery->setRequiredColumnNames(array("value")); $oPatternTableSqlQuery->setMetaDataFields($aMetaDataColumnNames); $oPatternTableSqlQuery->setEmptyTableMessage("No Generic Meta Data"); $oPatternTableSqlQuery->setRenderJavascriptValidation(false); return $oPatternTableSqlQuery; } /** * Displays the type specific meta data fields form */ function getTypeSpecificMetaDataForm($iFolderID, $iDocumentTypeID) { global $default; $sQuery = "SELECT DISTINCT -1 AS document_id, DF.id AS document_field_id, DF.name AS field_name, DTFL.is_mandatory AS is_mandatory, -1 AS id " . "FROM document_type_fields_link AS DTFL INNER JOIN document_fields AS DF ON DTFL.field_id = DF.id " . "LEFT OUTER JOIN document_fields_link AS DFL ON DFL.document_field_id = DTFL.field_id " . "WHERE DF.is_generic = 0 " . "AND DTFL.document_type_id = $iDocumentTypeID"; $aStoreColumnNames = array("document_id", "document_field_id", "value"); $aDisplayColumnNames = array("document_id", "field_name", "value"); $aColumnsEditable = array(0,0,1); $aColumnsVisible = array(0,1,1); $aColumnDisplayTypes = array(1,1,4); $aColumnDatabaseTypes = array(4,0,1); $aMetaDataColumnNames = array(2=>"field_name"); $oPatternTableSqlQuery = & new PatternEditableTableSqlQuery($sQuery, "document_fields_link", $aStoreColumnNames, $aDisplayColumnNames, $aColumnsEditable, $aColumnsVisible, $aColumnDisplayTypes, $aColumnDatabaseTypes); $oPatternTableSqlQuery->setTableCaption("Type specific meta data"); $oPatternTableSqlQuery->setEmptyTableMessage("No Type Specific Meta Data"); $oPatternTableSqlQuery->setUniqueName("tsmd"); $oPatternTableSqlQuery->setMetaDataFields($aMetaDataColumnNames); $oPatternTableSqlQuery->setRenderJavascriptValidation(false); return $oPatternTableSqlQuery; } function getMetaDataForm($iFolderID, $iDocumentTypeID) { $oGenericPattern = getGenericMetaDataForm(); $oTypeSpecificPattern = getTypeSpecificMetaDataForm($iFolderID, $iDocumentTypeID); $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= ""; $sToRender .= "
Document Meta Data
" . $oGenericPattern->render() . "" . $oTypeSpecificPattern->render() . "
"; // validation starts $sToRender .= "\n\n\n\n"; return $sToRender; } function getPage($iFolderID, $iDocumentTypeID, $iDependantDocumentID = null, $sMessage = "") { global $default; if (isset($iDependantDocumentID)) { $sQueryString = "&fDependantDocumentID=$iDependantDocumentID"; } $sToRender .= renderHeading("Add " . (isset($iDependantDocumentID) ? "Dependant " : "") . "Document"); $sToRender .= renderFolderPath($iFolderID, "/control.php?action=addDocument" . $sQueryString, (isset($iDependantDocumentID) ? true : false)); if ($sMessage) { $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\t\n"; $sToRender .= "\n"; $sToRender .= "
$sMessage
\n"; } if ($iDocumentTypeID) { $sToRender .= "
Document Type
" . lookupName($default->owl_document_types_table, $iDocumentTypeID) . "
"; $sToRender .= getUploadDocument(); $sToRender .= getMetaDataForm($iFolderID, $iDocumentTypeID); $sActionButtons = "graphicsUrl/widgets/add.gif\" border=\"0\"/>"; $sToRender .= ""; $sActionButtons .= generateControllerLink("addDocument", "fFolderID=$iFolderID" . $sQueryString , "graphicsUrl/widgets/back.gif\" border=\"0\"/>") . generateControllerLink("browse", "fFolderID=$iFolderID", "graphicsUrl/widgets/cancel.gif\" border=\"0\"/>"); $sToRender .= "\n"; $sToRender .= ""; $sToRender .= "
$sActionButtons
"; } else { // only allow document type choosing and display folder list if the user has write permission if (Permission::userHasFolderWritePermission($iFolderID)) { $sToRender .= getDocumentType($iFolderID, $iDocumentTypeID, $iDependantDocumentID); $sActionButtons .= generateControllerLink("browse", "fFolderID=$iFolderID", "graphicsUrl/widgets/cancel.gif\" border=\"0\"/>"); $sToRender .= "\n"; $sToRender .= ""; $sToRender .= "
$sActionButtons
"; // display folders for browsing $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\t\n"; $sToRender .= "\n"; $sToRender .= ""; $sToRender .= "
" . renderFolderList($iFolderID, "/control.php?action=addDocument" . $sQueryString) . "\n"; $sToRender .= "

\n"; } } return $sToRender; } function getStatusPage($iFolderID, $sMessage) { $sToRender .= renderHeading("Add Document"); $sToRender .= renderFolderPath($iFolderID, "", false); $sToRender .= "\n"; $sToRender .= "\n"; $sToRender .= "\t\n"; $sToRender .= "\n"; $sToRender .= "
$sMessage
\n"; return $sToRender; } ?>