This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".

The branch, master has been updated
       via  c4f2be97751369c26123e4cb0fb528d4230496c2 (commit)
       via  a9e8bad27e133a82983c2ba3c318350f5e225eed (commit)
       via  9280054f57d0df0ea14b6a8978f4fdd56a982e5c (commit)
      from  0170215c3c23ddef84c42d1b7069731e8ee5575c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=c4f2be97751369c26123e4cb0fb528d4230496c2

commit c4f2be97751369c26123e4cb0fb528d4230496c2
Author: Franck Villaume <[email protected]>
Date:   Sat Jun 24 13:54:15 2017 +0200

    introduce generic Activity object to factorize code

diff --git a/src/common/include/Activity.class.php 
b/src/common/include/Activity.class.php
new file mode 100644
index 0000000..d548605
--- /dev/null
+++ b/src/common/include/Activity.class.php
@@ -0,0 +1,207 @@
+<?php
+/**
+ * Activity Class
+ *
+ * Copyright 2017, Franck Villaume - TrivialDev
+ * http://fusionforge.org/
+ *
+ * This file is part of FusionForge. FusionForge is free software;
+ * you can redistribute it and/or modify it under the terms of the
+ * GNU General Public License as published by the Free Software
+ * Foundation; either version 2 of the Licence, or (at your option)
+ * any later version.
+ *
+ * FusionForge is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with FusionForge; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+class Activity extends FFError {
+
+       //No constructor. Inherit from FFError.
+       function check_perm_for_activity($arr, &$cached_perms) {
+               $s = $arr['section'];
+               $ref = $arr['ref_id'];
+               $group_id = $arr['group_id'];
+
+               if (!isset($cached_perms[$s][$ref])) {
+                       switch ($s) {
+                               case 'scm': {
+                                       $cached_perms[$s][$ref] = 
forge_check_perm('scm', $group_id, 'read');
+                                       break;
+                               }
+                               case 'trackeropen':
+                               case 'trackerclose': {
+                                       $cached_perms[$s][$ref] = 
forge_check_perm('tracker', $ref, 'read');
+                                       break;
+                               }
+                               case 'frsrelease': {
+                                       $cached_perms[$s][$ref] = 
forge_check_perm('frs', $ref, 'read');
+                                       break;
+                               }
+                               case 'forumpost':
+                               case 'news': {
+                                       $cached_perms[$s][$ref] = 
forge_check_perm('forum', $ref, 'read');
+                                       break;
+                               }
+                               case 'taskopen':
+                               case 'taskclose':
+                               case 'taskdelete': {
+                                       $cached_perms[$s][$ref] = 
forge_check_perm('pm', $ref, 'read');
+                                       break;
+                               }
+                               case 'docmannew':
+                               case 'docmanupdate':
+                               case 'docgroupnew': {
+                                       $cached_perms[$s][$ref] = 
forge_check_perm('docman', $group_id, 'read');
+                                       break;
+                               }
+                               case 'mediawiki':
+                                       $cached_perms[$s][$ref] = 
forge_check_perm('plugin_mediawiki_read', $group_id, 'read');
+                                       break;
+                               default: {
+                                       // Must be a bug somewhere, we're 
supposed to handle all types
+                                       $cached_perms[$s][$ref] = false;
+                               }
+                       }
+               }
+               return $cached_perms[$s][$ref];
+       }
+
+       static function date_compare($a, $b) {
+               if ($a['activity_date'] == $b['activity_date']) {
+                       return 0;
+               }
+               return ($a['activity_date'] > $b['activity_date']) ? -1 : 1;
+       }
+
+       function getDisplayInfo($arr) {
+               $docmanerror = 0;
+               switch (@$arr['section']) {
+                       case 'scm': {
+                               $icon = 
html_image('ic/cvs16b.png','','',array('alt'=>_('Source Code')));
+                               $url = 
util_make_link('/scm/'.$arr['ref_id'].$arr['subref_id'],_('scm commit')._(': 
').$arr['description']);
+                               break;
+                       }
+                       case 'trackeropen': {
+                               $icon = $HTML->getOpenTicketPic(_('Tracker 
Open'), 'trackeropen');
+                               $url = 
util_make_link('/tracker/a_follow.php/'.$arr['subref_id'],_('Tracker Item').' 
[#'.$arr['subref_id'].'] '.$arr['description'].' '._('Opened'));
+                               break;
+                       }
+                       case 'trackerclose': {
+                               $icon = $HTML->getClosedTicketPic(_('Tracker 
Closed'), 'trackerclose');
+                               $url = 
util_make_link('/tracker/a_follow.php/'.$arr['subref_id'],_('Tracker Item').' 
[#'.$arr['subref_id'].'] '.$arr['description'].' '._('Closed'));
+                               break;
+                       }
+                       case 'frsrelease': {
+                               $icon = 
html_image('ic/cvs16b.png','','',array('alt'=>_('Files')));
+                               $url = 
util_make_link('/frs/?release_id='.$arr['subref_id'].'&group_id='.$arr['group_id'],_('FRS
 Release').' '.$arr['description']);
+                               break;
+                       }
+                       case 'forumpost': {
+                               $icon = 
html_image('ic/forum20g.png','','',array('alt'=>_('Forum')));
+                               $url = 
util_make_link('/forum/message.php?msg_id='.$arr['subref_id'].'&group_id='.$arr['group_id'],_('Forum
 Post').' '.$arr['description']);
+                               break;
+                       }
+                       case 'news': {
+                               $icon = 
html_image('ic/write16w.png','','',array('alt'=>_('News')));
+                               $url = 
util_make_link('/forum/forum.php?forum_id='.$arr['subref_id'],_('News').' 
'.$arr['description']);
+                               break;
+                       }
+                       case 'taskopen': {
+                               $icon = 
html_image('ic/taskman20w.png','','',array('alt'=>_('Tasks')));
+                               $url = 
util_make_link('/pm/t_follow.php/'.$arr['subref_id'],_('Tasks').' 
'.$arr['description']);
+                               break;
+                       }
+                       case 'taskclose': {
+                               $icon = 
html_image('ic/taskman20w.png','','',array('alt'=>_('Tasks')));
+                               $url = 
util_make_link('/pm/t_follow.php/'.$arr['subref_id'],_('Tasks').' 
'.$arr['description']);
+                               break;
+                       }
+
+                       case 'taskdelete': {
+                               $icon = 
html_image('ic/taskman20w.png','','',array('alt'=>_('Tasks')));
+                               $url = 
util_make_link('/pm/t_follow.php/'.$arr['subref_id'],_('Tasks').' 
'.$arr['description']);
+                               break;
+                       }
+                       case 'docmannew':
+                       case 'docmanupdate': {
+                               $document = 
document_get_object($arr['subref_id'], $arr['group_id']);
+                               $stateid = $document->getStateID();
+                               if ($stateid != 1 && 
!forge_check_perm('docman', $arr['group_id'], 'approve')) {
+                                       $docmanerror = 1;
+                                       break;
+                               }
+                               $dg = documentgroup_get_object($arr['ref_id'], 
$arr['group_id']);
+                               if (!$dg || $dg->isError() || 
!$dg->getPath(true, false)) {
+                                       $docmanerror = 1;
+                                       break;
+                               }
+                               $icon = 
html_image($document->getFileTypeImage(), 22, 22, array('alt' => 
$document->getFileType()));
+                               $url = 
util_make_link($document->getPermalink(),_('Document').' '.$arr['description']);
+                               break;
+                       }
+                       case 'docgroupnew': {
+                               $dg = 
documentgroup_get_object($arr['subref_id'], $arr['group_id']);
+                               if (!$dg || $dg->isError() || 
!$dg->getPath(true, false)) {
+                                       $docmanerror = 1;
+                                       break;
+                               }
+                               $icon = $HTML->getFolderPic('', _('Directory'));
+                               if ($dg->getState() == 2) {
+                                       $view = 'listtrashfile';
+                               } else {
+                                       $view = 'listfile';
+                               }
+                               $url = 
util_make_link('/docman/?group_id='.$arr['group_id'].'&view='.$view.'&dirid='.$arr['subref_id'],_('Directory').'
 '.$arr['description']);
+                               break;
+                       }
+                       default: {
+                               $icon = isset($arr['icon']) ? $arr['icon'] : '';
+                               $url = '<a 
href="'.$arr['link'].'">'.$arr['title'].'</a>';
+                       }
+               }
+               if ($docmanerror) {
+                       return false;
+               }
+               return $icon .' '.$url;
+       }
+
+       function getActivitiesForProject($group_id, $begin, $end, $section) {
+               $res = db_query_params('SELECT * FROM activity_vw WHERE 
activity_date BETWEEN $1 AND $2
+                               AND group_id = $3 AND section = ANY ($4) ORDER 
BY activity_date DESC',
+                               array($begin,
+                                       $end,
+                                       $group_id,
+                                       
db_string_array_to_any_clause($section)));
+
+               if (db_error()) {
+                       $this->setError(db_error());
+                       return false;
+               }
+
+               $results = array();
+               while ($arr = db_fetch_array($res)) {
+                       $results[] = $arr;
+               }
+               return $results;
+       }
+
+       function getActivitiesForProjects($selected_groups, $begin, $end) {
+               $activities = array();
+               $res = db_query_params('SELECT * FROM activity_vw WHERE 
activity_date BETWEEN $1 AND $2
+                                       AND group_id = ANY ($3) ORDER BY 
activity_date DESC',
+                               array($begin, $end, 
db_int_array_to_any_clause($selected_groups)));
+               if ($res && db_numrows($res) > 0) {
+                       while ($arr = db_fetch_array($res)) {
+                               $activities[] = $arr;
+                       }
+               }
+               return $activities;
+       }
+}
diff --git 
a/src/common/widget/Widget_HomeDetailActivityMostActiveProjectWeek.class.php 
b/src/common/widget/Widget_HomeDetailActivityMostActiveProjectWeek.class.php
index 0cf1b08..6c92a92 100644
--- a/src/common/widget/Widget_HomeDetailActivityMostActiveProjectWeek.class.php
+++ b/src/common/widget/Widget_HomeDetailActivityMostActiveProjectWeek.class.php
@@ -18,6 +18,7 @@
  */
 
 require_once 'Widget.class.php';
