[Fusionforge-commits] FusionForge branch master updated. 6.0.4-621-ga725804

Franck Villaume nerville at libremir.placard.fr.eu.org
Fri Jul 1 14:31:39 CEST 2016


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  a725804a2385dfdee11cafee77faf69d0fb98719 (commit)
      from  5d24d657b81c78a881e013e80ec1bcc0f1503367 (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=a725804a2385dfdee11cafee77faf69d0fb98719

commit a725804a2385dfdee11cafee77faf69d0fb98719
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date:   Fri Jul 1 14:31:02 2016 +0200

    enhance quickNav menu using user activity to select 5 more visited projects

diff --git a/src/CHANGES b/src/CHANGES
index 35fcdbe..e3b4a75 100644
--- a/src/CHANGES
+++ b/src/CHANGES
@@ -10,6 +10,7 @@ FusionForge 6.X:
 * Docman: support document versioning. (TrivialDev)
 * Docman: support cross ref. forum, documents, task or artifact. (TrivialDev)
 * FRS: link package release to tracker roadmap. (TrivialDev)
+* Layout: new dynamic quickNav menu: based on user activity to select 5 more visited projects (TrivialDev)
 * Plugin AuthBuiltin: add captcha after 3 attempts with the same login [#795] (TrivialDev)
 * Projects Page: add paging system in full_list and tag_cloud subpages (TrivialDev)
 * SearchEngine: support only FTI queries (TrivialDev)
diff --git a/src/common/include/User.class.php b/src/common/include/User.class.php
index cabae71..5a1514b 100644
--- a/src/common/include/User.class.php
+++ b/src/common/include/User.class.php
@@ -1805,6 +1805,16 @@ Email: %3$s
 		$this->data_array['hidden'] = $serializedData;
 		return true;
 	}
+
+	function getActivityLogGroups() {
+		$res = db_query_params('select group_id from activity_log where group_id != 0 and user_id = $1 group by group_id order by count(group_id) desc',
+					array($this->getID()), 5);
+		if (!$res) {
+			return array();
+		} else {
+			return group_get_objects(util_result_column_to_array($res,0));
+		}
+	}
 }
 
 
diff --git a/src/common/include/logger.php b/src/common/include/logger.php
index 29845e4..c294fb2 100644
--- a/src/common/include/logger.php
+++ b/src/common/include/logger.php
@@ -131,12 +131,17 @@ if (isset($group_id) && is_numeric($group_id) && $group_id) {
 
 }
 
