Commit 4c9030bd71ca4122cf2aa4342c35ee6a3071055a
1 parent
7832b33c
Make use of KTDocumentUtil::add to add a document.
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3615 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
20 additions
and
69 deletions
presentation/lookAndFeel/knowledgeTree/documentmanagement/addDocumentBL.php
| ... | ... | @@ -36,11 +36,8 @@ if (!checkSession()) { |
| 36 | 36 | exit(0); |
| 37 | 37 | } |
| 38 | 38 | |
| 39 | -require_once("$default->fileSystemRoot/lib/visualpatterns/PatternTableSqlQuery.inc"); | |
| 40 | -require_once("$default->fileSystemRoot/lib/visualpatterns/PatternMetaData.inc"); | |
| 41 | -require_once("$default->fileSystemRoot/lib/visualpatterns/PatternEditableTableSqlQuery.inc"); | |
| 42 | -require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); | |
| 43 | -require_once("$default->fileSystemRoot/lib/foldermanagement/Folder.inc"); | |
| 39 | +require_once(KT_LIB_DIR . '/visualpatterns/PatternCustom.inc'); | |
| 40 | +require_once(KT_LIB_DIR . '/foldermanagement/Folder.inc'); | |
| 44 | 41 | require_once("$default->fileSystemRoot/lib/documentmanagement/Document.inc"); |
| 45 | 42 | require_once("$default->fileSystemRoot/lib/documentmanagement/DependantDocumentInstance.inc"); |
| 46 | 43 | require_once("$default->fileSystemRoot/lib/documentmanagement/DocumentLink.inc"); |
| ... | ... | @@ -54,6 +51,9 @@ require_once("addDocumentUI.inc"); |
| 54 | 51 | require_once("$default->fileSystemRoot/presentation/lookAndFeel/knowledgeTree/store.inc"); |
| 55 | 52 | |
| 56 | 53 | require_once(KT_LIB_DIR . '/storage/storagemanager.inc.php'); |
| 54 | +require_once(KT_LIB_DIR . '/filelike/fsfilelike.inc.php'); | |
| 55 | +require_once(KT_LIB_DIR . '/documentmanagement/DocumentType.inc'); | |
| 56 | +require_once(KT_LIB_DIR . '/documentmanagement/documentutil.inc.php'); | |
| 57 | 57 | |
| 58 | 58 | $oStorage =& KTStorageManagerUtil::getSingleton(); |
| 59 | 59 | |
| ... | ... | @@ -148,70 +148,25 @@ if (!((strlen($_FILES['fFile']['name']) > 0) && $_FILES['fFile']['size'] > 0)) { |
| 148 | 148 | exit(0); |
| 149 | 149 | } |
| 150 | 150 | |
| 151 | -//if the user selected a file to upload | |
| 152 | -//create the document in the database | |
| 153 | -$oDocument = & PhysicalDocumentManager::createDocumentFromUploadedFile($_FILES['fFile'], $fFolderID); | |
| 154 | -// set the document title | |
| 155 | -$oDocument->setName($fName); | |
| 156 | -// set the document type id | |
| 157 | -$oDocument->setDocumentTypeID($fDocumentTypeID); | |
| 151 | +$aOptions = array( | |
| 152 | + 'contents' => new KTFSFileLike($_FILES['fFile']['tmp_name']), | |
| 153 | + 'documenttype' => DocumentType::get($fDocumentTypeID), | |
| 154 | +); | |
| 158 | 155 | |
| 159 | -if (Document::documentExists($oDocument->getFileName(), $oDocument->getFolderID())) { | |
| 160 | - // document already exists in folder | |
| 161 | - $default->log->error("addDocumentBL.php Document exists with name " . $oDocument->getFileName() . " in folder " . Folder::getFolderPath($fFolderID) . " id=$fFolderID"); | |
| 162 | - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | |
| 163 | - $oPatternCustom = & new PatternCustom(); | |
| 164 | - $oPatternCustom->setHtml(getStatusPage($fFolderID, _("A document with this file name already exists in this folder") . "</td><td><a href=\"$default->rootUrl/control.php?action=addDocument&fFolderID=$fFolderID&fDocumentTypeID=$fDocumentTypeID\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\"></a>")); | |
| 165 | - $main->setCentralPayload($oPatternCustom); | |
| 166 | - $main->render(); | |
| 167 | - exit(0); | |
| 168 | -} | |
| 169 | - | |
| 170 | -if (!$oDocument->create()) { | |
| 171 | - // couldn't store document on fs | |
| 172 | - $default->log->error("addDocumentBL.php DB error storing document in folder " . Folder::getFolderPath($fFolderID) . " id=$fFolderID"); | |
| 173 | - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | |
| 174 | - $oPatternCustom = & new PatternCustom(); | |
| 175 | - $oPatternCustom->setHtml(getStatusPage($fFolderID, _("An error occured while storing the document in the database, please try again.") . "</td><td><a href=\"$default->rootUrl/control.php?action=addDocument&fFolderID=$fFolderID&fDocumentTypeID=$fDocumentTypeID\"><img src=\"" . KTHtml::getBackButton() . "\" border=\"0\"></a>")); | |
| 176 | - $main->setCentralPayload($oPatternCustom); | |
| 177 | - $main->render(); | |
| 178 | - exit(0); | |
| 156 | +function localRenderError($oDocument) { | |
| 157 | + print $oDocument->toString(); | |
| 158 | + return; | |
| 179 | 159 | } |
| 180 | 160 | |
| 181 | -//if the document was successfully created in the db, then store it on the file system | |
| 182 | -if (!$oStorage->upload($oDocument, $_FILES['fFile']['tmp_name'])) { | |
| 183 | - // couldn't store document on filesystem | |
| 184 | - $default->log->error("addDocumentBL.php Filesystem error attempting to store document " . $oDocument->getFileName() . " in folder " . Folder::getFolderPath($fFolderID) . "; id=$fFolderID"); | |
| 185 | - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | |
| 186 | - // delete the document from the database | |
| 187 | - $oDocument->delete(); | |
| 188 | - $oPatternCustom = & new PatternCustom(); | |
| 189 | - $oPatternCustom->setHtml(getStatusPage($fFolderID, _("An error occured while storing the document on the file system, please try again.") . "</td><td><a href=\"$default->rootUrl/control.php?action=browse&fFolderID=$fFolderID\"><img src=\"" . KTHtml::getCancelButton() . "\" border=\"0\"></a>")); | |
| 190 | - $main->setCentralPayload($oPatternCustom); | |
| 191 | - $main->render(); | |
| 161 | +DBUtil::startTransaction(); | |
| 162 | +$oUser =& User::get($_SESSION["userID"]); | |
| 163 | +$oDocument =& KTDocumentUtil::add($oFolder, basename($_FILES['fFile']['name']), $oUser, $aOptions); | |
| 164 | +if (PEAR::isError($oDocument)) { | |
| 165 | + localRenderError($oDocument); | |
| 192 | 166 | exit(0); |
| 193 | 167 | } |
| 194 | - | |
| 195 | -// ALL SYSTEMS GO! | |
| 196 | - | |
| 197 | 168 | $oDocument->update(); |
| 198 | 169 | |
| 199 | - | |
| 200 | -//create the web document link | |
| 201 | -$oWebDocument = & new WebDocument($oDocument->getID(), -1, 1, NOT_PUBLISHED, getCurrentDateTime()); | |
| 202 | -if ($oWebDocument->create()) { | |
| 203 | - $default->log->error("addDocumentBL.php created web document for document ID=" . $oDocument->getID()); | |
| 204 | -} else { | |
| 205 | - $default->log->error("addDocumentBL.php couldn't create web document for document ID=" . $oDocument->getID()); | |
| 206 | -} | |
| 207 | -//create the document transaction record | |
| 208 | -$oDocumentTransaction = & new DocumentTransaction($oDocument->getID(), "Document created", CREATE); | |
| 209 | -if ($oDocumentTransaction->create()) { | |
| 210 | - $default->log->debug("addDocumentBL.php created create document transaction for document ID=" . $oDocument->getID()); | |
| 211 | -} else { | |
| 212 | - $default->log->error("addDocumentBL.php couldn't create create document transaction for document ID=" . $oDocument->getID()); | |
| 213 | -} | |
| 214 | - | |
| 215 | 170 | //the document was created/uploaded due to a collaboration step in another |
| 216 | 171 | //document and must be linked to that document |
| 217 | 172 | if (isset($fDependantDocumentID)) { |
| ... | ... | @@ -252,14 +207,10 @@ for ($i=0; $i<count($aQueries); $i++) { |
| 252 | 207 | } |
| 253 | 208 | } |
| 254 | 209 | |
| 255 | -// fire subscription alerts for the new document | |
| 256 | -$count = SubscriptionEngine::fireSubscription($fFolderID, SubscriptionConstants::subscriptionAlertType("AddDocument"), | |
| 257 | - SubscriptionConstants::subscriptionType("FolderSubscription"), | |
| 258 | - array( "newDocumentName" => $oDocument->getName(), | |
| 259 | - "folderName" => Folder::getFolderName($fFolderID))); | |
| 260 | -$default->log->info("addDocumentBL.php fired $count subscription alerts for new document " . $oDocument->getName()); | |
| 210 | +KTDocumentUtil::setComplete($oDocument, 'metadata'); | |
| 211 | +$oDocument->update(); | |
| 261 | 212 | |
| 262 | -$default->log->info("addDocumentBL.php successfully added document " . $oDocument->getFileName() . " to folder " . Folder::getFolderPath($fFolderID) . " id=$fFolderID"); | |
| 213 | +DBUtil::commit(); | |
| 263 | 214 | //redirect to the document details page |
| 264 | 215 | controllerRedirect("viewDocument", "fDocumentID=" . $oDocument->getID()); |
| 265 | 216 | ... | ... |