function displayNotificationEmail() { $html = ''; $html .= '<h3>' . $GLOBALS['Language']->getText('plugin_docman', 'details_approval_email_title') . '</h3>'; $atsm = new Docman_ApprovalTableNotificationCycle(); $atsm->setItem($this->item); $atf =& Docman_ApprovalTableFactoriesFactory::getFromItem($this->item); $table = $atf->getTable(false); $atsm->setTable($table); $um =& UserManager::instance(); $owner =& $um->getUserById($table->getOwner()); $atsm->setOwner($owner); $atsm->sendNotifReviewer($owner); $html .= $GLOBALS['Language']->getText('plugin_docman', 'details_approval_email_subject') . ' ' . $atsm->getNotificationSubject() . "\n"; $html .= '<p class="docman_approval_email">'; if (ProjectManager::instance()->getProject($this->item->getGroupId())->getTruncatedEmailsUsage()) { $html .= $GLOBALS['Language']->getText('plugin_docman', 'truncated_email'); } else { $html .= htmlentities(quoted_printable_decode($atsm->getNotificationBodyText()), ENT_COMPAT, 'UTF-8'); } $html .= '</p>'; $backurl = $this->url . '&action=approval_create&id=' . $this->item->getId(); $html .= '<a href="' . $backurl . '">' . $GLOBALS['Language']->getText('plugin_docman', 'details_approval_email_back') . '</a>'; return $html; }
/** * Return the ApprovalTableReviewerFactory that correspond to the item. */ static function getReviewerFactoryFromItem($item) { $appTableFactory = Docman_ApprovalTableFactoriesFactory::getFromItem($item); if ($appTableFactory !== null) { $table = $appTableFactory->getTable(); return $appTableFactory->_getReviewerFactory($table, $item); } }
function _getApprovalTable() { $html = ''; $atf =& Docman_ApprovalTableFactoriesFactory::getFromItem($this->item); if ($atf->tableExistsForItem()) { $html .= '<dt>' . $GLOBALS['Language']->getText('plugin_docman', 'details_actions_update_apptable') . '</dt><dd>'; $html .= '<dd>'; $html .= Docman_View_ItemDetailsSectionApprovalCreate::displayImportLastTable(false); $html .= '</dd>'; } return $html; }
function initDisplay() { $request =& HTTPRequest::instance(); // // User may request a specific table id $vVersion = new Valid_UInt('version'); $vVersion->required(); if ($request->valid($vVersion)) { $this->version = $request->get('version'); } $this->atf =& Docman_ApprovalTableFactoriesFactory::getFromItem($this->item, $this->version); $this->table =& $this->atf->getTable(); }
private function getFileVersions() { $uh = UserHelper::instance(); $content = '<h3>' . $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions') . '</h3>'; $version_factory = new Docman_VersionFactory(); $approvalFactory = Docman_ApprovalTableFactoriesFactory::getFromItem($this->item); $versions = $version_factory->getAllVersionForItem($this->item); if ($versions) { if (count($versions)) { $titles = array(); $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_version'); $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_date'); $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_author'); $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_label'); $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_changelog'); $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_approval'); $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_delete_version'); $content .= html_build_list_table_top($titles, false, false, false); $odd_even = array('boxitem', 'boxitemalt'); $i = 0; foreach ($versions as $key => $nop) { $download = Docman_View_View::buildUrl($this->url, array('action' => 'show', 'id' => $this->item->getId(), 'version_number' => $versions[$key]->getNumber())); $delete = Docman_View_View::buildUrl($this->url, array('action' => 'confirmDelete', 'id' => $this->item->getId(), 'version' => $versions[$key]->getNumber())); $user = $versions[$key]->getAuthorId() ? $uh->getDisplayNameFromUserId($versions[$key]->getAuthorId()) : $GLOBALS['Language']->getText('plugin_docman', 'details_history_anonymous'); $content .= '<tr class="' . $odd_even[$i++ % count($odd_even)] . '">'; $content .= '<td align="center"><a href="' . $download . '">' . $versions[$key]->getNumber() . '</a></td>'; $content .= '<td>' . html_time_ago($versions[$key]->getDate()) . '</td>'; $content .= '<td>' . $this->hp->purify($user) . '</td>'; $content .= '<td>' . $this->hp->purify($versions[$key]->getLabel()) . '</td>'; $content .= '<td>' . $this->hp->purify($versions[$key]->getChangelog(), CODENDI_PURIFIER_LIGHT) . '</td>'; $table = $approvalFactory->getTableFromVersion($versions[$key]); if ($table != null) { $appTable = Docman_View_View::buildUrl($this->url, array('action' => 'details', 'section' => 'approval', 'id' => $this->item->getId(), 'version' => $versions[$key]->getNumber())); $content .= '<td align="center"><a href="' . $appTable . '">' . ($titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_approval_show') . '</a></td>'); } else { $content .= '<td></td>'; } $content .= '<td align="center"><a href="' . $delete . '"><img src="' . util_get_image_theme("ic/trash.png") . '" height="16" width="16" border="0"></a></td>'; $content .= '</tr>'; } $content .= '</table>'; } else { $content .= '<div>' . $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_no') . '</div>'; } } else { $content .= '<div>' . $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_error') . '</div>'; } return $content; }
public function getDocumentApprovalTableComments(Docman_Item $item) { $comments = array(); $approval_table_factory = $this->approval_table_factory->getSpecificFactoryFromItem($item); if (!$approval_table_factory) { return $comments; } $table = $approval_table_factory->getTable(); if (!$table) { return $comments; } $review_factory = $this->approval_table_factory->getReviewerFactory($table, $item); $reviews = $review_factory->getReviewerListForLatestVersion(); foreach ($reviews as $review) { /* @var $review Docman_ApprovalReviewer */ $comments[] = array('user_id' => $review->getId(), 'date_added' => $review->getReviewDate(), 'comment' => $review->getComment()); } return $comments; }
function _validateApprovalTable($request, $item) { $atf = Docman_ApprovalTableFactoriesFactory::getFromItem($item); if ($atf && $atf->tableExistsForItem()) { $vAppTable = new Valid_WhiteList('app_table_import', array('copy', 'reset', 'empty')); $vAppTable->required(); if (!$request->valid($vAppTable)) { $this->feedback->log('error', $GLOBALS['Language']->getText('plugin_docman', 'error_no_option')); return false; } } return true; }
function approval_delete() { // Params $item = $this->_controler->_actionParams['item']; $version = $this->_controler->_actionParams['version']; $atf =& Docman_ApprovalTableFactoriesFactory::getFromItem($item, $version); $deleted = $atf->deleteTable(); if ($deleted) { $this->_controler->feedback->log('info', $GLOBALS['Language']->getText('plugin_docman', 'approval_tabledel_success')); } else { $this->_controler->feedback->log('error', $GLOBALS['Language']->getText('plugin_docman', 'approval_tabledel_failure')); } }