Commit 994270c27f511b9d610589dfd49644a89fb48c51
1 parent
0ac83164
KTC-275
"Files that are uploaded with the 'Import from Server Location' is MOVED instead of COPIED to the DMS." Fixed. Added a flag to aOptions to copy a file when uploading to the DMS instead of moving it. Committed By: Megan Watson Reviewed By: Conrad Vermeulen git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@7756 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
4 changed files
with
19 additions
and
14 deletions
lib/documentmanagement/documentutil.inc.php
| @@ -718,7 +718,7 @@ class KTDocumentUtil { | @@ -718,7 +718,7 @@ class KTDocumentUtil { | ||
| 718 | $iMimeTypeId = KTMime::getMimeTypeID($sType, $oDocument->getFileName()); | 718 | $iMimeTypeId = KTMime::getMimeTypeID($sType, $oDocument->getFileName()); |
| 719 | $oDocument->setMimeTypeId($iMimeTypeId); | 719 | $oDocument->setMimeTypeId($iMimeTypeId); |
| 720 | 720 | ||
| 721 | - $res = $oStorage->upload($oDocument, $sFilename); | 721 | + $res = $oStorage->upload($oDocument, $sFilename, $aOptions); |
| 722 | if ($res === false) { | 722 | if ($res === false) { |
| 723 | return PEAR::raiseError(sprintf(_kt("Couldn't store contents: %s"), _kt('No reason given'))); | 723 | return PEAR::raiseError(sprintf(_kt("Couldn't store contents: %s"), _kt('No reason given'))); |
| 724 | } | 724 | } |
lib/import/bulkimport.inc.php
| @@ -150,6 +150,7 @@ class KTBulkImportManager { | @@ -150,6 +150,7 @@ class KTBulkImportManager { | ||
| 150 | 'metadata' => $this->aMetadata, | 150 | 'metadata' => $this->aMetadata, |
| 151 | 'documenttype' => $this->oDocumentType, | 151 | 'documenttype' => $this->oDocumentType, |
| 152 | ); | 152 | ); |
| 153 | + $aOptions = array_merge($aOptions, $this->aOptions); | ||
| 153 | $oDocument =& KTDocumentUtil::add($oFolder, utf8_encode(basename($sPath)), $this->oUser, $aOptions); | 154 | $oDocument =& KTDocumentUtil::add($oFolder, utf8_encode(basename($sPath)), $this->oUser, $aOptions); |
| 154 | return $oDocument; | 155 | return $oDocument; |
| 155 | } | 156 | } |
lib/storage/ondiskhashedstoragemanager.inc.php
| @@ -44,7 +44,7 @@ require_once(KT_LIB_DIR . '/documentmanagement/documentcontentversion.inc.php'); | @@ -44,7 +44,7 @@ require_once(KT_LIB_DIR . '/documentmanagement/documentcontentversion.inc.php'); | ||
| 44 | require_once(KT_LIB_DIR . '/filelike/fsfilelike.inc.php'); | 44 | require_once(KT_LIB_DIR . '/filelike/fsfilelike.inc.php'); |
| 45 | 45 | ||
| 46 | class KTOnDiskHashedStorageManager extends KTStorageManager { | 46 | class KTOnDiskHashedStorageManager extends KTStorageManager { |
| 47 | - function upload(&$oDocument, $sTmpFilePath) { | 47 | + function upload(&$oDocument, $sTmpFilePath, $aOptions = null) { |
| 48 | $oConfig =& KTConfig::getSingleton(); | 48 | $oConfig =& KTConfig::getSingleton(); |
| 49 | $sStoragePath = $this->generateStoragePath($oDocument); | 49 | $sStoragePath = $this->generateStoragePath($oDocument); |
| 50 | if (PEAR::isError($sStoragePath)) { | 50 | if (PEAR::isError($sStoragePath)) { |
| @@ -60,7 +60,7 @@ class KTOnDiskHashedStorageManager extends KTStorageManager { | @@ -60,7 +60,7 @@ class KTOnDiskHashedStorageManager extends KTStorageManager { | ||
| 60 | if (OS_WINDOWS) { | 60 | if (OS_WINDOWS) { |
| 61 | $sDocumentFileSystemPath = str_replace('\\','/',$sDocumentFileSystemPath); | 61 | $sDocumentFileSystemPath = str_replace('\\','/',$sDocumentFileSystemPath); |
| 62 | } | 62 | } |
| 63 | - if ($this->writeToFile($sTmpFilePath, $sDocumentFileSystemPath)) { | 63 | + if ($this->writeToFile($sTmpFilePath, $sDocumentFileSystemPath, $aOptions)) { |
| 64 | $end_time = KTUtil::getBenchmarkTime(); | 64 | $end_time = KTUtil::getBenchmarkTime(); |
| 65 | global $default; | 65 | global $default; |
| 66 | $default->log->info(sprintf("Uploaded %d byte file in %.3f seconds", $file_size, $end_time - $start_time)); | 66 | $default->log->info(sprintf("Uploaded %d byte file in %.3f seconds", $file_size, $end_time - $start_time)); |
| @@ -100,8 +100,11 @@ class KTOnDiskHashedStorageManager extends KTStorageManager { | @@ -100,8 +100,11 @@ class KTOnDiskHashedStorageManager extends KTStorageManager { | ||
| 100 | return false; | 100 | return false; |
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | - function writeToFile($sTmpFilePath, $sDocumentFileSystemPath) { | 103 | + function writeToFile($sTmpFilePath, $sDocumentFileSystemPath, $aOptions = null) { |
| 104 | // Make it easy to write compressed/encrypted storage | 104 | // Make it easy to write compressed/encrypted storage |
| 105 | + if(isset($aOptions['copy_upload']) && ($aOptions['copy_upload'] == 'true')) { | ||
| 106 | + return copy($sTmpFilePath, $sDocumentFileSystemPath); | ||
| 107 | + } | ||
| 105 | 108 | ||
| 106 | if (is_uploaded_file($sTmpFilePath)) | 109 | if (is_uploaded_file($sTmpFilePath)) |
| 107 | return move_uploaded_file($sTmpFilePath, $sDocumentFileSystemPath); | 110 | return move_uploaded_file($sTmpFilePath, $sDocumentFileSystemPath); |
plugins/ktcore/folder/BulkImport.php
| @@ -5,32 +5,32 @@ | @@ -5,32 +5,32 @@ | ||
| 5 | * KnowledgeTree Open Source Edition | 5 | * KnowledgeTree Open Source Edition |
| 6 | * Document Management Made Simple | 6 | * Document Management Made Simple |
| 7 | * Copyright (C) 2004 - 2007 The Jam Warehouse Software (Pty) Limited | 7 | * Copyright (C) 2004 - 2007 The Jam Warehouse Software (Pty) Limited |
| 8 | - * | 8 | + * |
| 9 | * This program is free software; you can redistribute it and/or modify it under | 9 | * This program is free software; you can redistribute it and/or modify it under |
| 10 | * the terms of the GNU General Public License version 3 as published by the | 10 | * the terms of the GNU General Public License version 3 as published by the |
| 11 | * Free Software Foundation. | 11 | * Free Software Foundation. |
| 12 | - * | 12 | + * |
| 13 | * This program is distributed in the hope that it will be useful, but WITHOUT | 13 | * This program is distributed in the hope that it will be useful, but WITHOUT |
| 14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | 14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
| 15 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more | 15 | * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
| 16 | * details. | 16 | * details. |
| 17 | - * | 17 | + * |
| 18 | * You should have received a copy of the GNU General Public License | 18 | * You should have received a copy of the GNU General Public License |
| 19 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 19 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 20 | - * | 20 | + * |
| 21 | * You can contact The Jam Warehouse Software (Pty) Limited, Unit 1, Tramber Place, | 21 | * You can contact The Jam Warehouse Software (Pty) Limited, Unit 1, Tramber Place, |
| 22 | * Blake Street, Observatory, 7925 South Africa. or email info@knowledgetree.com. | 22 | * Blake Street, Observatory, 7925 South Africa. or email info@knowledgetree.com. |
| 23 | - * | 23 | + * |
| 24 | * The interactive user interfaces in modified source and object code versions | 24 | * The interactive user interfaces in modified source and object code versions |
| 25 | * of this program must display Appropriate Legal Notices, as required under | 25 | * of this program must display Appropriate Legal Notices, as required under |
| 26 | * Section 5 of the GNU General Public License version 3. | 26 | * Section 5 of the GNU General Public License version 3. |
| 27 | - * | 27 | + * |
| 28 | * In accordance with Section 7(b) of the GNU General Public License version 3, | 28 | * In accordance with Section 7(b) of the GNU General Public License version 3, |
| 29 | * these Appropriate Legal Notices must retain the display of the "Powered by | 29 | * these Appropriate Legal Notices must retain the display of the "Powered by |
| 30 | - * KnowledgeTree" logo and retain the original copyright notice. If the display of the | 30 | + * KnowledgeTree" logo and retain the original copyright notice. If the display of the |
| 31 | * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices | 31 | * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices |
| 32 | - * must display the words "Powered by KnowledgeTree" and retain the original | ||
| 33 | - * copyright notice. | 32 | + * must display the words "Powered by KnowledgeTree" and retain the original |
| 33 | + * copyright notice. | ||
| 34 | * Contributor( s): ______________________________________ | 34 | * Contributor( s): ______________________________________ |
| 35 | * | 35 | * |
| 36 | */ | 36 | */ |
| @@ -60,7 +60,7 @@ class KTBulkImportFolderAction extends KTFolderAction { | @@ -60,7 +60,7 @@ class KTBulkImportFolderAction extends KTFolderAction { | ||
| 60 | function getInfo() { | 60 | function getInfo() { |
| 61 | if (!Permission::userIsSystemAdministrator($this->oUser->getId())) { | 61 | if (!Permission::userIsSystemAdministrator($this->oUser->getId())) { |
| 62 | return null; | 62 | return null; |
| 63 | - | 63 | + |
| 64 | } | 64 | } |
| 65 | return parent::getInfo(); | 65 | return parent::getInfo(); |
| 66 | } | 66 | } |
| @@ -122,6 +122,7 @@ class KTBulkImportFolderAction extends KTFolderAction { | @@ -122,6 +122,7 @@ class KTBulkImportFolderAction extends KTFolderAction { | ||
| 122 | $aOptions = array( | 122 | $aOptions = array( |
| 123 | 'documenttype' => $oDocumentType, | 123 | 'documenttype' => $oDocumentType, |
| 124 | 'metadata' => $aFields, | 124 | 'metadata' => $aFields, |
| 125 | + 'copy_upload' => 'true', | ||
| 125 | ); | 126 | ); |
| 126 | 127 | ||
| 127 | $po =& new JavascriptObserver($this); | 128 | $po =& new JavascriptObserver($this); |