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  08dab2c6ee71b72e5f2b8a3e0b404648a5e5fe5d (commit)
      from  b38bbee30634bb75f518a6c2c7fe2fe3e31bbf08 (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=08dab2c6ee71b72e5f2b8a3e0b404648a5e5fe5d

commit 08dab2c6ee71b72e5f2b8a3e0b404648a5e5fe5d
Author: Franck Villaume <franck.villa...@trivialdev.com>
Date:   Wed Apr 21 20:08:08 2021 +0200

    PHP8 support: remove each(), clean-up old Codendi code

diff --git a/src/common/include/extras-debug.php 
b/src/common/include/extras-debug.php
index ebd0649..6115345 100644
--- a/src/common/include/extras-debug.php
+++ b/src/common/include/extras-debug.php
@@ -162,7 +162,9 @@ function ffOutputHandler($buffer) {
            '<a href="javascript:toggle_ffErrors();">Click to toggle</a>' .
            "\n<div id=\"ffErrorsBlock\">";
 
-       if (!($doctype = util_ifsetor($HTML->doctype))) {
+       if (isset($HTML->doctype)) {
+               $doctype = $HTML->doctype;
+       } else {
                $doctype = 'transitional';
        }
 
diff --git a/src/common/include/utils.php b/src/common/include/utils.php
index 34285d8..0099ab2 100644
--- a/src/common/include/utils.php
+++ b/src/common/include/utils.php
@@ -1643,7 +1643,7 @@ function utils_array_diff_names($tab1, $tab2) {
        foreach($tab1 as $e1) {
                $found = false;
                reset($tab2);
-               while(!$found && list(,$e2) = each($tab2)) {
+               foreach($tab2 as $e2) {
                        $found = !count(array_diff($e1, $e2));
                }
                if (!$found) {
diff --git a/src/common/widget/Widget.class.php 
b/src/common/widget/Widget.class.php
index 122aff3..6a2d617 100644
--- a/src/common/widget/Widget.class.php
+++ b/src/common/widget/Widget.class.php
@@ -133,7 +133,7 @@ require_once 
$gfcommon.'widget/Widget_UserhomeRss.class.php';
        function hasButtons() {
                return false;
        }
-       function updatePreferences(&$request) {
+       function updatePreferences() {
                return true;
        }
        function hasRss() {
@@ -180,7 +180,7 @@ require_once 
$gfcommon.'widget/Widget_UserhomeRss.class.php';
        function cloneContent($id, $owner_id, $owner_type) {
                return $this->getInstanceId();
        }
-       function create(&$request) {
+       function create() {
        }
        function destroy($id) {
        }
diff --git a/src/common/widget/WidgetLayoutManager.class.php 
b/src/common/widget/WidgetLayoutManager.class.php
index e201e96..856cc6e 100644
--- a/src/common/widget/WidgetLayoutManager.class.php
+++ b/src/common/widget/WidgetLayoutManager.class.php
@@ -2,7 +2,7 @@
 /**
  * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights 
reserved
  * Copyright (C) 2011 Alain Peyrat - Alcatel-Lucent
- * Copyright 2013-2018, Franck Villaume - TrivialDev
+ * Copyright 2013-2018,2021, Franck Villaume - TrivialDev
  *
  * This file is a part of Fusionforge.
  *
@@ -118,7 +118,6 @@ class WidgetLayoutManager {
         */
        function _currentUserCanUpdateLayout($owner_id, $owner_type) {
                $modify = false;
-               $request =& HTTPRequest::instance();
                switch ($owner_type) {
                        case self::OWNER_TYPE_USER:
                        case self::OWNER_TYPE_USERHOME:
@@ -565,12 +564,12 @@ class WidgetLayoutManager {
                        $used_widgets[] = $data['name'];
                }
                // build & display contextual toolbar
-               $url = 
'/widgets/widgets.php?owner='.HTTPRequest::instance()->get('owner').
-                       '&layout_id='.HTTPRequest::instance()->get('layout_id');
+               $url = 
'/widgets/widgets.php?owner='.getStringFromRequest('owner').
+                       '&layout_id='.getIntFromRequest('layout_id');
                $elementsLi = array();
                $elementsLi[0]['content'] = util_make_link($url, _('Add 
widgets'));
                $elementsLi[1]['content'] = 
util_make_link($url.'&update=layout', _('Customize Layout'));
-               $update_layout = (HTTPRequest::instance()->get('update') == 
'layout');
+               $update_layout = (getStringFromRequest('update') == 'layout');
                if ($update_layout) {
                        // customized selected
                        $elementsLi[1]['attrs'] = array('class' => 'current');
@@ -748,25 +747,26 @@ class WidgetLayoutManager {
 
                                        // Switch content from old columns to 
new columns
                                        $last_new_col_id = null;
-                                       reset($new['columns']);
+                                       reset($new);
                                        foreach($old['columns'] as $old_col) {
-                                               if (list(,$new_col) = 
each($new['columns'])) {
+                                               if (key($new)) {
+                                                       $new_col = 
current($new['columns']);
                                                        $last_new_col_id = 
$new_col['id'];
+                                                       next($new);
                                                }
                                                $sql = "UPDATE layouts_contents
-                                                       SET layout_id  = $1
-                                                       , column_id  =$2
+                                                       SET layout_id  = $1, 
column_id =$2
                                                        WHERE owner_type =$3
-                                                       AND owner_id   =$4
-                                                       AND layout_id  =$5
-                                                       AND column_id  =$6;";
-                                               
db_query_params($sql,array($new_layout_id, $last_new_col_id, $owner_type, 
$owner_id, $old_layout_id, $old_col['id']));
+                                                       AND owner_id  =$4
+                                                       AND layout_id =$5
+                                                       AND column_id =$6;";
+                                               db_query_params($sql, 
array($new_layout_id, $last_new_col_id, $owner_type, $owner_id, $old_layout_id, 
$old_col['id']));
                                        }
                                        $sql = "UPDATE owner_layouts
                                                SET layout_id  = $1
                                                WHERE owner_type = $2
-                                               AND owner_id   = $3
-                                               AND layout_id  = $4";
+                                               AND owner_id  = $3
+                                               AND layout_id = $4";
                                        db_query_params($sql, 
array($new_layout_id, $owner_type, $owner_id, $old_layout_id));
 
                                        //If the old layout is custom remove it
@@ -893,9 +893,8 @@ class WidgetLayoutManager {
         * @param       int     $layout_id
         * @param       string  $name
         * @param       object  $widget
-        * @param       object  $request
         */
-       function addWidget($owner_id, $owner_type, $layout_id, $name, &$widget, 
&$request) {
+       function addWidget($owner_id, $owner_type, $layout_id, $name, &$widget) 
{
                //Search for the right column. (The first used)
                $sql = "SELECT u.column_id AS id
                        FROM layouts_contents AS u
@@ -928,7 +927,7 @@ class WidgetLayoutManager {
                        //unique widgets do not have content_id
                        $content_id = 0;
                } else {
-                       $content_id = $widget->create($request);
+                       $content_id = $widget->create();
                }
 
                //See if it already exists but not used
@@ -1058,18 +1057,17 @@ class WidgetLayoutManager {
         * @param       int     $owner_id
         * @param       string  $owner_type
         * @param       int     $layout_id
-        * @param       object  $request
         */
-       function reorderLayout($owner_id, $owner_type, $layout_id, &$request) {
+       function reorderLayout($owner_id, $owner_type, $layout_id) {
                $keys = array_keys($_REQUEST);
                foreach($keys as $key) {
                        if (preg_match('`widgetlayout_col_\d+`', $key)) {
-
                                $split = explode('_', $key);
                                $column_id = (int)$split[count($split)-1];
 
                                $names = array();
-                               foreach($request->get($key) as $name) {
+                               $keyArray = getArrayFromRequest($key);
+                               foreach($keyArray as $k => $name) {
                                        list($name, $id) = explode('-', $name);
                                        $names[] = array($id, $name);
                                }
@@ -1078,13 +1076,13 @@ class WidgetLayoutManager {
                                $originals = array();
                                $sql = "SELECT * FROM layouts_contents WHERE 
owner_type = $1 AND owner_id = $2 AND column_id = $3 ORDER BY rank";
                                $res = db_query_params($sql, array($owner_type, 
$owner_id, $column_id));
-                               echo db_error();
+
                                while($data = db_fetch_array($res)) {
                                        $originals[] = 
array($data['content_id'], $data['name']);
                                }
 
                                //delete removed contents
-                               $deleted_names = 
utils_array_diff_names($originals, $names);
+                               $deleted_names = 
utils_array_diff_names($originals, $names, );
                                if (count($deleted_names)) {
                                        $_and = '';
                                        foreach($deleted_names as $id => $name) 
{
@@ -1102,7 +1100,6 @@ class WidgetLayoutManager {
                                                AND owner_id = $2
                                                AND column_id = $3". $_and;
                                        db_query_params($sql, 
array($owner_type, $owner_id, $column_id));
-                                       echo db_error();
                                }
 
                                //Insert new contents
@@ -1125,7 +1122,6 @@ class WidgetLayoutManager {
                                                AND owner_id = $3' . $_and ."
                                                AND layout_id = $4";
                                        db_query_params($sql, array($column_id, 
$owner_type, $owner_id, $layout_id));
-                                       echo db_error();
                                }
 
                                //Update ranks
@@ -1134,7 +1130,6 @@ class WidgetLayoutManager {
                                foreach($names as $name) {
                                        $sql = 'UPDATE layouts_contents SET 
rank = $1 WHERE owner_type =$2 AND owner_id = $3 AND column_id = $4 AND name = 
$5 AND content_id = $6';
                                        db_query_params($sql, array($rank++, 
$owner_type, $owner_id, $column_id, $name[1], $name[0]));
-                                       echo db_error();
                                }
                        }
                }
diff --git a/src/common/widget/Widget_HomeHallOfFame.class.php 
b/src/common/widget/Widget_HomeHallOfFame.class.php
index 83d791f..05e6eff 100644
--- a/src/common/widget/Widget_HomeHallOfFame.class.php
+++ b/src/common/widget/Widget_HomeHallOfFame.class.php
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright 2020, Franck Villaume - TrivialDev
+ * Copyright 2020-2021, Franck Villaume - TrivialDev
  * This file is a part of Fusionforge.
  *
  * Fusionforge is free software; you can redistribute it and/or modify
@@ -82,7 +82,7 @@ class Widget_HomeHallOfFame extends Widget {
                return false;
        }
 
-       function updatePreferences(&$request) {
+       function updatePreferences() {
                $request->valid(new Valid_String('cancel'));
                $vShow = new Valid_WhiteList('show', array('P', 'D', 'A', 'PA', 
'PD', 'DA', 'PDA'));
                $vShow->required();
diff --git a/src/common/widget/Widget_MyArtifacts.class.php 
b/src/common/widget/Widget_MyArtifacts.class.php
index 0c73f0d..7a84f91 100644
--- a/src/common/widget/Widget_MyArtifacts.class.php
+++ b/src/common/widget/Widget_MyArtifacts.class.php
@@ -52,41 +52,32 @@ class Widget_MyArtifacts extends Widget {
                return _('My Artifacts');
        }
 
-       function updatePreferences(&$request) {
-               $request->valid(new Valid_String('cancel'));
-               $vShow = new Valid_WhiteList('show', array('A', 'S', 'M', 'N', 
'AS', 'AM', 'SM', 'ASM'));
-               $vShow->required();
-               if (!$request->exist('cancel')) {
-                       if ($request->valid($vShow)) {
-                               switch($request->get('show')) {
-                                       case 'A':
-                                               $this->_artifact_show = 'A';
-                                               break;
-                                       case 'S':
-                                               $this->_artifact_show = 'S';
-                                               break;
-                                       case 'M':
-                                               $this->_artifact_show = 'M';
-                                               break;
-                                       case 'N':
-                                               $this->_artifact_show = 'N';
-                                               break;
-                                       case 'AS':
-                                               $this->_artifact_show = 'AS';
-                                               break;
-                                       case 'AM':
-                                               $this->_artifact_show = 'AM';
-                                               break;
-                                       case 'SM':
-                                               $this->_artifact_show = 'SM';
-                                               break;
-                                       case 'ASM':
-                                       default:
-                                               $this->_artifact_show = 'ASM';
-                               }
-                               
UserManager::instance()->getCurrentUser()->setPreference('my_artifacts_show', 
$this->_artifact_show);
-                       }
+       function updatePreferences() {
+               $show = getStringFromRequest('show');
+               switch($show) {
+                       case 'A':
+                               $this->_artifact_show = 'A';
+                               break;
+                       case 'S':
+                               $this->_artifact_show = 'S';
+                               break;
+                       case 'M':
+                               $this->_artifact_show = 'M';
+                               break;
+                       case 'AS':
+                               $this->_artifact_show = 'AS';
+                               break;
+                       case 'AM':
+                               $this->_artifact_show = 'AM';
+                               break;
+                       case 'SM':
+                               $this->_artifact_show = 'SM';
+                               break;
+                       case 'ASM':
+                       default:
+                               $this->_artifact_show = 'ASM';
                }
+               
UserManager::instance()->getCurrentUser()->setPreference('my_artifacts_show', 
$this->_artifact_show);
                return true;
        }
 
diff --git a/src/common/widget/Widget_MyLatestCommits.class.php 
b/src/common/widget/Widget_MyLatestCommits.class.php
index ca3798b..675efe4 100644
--- a/src/common/widget/Widget_MyLatestCommits.class.php
+++ b/src/common/widget/Widget_MyLatestCommits.class.php
@@ -3,7 +3,7 @@
  * Widget_MyLatestCommits
  *
  * Copyright (c) Xerox Corporation, Codendi 2001-2009 - 
marc.nazar...@xrce.xerox.com
- * Copyright 2014, 2018, Franck Villaume - TrivialDev
+ * Copyright 2014, 2018,2021, Franck Villaume - TrivialDev
  *
  * This file is a part of Fusionforge.
  *
@@ -128,11 +128,11 @@ class Widget_MyLatestCommits extends Widget {
 
        function getPreferences() {
                $prefs  = _('Maximum number of commits to display per 
project.');
-               $prefs .= html_e('input', array('name' => 'nb_commits', 'type' 
=> 'number', 'size' => 2, 'maxlenght' => 3, 'value' => 
UserManager::instance()->getCurrentUser()->getPreference('my_latests_commits_nb_display')));
+               $prefs .= html_e('input', array('name' => 'nb_commits', 'type' 
=> 'number', 'size' => 2, 'maxlength' => 3, 'value' => 
UserManager::instance()->getCurrentUser()->getPreference('my_latests_commits_nb_display')));
                return $prefs;
        }
 
-       function updatePreferences(&$request) {
+       function updatePreferences() {
                $request->valid(new Valid_String('cancel'));
                $nbShow = new Valid_UInt('nb_commits');
                $nbShow->required();
diff --git a/src/common/widget/Widget_MySurveys.class.php 
b/src/common/widget/Widget_MySurveys.class.php
index f8f22d9..2ce40df 100644
--- a/src/common/widget/Widget_MySurveys.class.php
+++ b/src/common/widget/Widget_MySurveys.class.php
@@ -1,7 +1,7 @@
 <?php
 /**
  * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights 
reserved
- * Copyright 2013-2014, Franck Villaume - TrivialDev
+ * Copyright 2013-2014,2021, Franck Villaume - TrivialDev
  *
  * This file is a part of Fusionforge.
  *
@@ -163,7 +163,7 @@ class Widget_MySurveys extends Widget {
                return $prefs;
        }
 
-       function updatePreferences(&$request) {
+       function updatePreferences() {
                $request->valid(new Valid_String('cancel'));
                $vShow = new Valid_WhiteList('show', array('A', 'N', 'AN'));
                $vShow->required();
diff --git a/src/common/widget/Widget_ProjectDocumentsActivity.class.php 
b/src/common/widget/Widget_ProjectDocumentsActivity.class.php
index c187013..172ccad 100644
--- a/src/common/widget/Widget_ProjectDocumentsActivity.class.php
+++ b/src/common/widget/Widget_ProjectDocumentsActivity.class.php
@@ -51,7 +51,7 @@ class Widget_ProjectDocumentsActivity extends Widget {
                return false;
        }
 
-       function updatePreferences(&$request) {
+       function updatePreferences() {
                $request->valid(new Valid_String('cancel'));
                $vShow = new Valid_WhiteList('show', array('F', 'D', 'U', 'FU', 
'FD', 'FUD'));
                $vShow->required();
diff --git a/src/common/widget/Widget_Rss.class.php 
b/src/common/widget/Widget_Rss.class.php
index 94d6253..a4a8ffe 100644
--- a/src/common/widget/Widget_Rss.class.php
+++ b/src/common/widget/Widget_Rss.class.php
@@ -150,7 +150,7 @@ require_once 'Widget.class.php';
                        $this->content_id = $id;
                }
        }
-       function create(&$request) {
+       function create() {
                $content_id = false;
                $vUrl = new Valid_String('url');
                $vUrl->setErrorMessage(_("Cannot add empty RSS URL"));
@@ -179,7 +179,7 @@ require_once 'Widget.class.php';
                }
                return $content_id;
        }
-       function updatePreferences(&$request) {
+       function updatePreferences() {
                $done = false;
                $vContentId = new Valid_UInt('content_id');
                $vContentId->required();
diff --git a/src/common/widget/Widget_TrackerContent.class.php 
b/src/common/widget/Widget_TrackerContent.class.php
index 3611ca3..eef5b79 100644
--- a/src/common/widget/Widget_TrackerContent.class.php
+++ b/src/common/widget/Widget_TrackerContent.class.php
@@ -2,7 +2,7 @@
 /**
  * Generic Tracker Content Widget Class
  *
- * Copyright 2016-2018, Franck Villaume - TrivialDev
+ * Copyright 2016-2018,2021 Franck Villaume - TrivialDev
  * Copyright 2017, Stephane-Eymeric Bredthauer - TrivialDev
  * http://fusionforge.org
  *
@@ -30,10 +30,9 @@ class Widget_TrackerContent extends Widget {
        var $layoutExtraFieldIDs = array();
 
        function __construct() {
-               $request =& HTTPRequest::instance();
-               $owner_id = (int)substr($request->get('owner'), 1);
+               $owner_id = (int)substr(getStringFromRequest('owner'), 1);
                if (!$owner_id) {
-                       $owner_id = (int)$request->get('atid');
+                       $owner_id = getIntFromRequest('atid');
                }
                parent::__construct('trackercontent', $owner_id, 
WidgetLayoutManager::OWNER_TYPE_TRACKER);
                $this->setOwner($owner_id, 
WidgetLayoutManager::OWNER_TYPE_TRACKER);
@@ -70,7 +69,7 @@ class Widget_TrackerContent extends Widget {
                $this->layoutExtraFieldIDs = $this->getLayoutExtraFieldIDs($id);
        }
 
-       function create(&$request) {
+       function create() {
                $sanitizer = new TextSanitizer();
                $hp = Codendi_HTMLPurifier::instance();
                $this->trackercontent_title = 
$hp->purify($request->get('title'), CODENDI_PURIFIER_CONVERT_HTML);
@@ -741,45 +740,41 @@ EOS;
                return $prefs;
        }
 
-       function updatePreferences(&$request) {
+       function updatePreferences() {
                $sanitizer = new TextSanitizer();
                $done = false;
-               $vContentId = new Valid_UInt('content_id');
-               $vContentId->required();
-               if ($request->valid($vContentId)) {
-                       $vTitle = new Valid_String('title');
-                       if($request->valid($vTitle)) {
-                               $title = 
$sanitizer->SanitizeHtml($request->get('title'));
-                       } else {
-                               $title = '';
-                       }
-                       $content_id = (int)$request->get('content_id');
-                       if ($title) {
-                               $sql = "UPDATE artifact_display_widget SET 
title = $1 WHERE owner_id =$2 AND id = $3";
-                               db_query_params($sql,array($title, 
$this->owner_id, $content_id));
-                               $done = true;
-                       }
-                       $trackerrows = 
getArrayFromRequest('trackercontent_layout');
-                       $trackerextrafields = 
getArrayFromRequest('trackercontent_ef');
-                       $trackercelltitles = 
getArrayFromRequest('trackercontent_title');
-                       db_query_params('DELETE FROM 
artifact_display_widget_field WHERE id = $1', array($content_id));
-                       foreach ($trackerrows as $rowkey => $trackerrow) {
-                               $columns = explode(',', $trackerrow);
-                               $extrafields = explode(',', 
$trackerextrafields[$rowkey]);
-                               $celltitle = explode(',', 
$trackercelltitles[$rowkey]);
-                               $rowid = $rowkey;
-                               foreach ($columns as $columnkey => $column) {
-                                       if ($extrafields[$columnkey] == "fake") 
{
-                                               $extrafieldid = 0;
-                                       } else {
-                                               $extrafieldid = 
substr($extrafields[$columnkey], 2); //remove prefix ef
-                                       }
-                                       $section = 
$sanitizer->SanitizeHtml($celltitle[$columnkey]);
-                                       db_query_params('INSERT INTO 
artifact_display_widget_field (id, field_id, column_id, row_id, width, section) 
VALUES ($1, $2, $3, $4, $5, $6)',
-                                                       array($content_id, 
$extrafieldid, $columnkey, $rowid, $column, $section));
+               $title = getStringFromRequest('title');
+               if(strlen($title) > 0) {
+                       $title = $sanitizer->SanitizeHtml($title);
+               } else {
+                       $title = '';
+               }
+               $content_id = getIntFromRequest('content_id');
+               if ($title) {
+                       $sql = "UPDATE artifact_display_widget SET title = $1 
WHERE owner_id =$2 AND id = $3";
+                       db_query_params($sql,array($title, $this->owner_id, 
$content_id));
+                       $done = true;
+               }
+               $trackerrows = getArrayFromRequest('trackercontent_layout');
+               $trackerextrafields = getArrayFromRequest('trackercontent_ef');
+               $trackercelltitles = 
getArrayFromRequest('trackercontent_title');
+               db_query_params('DELETE FROM artifact_display_widget_field 
WHERE id = $1', array($content_id));
+               foreach ($trackerrows as $rowkey => $trackerrow) {
+                       $columns = explode(',', $trackerrow);
+                       $extrafields = explode(',', 
$trackerextrafields[$rowkey]);
+                       $celltitle = explode(',', $trackercelltitles[$rowkey]);
+                       $rowid = $rowkey;
+                       foreach ($columns as $columnkey => $column) {
+                               if ($extrafields[$columnkey] == "fake") {
+                                       $extrafieldid = 0;
+                               } else {
+                                       $extrafieldid = 
substr($extrafields[$columnkey], 2); //remove prefix ef
                                }
-                               $done = true;
+                               $section = 
$sanitizer->SanitizeHtml($celltitle[$columnkey]);
+                               db_query_params('INSERT INTO 
artifact_display_widget_field (id, field_id, column_id, row_id, width, section) 
VALUES ($1, $2, $3, $4, $5, $6)',
+                                               array($content_id, 
$extrafieldid, $columnkey, $rowid, $column, $section));
                        }
+                       $done = true;
                }
                return $done;
        }
diff --git a/src/www/widgets/updatelayout.php b/src/www/widgets/updatelayout.php
index 9a452ed..0473b49 100644
--- a/src/www/widgets/updatelayout.php
+++ b/src/www/widgets/updatelayout.php
@@ -1,7 +1,7 @@
 <?php
 /**
  * Copyright (c) Xerox Corporation, Codendi Team, 2001-2009. All rights 
reserved
- * Copyright 2016,2018, Franck Villaume - TrivialDev
+ * Copyright 2016,2018,2021, Franck Villaume - TrivialDev
  * http://fusionforge.org
  *
  * This file is part of FusionForge. FusionForge is free software;
@@ -27,12 +27,10 @@ require_once $gfcommon.'include/plugins_utils.php';
 require_once $gfcommon.'widget/WidgetLayoutManager.class.php';
 require_once $gfcommon.'widget/Widget.class.php';
 
-$request =& HTTPRequest::instance();
-
 $lm = new WidgetLayoutManager();
 $good = false;
 $redirect   = '/';
-$owner = $request->get('owner');
+$owner = getStringFromRequest('owner');
 
 if ($owner) {
        $owner_id   = (int)substr($owner, 1);
@@ -40,7 +38,7 @@ if ($owner) {
        switch($owner_type) {
                case WidgetLayoutManager::OWNER_TYPE_USER:
                        if ($owner_id ==  user_getid()) {
-                               $layout_id =(int)$request->get('layout_id');
+                               $layout_id =getIntFromRequest('layout_id');
                                $redirect = '/my/';
                                $good = true;
                        }
@@ -50,11 +48,10 @@ if ($owner) {
                        if ($project = $pm->getProject($owner_id)) {
                                $group_id = $owner_id;
                                $_REQUEST['group_id'] = $_GET['group_id'] = 
$group_id;
-                               $request->params['group_id'] = $group_id; //bad!
                                $redirect = '/projects/'. 
$project->getUnixName().'/';
                                if (!forge_check_perm('project_admin', 
$group_id) &&
                                        
!forge_check_global_perm('forge_admin')) {
-                                       
$GLOBALS['Response']->redirect($redirect);
+                                       session_redirect($redirect);
                                }
                                $good = true;
                        }
@@ -62,23 +59,24 @@ if ($owner) {
                case WidgetLayoutManager::OWNER_TYPE_HOME:
                        $redirect = '/';
                        if (!forge_check_global_perm('forge_admin')) {
-                               $GLOBALS['Response']->redirect($redirect);
+                               session_redirect($redirect);
                        }
                        $good = true;
                        break;
                case WidgetLayoutManager::OWNER_TYPE_TRACKER:
                        if ($at = artifactType_get_object($owner_id)) {
                                $_REQUEST['group_id'] = $_GET['group_id'] = 
$at->Group->getID();
-                               $request->params['group_id'] = 
$at->Group->getID(); //bad!
                                $redirect = 
'/tracker/?group_id='.$at->Group->getID().'&atid='.$at->getID();
-                               if ((strlen($request->get('func')) > 0)) {
-                                       $redirect .= 
'&func='.$request->get('func');
-                                       if ($request->get('aid')) {
-                                               $redirect .= 
'&aid='.$request->get('aid');
+                               $func = getStringFromRequest('func');
+                               if ((strlen($func) > 0)) {
+                                       $redirect .= '&func='.$func;
+                                       $aid = getIntFromRequest('aid');
+                                       if ($aid) {
+                                               $redirect .= '&aid='.$aid;
                                        }
                                }
                                if (!forge_check_global_perm('forge_admin') && 
!forge_check_perm('tracker_admin', $at->getID())) {
-                                       
$GLOBALS['Response']->redirect($redirect);
+                                       session_redirect($redirect);
                                }
                                $good = true;
                        }
@@ -86,7 +84,7 @@ if ($owner) {
                case WidgetLayoutManager::OWNER_TYPE_USERHOME:
                        if ($owner_id == user_getid()) {
                                $user = user_get_object(user_getid());
-                               $layout_id =(int)$request->get('layout_id');
+                               $layout_id = getIntFromRequest('layout_id');
                                $redirect = '/users/'.$user->getUnixName();
                                $good = true;
                        }
@@ -95,16 +93,17 @@ if ($owner) {
                        break;
        }
        if ($good) {
-               if (($layout_id = (int)$request->get('layout_id')) || 
$request->get('action') == 'preferences') {
+               if (($layout_id = getIntFromRequest('layout_id')) || 
'preferences' == getStringFromRequest('action')) {
                        $name = null;
-                       if ($request->exist('name')) {
-                               $param = $request->get('name');
+                       $param = getArrayFromRequest('name');
+                       if (count($param)) {
                                $name = array_pop(array_keys($param));
                                $instance_id = (int)$param[$name];
                        }
-                       switch($request->get('action')) {
+                       $mainaction = getStringFromRequest('action');
+                       switch($mainaction) {
                                case 'widget':
-                                       if ($name && 
$request->exist('layout_id')) {
+                                       if ($name) {
                                                if ($widget = 
Widget::getInstance($name, $owner_id)) {
                                                        if 
($widget->isAvailable()) {
                                                                $action = 
array_pop(array_keys($param[$name]));
@@ -125,7 +124,7 @@ if ($owner) {
                                                                        default:
                                                                                
$category = str_replace(' ', '_', $widget->getCategory());
                                                                                
$redirect ='/widgets/widgets.php?owner='. $owner_type.$owner_id.'&layout_id='. 
$layout_id.'#filter-widget-categ-'.$category;
-                                                                               
$lm->addWidget($owner_id, $owner_type, $layout_id, $name, $widget, $request);
+                                                                               
$lm->addWidget($owner_id, $owner_type, $layout_id, $name, $widget);
                                                                                
break;
                                                                }
                                                        }
@@ -148,15 +147,15 @@ if ($owner) {
                                        }
                                        break;
                                case 'layout':
-                                       $lm->updateLayout($owner_id, 
$owner_type, $request->get('layout_id'), $request->get('new_layout'));
+                                       $lm->updateLayout($owner_id, 
$owner_type, $layout_id, getIntFromRequest('new_layout'));
                                        break;
                                default:
-                                       $lm->reorderLayout($owner_id, 
$owner_type, $layout_id, $request);
+                                       $lm->reorderLayout($owner_id, 
$owner_type, $layout_id);
                                        break;
                        }
                }
        }
 }
-if (!$request->isAjax()) {
+if(!(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 
strtoupper($_SERVER['HTTP_X_REQUESTED_WITH']) == 'XMLHTTPREQUEST')) {
        session_redirect($redirect, false);
 }
diff --git a/src/www/widgets/widget.php b/src/www/widgets/widget.php
index e49b186..be053ce 100644
--- a/src/www/widgets/widget.php
+++ b/src/www/widgets/widget.php
@@ -1,7 +1,7 @@
 <?php
 /**
  * http://fusionforge.org
- * Copyright 2016,2018, Franck Villaume - TrivialDev
+ * Copyright 2016,2018,2021, Franck Villaume - TrivialDev
  *
  * This file is part of FusionForge. FusionForge is free software;
  * you can redistribute it and/or modify it under the terms of the
@@ -25,120 +25,114 @@ require_once $gfcommon.'include/preplugins.php';
 require_once $gfcommon.'include/plugins_utils.php';
 require_once $gfcommon.'widget/WidgetLayoutManager.class.php';
 require_once $gfcommon.'widget/Widget.class.php';
-require_once $gfcommon.'widget/Valid_Widget.class.php';
 
 $lm = new WidgetLayoutManager();
 
-$request =& HTTPRequest::instance();
 $good = false;
 $redirect   = '/';
-$vOwner = new Valid_Widget_Owner('owner');
-$vOwner->required();
-if ($request->valid($vOwner)) {
-       $owner = $request->get('owner');
-       $owner_id   = (int)substr($owner, 1);
-       $owner_type = substr($owner, 0, 1);
-       switch($owner_type) {
-               case WidgetLayoutManager::OWNER_TYPE_USER:
-                       if ($owner_id == user_getid()) {
-                               $redirect = '/my/';
-                               $good = true;
-                       }
-                       break;
-               case WidgetLayoutManager::OWNER_TYPE_GROUP:
-                       $pm = ProjectManager::instance();
-                       if ($project = $pm->getProject($owner_id)) {
-                               $group_id = $owner_id;
-                               $_REQUEST['group_id'] = $_GET['group_id'] = 
$group_id;
-                               $request->params['group_id'] = $group_id; //bad!
-                               $redirect = '/projects/'. 
$project->getUnixName();
-                               $good = true;
-                       }
-                       break;
-               case WidgetLayoutManager::OWNER_TYPE_HOME:
+$owner = getStringFromRequest('owner');
+$owner_id   = (int)substr($owner, 1);
+$owner_type = substr($owner, 0, 1);
+switch($owner_type) {
+       case WidgetLayoutManager::OWNER_TYPE_USER:
+               if ($owner_id == user_getid()) {
+                       $redirect = '/my/';
                        $good = true;
-                       break;
-               case WidgetLayoutManager::OWNER_TYPE_TRACKER:
-                       if ($at = artifactType_get_object($owner_id)) {
-                               $_REQUEST['group_id'] = $_GET['group_id'] = 
$at->Group->getID();
-                               $request->params['group_id'] = 
$at->Group->getID(); //bad!
-                               $redirect = 
'/tracker/?group_id='.$at->Group->getID().'&atid='.$at->getID();
-                               if ((strlen($request->get('func')) > 0)) {
-                                       $redirect .= 
'&func='.$request->get('func');
-                                       if ($request->get('aid')) {
-                                               $redirect .= 
'&aid='.$request->get('aid');
-                                       }
-                               }
-                               if (!forge_check_global_perm('forge_admin') && 
!forge_check_perm('tracker_admin', $at->getID())) {
-                                       
$GLOBALS['Response']->redirect($redirect);
+               }
+               break;
+       case WidgetLayoutManager::OWNER_TYPE_GROUP:
+               $pm = ProjectManager::instance();
+               if ($project = $pm->getProject($owner_id)) {
+                       $group_id = $owner_id;
+                       $_REQUEST['group_id'] = $_GET['group_id'] = $group_id; 
// why ?
+                       $redirect = '/projects/'. $project->getUnixName();
+                       $good = true;
+               }
+               break;
+       case WidgetLayoutManager::OWNER_TYPE_HOME:
+               $good = true;
+               break;
+       case WidgetLayoutManager::OWNER_TYPE_TRACKER:
+               if ($at = artifactType_get_object($owner_id)) {
+                       $_REQUEST['group_id'] = $_GET['group_id'] = 
$at->Group->getID(); // why ?
+                       $redirect = 
'/tracker/?group_id='.$at->Group->getID().'&atid='.$at->getID();
+                       $func = getStringFromRequest('func');
+                       if ((strlen($func) > 0)) {
+                               $redirect .= '&func='.$func;
+                               $aid = getStringFromRequest('aid');
+                               if (strlen($aid) > 0) {
+                                       $redirect .= '&aid='.$aid;
                                }
-                               $good = true;
                        }
-                       break;
-               case WidgetLayoutManager::OWNER_TYPE_USERHOME:
-                       if ($owner_id == user_getid()) {
-                               $user = user_get_object(user_getid());
-                               $redirect = '/users/'.$user->getUnixName();
-                               $good = true;
+                       if (!forge_check_global_perm('forge_admin') && 
!forge_check_perm('tracker_admin', $at->getID())) {
+                               session_redirect($redirect);
                        }
-               default:
-                       break;
-       }
-       if ($good) {
-               if ($request->exist('name')) {
-                       $param = $request->get('name');
-                       $v = array_keys($param);
-                       $name = array_pop($v);
-                       $instance_id = (int)$param[$name];
-                       if ($widget =& Widget::getInstance($name, $owner_id)) {
-                               if ($widget->isAvailable()) {
-                                       switch ($request->get('action')) {
-                                               case 'rss':
-                                                       $widget->displayRss();
-                                                       exit();
-                                                       break;
-                                               case 'update':
-                                                       if ($layout_id = 
(int)$request->get('layout_id')) {
-                                                               if ($owner_type 
== WidgetLayoutManager::OWNER_TYPE_USER ||
-                                                                       
forge_check_perm('project_admin', $group_id) ||
-                                                                       
forge_check_global_perm('forge_admin') ||
-                                                                       
forge_check_perm('tracker_admin', $owner_id)) {
-                                                                       if 
($request->get('cancel') || $widget->updatePreferences($request)) {
-                                                                               
$lm->hideWidgetPreferences($owner_id, $owner_type, $layout_id, $name, 
$instance_id);
-                                                                       }
-                                                               }
-                                                       }
-                                                       break;
-                                               case 'ajax':
-                                                       if ($widget->isAjax()) {
-                                                               
header("Cache-Control: no-store, no-cache, must-revalidate");
-                                                               
sysdebug_ajaxbody();
-                                                               
$widget->loadContent($instance_id);
-                                                               echo 
$widget->getContent();
-                                                               exit();
-                                                       }
-                                                       break;
-                                               case 'iframe':
-                                                       echo '<html><head>';
-                                                       
$GLOBALS['HTML']->displayStylesheetElements();
-                                                       echo '</head><body 
class="main_body_row contenttable">';
-                                                       
$widget->loadContent($instance_id);
-                                                       echo 
$widget->getContent();
-                                                       echo '</body></html>';
-                                                       exit;
-                                                       break;
-                                               case 'process':
-                                                       
$widget->loadContent($instance_id);
-                                                       
$widget->process($owner_type, $owner_id);
-                                                       exit;
-                                               default:
-                                                       break;
+                       $good = true;
+               }
+               break;
+       case WidgetLayoutManager::OWNER_TYPE_USERHOME:
+               if ($owner_id == user_getid()) {
+                       $user = user_get_object(user_getid());
+                       $redirect = '/users/'.$user->getUnixName();
+                       $good = true;
+               }
+       default:
+               break;
+}
+if ($good) {
+       $param = getArrayFromRequest('name');
+       $v = array_keys($param);
+       $name = array_pop($v);
+       $instance_id = (int)$param[$name];
+       if ($widget =& Widget::getInstance($name, $owner_id)) {
+               if ($widget->isAvailable()) {
+                       $action = getStringFromRequest('action');
+                       switch ($action) {
+                               case 'rss':
+                                       $widget->displayRss();
+                                       exit();
+                                       break;
+                               case 'update':
+                                       $layout_id = 
getIntFromRequest('layout_id');
+                                       if ($layout_id && 
+                                           ($owner_type == 
WidgetLayoutManager::OWNER_TYPE_USER ||
+                                               
forge_check_perm('project_admin', $group_id) ||
+                                               
forge_check_global_perm('forge_admin') ||
+                                               
forge_check_perm('tracker_admin', $owner_id))) {
+                                               $cancel = 
getStringFromRequest('cancel');
+                                               if (strlen($cancel) || 
$widget->updatePreferences()) {
+                                                       
$lm->hideWidgetPreferences($owner_id, $owner_type, $layout_id, $name, 
$instance_id);
+                                               }
                                        }
-                               }
+                                       break;
+                               case 'ajax':
+                                       if ($widget->isAjax()) {
+                                               header("Cache-Control: 
no-store, no-cache, must-revalidate");
+                                               sysdebug_ajaxbody();
+                                               
$widget->loadContent($instance_id);
+                                               echo $widget->getContent();
+                                               exit();
+                                       }
+                                       break;
+                               case 'iframe':
+                                       echo '<html><head>';
+                                       
$GLOBALS['HTML']->displayStylesheetElements();
+                                       echo '</head><body class="main_body_row 
contenttable">';
+                                       $widget->loadContent($instance_id);
+                                       echo $widget->getContent();
+                                       echo '</body></html>';
+                                       exit;
+                                       break;
+                               case 'process':
+                                       $widget->loadContent($instance_id);
+                                       $widget->process($owner_type, 
$owner_id);
+                                       exit;
+                               default:
+                                       break;
                        }
                }
        }
 }
-if (!$request->isAjax()) {
+if(!(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 
strtoupper($_SERVER['HTTP_X_REQUESTED_WITH']) == 'XMLHTTPREQUEST')) {
        session_redirect($redirect);
 }
diff --git a/src/www/widgets/widgets.php b/src/www/widgets/widgets.php
index 29f54c9..3904be1 100644
--- a/src/www/widgets/widgets.php
+++ b/src/www/widgets/widgets.php
@@ -25,101 +25,87 @@ require_once $gfcommon.'include/pre.php';
 require_once $gfcommon.'include/preplugins.php';
 require_once $gfcommon.'include/plugins_utils.php';
 require_once $gfcommon.'widget/WidgetLayoutManager.class.php';
-require_once $gfcommon.'widget/Valid_Widget.class.php';
 
 html_use_jquery();
 use_javascript('/widgets/scripts/LayoutController.js');
 
-$hp = Codendi_HTMLPurifier::instance();
-
 if (session_loggedin()) {
-
-       $request =& HTTPRequest::instance();
        $lm = new WidgetLayoutManager();
-       $vLayoutId = new Valid_UInt('layout_id');
-       $vLayoutId->required();
-       if ($request->valid($vLayoutId)) {
-               $layout_id = $request->get('layout_id');
-               $vOwner = new Valid_Widget_Owner('owner');
-               $vOwner->required();
-               if ($request->valid($vOwner)) {
-                       $owner = $request->get('owner');
-                       $owner_id   = (int)substr($owner, 1);
-                       $owner_type = substr($owner, 0, 1);
-                       switch($owner_type) {
-                               case WidgetLayoutManager::OWNER_TYPE_USER:
-                                       if ($owner_id == user_getid()) {
-                                               $userm = 
UserManager::instance();
-                                               $current = 
$userm->getCurrentUser();
-                                               
site_user_header(array('title'=>sprintf(_('Personal Page for %s'), 
user_getname())));
-                                               
$lm->displayAvailableWidgets(user_getid(), 
WidgetLayoutManager::OWNER_TYPE_USER, $layout_id);
-                                               site_footer();
-                                       }
-                                       break;
-                               case WidgetLayoutManager::OWNER_TYPE_GROUP:
-                                       $pm = ProjectManager::instance();
-                                       if ($project = 
$pm->getProject($owner_id)) {
-                                               $group_id = $owner_id;
-                                               $_REQUEST['group_id'] = 
$_GET['group_id'] = $group_id;
-                                               $request->params['group_id'] = 
$group_id; //bad!
-                                               if 
(forge_check_perm('project_admin', $group_id) ||
-                                                       
forge_check_global_perm('forge_admin')) {
-                                                       if 
(HTTPRequest::instance()->get('update') == 'layout') {
-                                                               $title = 
_("Customize Layout");
-                                                       } else {
-                                                               $title = _("Add 
widgets");
-                                                       }
-                                                       
site_project_header(array('title'=>$title, 'group'=>$group_id, 
'toptab'=>'summary'));
-                                                       
$lm->displayAvailableWidgets($group_id, WidgetLayoutManager::OWNER_TYPE_GROUP, 
$layout_id);
-                                                       site_footer();
-                                               } else {
-                                                       
$GLOBALS['Response']->redirect('/projects/'.$project->getUnixName().'/');
-                                               }
-                                       }
-                                       break;
-                               case WidgetLayoutManager::OWNER_TYPE_HOME:
-                                       if 
(forge_check_global_perm('forge_admin')) {
-                                               if 
(HTTPRequest::instance()->get('update') == 'layout') {
-                                                       $title = _('Customize 
Layout');
-                                               } else {
-                                                       $title = _('Add 
widgets');
-                                               }
-                                               
site_header(array('title'=>$title, 'toptab'=>'home'));
-                                               $lm->displayAvailableWidgets(0, 
WidgetLayoutManager::OWNER_TYPE_HOME, $layout_id);
-                                               site_footer();
+       $layout_id = getIntFromRequest('layout_id');
+       $owner = getStringFromRequest('owner');
+       $owner_id   = (int)substr($owner, 1);
+       $owner_type = substr($owner, 0, 1);
+       switch($owner_type) {
+               case WidgetLayoutManager::OWNER_TYPE_USER:
+                       if ($owner_id == user_getid()) {
+                               $userm = UserManager::instance();
+                               $current = $userm->getCurrentUser();
+                               
site_user_header(array('title'=>sprintf(_('Personal Page for %s'), 
user_getname())));
+                               $lm->displayAvailableWidgets(user_getid(), 
WidgetLayoutManager::OWNER_TYPE_USER, $layout_id);
+                               site_footer();
+                       }
+                       break;
+               case WidgetLayoutManager::OWNER_TYPE_GROUP:
+                       $pm = ProjectManager::instance();
+                       if ($project = $pm->getProject($owner_id)) {
+                               $group_id = $owner_id;
+                               $_REQUEST['group_id'] = $_GET['group_id'] = 
$group_id;
+                               if (forge_check_perm('project_admin', 
$group_id) || forge_check_global_perm('forge_admin')) {
+                                       $update = 
getStringFromRequest('update');
+                                       if ('layout' == $update) {
+                                               $title = _("Customize Layout");
                                        } else {
-                                               
$GLOBALS['Response']->redirect('/');
+                                               $title = _("Add widgets");
                                        }
-                                       break;
-                               case WidgetLayoutManager::OWNER_TYPE_TRACKER:
-                                       if ($at = 
artifactType_get_object($owner_id)) {
-                                               
use_javascript('/widgets/scripts/WidgetController.js');
-                                               $_REQUEST['group_id'] = 
$_GET['group_id'] = $at->Group->getID();
-                                               $request->params['group_id'] = 
$at->Group->getID(); //bad!
-                                               $redirect = 
'/tracker/?group_id='. $at->Group->getID();
-                                               if 
(forge_check_global_perm('forge_admin') || forge_check_perm('tracker_admin', 
$at->getID())) {
-                                                       $ath = new 
ArtifactTypeHtml($at->Group, $at->getID());
-                                                       
$ath->header(array('atid'=>$ath->getID(), 'title'=>$ath->getName()));
-                                                       
$lm->displayAvailableWidgets($owner_id, 
WidgetLayoutManager::OWNER_TYPE_TRACKER, $layout_id);
-                                                       $ath->footer();
-                                               } else {
-                                                       
$GLOBALS['Response']->redirect($redirect);
-                                               }
-                                       }
-                                       break;
-                               case WidgetLayoutManager::OWNER_TYPE_USERHOME:
-                                       if ($owner_id == user_getid()) {
-                                               $userm = 
UserManager::instance();
-                                               $current = 
$userm->getCurrentUser();
-                                               
site_header(array('title'=>sprintf(_('Profile Page for %s'), user_getname())));
-                                               
$lm->displayAvailableWidgets(user_getid(), 
WidgetLayoutManager::OWNER_TYPE_USERHOME, $layout_id);
-                                               site_footer();
-                                       }
-                                       break;
-                               default:
-                                       break;
+                                       site_project_header(array('title' => 
$title, 'group' => $group_id, 'toptab' => 'summary'));
+                                       $lm->displayAvailableWidgets($group_id, 
WidgetLayoutManager::OWNER_TYPE_GROUP, $layout_id);
+                                       site_footer();
+                               } else {
+                                       
session_redirect('/projects/'.$project->getUnixName().'/');
+                               }
+                       }
+                       break;
+               case WidgetLayoutManager::OWNER_TYPE_HOME:
+                       if (forge_check_global_perm('forge_admin')) {
+                               $update = getStringFromRequest('update');
+                               if ('layout' == $update) {
+                                       $title = _('Customize Layout');
+                               } else {
+                                       $title = _('Add widgets');
+                               }
+                               site_header(array('title' => $title, 'toptab' 
=> 'home'));
+                               $lm->displayAvailableWidgets(0, 
WidgetLayoutManager::OWNER_TYPE_HOME, $layout_id);
+                               site_footer();
+                       } else {
+                               session_redirect('/');
+                       }
+                       break;
+               case WidgetLayoutManager::OWNER_TYPE_TRACKER:
+                       if ($at = artifactType_get_object($owner_id)) {
+                               
use_javascript('/widgets/scripts/WidgetController.js');
+                               $_REQUEST['group_id'] = $_GET['group_id'] = 
$at->Group->getID();
+                               $redirect = '/tracker/?group_id='. 
$at->Group->getID();
+                               if (forge_check_global_perm('forge_admin') || 
forge_check_perm('tracker_admin', $at->getID())) {
+                                       $ath = new ArtifactTypeHtml($at->Group, 
$at->getID());
+                                       
$ath->header(array('atid'=>$ath->getID(), 'title'=>$ath->getName()));
+                                       $lm->displayAvailableWidgets($owner_id, 
WidgetLayoutManager::OWNER_TYPE_TRACKER, $layout_id);
+                                       $ath->footer();
+                               } else {
+                                       session_redirect($redirect);
+                               }
+                       }
+                       break;
+               case WidgetLayoutManager::OWNER_TYPE_USERHOME:
+                       if ($owner_id == user_getid()) {
+                               $userm = UserManager::instance();
+                               $current = $userm->getCurrentUser();
+                               site_header(array('title'=>sprintf(_('Profile 
Page for %s'), user_getname())));
+                               $lm->displayAvailableWidgets(user_getid(), 
WidgetLayoutManager::OWNER_TYPE_USERHOME, $layout_id);
+                               site_footer();
                        }
-               }
+                       break;
+               default:
+                       break;
        }
 } else {
        exit_not_logged_in();

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

Summary of changes:
 src/common/include/extras-debug.php                |   4 +-
 src/common/include/utils.php                       |   2 +-
 src/common/widget/Widget.class.php                 |   4 +-
 src/common/widget/WidgetLayoutManager.class.php    |  49 +++--
 src/common/widget/Widget_HomeHallOfFame.class.php  |   4 +-
 src/common/widget/Widget_MyArtifacts.class.php     |  59 +++---
 src/common/widget/Widget_MyLatestCommits.class.php |   6 +-
 src/common/widget/Widget_MySurveys.class.php       |   4 +-
 .../Widget_ProjectDocumentsActivity.class.php      |   2 +-
 src/common/widget/Widget_Rss.class.php             |   4 +-
 src/common/widget/Widget_TrackerContent.class.php  |  75 ++++----
 src/www/widgets/updatelayout.php                   |  47 +++--
 src/www/widgets/widget.php                         | 198 ++++++++++-----------
 src/www/widgets/widgets.php                        | 158 ++++++++--------
 14 files changed, 289 insertions(+), 327 deletions(-)


hooks/post-receive
-- 
FusionForge

_______________________________________________
Fusionforge-commits mailing list
Fusionforge-commits@lists.fusionforge.org
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits

Reply via email to