Commit ad3d0da6bd8c1991c15d28a8219ff4981af16dc8
1 parent
1503b834
fixed #2443
added move document confirmation page git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2068 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
2 changed files
with
70 additions
and
59 deletions
presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentBL.php
| ... | ... | @@ -25,74 +25,83 @@ if (checkSession()) { |
| 25 | 25 | |
| 26 | 26 | if (isset($fDocumentID) && isset($fFolderID)) { |
| 27 | 27 | if (isset($fForMove)) { |
| 28 | - //we're trying to move a document | |
| 29 | - $oDocument = & Document::get($fDocumentID); | |
| 30 | - $iOldFolderID = $oDocument->getFolderID(); | |
| 31 | - if (Permission::userHasDocumentWritePermission($fDocumentID) && Permission::userHasFolderWritePermission($fFolderID)) { | |
| 32 | - //if the user has both document and folder write permissions | |
| 33 | - //get the old document path | |
| 34 | - $sOldDocumentFileSystemPath = Folder::getFolderPath($iOldFolderID) . $oDocument->getFileName(); | |
| 35 | - //put the document in the new folder | |
| 36 | - $oDocument->setFolderID($fFolderID); | |
| 37 | - if ($oDocument->update(true)) { | |
| 38 | - //get the new document path | |
| 39 | - $sNewDocumentFileSystemPath = Folder::getFolderPath($oDocument->getFolderID()) . $oDocument->getFileName(); | |
| 40 | - //move the document on the file system | |
| 41 | - if (PhysicalDocumentManager::move($sOldDocumentFileSystemPath, $sNewDocumentFileSystemPath)) { | |
| 42 | - | |
| 43 | - // fire subscription alerts for the moved document (and the folder its in) | |
| 44 | - $count = SubscriptionEngine::fireSubscription($fDocumentID, SubscriptionConstants::subscriptionAlertType("MovedDocument"), | |
| 45 | - SubscriptionConstants::subscriptionType("DocumentSubscription"), | |
| 46 | - array( "folderID" => $iOldFolderID, | |
| 47 | - "modifiedDocumentName" => $oDocument->getName(), | |
| 48 | - "oldFolderName" => Folder::getFolderName($iOldFolderID), | |
| 49 | - "newFolderName" => Folder::getFolderName($fFolderID) )); | |
| 50 | - $default->log->info("moveDocumentBL.php fired $count subscription alerts for moved document " . $oDocument->getName()); | |
| 51 | - | |
| 52 | - // fire folder subscriptions for the destination folder | |
| 53 | - $count = SubscriptionEngine::fireSubscription($oDocument->getFolderID(), SubscriptionConstants::subscriptionAlertType("MovedDocument"), | |
| 54 | - SubscriptionConstants::subscriptionType("FolderSubscription"), | |
| 55 | - array( "modifiedDocumentName" => $oDocument->getName(), | |
| 56 | - "oldFolderName" => Folder::getFolderName($iOldFolderID), | |
| 57 | - "newFolderName" => Folder::getFolderName($fFolderID) )); | |
| 58 | - $default->log->info("moveDocumentBL.php fired $count (folderID=$fFolderID) folder subscription alerts for moved document " . $oDocument->getName()); | |
| 59 | - | |
| 60 | - | |
| 61 | - //redirect to the view path | |
| 62 | - redirect("$default->rootUrl/control.php?action=viewDocument&fDocumentID=$fDocumentID"); | |
| 28 | + if ($fConfirmed) { | |
| 29 | + //we're trying to move a document | |
| 30 | + $oDocument = & Document::get($fDocumentID); | |
| 31 | + $iOldFolderID = $oDocument->getFolderID(); | |
| 32 | + if (Permission::userHasDocumentWritePermission($fDocumentID) && Permission::userHasFolderWritePermission($fFolderID)) { | |
| 33 | + //if the user has both document and folder write permissions | |
| 34 | + //get the old document path | |
| 35 | + $sOldDocumentFileSystemPath = Folder::getFolderPath($iOldFolderID) . $oDocument->getFileName(); | |
| 36 | + //put the document in the new folder | |
| 37 | + $oDocument->setFolderID($fFolderID); | |
| 38 | + if ($oDocument->update(true)) { | |
| 39 | + //get the new document path | |
| 40 | + $sNewDocumentFileSystemPath = Folder::getFolderPath($oDocument->getFolderID()) . $oDocument->getFileName(); | |
| 41 | + //move the document on the file system | |
| 42 | + if (PhysicalDocumentManager::move($sOldDocumentFileSystemPath, $sNewDocumentFileSystemPath)) { | |
| 43 | + | |
| 44 | + // fire subscription alerts for the moved document (and the folder its in) | |
| 45 | + $count = SubscriptionEngine::fireSubscription($fDocumentID, SubscriptionConstants::subscriptionAlertType("MovedDocument"), | |
| 46 | + SubscriptionConstants::subscriptionType("DocumentSubscription"), | |
| 47 | + array( "folderID" => $iOldFolderID, | |
| 48 | + "modifiedDocumentName" => $oDocument->getName(), | |
| 49 | + "oldFolderName" => Folder::getFolderName($iOldFolderID), | |
| 50 | + "newFolderName" => Folder::getFolderName($fFolderID) )); | |
| 51 | + $default->log->info("moveDocumentBL.php fired $count subscription alerts for moved document " . $oDocument->getName()); | |
| 52 | + | |
| 53 | + // fire folder subscriptions for the destination folder | |
| 54 | + $count = SubscriptionEngine::fireSubscription($oDocument->getFolderID(), SubscriptionConstants::subscriptionAlertType("MovedDocument"), | |
| 55 | + SubscriptionConstants::subscriptionType("FolderSubscription"), | |
| 56 | + array( "modifiedDocumentName" => $oDocument->getName(), | |
| 57 | + "oldFolderName" => Folder::getFolderName($iOldFolderID), | |
| 58 | + "newFolderName" => Folder::getFolderName($fFolderID) )); | |
| 59 | + $default->log->info("moveDocumentBL.php fired $count (folderID=$fFolderID) folder subscription alerts for moved document " . $oDocument->getName()); | |
| 60 | + | |
| 61 | + | |
| 62 | + //redirect to the view path | |
| 63 | + redirect("$default->rootUrl/control.php?action=viewDocument&fDocumentID=$fDocumentID"); | |
| 64 | + } else { | |
| 65 | + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | |
| 66 | + //we couldn't move the document on the file system | |
| 67 | + //so reset the database values | |
| 68 | + $oDocument->setFolderID($iOldFolderID); | |
| 69 | + $oDocument->update(); | |
| 70 | + $oPatternCustom = & new PatternCustom(); | |
| 71 | + $oPatternCustom->setHtml(getPage($fFolderID, $fDocumentID)); | |
| 72 | + $main->setCentralPayload($oPatternCustom); | |
| 73 | + $main->setErrorMessage("Could not move document on file system"); | |
| 74 | + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForMove=1"); | |
| 75 | + $main->render(); | |
| 76 | + } | |
| 63 | 77 | } else { |
| 64 | 78 | require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); |
| 65 | - //we couldn't move the document on the file system | |
| 66 | - //so reset the database values | |
| 67 | - $oDocument->setFolderID($iOldFolderID); | |
| 68 | - $oDocument->update(); | |
| 79 | + //had a problem with the database | |
| 69 | 80 | $oPatternCustom = & new PatternCustom(); |
| 70 | 81 | $oPatternCustom->setHtml(getPage($fFolderID, $fDocumentID)); |
| 71 | 82 | $main->setCentralPayload($oPatternCustom); |
| 72 | - $main->setErrorMessage("Could not move document on file system"); | |
| 73 | - $main->setFormAction($_SERVER["PHP_SELF"] . "?fForMove=1"); | |
| 83 | + $main->setErrorMessage("Could not update document in database"); | |
| 84 | + $main->setFormAction($_SERVER["PHP_SELF"] . "?fForMove=1&fDocumentID=$fDocumentID&fFolderID=$fFolderID"); | |
| 74 | 85 | $main->render(); |
| 75 | 86 | } |
| 76 | 87 | } else { |
| 77 | 88 | require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); |
| 78 | - //had a problem with the database | |
| 79 | 89 | $oPatternCustom = & new PatternCustom(); |
| 80 | 90 | $oPatternCustom->setHtml(getPage($fFolderID, $fDocumentID)); |
| 81 | 91 | $main->setCentralPayload($oPatternCustom); |
| 82 | - $main->setErrorMessage("Could not update document in database"); | |
| 83 | 92 | $main->setFormAction($_SERVER["PHP_SELF"] . "?fForMove=1&fDocumentID=$fDocumentID&fFolderID=$fFolderID"); |
| 93 | + $main->setErrorMessage("You do not have rights to move this document"); | |
| 84 | 94 | $main->render(); |
| 85 | 95 | } |
| 86 | 96 | } else { |
| 97 | + // display confirmation page | |
| 87 | 98 | require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); |
| 88 | 99 | $oPatternCustom = & new PatternCustom(); |
| 89 | - $oPatternCustom->setHtml(getPage($fFolderID, $fDocumentID)); | |
| 100 | + $oPatternCustom->setHtml(getConfirmationPage($fFolderID, $fDocumentID)); | |
| 90 | 101 | $main->setCentralPayload($oPatternCustom); |
| 91 | 102 | $main->setFormAction($_SERVER["PHP_SELF"] . "?fForMove=1&fDocumentID=$fDocumentID&fFolderID=$fFolderID"); |
| 92 | - $main->setErrorMessage("You do not have rights to move this document"); | |
| 93 | - $main->render(); | |
| 94 | - } | |
| 95 | - | |
| 103 | + $main->render(); | |
| 104 | + } | |
| 96 | 105 | } else { |
| 97 | 106 | require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); |
| 98 | 107 | $oPatternCustom = & new PatternCustom(); | ... | ... |
presentation/lookAndFeel/knowledgeTree/documentmanagement/moveDocumentUI.inc
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | -/*function renderHeading($sHeading) { | |
| 4 | - global $default; | |
| 5 | - $sSectionName = $default->siteMap->getSectionName(substr($_SERVER["PHP_SELF"], strlen($default->rootUrl), strlen($_SERVER["PHP_SELF"]))); | |
| 6 | - $sColor = $default->siteMap->getSectionColour($sSectionName, "th"); | |
| 7 | - $sToRender = "<table border=\"0\" width=\"100%\">\n"; | |
| 8 | - $sToRender .= "<tr align=\"left\"><th class=\"sectionHeading\" bgcolor=\"$sColor\">$sHeading</th></tr>\n"; | |
| 9 | - $sToRender .= "<tr/>\n"; | |
| 10 | - $sToRender .= "<tr/>\n"; | |
| 11 | - $sToRender .= "</table>\n"; | |
| 12 | - return $sToRender; | |
| 13 | -}*/ | |
| 3 | +function getConfirmationPage($iFolderID, $iDocumentID) { | |
| 4 | + global $default; | |
| 5 | + $sToRender = renderHeading("Move Document"); | |
| 6 | + $sToRender .= "<table>\n"; | |
| 7 | + $sToRender .= "<tr>\n<td>Are you sure you want to move </td></tr>"; | |
| 8 | + $sToRender .= "<tr><td><strong>" . Document::getDocumentDisplayPath($iDocumentID) . "</strong> to </td></tr>\n"; | |
| 9 | + $sToRender .= "<tr><td><strong>" . Folder::getFolderDisplayPath($iFolderID) . " > " . Document::getDocumentName($iDocumentID) . "</strong></td>\n"; | |
| 10 | + $sToRender .= "</tr>\n"; | |
| 11 | + $sToRender .= "<tr><td><a href=\"$default->rootUrl/control.php?action=moveDocument&fDocumentID=$iDocumentID&fFolderID=$iFolderID&fForMove=1&fConfirmed=1\"><img src=\"$default->graphicsUrl/widgets/move.gif\" border=\"0\"/></a> <a href=\"$default->rootUrl/control.php?action=viewDocument&fDocumentID=" . $iDocumentID . "\"><img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\"></a></td></tr>\n"; | |
| 12 | + $sToRender .= "</table>\n"; | |
| 13 | + return $sToRender; | |
| 14 | +} | |
| 15 | + | |
| 14 | 16 | |
| 15 | 17 | function getPage($iFolderID, $iDocumentID) { |
| 16 | 18 | global $default; | ... | ... |