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;
 }
예제 #2
0
 /**
  * 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'));
     }
 }