+$log_user_id = user_getid();
+if (!$log_user_id) {
+	$log_user_id = 0;
+}
+
 $res_logger = db_query_params ('INSERT INTO activity_log
-	(day,hour,group_id,browser,ver,platform,time,page,type)
-	VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)',
+	(day,hour,group_id,browser,ver,platform,time,page,type, user_id)
+	VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)',
 	array(date('Ymd'), date('H'),
 		$log_group, browser_get_agent(), browser_get_version(), browser_get_platform(),
-		time(), getStringFromServer('PHP_SELF'), '0'));
+		time(), getStringFromServer('PHP_SELF'), '0', $log_user_id));
 
 if (!$res_logger) {
 	echo "An error occured in the logger.\n";
diff --git a/src/db/20160629-quickmenu-enhancement.sql b/src/db/20160629-quickmenu-enhancement.sql
new file mode 100644
index 0000000..42dfe38
--- /dev/null
+++ b/src/db/20160629-quickmenu-enhancement.sql
@@ -0,0 +1 @@
+ALTER TABLE activity_log ADD COLUMN user_id integer DEFAULT 0 NOT NULL;
diff --git a/src/etc/config.ini.d/defaults.ini b/src/etc/config.ini.d/defaults.ini
index 90194fc..36a4678 100644
--- a/src/etc/config.ini.d/defaults.ini
+++ b/src/etc/config.ini.d/defaults.ini
@@ -89,6 +89,7 @@ use_webdav = no
 user_default_shell = "/bin/bash"
 user_display_contact_info = yes
 forge_homepage_widget = no
+use_quicknav_default = yes
 
 scm_single_host = yes
 system_user=fusionforge
diff --git a/src/www/account/index.php b/src/www/account/index.php
index 175ae29..9c93553 100644
--- a/src/www/account/index.php
+++ b/src/www/account/index.php
@@ -72,6 +72,7 @@ if (getStringFromRequest('submit')) {
 	$remember_user = getStringFromRequest('remember_user');
 	$use_ratings = getStringFromRequest('use_ratings');
 	$use_tooltips = getIntFromRequest('use_tooltips');
+	$quicknav_mode = getIntFromRequest('quicknav_mode');
 
 	$check = true;
 	if (!strlen(trim($firstname))) {
@@ -87,7 +88,8 @@ if (getStringFromRequest('submit')) {
 		$refresh = ($language != $u->getLanguage() || $theme_id != $u->getThemeID());
 
 		if (!$u->update($firstname, $lastname, $language, $timezone, $mail_site, $mail_va, $use_ratings,
-				'',0,$theme_id,$address,$address2,$phone,$fax,$title,$ccode,$use_tooltips)) {
+				'',0,$theme_id,$address,$address2,$phone,$fax,$title,$ccode,$use_tooltips)
+				|| !$u->setPreference('quicknav_mode', $quicknav_mode)) {
 			form_release_key(getStringFromRequest('form_key'));
 			$error_msg = $u->getErrorMessage();
 		} else {
@@ -299,15 +301,15 @@ echo $HTML->boxTop(_('Preferences'));
 	</label>
 </p>
 
-<p>
 <?php if (forge_get_config('use_ratings')) { ?>
+<p>
 	<input id="use_ratings" type="checkbox" name="use_ratings" value="1"<?php
 	if ($u->usesRatings()) print ' checked="checked"'; ?> />
 	<label for="use_ratings">
 		<?php printf(_('Participate in peer ratings. <em>(Allows you to rate other users using several criteria as well as to be rated by others. More information is available on your <a href="%s">user page</a> if you have chosen to participate in ratings.)</em>'), util_make_url_u($u->getUnixName(),$u->getID())); ?>
 	</label>
-<?php } ?>
 </p>
+<?php } ?>
 
 <p>
 	<input id="use_tooltips" type="checkbox" name="use_tooltips" value="1"<?php
@@ -316,7 +318,19 @@ echo $HTML->boxTop(_('Preferences'));
 	<?php echo _('Enable tooltips. Small help texts displayed on mouse over links, images.'); ?>
 	</label>
 </p>
-
+<?php
+if (!forge_get_config('use_quicknav_default')) {
+?>
+<p>
+	<input id="quicknav_mode" type="checkbox" name="quicknav_mode" value="1"<?php
+	if ($u->getPreference('quicknav_mode')) print ' checked="checked"'; ?> />
+	<label for="quicknav_mode">
+	<?php echo _('Use advanced quicknav menu based on your navigation history on this site. Quicknav will use your 5 more visited projects.'); ?>
+	</label>
+<?php
+}
+?>
+</p>
 <?php
 // displays a "Use xxxx Plugin" checkbox
 plugin_hook("userisactivecheckbox", $hookParams);
diff --git a/src/www/include/Layout.class.php b/src/www/include/Layout.class.php
index 9ef08a4..e40777c 100644
--- a/src/www/include/Layout.class.php
+++ b/src/www/include/Layout.class.php
@@ -721,13 +721,14 @@ if (isset($params['group']) && $params['group']) {
 			if (count($groups) < 1) {
 				return;
 			} else {
-				sortProjectList($groups);
-
-				$result = html_ao('form', array('id' => 'quicknavform', 'name' => 'quicknavform', 'action' => ''));
+				$result = $this->openForm(array('id' => 'quicknavform', 'name' => 'quicknavform', 'action' => ''));
 				$result .= html_ao('div');
 				$result .= html_ao('select', array('name' => 'quicknav', 'id' => 'quicknav', 'onchange' => 'location.href=document.quicknavform.quicknav.value'));
 				$result .= html_e('option', array('value' => ''), _('Quick Jump To...'), false);
-
+				if (!forge_get_config('use_quicknav_default') && session_get_user()->getPreference('quicknav_mode')) {
+					$groups = session_get_user()->getActivityLogGroups();
+				}
+				sortProjectList($groups);
 				foreach ($groups as $g) {
 					$group_id = $g->getID();
 					$menu = $this->navigation->getProjectMenu($group_id);
@@ -739,7 +740,8 @@ if (isset($params['group']) && $params['group']) {
 						}
 					}
 				}
-				$result .= html_ac(html_ap() - 3);
+				$result .= html_ac(html_ap() - 2);
+				$result .= $this->closeForm();
 			}
 			return $result;
 		}

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

Summary of changes:
 src/CHANGES                               |  1 +
 src/common/include/User.class.php         | 10 ++++++++++
 src/common/include/logger.php             | 11 ++++++++---
 src/db/20160629-quickmenu-enhancement.sql |  1 +
 src/etc/config.ini.d/defaults.ini         |  1 +
 src/www/account/index.php                 | 22 ++++++++++++++++++----
 src/www/include/Layout.class.php          | 12 +++++++-----
 7 files changed, 46 insertions(+), 12 deletions(-)
 create mode 100644 src/db/20160629-quickmenu-enhancement.sql


hooks/post-receive
-- 
FusionForge



More information about the Fusionforge-commits mailing list