Esempio n. 1
0
function svn_utils_format_svn_history($group_id)
{
    global $Language;
    $output = '';
    $res_svnfullhist = svn_data_get_svn_history($group_id);
    if (!$res_svnfullhist || db_numrows($res_svnfullhist) < 1) {
        print '<P>' . $Language->getText('svn_utils', 'no_hist');
    } else {
        $svnhist = array();
        while ($row_svnfullhist = db_fetch_array($res_svnfullhist)) {
            $svnhist[$row_svnfullhist['user_name']]['full'] = $row_svnfullhist['commits'];
            $svnhist[$row_svnfullhist['user_name']]['last'] = 0;
        }
        // Now over the last 7 days
        $res_svnlasthist = svn_data_get_svn_history($group_id, 7 * 24 * 3600);
        while ($row_svnlasthist = db_fetch_array($res_svnlasthist)) {
            $svnhist[$row_svnlasthist['user_name']]['last'] = $row_svnlasthist['commits'];
        }
        // Format output
        $output = '<P><b>' . $Language->getText('svn_utils', 'ci_week') . '</b><BR>&nbsp;';
        reset($svnhist);
        $uh = new UserHelper();
        $hp = Codendi_HTMLPurifier::instance();
        while (list($user, ) = each($svnhist)) {
            $output .= '<BR>' . $hp->purify($uh->getDisplayNameFromUserName($user), CODENDI_PURIFIER_CONVERT_HTML) . ' (' . $svnhist[$user]['last'] . '/' . $svnhist[$user]['full'] . ')';
        }
    }
    return $output;
}
Esempio n. 2
0
 private function _display_muc_logs($group_id, $start_date, $end_date)
 {
     $pm = ProjectManager::instance();
     $project = $pm->getProject($group_id);
     $any = $GLOBALS['Language']->getText('global', 'any');
     echo '<h2>' . $GLOBALS['Language']->getText('plugin_im', 'muc_logs_title') . '</h2>';
     echo '<form name="muclog_search" id="muclog_search" action="">';
     echo ' <fieldset>';
     echo '  <legend>' . $GLOBALS['Language']->getText('plugin_im', 'muc_logs_search') . ' <img src="' . $this->iconsPath . 'help.png" alt="' . $GLOBALS['Language']->getText('plugin_im', 'muc_logs_helpsearch') . '" title="' . $GLOBALS['Language']->getText('plugin_im', 'muc_logs_helpsearch') . '" /> </legend>';
     echo '  <p>';
     echo '   <label for="log_start_date">' . $GLOBALS['Language']->getText('plugin_im', 'muc_logs_start_date') . '</label>';
     echo $GLOBALS['HTML']->getDatePicker('log_start_date', 'log_start_date', $start_date);
     echo '  </p>';
     echo '  <p>';
     echo '   <label for="log_end_date">' . $GLOBALS['Language']->getText('plugin_im', 'muc_logs_end_date') . '</label>';
     echo $GLOBALS['HTML']->getDatePicker('log_end_date', 'log_end_date', $end_date);
     echo '  </p>';
     echo '  <p>';
     echo '   <label for="search_button">&nbsp;</label>';
     echo '  <input id="search_button" type="submit" value="' . $GLOBALS['Language']->getText('plugin_im', 'search') . '">';
     echo '  </p>';
     echo ' </fieldset>';
     echo ' <input type="hidden" name="action" value="muc_logs" />';
     echo ' <input type="hidden" name="group_id" value="' . $group_id . '" />';
     echo '</form>';
     $mclm = IMMucLogManager::getMucLogManagerInstance();
     $conversations = null;
     try {
         if ($start_date == $any && $end_date == $any) {
             $conversations = $mclm->getLogsByGroupName($project->getUnixName(true));
         } elseif ($start_date == $any && $end_date != $any) {
             $conversations = $mclm->getLogsByGroupNameBeforeDate($project->getUnixName(true), $end_date);
         } elseif ($start_date != $any && $end_date == $any) {
             $conversations = $mclm->getLogsByGroupNameAfterDate($project->getUnixName(true), $start_date);
         } else {
             $conversations = $mclm->getLogsByGroupNameBetweenDates($project->getUnixName(true), $start_date, $end_date);
         }
     } catch (Exception $e) {
         echo $e->getMessage();
     }
     if (!$conversations || sizeof($conversations) == 0) {
         echo $GLOBALS['Language']->getText('plugin_im', 'no_muc_logs');
     } else {
         $purifier = Codendi_HTMLPurifier::instance();
         $uh = new UserHelper();
         $nick_color_arr = array();
         // association array nickname => color
         $available_colors = $GLOBALS['HTML']->getTextColors();
         echo '<table class="logs">';
         echo ' <tr>';
         echo '  <th>' . $GLOBALS['Language']->getText('plugin_im', 'muc_logs_time') . '</th>';
         echo '  <th>' . $GLOBALS['Language']->getText('plugin_im', 'muc_logs_user') . '</th>';
         echo '  <th>' . $GLOBALS['Language']->getText('plugin_im', 'muc_logs_message') . '</th>';
         echo ' </tr>';
         $current_day = null;
         $current_time_minute = null;
         $last_conversation_activity = null;
         foreach ($conversations as $conv) {
             if ($conv->getDay() != $current_day) {
                 $current_day = $conv->getDay();
                 echo ' <tr class="boxtitle">';
                 echo '  <td colspan="3">' . $conv->getDay() . '</td>';
                 echo ' </tr>';
             } else {
                 if ($conv->getTimestamp() - $last_conversation_activity > IMMucLog::DELAY_BETWEEN_CONVERSATIONS * 60) {
                     echo ' <tr class="conversation_separation">';
                     echo '  <td colspan="3"><hr class="conversation_separation"></td>';
                     echo ' </tr>';
                 }
             }
             // if nickname hasn't its color yet, we give it a new one
             if (!array_key_exists($conv->getNickname(), $nick_color_arr)) {
                 // if all the colors have been used, we start again with the same colors
                 if (sizeof($available_colors) == 0) {
                     $available_colors = $GLOBALS['HTML']->getChartColors();
                 }
                 $current_color = array_pop($available_colors);
                 // remove a color from the array, and set it to current color
                 $nick_color_arr[$conv->getNickname()] = $GLOBALS['HTML']->getColorCodeFromColorName($current_color);
             }
             echo ' <tr class="' . get_class($conv) . '">';
             if ($conv->getTime() != $current_time_minute) {
                 $current_time_minute = $conv->getTime();
                 echo '  <td class="log_time">' . $current_time_minute . '</td>';
             } else {
                 echo '  <td class="log_time">&nbsp;</td>';
             }
             if ($conv->getNickname() != null) {
                 echo '  <td class="log_nickname"><span title="' . $purifier->purify($uh->getDisplayNameFromUserName($conv->getUsername())) . '" style="color: ' . $nick_color_arr[$conv->getNickname()] . ';">&lt;' . $purifier->purify($conv->getNickname(), CODENDI_PURIFIER_CONVERT_HTML) . '&gt;</span></td>';
             } else {
                 echo '  <td class="log_nickname">&nbsp;</td>';
             }
             echo '  <td class="' . get_class($conv) . '">' . $purifier->purify($conv->getMessage(), CODENDI_PURIFIER_BASIC, $group_id) . '</td>';
             echo ' </tr>';
             // update last activity time
             $last_conversation_activity = $conv->getTimestamp();
         }
         echo '</table>';
         echo '<form action="" method="post" name="muc_logs_export_form" id="muc_logs_export_form">';
         echo ' <input name="type" value="export" type="hidden">';
         echo ' <font size="-1"><input value="' . $GLOBALS['Language']->getText('plugin_im', 'export_muc_logs') . '" type="submit"></font><br>';
         echo '</form>';
     }
 }