+require_once $gfcommon.'include/Activity.class.php';
 
 class Widget_HomeDetailActivityMostActiveProjectWeek extends Widget {
 
@@ -44,17 +45,11 @@ class Widget_HomeDetailActivityMostActiveProjectWeek 
extends Widget {
                                $count++;
                        }
                }
-               $activities = array();
-               $begin = (time()-(7*86400));
+               $begin = (time() - (7 * 86400));
                $end = time();
-               $res = db_query_params('SELECT * FROM activity_vw WHERE 
activity_date BETWEEN $1 AND $2
-                                       AND group_id = ANY ($3) ORDER BY 
activity_date DESC',
-                               array($begin, $end, 
db_int_array_to_any_clause($selected_groups)));
-               if ($res && db_numrows($res) > 0) {
-                       while ($arr = db_fetch_array($res)) {
-                               $activities[] = $arr;
-                       }
-               }
+               $ffactivity = new Activity();
+               $activities = 
$ffactivity->getActivitiesForProjects($selected_groups, $begin, $end);
+
                foreach ($selected_groups as $group_id) {
                        // If plugins wants to add activities.
                        $hookParams['group'] = $group_id;
@@ -66,12 +61,12 @@ class Widget_HomeDetailActivityMostActiveProjectWeek 
extends Widget {
                if (count($activities) > 0) {
                        $date_format = _('%Y-%m-%d');
                        $date_format_js = _('yy-mm-dd');
-                       usort($activities, 
'Widget_HomeDetailActivityMostActiveProjectWeek::date_compare');
+                       usort($activities, 'Activity::date_compare');
                        $displayTableTop = 0;
                        $last_day = 0;
                        foreach ($activities as $activity) {
                                $docmanerror = 0;
-                               if (!$this->check_perm_for_activity($activity)) 
{
+                               if 
(!$ffactivity->check_perm_for_activity($activity, $this->cached_perms)) {
                                        continue;
                                }
                                if (!$displayTableTop) {
@@ -84,74 +79,8 @@ class Widget_HomeDetailActivityMostActiveProjectWeek extends 
Widget {
                                        echo $HTML->listTableTop($theader);
                                        $displayTableTop = 1;
                                }
-                               switch (@$activity['section']) {
-                                       case 'scm': {
-                                               $icon = 
html_image('ic/cvs16b.png','','',array('alt'=>_('Source Code')));
-                                               $url = 
util_make_link('/scm/'.$activity['ref_id'].$activity['subref_id'],_('scm 
commit')._(': ').$activity['description']);
-                                               break;
-                                       }
-                                       case 'trackeropen': {
-                                               $icon = 
$HTML->getOpenTicketPic(_('Tracker Open'), 'trackeropen');
-                                               $url = 
util_make_link('/tracker/a_follow.php/'.$activity['subref_id'],_('Tracker 
Item').' [#'.$activity['subref_id'].'] '.$activity['description'].' 
'._('Open'));
-                                               break;
-                                       }
-                                       case 'trackerclose': {
-                                               $icon = 
$HTML->getClosedTicketPic(_('Tracker Closed'), 'trackerclose');
-                                               $url = 
util_make_link('/tracker/a_follow.php/'.$activity['subref_id'],_('Tracker 
Item').' [#'.$activity['subref_id'].'] '.$activity['description'].' 
'._('Closed'));
-                                               break;
-                                       }
-                                       case 'frsrelease': {
-                                               $icon = 
html_image('ic/cvs16b.png','','',array('alt'=>_('Files')));
-                                               $url = 
util_make_link('/frs/?release_id='.$activity['subref_id'].'&group_id='.$activity['group_id'],_('FRS
 Release').' '.$activity['description']);
-                                               break;
-                                       }
-                                       case 'forumpost': {
-                                               $icon = 
html_image('ic/forum20g.png','','',array('alt'=>_('Forum')));
-                                               $url = 
util_make_link('/forum/message.php?msg_id='.$activity['subref_id'].'&group_id='.$activity['group_id'],_('Forum
 Post').' '.$activity['description']);
-                                               break;
-                                       }
-                                       case 'news': {
-                                               $icon = 
html_image('ic/write16w.png','','',array('alt'=>_('News')));
-                                               $url = 
util_make_link('/forum/forum.php?forum_id='.$activity['subref_id'],_('News').' 
'.$activity['description']);
-                                               break;
-                                       }
-                                       case 'taskopen':
-                                       case 'taskclose':
-                                       case 'taskdelete': {
-                                               $icon = 
html_image('ic/taskman20w.png','','',array('alt'=>_('Tasks')));
-                                               $url = 
util_make_link('/pm/t_follow.php/'.$activity['subref_id'],_('Tasks').' 
'.$activity['description']);
-                                               break;
-                                       }
-                                       case 'docmannew':
-                                       case 'docmanupdate': {
-                                               $document = 
document_get_object($activity['subref_id'], $activity['group_id']);
-                                               $stateid = 
$document->getStateID();
-                                               if ($stateid != 1 && 
!forge_check_perm('docman', $activity['group_id'], 'approve')) {
-                                                       $docmanerror = 1;
-                                               }
-                                               $dg = 
documentgroup_get_object($activity['ref_id'], $activity['group_id']);
-                                               if (!$dg || $dg->isError() || 
!$dg->getPath(true, false)) {
-                                                       $docmanerror = 1;
-                                               }
-                                               $icon = 
html_image('ic/docman16b.png', '', '', array('alt'=>_('Documents')));
-                                               $url = 
util_make_link($document->getPermalink(),_('Document').' 
'.$activity['description']);
-                                               break;
-                                       }
-                                       case 'docgroupnew': {
-                                               $dg = 
documentgroup_get_object($activity['subref_id'], $activity['group_id']);
-                                               if (!$dg || $dg->isError() || 
!$dg->getPath(true, false)) {
-                                                       $docmanerror = 1;
-                                               }
-                                               $icon = 
html_image('ic/cfolder15.png', '', '', array("alt"=>_('Directory')));
-                                               $url = 
util_make_link('docman/?group_id='.$activity['group_id'].'&view=listfile&dirid='.$activity['subref_id'],_('Directory').'
 '.$activity['description']);
-                                               break;
-                                       }
-                                       default: {
-                                               $icon = 
isset($activity['icon']) ? $activity['icon'] : '';
-                                               $url = '<a 
href="'.$activity['link'].'">'.$activity['title'].'</a>';
-                                       }
-                               }
-                               if ($docmanerror) {
+                               $displayinfo = 
$ffactivity->getDisplayInfo($arr);
+                               if (!$displayinfo) {
                                        continue;
                                }
                                if ($last_day != strftime($date_format, 
$activity['activity_date'])) {
@@ -161,11 +90,11 @@ class Widget_HomeDetailActivityMostActiveProjectWeek 
extends Widget {
                                        $last_day=strftime($date_format, 
$activity['activity_date']);
                                }
                                $cells = array();
-                               $cells[][] = 
date('H:i:s',$activity['activity_date']);
+                               $cells[][] = date('H:i:s', 
$activity['activity_date']);
                                $group_object = 
group_get_object($activity['group_id']);
 
                                $cells[][] = 
util_make_link_g($group_object->getUnixName(), $activity['group_id'], 
$group_object->getPublicName());
-                               $cells[][] = $icon .' '.$url;
+                               $cells[][] = $displayinfo;
                                if (isset($activity['user_name']) && 
$activity['user_name']) {
                                        $cells[][] = 
util_display_user($activity['user_name'], 
$activity['user_id'],$activity['realname']);
                                } else {
@@ -189,57 +118,4 @@ class Widget_HomeDetailActivityMostActiveProjectWeek 
extends Widget {
        function isAvailable() {
                return isset($this->content['title']);
        }
-
-       function date_compare($a, $b) {
-               if ($a['activity_date'] == $b['activity_date']) {
-                       return 0;
-               }
-               return ($a['activity_date'] > $b['activity_date']) ? -1 : 1;
-       }
-
-       function check_perm_for_activity($arr) {
-               $s = $arr['section'];
-               $ref = $arr['ref_id'];
-               $group_id = $arr['group_id'];
-
-               if (!isset($this->cached_perms[$s][$ref])) {
-                       switch ($s) {
-                               case 'scm': {
-                                       $this->cached_perms[$s][$ref] = 
forge_check_perm('scm', $group_id, 'read');
-                                       break;
-                               }
-                               case 'trackeropen':
-                               case 'trackerclose': {
-                                       $this->cached_perms[$s][$ref] = 
forge_check_perm('tracker', $ref, 'read');
-                                       break;
-                               }
-                               case 'frsrelease': {
-                                       $this->cached_perms[$s][$ref] = 
forge_check_perm('frs', $ref, 'read');
-                                       break;
-                               }
-                               case 'forumpost':
-                               case 'news': {
-                                       $this->cached_perms[$s][$ref] = 
forge_check_perm('forum', $ref, 'read');
-                                       break;
-                               }
-                               case 'taskopen':
-                               case 'taskclose':
-                               case 'taskdelete': {
-                                       $this->cached_perms[$s][$ref] = 
forge_check_perm('pm', $ref, 'read');
-                                       break;
-                               }
-                               case 'docmannew':
-                               case 'docmanupdate':
-                               case 'docgroupnew': {
-                                       $this->cached_perms[$s][$ref] = 
forge_check_perm('docman', $group_id, 'read');
-                                       break;
-                               }
-                               default: {
-                                       // Must be a bug somewhere, we're 
supposed to handle all types
-                                       $this->cached_perms[$s][$ref] = false;
-                               }
-                       }
-               }
-               return $this->cached_perms[$s][$ref];
-       }
 }
diff --git a/src/www/activity/index.php b/src/www/activity/index.php
index e3d921b..895104b 100644
--- a/src/www/activity/index.php
+++ b/src/www/activity/index.php
@@ -28,6 +28,7 @@
 
 require_once '../env.inc.php';
 require_once $gfcommon.'include/pre.php';
+require_once $gfcommon.'include/Activity.class.php';
 require_once $gfcommon.'docman/Document.class.php';
 require_once $gfcommon.'docman/DocumentGroup.class.php';
 
@@ -44,12 +45,12 @@ $date_format = _('%Y-%m-%d');
 $date_format_js = _('yy-mm-dd');
 
 if (!$received_begin || $received_begin == 0) {
-       $begin = (time()-(30*86400));
+       $begin = (time() - (30 * 86400));
        $rendered_begin = strftime($date_format, $begin);
 } else {
        $tmp = strptime($received_begin, $date_format);
        if (!$tmp) {
-               $begin = (time()-(30*86400));
+               $begin = (time() - (30 * 86400));
                $rendered_begin = strftime($date_format, $begin);
        } else {
                $begin = mktime(0, 0, 0, $tmp['tm_mon']+1, $tmp['tm_mday'], 
$tmp['tm_year'] + 1900);
@@ -70,7 +71,7 @@ if (!$received_end || $received_end == 0) {
                $end = time();
                $rendered_end = strftime($date_format, $end);
        } else {
-               $end = mktime(23, 59, 59, $tmp['tm_mon']+1, $tmp['tm_mday'], 
$tmp['tm_year'] + 1900);
+               $end = mktime(23, 59, 59, $tmp['tm_mon'] + 1, $tmp['tm_mday'], 
$tmp['tm_year'] + 1900);
                $rendered_end = $received_end;
        }
 }
@@ -151,22 +152,11 @@ if (count($show) < 1) {
        $section = $show;
 }
 
-$res = db_query_params('SELECT * FROM activity_vw WHERE activity_date BETWEEN 
$1 AND $2
-                       AND group_id = $3 AND section = ANY ($4) ORDER BY 
activity_date DESC',
-                       array($begin,
-                               $end,
-                               $group_id,
-                               db_string_array_to_any_clause($section)));
-
-if (db_error()) {
-       exit_error(db_error(), 'home');
-}
-
-$results = array();
-while ($arr = db_fetch_array($res)) {
-       $results[] = $arr;
+$ffactivity = new Activity();
+$results = $ffactivity->getActivitiesForProject($group_id, $begin, $end, 
$section);
+if ($results === false) {
+       exit_error(_('Unable to get 
activities')._(':').$ffactivity->getErrorMessage(), 'home');
 }
-
 // If plugins wants to add activities.
 $hookParams['group'] = $group_id;
 $hookParams['results'] = &$results;
@@ -175,7 +165,7 @@ $hookParams['begin'] = $begin;
 $hookParams['end'] = $end;
 $hookParams['ids'] = &$ids;
 $hookParams['texts'] = &$texts;
-plugin_hook("activity", $hookParams);
+plugin_hook('activity', $hookParams);
 
 if (count($show) < 1) {
        $show = $ids;
@@ -229,74 +219,16 @@ echo $HTML->closeForm();
        if (count($results) < 1) {
                echo $HTML->information(_('No Activity Found'));
        } else {
-
-               function date_compare($a, $b)
-               {
-                       if ($a['activity_date'] == $b['activity_date']) {
-                               return 0;
-                       }
-                       return ($a['activity_date'] > $b['activity_date']) ? -1 
: 1;
-               }
-
                $cached_perms = array();
-               function check_perm_for_activity($arr) {
-                       global $cached_perms;
-                       $s = $arr['section'];
-                       $ref = $arr['ref_id'];
-                       $group_id = $arr['group_id'];
-
-                       if (!isset($cached_perms[$s][$ref])) {
-                               switch ($s) {
-                                       case 'scm': {
-                                               $cached_perms[$s][$ref] = 
forge_check_perm('scm', $group_id, 'read');
-                                               break;
-                                       }
-                                       case 'trackeropen':
-                                       case 'trackerclose': {
-                                               $cached_perms[$s][$ref] = 
forge_check_perm('tracker', $ref, 'read');
-                                               break;
-                                       }
-                                       case 'frsrelease': {
-                                               $cached_perms[$s][$ref] = 
forge_check_perm('frs', $ref, 'read');
-                                               break;
-                                       }
-                                       case 'forumpost':
-                                       case 'news': {
-                                               $cached_perms[$s][$ref] = 
forge_check_perm('forum', $ref, 'read');
-                                               break;
-                                       }
-                                       case 'taskopen':
-                                       case 'taskclose':
-                                       case 'taskdelete': {
-                                               $cached_perms[$s][$ref] = 
forge_check_perm('pm', $ref, 'read');
-                                               break;
-                                       }
-                                       case 'docmannew':
-                                       case 'docmanupdate':
-                                       case 'docgroupnew': {
-                                               $cached_perms[$s][$ref] = 
forge_check_perm('docman', $group_id, 'read');
-                                               break;
-                                       }
-                                        case 'mediawiki':
-                                                $cached_perms[$s][$ref] = 
forge_check_perm('plugin_mediawiki_read', $group_id, 'read');
-                                                break;
-                                       default: {
-                                               // Must be a bug somewhere, 
we're supposed to handle all types
-                                               $cached_perms[$s][$ref] = false;
-                                       }
-                               }
-                       }
-                       return $cached_perms[$s][$ref];
-               }
 
-               usort($results, 'date_compare');
+               usort($results, 'Activity::date_compare');
 
                $displayTableTop = 0;
                $j = 0;
                $last_day = 0;
                foreach ($results as $arr) {
                        $docmanerror = 0;
-                       if (!check_perm_for_activity($arr)) {
+                       if (!$ffactivity->check_perm_for_activity($arr, 
$cached_perms)) {
                                continue;
                        }
                        if (!$displayTableTop) {
@@ -308,100 +240,19 @@ echo $HTML->closeForm();
                                echo $HTML->listTableTop($theader);
                                $displayTableTop = 1;
                        }
-                       switch (@$arr['section']) {
-                               case 'scm': {
-                                       $icon = 
html_image('ic/cvs16b.png','','',array('alt'=>_('Source Code')));
-                                       $url = 
util_make_link('/scm/'.$arr['ref_id'].$arr['subref_id'],_('scm commit')._(': 
').$arr['description']);
-                                       break;
-                               }
-                               case 'trackeropen': {
-                                       $icon = 
$HTML->getOpenTicketPic(_('Tracker Open'), 'trackeropen');
-                                       $url = 
util_make_link('/tracker/a_follow.php/'.$arr['subref_id'],_('Tracker Item').' 
[#'.$arr['subref_id'].'] '.$arr['description'].' '._('Opened'));
-                                       break;
-                               }
-                               case 'trackerclose': {
-                                       $icon = 
$HTML->getClosedTicketPic(_('Tracker Closed'), 'trackerclose');
-                                       $url = 
util_make_link('/tracker/a_follow.php/'.$arr['subref_id'],_('Tracker Item').' 
[#'.$arr['subref_id'].'] '.$arr['description'].' '._('Closed'));
-                                       break;
-                               }
-                               case 'frsrelease': {
-                                       $icon = 
html_image('ic/cvs16b.png','','',array('alt'=>_('Files')));
-                                       $url = 
util_make_link('/frs/?release_id='.$arr['subref_id'].'&group_id='.$arr['group_id'],_('FRS
 Release').' '.$arr['description']);
-                                       break;
-                               }
-                               case 'forumpost': {
-                                       $icon = 
html_image('ic/forum20g.png','','',array('alt'=>_('Forum')));
-                                       $url = 
util_make_link('/forum/message.php?msg_id='.$arr['subref_id'].'&group_id='.$arr['group_id'],_('Forum
 Post').' '.$arr['description']);
-                                       break;
-                               }
-                               case 'news': {
-                                       $icon = 
html_image('ic/write16w.png','','',array('alt'=>_('News')));
-                                       $url = 
util_make_link('/forum/forum.php?forum_id='.$arr['subref_id'],_('News').' 
'.$arr['description']);
-                                       break;
-                               }
-                               case 'taskopen': {
-                                       $icon = 
html_image('ic/taskman20w.png','','',array('alt'=>_('Tasks')));
-                                       $url = 
util_make_link('/pm/t_follow.php/'.$arr['subref_id'],_('Tasks').' 
'.$arr['description']);
-                                       break;
-                               }
-                               case 'taskclose': {
-                                       $icon = 
html_image('ic/taskman20w.png','','',array('alt'=>_('Tasks')));
-                                       $url = 
util_make_link('/pm/t_follow.php/'.$arr['subref_id'],_('Tasks').' 
'.$arr['description']);
-                                       break;
-                               }
-
-                               case 'taskdelete': {
-                                       $icon = 
html_image('ic/taskman20w.png','','',array('alt'=>_('Tasks')));
-                                       $url = 
util_make_link('/pm/t_follow.php/'.$arr['subref_id'],_('Tasks').' 
'.$arr['description']);
-                                       break;
-                               }
-                               case 'docmannew':
-                               case 'docmanupdate': {
-                                       $document = 
document_get_object($arr['subref_id'], $arr['group_id']);
-                                       $stateid = $document->getStateID();
-                                       if ($stateid != 1 && 
!forge_check_perm('docman', $arr['group_id'], 'approve')) {
-                                               $docmanerror = 1;
-                                               break;
-                                       }
-                                       $dg = 
documentgroup_get_object($arr['ref_id'], $arr['group_id']);
-                                       if (!$dg || $dg->isError() || 
!$dg->getPath(true, false)) {
-                                               $docmanerror = 1;
-                                               break;
-                                       }
-                                       $icon = 
html_image($document->getFileTypeImage(), 22, 22, array('alt' => 
$document->getFileType()));
-                                       $url = 
util_make_link($document->getPermalink(),_('Document').' '.$arr['description']);
-                                       break;
-                               }
-                               case 'docgroupnew': {
-                                       $dg = 
documentgroup_get_object($arr['subref_id'], $arr['group_id']);
-                                       if (!$dg || $dg->isError() || 
!$dg->getPath(true, false)) {
-                                               $docmanerror = 1;
-                                               break;
-                                       }
-                                       $icon = $HTML->getFolderPic('', 
_('Directory'));
-                                       if ($dg->getState() == 2) {
-                                               $view = 'listtrashfile';
-                                       } else {
-                                               $view = 'listfile';
-                                       }
-                                       $url = 
util_make_link('/docman/?group_id='.$arr['group_id'].'&view='.$view.'&dirid='.$arr['subref_id'],_('Directory').'
 '.$arr['description']);
-                                       break;
-                               }
-                               default: {
-                                       $icon = isset($arr['icon']) ? 
$arr['icon'] : '';
-                                       $url = '<a 
href="'.$arr['link'].'">'.$arr['title'].'</a>';
-                               }
-                       }
-                       if ($docmanerror) {
+
+                       $displayinfo = $ffactivity->getDisplayInfo($arr);
+                       if (!$displayinfo) {
                                continue;
                        }
+
                        if ($last_day != strftime($date_format, 
$arr['activity_date'])) {
                                echo '<tr class="tableheading"><td 
colspan="3">'.strftime($date_format, $arr['activity_date']).'</td></tr>';
                                $last_day=strftime($date_format, 
$arr['activity_date']);
                        }
                        $cells = array();
                        $cells[][] = date('H:i:s',$arr['activity_date']);
-                       $cells[][] = $icon .' '.$url;
+                       $cells[][] = $displayinfo;
                        if (isset($arr['user_name']) && $arr['user_name']) {
                                $cells[][] = 
util_display_user($arr['user_name'], $arr['user_id'],$arr['realname']);
                        } else {

https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=a9e8bad27e133a82983c2ba3c318350f5e225eed

commit a9e8bad27e133a82983c2ba3c318350f5e225eed
Author: Franck Villaume <[email protected]>
Date:   Sat Jun 24 13:53:41 2017 +0200

    coding-style

diff --git a/src/plugins/globalactivity/www/index.php 
b/src/plugins/globalactivity/www/index.php
index 758be71..3b225e3 100644
--- a/src/plugins/globalactivity/www/index.php
+++ b/src/plugins/globalactivity/www/index.php
@@ -34,31 +34,32 @@ global $HTML;
 
 $received_begin = getStringFromRequest("start_date");
 $received_end = getStringFromRequest("end_date");
-$show = getArrayFromRequest("show",array('forumpost',
-                                                                               
 'trackeropen',
-                                                                               
 'trackerclose',
-                                                                               
 'news',
-                                                                               
 'taskopen',
-                                                                               
 'taskclose',
-                                                                               
 'taskdelete',
-                                                                               
 'frsrelease',
-                                                                               
 'docmannew',
-                                                                               
 'docmanupdate',
-                                                                               
 'docgroupnew'
+$show = getArrayFromRequest('show', array('forumpost',
+                                         'trackeropen',
+                                         'trackerclose',
+                                         'news',
+                                         'taskopen',
+                                         'taskclose',
+                                         'taskdelete',
+                                         'frsrelease',
+                                         'docmannew',
+                                         'docmanupdate',
+                                         'docgroupnew',
+                                         'mediawiki'
 ));
 
 $date_format = _('%Y-%m-%d');
 
-if (!$received_begin || $received_begin==0) {
-       $begin = (time()-(30*86400));
+if (!$received_begin || $received_begin == 0) {
+       $begin = (time() - (30 * 86400));
        $rendered_begin = strftime($date_format, $begin);
 } else {
        $tmp = strptime($received_begin, $date_format);
        if (!$tmp) {
-               $begin = (time()-(7*86400));
+               $begin = (time() - (7 * 86400));
                $rendered_begin = strftime($date_format, $begin);
        } else {
-               $begin = mktime(0, 0, 0, $tmp['tm_mon']+1, $tmp['tm_mday'], 
$tmp['tm_year'] + 1900);
+               $begin = mktime(0, 0, 0, $tmp['tm_mon'] + 1, $tmp['tm_mday'], 
$tmp['tm_year'] + 1900);
                $rendered_begin = $received_begin;
        }
 }
@@ -76,7 +77,7 @@ if (!$received_end || $received_end == 0) {
                $end = time();
                $rendered_end = strftime($date_format, $end);
        } else {
-               $end = mktime(23, 59, 59, $tmp['tm_mon']+1, $tmp['tm_mday'], 
$tmp['tm_year'] + 1900);
+               $end = mktime(23, 59, 59, $tmp['tm_mon'] + 1, $tmp['tm_mday'], 
$tmp['tm_year'] + 1900);
                $rendered_end = $received_end;
        }
 }
@@ -96,7 +97,7 @@ $ids = array();
 $texts = array();
 
 try {
-       $results = $plugin->getData($begin,$end,$show,$ids,$texts);
+       $results = $plugin->getData($begin, $end, $show, $ids, $texts);
 } catch (Exception $e) {
        exit_error($e->getMessage(), 'home');
 }
@@ -138,8 +139,6 @@ if (count($ids) < 1) {
        if (count($results) < 1) {
                echo $HTML->information(_('No Activity Found'));
        } else {
-
-
                $displayTableTop = 0;
                $last_day = 0;
                foreach ($results as $arr) {

https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=9280054f57d0df0ea14b6a8978f4fdd56a982e5c

commit 9280054f57d0df0ea14b6a8978f4fdd56a982e5c
Author: Franck Villaume <[email protected]>
Date:   Sat Jun 24 13:53:00 2017 +0200

    use HTML helper. More get*Pic functions

diff --git a/src/common/widget/Widget_TrackerComment.class.php 
b/src/common/widget/Widget_TrackerComment.class.php
index f558c79..1dd25c5 100644
--- a/src/common/widget/Widget_TrackerComment.class.php
+++ b/src/common/widget/Widget_TrackerComment.class.php
@@ -144,7 +144,7 @@ class Widget_TrackerComment extends Widget {
                        if ($group->usesPM()) {
                                $tabberContent .= html_e('div', array('id' => 
'tabber-tasks', 'class' => 'tabbertab'),
                                                        
$ath->renderRelatedTasks($group, $ah, 'trackerform').
-                                                       
util_make_link('/tracker/?func=taskmgr&group_id='.$group_id.'&atid='.$atid.'&aid='.$aid,
 html_image('ic/taskman20w.png', 20, 20).'<strong>'._('Build Task 
Relation').'</strong>'));
+                                                       
util_make_link('/tracker/?func=taskmgr&group_id='.$group_id.'&atid='.$atid.'&aid='.$aid,
 $HTML->getPmPic().'<strong>'._('Build Task Relation').'</strong>'));
                        }
                }
                $attachmentContent = '';
diff --git a/src/www/include/Layout.class.php b/src/www/include/Layout.class.php
index 4ca8af0..eadc88f 100644
--- a/src/www/include/Layout.class.php
+++ b/src/www/include/Layout.class.php
@@ -1049,6 +1049,18 @@ abstract class Layout extends FFError {
                return $this->getPicto('ic/tag.png', $title, $alt, 20, 20, 
$otherAttr);
        }
 
+       function getNewsPic($title = '', $alt = '', $otherAttr = array()) {
+               return $this->getPicto('ic/write16w.png', $title, $alt, 20, 20, 
$otherAttr);
+       }
+
+       function getPointerUp($title = '', $alt = '', $otherAttr = array()) {
+               return $this->getPicto('ic/pointer_up.png', $title, $alt, 20, 
20, $otherAttr);
+       }
+
+       function getPointerDown($title = '', $alt = '', $otherAttr = array()) {
+               return $this->getPicto('ic/pointer_down.png', $title, $alt, 20, 
20, $otherAttr);
+       }
+
        function getPicto($url, $title, $alt, $width = 20, $height = 20, 
$otherAttr = array()) {
                if ($title != '') {
                        $otherAttr['title'] = $title;

-----------------------------------------------------------------------

Summary of changes:
 src/common/include/Activity.class.php              | 207 +++++++++++++++++++++
 ...meDetailActivityMostActiveProjectWeek.class.php | 146 ++-------------
 src/common/widget/Widget_TrackerComment.class.php  |   2 +-
 src/plugins/globalactivity/www/index.php           |  37 ++--
 src/www/activity/index.php                         | 181 ++----------------
 src/www/include/Layout.class.php                   |  12 ++
 6 files changed, 265 insertions(+), 320 deletions(-)
 create mode 100644 src/common/include/Activity.class.php


hooks/post-receive
-- 
FusionForge

_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits

Reply via email to