Commit 07fd69fe773db8933b0965d167b8e7003f4e9365
1 parent
be8f7020
- make archive use new UI.
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5838 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
3 changed files
with
46 additions
and
34 deletions
plugins/ktcore/KTDocumentActions.php
| @@ -1210,32 +1210,62 @@ class KTDocumentArchiveAction extends KTDocumentAction { | @@ -1210,32 +1210,62 @@ class KTDocumentArchiveAction extends KTDocumentAction { | ||
| 1210 | return parent::getInfo(); | 1210 | return parent::getInfo(); |
| 1211 | } | 1211 | } |
| 1212 | 1212 | ||
| 1213 | + function form_main() { | ||
| 1214 | + $oForm = new KTForm; | ||
| 1215 | + $oForm->setOptions(array( | ||
| 1216 | + 'label' => _kt("Archive Document"), | ||
| 1217 | + 'action' => 'archive', | ||
| 1218 | + 'fail_action' => 'main', | ||
| 1219 | + 'cancel_url' => KTBrowseUtil::getUrlForDocument($this->oDocument), | ||
| 1220 | + 'submit_label' => _kt("Archive Document"), | ||
| 1221 | + 'context' => &$this, | ||
| 1222 | + )); | ||
| 1223 | + $oForm->setWidgets(array( | ||
| 1224 | + array('ktcore.widgets.reason', array( | ||
| 1225 | + 'label' => _kt("Reason"), | ||
| 1226 | + 'description' => _kt("Please specify why you are archiving this document. Please bear in mind that you can use a maximum of <strong>250</strong> characters."), | ||
| 1227 | + 'name' => 'reason', | ||
| 1228 | + )), | ||
| 1229 | + )); | ||
| 1230 | + $oForm->setValidators(array( | ||
| 1231 | + array('ktcore.validators.string', array( | ||
| 1232 | + 'test' => 'reason', | ||
| 1233 | + 'max_length' => 250, | ||
| 1234 | + 'output' => 'reason', | ||
| 1235 | + )), | ||
| 1236 | + )); | ||
| 1237 | + | ||
| 1238 | + return $oForm; | ||
| 1239 | + } | ||
| 1240 | + | ||
| 1213 | function do_main() { | 1241 | function do_main() { |
| 1214 | - $this->oPage->setBreadcrumbDetails(_kt("archiving")); | 1242 | + $this->oPage->setBreadcrumbDetails(_kt("Archive Document")); |
| 1215 | $oTemplate =& $this->oValidator->validateTemplate('ktcore/action/archive'); | 1243 | $oTemplate =& $this->oValidator->validateTemplate('ktcore/action/archive'); |
| 1216 | - $fields = array(); | ||
| 1217 | - $fields[] = new KTStringWidget(_kt('Reason'), _kt('The reason for the archiving of this document. This will be displayed when the archived document is to be displayed.'), 'reason', "", $this->oPage, true); | 1244 | + |
| 1245 | + $oForm = $this->form_main(); | ||
| 1218 | 1246 | ||
| 1219 | $oTemplate->setData(array( | 1247 | $oTemplate->setData(array( |
| 1220 | 'context' => &$this, | 1248 | 'context' => &$this, |
| 1221 | - 'fields' => $fields, | 1249 | + 'form' => $oForm, |
| 1222 | )); | 1250 | )); |
| 1223 | return $oTemplate->render(); | 1251 | return $oTemplate->render(); |
| 1224 | } | 1252 | } |
| 1225 | 1253 | ||
| 1226 | function do_archive() { | 1254 | function do_archive() { |
| 1227 | 1255 | ||
| 1228 | - $aErrorOptions = array( | ||
| 1229 | - 'redirect_to' => array('','fDocumentId=' . $this->oDocument->getId()), | ||
| 1230 | - 'message' => _kt("You must provide a reason"), | ||
| 1231 | - ); | 1256 | + $oForm = $this->form_main(); |
| 1257 | + $res = $oForm->validate(); | ||
| 1258 | + $data = $res['results']; | ||
| 1259 | + if (!empty($res['errors'])) { | ||
| 1260 | + return $oForm->handleError(); | ||
| 1261 | + } | ||
| 1232 | 1262 | ||
| 1233 | - $sReason = $this->oValidator->validateString(KTUtil::arrayGet($_REQUEST, 'reason'), $aErrorOptions); | ||
| 1234 | - | 1263 | + $sReason = $data['reason']; |
| 1235 | 1264 | ||
| 1236 | $this->startTransaction(); | 1265 | $this->startTransaction(); |
| 1237 | $this->oDocument->setStatusID(ARCHIVED); | 1266 | $this->oDocument->setStatusID(ARCHIVED); |
| 1238 | - if (!$this->oDocument->update()) { | 1267 | + $res = $this->oDocument->update(); |
| 1268 | + if (PEAR::isError($res) || ($res === false)) { | ||
| 1239 | $_SESSION['KTErrorMessage'][] = _kt("There was a database error while trying to archive this file"); | 1269 | $_SESSION['KTErrorMessage'][] = _kt("There was a database error while trying to archive this file"); |
| 1240 | controllerRedirect('viewDocument', 'fDocumentId=' . $this->oDocument->getId()); | 1270 | controllerRedirect('viewDocument', 'fDocumentId=' . $this->oDocument->getId()); |
| 1241 | exit(0); | 1271 | exit(0); |
templates/ktcore/action/archive.smarty
| 1 | +<h2>{i18n arg_docname=$context->oDocument->getName()}Archive Document: #docname#{/i18n}</h2> | ||
| 2 | + | ||
| 1 | <p class="descriptiveText">{i18n}Archiving a document changes the | 3 | <p class="descriptiveText">{i18n}Archiving a document changes the |
| 2 | document's state to invisible to non-administrative users. Only an | 4 | document's state to invisible to non-administrative users. Only an |
| 3 | Administrator may unarchive a document. Please note that this is a | 5 | Administrator may unarchive a document. Please note that this is a |
| 4 | non-permanent change and does not delete the document from the | 6 | non-permanent change and does not delete the document from the |
| 5 | repository.{/i18n}</p> | 7 | repository.{/i18n}</p> |
| 6 | 8 | ||
| 7 | -{assign var=iDocumentId value=$context->oDocument->getId()} | ||
| 8 | -{capture assign=link} | ||
| 9 | -{"viewDocument"|generateControllerUrl:"fDocumentId=$iDocumentId"} | ||
| 10 | -{/capture} | ||
| 11 | - | ||
| 12 | -<p class="descriptiveText">{i18n arg_link=$link}If you do not intend to | ||
| 13 | -archive this document, you should <a href="#link#">cancel the | ||
| 14 | -archive</a>.{/i18n}</p> | ||
| 15 | - | ||
| 16 | -<form method="POST" action="{$smarty.server.PHP_SELF}"> | ||
| 17 | -<fieldset><legend>{i18n}Archive{/i18n}</legend> | ||
| 18 | -<input type="hidden" name="action" value="archive" /> | ||
| 19 | -<input type="hidden" name="fDocumentId" value="{$iDocumentId}" /> | ||
| 20 | -{foreach from=$fields item=oWidget } | ||
| 21 | - {$oWidget->render()} | ||
| 22 | -{/foreach} | ||
| 23 | - | ||
| 24 | -<div class="form_actions"> | ||
| 25 | -<input type="submit" name="submit[archive]" value="{i18n}Archive{/i18n}" /> | ||
| 26 | -<input type="submit" name="submit[cancel]" value="{i18n}Cancel{/i18n}" /> | ||
| 27 | -</div> | ||
| 28 | -</fieldset> | ||
| 29 | -</form> | 9 | +{$form->render()} |
templates/ktcore/action/assistance.smarty
| 1 | +<h2>{i18n arg_docname=$context->oDocument->getName()}Request Assistance: #docname#{/i18n}</h2> | ||
| 2 | + | ||
| 1 | <p class="descriptiveText">{i18n}If you are unable to perform an action | 3 | <p class="descriptiveText">{i18n}If you are unable to perform an action |
| 2 | on this document that you think you should be able to, or wish to | 4 | on this document that you think you should be able to, or wish to |
| 3 | request a change in location, metadata values, or workflow status, you | 5 | request a change in location, metadata values, or workflow status, you |