function validateLove($loveId, $md, &$love)
 {
     $valid = false;
     $loveFactory = new Docman_MetadataListOfValuesElementFactory($md->getId());
     $_love =& $loveFactory->getByElementId($loveId, $md->getLabel());
     if ($_love !== null) {
         // Still Need to verify that $love belong to $md
         $valid = true;
         $love = $_love;
     }
     return $valid;
 }
Esempio n. 2
0
 function fetchLogsForItem($item_id, $display_access_logs)
 {
     $html = '';
     $uh = UserHelper::instance();
     $hp = Codendi_HTMLPurifier::instance();
     $html .= '<h3>' . $GLOBALS['Language']->getText('plugin_docman', 'details_history_logs') . '</h3>';
     $dar = $this->dao->searchByItemIdOrderByTimestamp($item_id);
     if ($dar && !$dar->isError()) {
         if ($dar->valid()) {
             $titles = array();
             $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_logs_when');
             $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_logs_who');
             $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_logs_what');
             $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_logs_old_value');
             $titles[] = $GLOBALS['Language']->getText('plugin_docman', 'details_history_logs_new_value');
             $html .= html_build_list_table_top($titles, false, false, false);
             $odd_even = array('boxitem', 'boxitemalt');
             $i = 0;
             $_previous_date = -1;
             $_previous_auth = -1;
             while ($dar->valid()) {
                 $row = $dar->current();
                 if ($row['type'] != PLUGIN_DOCMAN_EVENT_ACCESS || $display_access_logs) {
                     $user = $row['user_id'] ? $hp->purify($uh->getDisplayNameFromUserId($row['user_id'])) : $GLOBALS['Language']->getText('plugin_docman', 'details_history_anonymous');
                     $html .= '<tr class="' . $odd_even[$i++ % count($odd_even)] . '">';
                     $html .= '<td>' . html_time_ago($row['time']) . '</td>';
                     $html .= '<td>' . $user . '</td>';
                     if ($row['type'] == PLUGIN_DOCMAN_EVENT_METADATA_UPDATE) {
                         $_old_v = $row['old_value'];
                         $_new_v = $row['new_value'];
                         $mdFactory = new Docman_MetadataFactory($row['group_id']);
                         $md =& $mdFactory->getFromLabel($row['field']);
                         if ($md->getType() == PLUGIN_DOCMAN_METADATA_TYPE_LIST) {
                             $mdlovebo = new Docman_MetadataListOfValuesElementFactory();
                             $_old_e =& $mdlovebo->getByElementId($row['old_value'], $md->getLabel());
                             $_new_e =& $mdlovebo->getByElementId($row['new_value'], $md->getLabel());
                             if ($_old_e !== null) {
                                 $_old_v = $_old_e->getName();
                             }
                             if ($_new_e !== null) {
                                 $_new_v = $_new_e->getName();
                             }
                         } else {
                             if ($md->getType() == PLUGIN_DOCMAN_METADATA_TYPE_DATE) {
                                 $_old_v = format_date($GLOBALS['Language']->getText('system', 'datefmt'), $_old_v);
                                 $_new_v = format_date($GLOBALS['Language']->getText('system', 'datefmt'), $_new_v);
                             }
                         }
                         $html .= '<td>' . $GLOBALS['Language']->getText('plugin_docman', 'details_history_logs_change_field', array($md->getName())) . '</td>';
                         $html .= '<td>' . $_old_v . '</td>';
                         $html .= '<td>' . $_new_v . '</td>';
                     } elseif ($row['type'] == PLUGIN_DOCMAN_EVENT_WIKIPAGE_UPDATE) {
                         $old_version = $row['old_value'];
                         $new_version = $row['new_value'];
                         $dIF = $this->_getItemFactory($row['group_id']);
                         $pagename = $dIF->getItemFromDb($item_id)->getPageName();
                         $difflink = '/wiki/index.php?group_id=' . $row['group_id'];
                         $difflink .= '&pagename=' . urlencode($pagename) . '&action=diff';
                         $difflink .= '&versions%5b%5d=' . $old_version . '&versions%5b%5d=' . $new_version;
                         $html .= '<td colspan>' . $this->getText($row['type']) . '</td>';
                         $html .= '<td colspan="2" align="center"><a href=' . $difflink . '>diffs</a>';
                     } elseif ($row['type'] == PLUGIN_DOCMAN_EVENT_SET_VERSION_AUTHOR) {
                         $newUser = $row['new_value'];
                         $html .= '<td>' . $this->getText($row['type']) . '</td>';
                         $html .= "<td>&nbsp;</td>";
                         $html .= "<td>{$newUser}</td>";
                     } elseif ($row['type'] == PLUGIN_DOCMAN_EVENT_SET_VERSION_DATE) {
                         $newDate = format_date($GLOBALS['Language']->getText('system', 'datefmt'), $row['new_value']);
                         $html .= '<td>' . $this->getText($row['type']) . '</td>';
                         $html .= "<td>&nbsp;</td>";
                         $html .= "<td>{$newDate}</td>";
                     } elseif ($row['type'] == PLUGIN_DOCMAN_EVENT_DEL_VERSION) {
                         $old_version = $row['old_value'];
                         $html .= '<td>' . $this->getText($row['type']) . '</td>';
                         $html .= '<td colspan="2" align="center">' . $old_version . '</td>';
                     } elseif ($row['type'] == PLUGIN_DOCMAN_EVENT_RESTORE_VERSION) {
                         $versionNumber = $row['old_value'];
                         $html .= '<td>' . $this->getText($row['type']) . '</td>';
                         $html .= '<td colspan="2" align="center">' . $versionNumber . '</td>';
                     } else {
                         $html .= '<td colspan>' . $this->getText($row['type']) . '</td><td colspan="2">&nbsp;</td>';
                     }
                     $html .= '</tr>';
                     $_previous_date = $row['time'];
                     $_previous_auth = $row['user_id'];
                 }
                 $dar->next();
             }
             $html .= '</table>';
         } else {
             $html .= '<div>' . $GLOBALS['Language']->getText('plugin_docman', 'details_history_logs_no') . '</div>';
         }
     } else {
         $html .= '<div>' . $GLOBALS['Language']->getText('plugin_docman', 'details_history_logs_error') . '</div>';
         $html .= $dar->isError();
     }
     return $html;
 }