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 9c7cd2ca65bbf32ff8a0e810054e414e264c2836 (commit)
via 2749ce54f60213168e42f698a230461361eb1f9b (commit)
via a49a19b86ca9055ef1d773b767c534b43495e20d (commit)
via cee9ee675de653ba3302b9cc2c5ef1db5584bd3b (commit)
via 03b68b65563ada49777f49a99f67838a8e0a080e (commit)
via 63679b04b09618127ba5be56d69a917e268770fc (commit)
from eb8330790e58a1277495bb4f3d01922b306ef2e7 (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=9c7cd2ca65bbf32ff8a0e810054e414e264c2836
commit 9c7cd2ca65bbf32ff8a0e810054e414e264c2836
Author: Franck Villaume <[email protected]>
Date: Fri Sep 30 10:10:38 2016 +0200
refactor util_gen_cross_ref
diff --git a/src/common/include/utils_crossref.php
b/src/common/include/utils_crossref.php
index e5921b9..6e37c67 100644
--- a/src/common/include/utils_crossref.php
+++ b/src/common/include/utils_crossref.php
@@ -26,9 +26,6 @@ require_once $gfcommon.'docman/Document.class.php';
function util_gen_cross_ref ($text, $group_id) {
- // Some important information.
- $prj = group_getunixname ($group_id);
-
// Handle URL in links, replace them with hyperlinks.
$text = util_make_links($text);
@@ -39,7 +36,7 @@ function util_gen_cross_ref ($text, $group_id) {
$text = preg_replace_callback('/\[\T(\d+)\]/',
create_function('$matches', 'return _taskid2url($matches[1],'.$group_id.');'),
$text);
// Handle [wiki:<pagename>] syntax
- $text = preg_replace_callback('/\[wiki:(.*?)\]/',
create_function('$matches', 'return _page2url('.$prj.',$matches[1]);'), $text);
+ $text = preg_replace_callback('/\[wiki:(.*?)\]/',
create_function('$matches', 'return _page2url('.$group_id.',$matches[1]);'),
$text);
// Handle FusionForge [forum:<thread_id>] Syntax => links to forum.
$text = preg_replace_callback('/\[forum:(\d+)\]/',
create_function('$matches', 'return _forumid2url($matches[1]);'), $text);
@@ -49,7 +46,8 @@ function util_gen_cross_ref ($text, $group_id) {
return $text;
}
-function _page2url($prj,$page) {
+function _page2url($group_id,$page) {
+ $prj = group_getunixname ($group_id);
return util_make_link('/wiki/g/'.$prj.'/'.rawurlencode($page), $page);
}
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=2749ce54f60213168e42f698a230461361eb1f9b
commit 2749ce54f60213168e42f698a230461361eb1f9b
Author: Franck Villaume <[email protected]>
Date: Fri Sep 30 10:02:07 2016 +0200
docman: create constants
diff --git a/src/common/docman/include/constants.php
b/src/common/docman/include/constants.php
new file mode 100644
index 0000000..7f9f0cb
--- /dev/null
+++ b/src/common/docman/include/constants.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * FusionForge Docman constants
+ *
+ * Copyright 2016, 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
+ * 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.
+ */
+
+define('DOCMAN__TITLE_MIN_SIZE', 5);
+define('DOCMAN__TITLE_MAX_SIZE', 255);
+define('DOCMAN__DESCRIPTION_MIN_SIZE', 10);
+define('DOCMAN__DESCRIPTION_MAX_SIZE', 255);
+define('DOCMAN__COMMENT_MAX_SIZE', 255);
+define('DOCMAN__INFAMOUS_USER_ID', 100);
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=a49a19b86ca9055ef1d773b767c534b43495e20d
commit a49a19b86ca9055ef1d773b767c534b43495e20d
Author: Franck Villaume <[email protected]>
Date: Fri Sep 30 10:01:36 2016 +0200
Document: use same pattern for import data as in tracker module
diff --git a/src/common/docman/Document.class.php
b/src/common/docman/Document.class.php
index 0c6f05e..974d69a 100644
--- a/src/common/docman/Document.class.php
+++ b/src/common/docman/Document.class.php
@@ -34,6 +34,7 @@ require_once $gfcommon.'docman/DocumentStorage.class.php';
require_once $gfcommon.'docman/DocumentVersion.class.php';
require_once $gfcommon.'include/MonitorElement.class.php';
require_once $gfcommon.'include/utils_crossref.php';
+require_once $gfcommon.'docman/include/constants.php';
$DOCUMENT_OBJ = array();
@@ -129,36 +130,60 @@ class Document extends FFError {
/**
* create - use this function to create a new entry in the database.
*
- * @param string $filename The filename of this
document. Can be a URL.
- * @param string $filetype The filetype of this
document. If filename is URL, this should be 'URL';
- * @param string $data The absolute path file
itself.
- * @param int $doc_group The doc_group id of the
doc_groups table.
- * @param string $title The title of this
document.
- * @param string $description The description of this
document.
- * @param int $stateid The state id of the
document. At creation, cannot be deleted status.
- * @param string $vcomment The comment of the new
created version
- * @param int $createtimestamp Timestamp of the
creation of this document
+ * @param string $filename The filename of this document.
Can be a URL.
+ * @param string $filetype The filetype of this document.
If filename is URL, this should be 'URL';
+ * @param string $data The absolute path file itself.
+ * @param int $doc_group The doc_group id of the
doc_groups table.
+ * @param string $title The title of this document.
+ * @param string $description The description of this
document.
+ * @param int $stateid The state id of the document.
At creation, cannot be deleted status.
+ * @param string $vcomment The comment of the new created
version
+ * @param array $importData Array of data to change
creator, time of creation, bypass permission check and do not send notification
like:
+ * array('user' => 127, 'time' =>
1234556789, 'nopermcheck' => 1, 'nonotice' => 1)
* @return bool success.
*/
- function create($filename, $filetype, $data, $doc_group, $title,
$description, $stateid = 0, $vcomment = '', $createtimestamp = null) {
- if (strlen($title) < 5) {
+ function create($filename, $filetype, $data, $doc_group, $title,
$description, $stateid = 0, $vcomment = '', $importData = array()) {
+ if (strlen($title) < DOCMAN__TITLE_MIN_SIZE) {
$this->setError(_('Title Must Be At Least 5
Characters'));
return false;
}
- if (strlen($description) < 10) {
+ if (strlen($description) < DOCMAN__DESCRIPTION_MIN_SIZE) {
$this->setError(_('Document Description Must Be At
Least 10 Characters'));
return false;
}
- $user_id = ((session_loggedin()) ? user_getid() : 100);
+ if (strlen($title) > DOCMAN__TITLE_MAX_SIZE) {
+ $this->setError(sprintf(_('Title Must Be Max %d
Characters'), DOCMAN__TITLE_MAX_SIZE));
+ return false;
+ }
+
+ if (strlen($description) > DOCMAN__DESCRIPTION_MAX_SIZE) {
+ $this->setError(sprintf(_('Document Description Must Be
Max %d Characters'), DOCMAN__DESCRIPTION_MAX_SIZE));
+ return false;
+ }
+
+ if (strlen($description) > DOCMAN__COMMENT_MAX_SIZE) {
+ $this->setError(sprintf(_('Document Comment Must Be Max
%d Characters'), DOCMAN__COMMENT_MAX_SIZE));
+ return false;
+ }
+
+ if (isset($importData['user'])) {
+ $user_id = $importData['user'];
+ } else {
+ $user_id = ((session_loggedin()) ? user_getid() :
DOCMAN__INFAMOUS_USER_ID);
+ }
- $doc_initstatus = '3';
$perm =& $this->Group->getPermission();
- if ($perm && is_object($perm) && $perm->isDocEditor()) {
- if ($stateid && $stateid != 2) {
- $doc_initstatus = $stateid;
- } else {
- $doc_initstatus = '1';
+ if (isset($importData['nopermcheck']) &&
$importData['nopermcheck']) {
+ $doc_initstatus = $stateid;
+ } else {
+ $doc_initstatus = '3';
+ if ($perm && is_object($perm) && $perm->isDocEditor()) {
+ if ($stateid && $stateid != 2) {
+ $doc_initstatus = $stateid;
+ } else {
+ $doc_initstatus = '1';
+ }
}
}
@@ -194,7 +219,7 @@ class Document extends FFError {
}
db_begin();
- $createtimestamp = (($createtimestamp) ? $createtimestamp :
time());
+ $createtimestamp = (isset($importData['time']))?
$importData['time'] : time();
$result = db_query_params('INSERT INTO doc_data (group_id,
createdate, doc_group, stateid)
VALUES ($1, $2, $3, $4)',
array($this->Group->getID(),
$createtimestamp, $doc_group, $doc_initstatus));
@@ -237,7 +262,7 @@ class Document extends FFError {
return false;
}
- if ($perm->isDocEditor()) {
+ if ($perm->isDocEditor() || (isset($importData['nopermcheck'])
&& $importData['nopermcheck'])) {
$localDg = documentgroup_get_object($doc_group,
$this->Group->getID());
if (!$localDg->update($localDg->getName(),
$localDg->getParentID(), 1, $localDg->getState(), $createtimestamp)) {
$this->setError(_('Error updating document
group')._(': ').$localDg->getErrorMessage());
@@ -248,8 +273,10 @@ class Document extends FFError {
return false;
}
}
- $this->sendNotice(true);
- $this->sendApprovalNotice();
+ if (!isset($importData['nonotice'])) {
+ $this->sendNotice(true);
+ $this->sendApprovalNotice();
+ }
db_commit();
if ($filesize) {
DocumentStorage::instance()->commit();
@@ -800,36 +827,60 @@ class Document extends FFError {
* @param int $version The version to update.
Default is 1.
* @param int $current_version Is the current version?
default is 1.
* @param int $new_version To create a new
version? default is 0. == No.
- * @param int $updatetimestamp Timestamp of this
update.
+ * @param array $importData Array of data to change
creator, time of creation, bypass permission check and do not send notification
like:
+ * array('user' => 127,
'time' => 1234556789, 'nopermcheck' => 1, 'nonotice' => 1)
* @param string $vcomment The comment of this
version
* @return boolean success.
*/
- function update($filename, $filetype, $data, $doc_group, $title,
$description, $stateid, $version = 1, $current_version = 1, $new_version = 0,
$updatetimestamp = null, $vcomment = '') {
+ function update($filename, $filetype, $data, $doc_group, $title,
$description, $stateid, $version = 1, $current_version = 1, $new_version = 0,
$importData = array(), $vcomment = '') {
$perm =& $this->Group->getPermission();
- if (!$perm || !is_object($perm) || !$perm->isDocEditor()) {
- $this->setPermissionDeniedError();
+ if (!isset($importData['nopermcheck'])) {
+ if (!$perm || !is_object($perm) ||
!$perm->isDocEditor()) {
+ $this->setPermissionDeniedError();
+ return false;
+ }
+ }
+
+ if (isset($importData['user'])) {
+ $user = user_get_object($importData['user']);
+ } else {
+ $user = session_get_user();
+ }
+ if (!isset($importData['nopermcheck'])) {
+ if ($this->getLocked() && ($this->getLockedBy() !=
$user->getID())) {
+ $this->setPermissionDeniedError();
+ return false;
+ }
+ }
+
+ if (strlen($title) < DOCMAN__TITLE_MIN_SIZE) {
+ $this->setError(sprintf(_('Title Must Be At Least %d
Characters'), DOCMAN__TITLE_MIN_SIZE));
return false;
}
- $user = session_get_user();
- if ($this->getLocked() && ($this->getLockedBy() !=
$user->getID())) {
- $this->setPermissionDeniedError();
+ if (strlen($description) < DOCMAN__DESCRIPTION_MIN_SIZE) {
+ $this->setError(sprintf(_('Document Description Must Be
At Least %d Characters'), DOCMAN__DESCRIPTION_MIN_SIZE));
return false;
}
- if (strlen($title) < 5) {
- $this->setError(_('Title Must Be At Least 5
Characters'));
+ if (strlen($title) > DOCMAN__TITLE_MAX_SIZE) {
+ $this->setError(sprintf(_('Title Must Be Max %d
Characters'), DOCMAN__TITLE_MAX_SIZE));
return false;
}
- if (strlen($description) < 10) {
- $this->setError(_('Document Description Must Be At
Least 10 Characters'));
+ if (strlen($description) > DOCMAN__DESCRIPTION_MAX_SIZE) {
+ $this->setError(sprintf(_('Document Description Must Be
Max %d Characters'), DOCMAN__DESCRIPTION_MAX_SIZE));
+ return false;
+ }
+
+ if (strlen($description) > DOCMAN__COMMENT_MAX_SIZE) {
+ $this->setError(sprintf(_('Document Comment Must Be Max
%d Characters'), DOCMAN__COMMENT_MAX_SIZE));
return false;
}
db_begin();
- $updatetimestamp = (($updatetimestamp) ? $updatetimestamp :
time());
+ $updatetimestamp = ((isset($importData['time'])) ?
$importData['time'] : time());
$colArr = array('stateid', 'doc_group', 'updatedate', 'locked',
'locked_by');
$valArr = array($stateid, $doc_group, $updatetimestamp, 0,
NULL);
if (!$this->setValueinDB($colArr, $valArr)) {
@@ -881,7 +932,7 @@ class Document extends FFError {
if (isset($kwords)) {
$version_kwords = $kwords;
}
- $serial_id = $dv->create($this->getID(), $title,
$description, user_getid(), $filetype, $filename, $filesize, $version_kwords,
$updatetimestamp, $version, $current_version, $vcomment);
+ $serial_id = $dv->create($this->getID(), $title,
$description, $user->getID(), $filetype, $filename, $filesize, $version_kwords,
$updatetimestamp, $version, $current_version, $vcomment);
if (!$serial_id) {
$this->setOnUpdateError(_('Error updating
document version')._(': ').$dv->getErrorMessage());
db_rollback();
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=cee9ee675de653ba3302b9cc2c5ef1db5584bd3b
commit cee9ee675de653ba3302b9cc2c5ef1db5584bd3b
Author: Franck Villaume <[email protected]>
Date: Fri Sep 30 10:00:49 2016 +0200
less code & indent
diff --git a/src/common/tracker/Artifact.class.php
b/src/common/tracker/Artifact.class.php
index 748cbf7..fdb964d 100644
--- a/src/common/tracker/Artifact.class.php
+++ b/src/common/tracker/Artifact.class.php
@@ -196,15 +196,11 @@ class Artifact extends FFError {
$user = $importData['user'];
} else {
if (!forge_check_perm
('tracker',$this->ArtifactType->getID(),'submit')) {
- $this->setError(_('You are not
currently allowed to submit items to this tracker.'));
- return false;
+ $this->setError(_('You are not currently
allowed to submit items to this tracker.'));
+ return false;
}
- if (session_loggedin()) {
- $user=user_getid();
- } else {
- $user=100;
- }
+ $user_id = ((session_loggedin()) ? user_getid() : 100);
}
//
@@ -838,11 +834,7 @@ class Artifact extends FFError {
if (array_key_exists('user', $importData)){
$user = $importData['user'];
} else {
- if (!session_loggedin()) {
- $user=100;
- } else {
- $user=user_getid();
- }
+ $user_id = ((session_loggedin()) ? user_getid() : 100);
}
if (array_key_exists('time',$importData)){
$time = $importData['time'];
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=03b68b65563ada49777f49a99f67838a8e0a080e
commit 03b68b65563ada49777f49a99f67838a8e0a080e
Author: Franck Villaume <[email protected]>
Date: Fri Sep 30 09:58:16 2016 +0200
docman search: support document version
diff --git a/src/common/search/DocsSearchQuery.class.php
b/src/common/search/DocsSearchQuery.class.php
index bee3eb5..40e7231 100644
--- a/src/common/search/DocsSearchQuery.class.php
+++ b/src/common/search/DocsSearchQuery.class.php
@@ -71,23 +71,23 @@ class DocsSearchQuery extends SearchQuery {
$params['options'] = $options;
plugin_hook_by_reference('docmansearch_has_hierarchy', $params);
if (count($params['groupIdArr'])) {
- $qpa = db_construct_qpa($qpa, ' AND docdata_vw.group_id
= ANY ($1) ', array(db_int_array_to_any_clause($params['groupIdArr'])));
+ $qpa = db_construct_qpa($qpa, ' AND doc_data.group_id =
ANY ($1) ', array(db_int_array_to_any_clause($params['groupIdArr'])));
}
if ($sections != SEARCH__ALL_SECTIONS) {
- $qpa = db_construct_qpa($qpa, ' AND
doc_groups.doc_group = ANY ($1)', array(db_int_array_to_any_clause($sections)));
+ $qpa = db_construct_qpa($qpa, ' AND doc_data.doc_group
= ANY ($1)', array(db_int_array_to_any_clause($sections)));
}
if ($this->showNonPublic) {
- $qpa = db_construct_qpa($qpa, ' AND docdata_vw.stateid
IN (1, 3, 4, 5)');
+ $qpa = db_construct_qpa($qpa, ' AND doc_data.stateid IN
(1, 3, 4, 5)');
} else {
- $qpa = db_construct_qpa($qpa, ' AND docdata_vw.stateid
= 1 AND doc_groups.stateid = 1');
+ $qpa = db_construct_qpa($qpa, ' AND doc_data.stateid =
1 AND doc_groups.stateid = 1');
}
if (isset($options['date_begin']) &&
!isset($options['date_end'])) {
- $qpa = db_construct_qpa($qpa, ' AND
docdata_vw.createdate >= $1', array($options['date_begin']));
+ $qpa = db_construct_qpa($qpa, ' AND
doc_data_version.createdate >= $1', array($options['date_begin']));
} elseif (!isset($options['date_begin']) &&
isset($options['date_end'])) {
- $qpa = db_construct_qpa($qpa, ' AND
docdata_vw.createdate <= $1', array($options['date_end']));
+ $qpa = db_construct_qpa($qpa, ' AND
doc_data_version.createdate <= $1', array($options['date_end']));
} elseif (isset($options['date_begin']) &&
isset($options['date_end'])) {
- $qpa = db_construct_qpa($qpa, ' AND
docdata_vw.createdate between $1 and $2', array($options['date_begin'],
$options['date_end']));
+ $qpa = db_construct_qpa($qpa, ' AND
doc_data_version.createdate between $1 and $2', array($options['date_begin'],
$options['date_end']));
}
return $qpa;
}
@@ -101,10 +101,10 @@ class DocsSearchQuery extends SearchQuery {
$words = $this->getFTIwords();
$options = $this->options;
if (!isset($options['insideDocuments']) ||
!$options['insideDocuments']) {
- $qpa = db_construct_qpa(false, 'SELECT x.* FROM (SELECT
docdata_vw.docid, docdata_vw.group_id AS group_id, docdata_vw.filename,
ts_headline(docdata_vw.title, q) AS title, ts_headline(docdata_vw.description,
q) AS description, doc_groups.groupname, docdata_vw.title||$1||description AS
full_string_agg, doc_data_idx.vectors, groups.group_name as project_name FROM
groups, docdata_vw, doc_groups, doc_data_idx, to_tsquery($2) AS q WHERE
docdata_vw.doc_group = doc_groups.doc_group AND docdata_vw.group_id =
groups.group_id AND docdata_vw.docid = doc_data_idx.docid AND (vectors @@
to_tsquery($2))',
+ $qpa = db_construct_qpa(false, 'SELECT x.* FROM (SELECT
doc_data_idx.version, doc_data.docid, doc_data.group_id AS group_id,
doc_data_version.filename, ts_headline(doc_data_version.title, q) AS title,
ts_headline(doc_data_version.description, q) AS description,
doc_groups.groupname, doc_data_version.title||$1||doc_data_version.description
AS full_string_agg, doc_data_idx.vectors, doc_data_idx.version,
groups.group_name as project_name FROM groups, doc_groups, doc_data_idx,
doc_data_version, doc_data, to_tsquery($2) AS q WHERE doc_data.group_id =
groups.group_id AND doc_data_version.docid = doc_data_idx.docid AND (vectors @@
to_tsquery($2)) AND doc_data.docid = doc_data_version.docid AND
doc_data.doc_group = doc_groups.doc_group AND doc_data_version.version =
doc_data_idx.version',
array ($this->field_separator, $words));
} else {
- $qpa = db_construct_qpa(false, 'SELECT x.* FROM (SELECT
docdata_vw.docid, docdata_vw.group_id AS group_id,
ts_headline(docdata_vw.filename, q) AS filename, ts_headline(docdata_vw.title,
q) AS title, ts_headline(docdata_vw.description, q) AS description,
doc_groups.groupname, docdata_vw.title||$1||description||$1||filename AS
full_string_agg, doc_data_words_idx.vectors, groups.group_name as project_name
FROM groups, docdata_vw, doc_groups, doc_data_words_idx, to_tsquery($2) AS q
WHERE docdata_vw.doc_group = doc_groups.doc_group AND docdata_vw.group_id =
groups.group_id AND docdata_vw.docid = doc_data_words_idx.docid AND (vectors @@
to_tsquery($2))',
+ $qpa = db_construct_qpa(false, 'SELECT x.* FROM (SELECT
doc_data_words_idx.version, doc_data.docid, doc_data.group_id AS group_id,
ts_headline(doc_data_version.filename, q) AS filename,
ts_headline(doc_data_version.title, q) AS title,
ts_headline(doc_data_version.description, q) AS description,
doc_groups.groupname,
doc_data_version.title||$1||doc_data_version.description||$1||doc_data_version.filename
AS full_string_agg, doc_data_words_idx.vectors, groups.group_name as
project_name FROM groups, doc_groups, doc_data_words_idx, doc_data,
doc_data_version, to_tsquery($2) AS q WHERE doc_data.group_id = groups.group_id
AND doc_data_version.docid = doc_data_words_idx.docid AND (vectors @@
to_tsquery($2)) AND doc_data.docid = doc_data_version.docid AND
doc_data_version.version = doc_data_words_idx.version AND doc_data.doc_group =
doc_groups.doc_group',
array ($this->field_separator, $words));
}
$qpa = $this->addCommonQPA($qpa);
diff --git a/src/www/search/include/renderers/DocsHtmlSearchRenderer.class.php
b/src/www/search/include/renderers/DocsHtmlSearchRenderer.class.php
index eecff0f..53f540f 100644
--- a/src/www/search/include/renderers/DocsHtmlSearchRenderer.class.php
+++ b/src/www/search/include/renderers/DocsHtmlSearchRenderer.class.php
@@ -4,7 +4,7 @@
*
* Copyright 2004 (c) Dominik Haas, GForge Team
* Copyright (C) 2012 Alain Peyrat - Alcatel-Lucent
- * Copyright 2013,2015 Franck Villaume - TrivialDev
+ * Copyright 2013,2015-2016 Franck Villaume - TrivialDev
* Copyright 2013, French Ministry of National Education
* http://fusionforge.org
*
@@ -47,7 +47,9 @@ class DocsHtmlSearchRenderer extends HtmlGroupSearchRenderer {
$this->tableHeaders = array(
_('Directory'),
- _(' '),
+ ' ',
+ _('Filename'),
+ _('Version'),
_('Title'),
_('Description'),
_('Actions')
@@ -122,10 +124,13 @@ class DocsHtmlSearchRenderer extends
HtmlGroupSearchRenderer {
if ($document->isURL()) {
$cells[][] =
util_make_link($document->getFileName(),
html_image($document->getFileTypeImage(), 22, 22), array('title' => _('Visit
this link')), true);
} else {
- $cells[][] =
util_make_link('/docman/view.php/'.$document->Group->getID().'/'.$document->getID().'/'.urlencode($document->getFileName()),
html_image($document->getFileTypeImage(), 22, 22), array('title' => _('View
this document')));
+ $cells[][] =
util_make_link('/docman/view.php/'.$document->Group->getID().'/versions/'.$document->getID().'/'.$row['version'],
html_image($document->getFileTypeImage(), 22, 22), array('title' => _('View
this document')));
}
+ $cells[][] = $row['filename'];
+ $cells[][] = $row['version'];
$cells[][] = $row['title'];
- $cells[][] = $row['description'];
+ // we call util_gen_cross_ref on top of
row['description'] to keep the search engine mark
+ $cells[][] = util_gen_cross_ref($row['description'],
$document->Group->getID());
if (forge_check_perm('docman',
$document->Group->getID(), 'approve')) {
if (!$document->getLocked() &&
!$document->getReserved()) {
$cells[][] =
util_make_link('/docman/?group_id='.$document->Group->getID().'&view=listfile&dirid='.$document->getDocGroupID().'&filedetailid='.$document->getID(),
$HTML->getEditFilePic(_('Edit this document')), array('title' => _('Edit this
document')));
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=63679b04b09618127ba5be56d69a917e268770fc
commit 63679b04b09618127ba5be56d69a917e268770fc
Author: Franck Villaume <[email protected]>
Date: Fri Sep 30 09:55:27 2016 +0200
encode search string
diff --git a/src/common/docman/views/search.php
b/src/common/docman/views/search.php
index 11ad87b..fa1ce0e 100644
--- a/src/common/docman/views/search.php
+++ b/src/common/docman/views/search.php
@@ -179,8 +179,8 @@ if ($searchString) {
$result =
$docsHtmlSearchRenderer->searchQuery->getData($docsHtmlSearchRenderer->searchQuery->getRowsPerPage(),$docsHtmlSearchRenderer->searchQuery->getOffset());
$nbDocs = count($result);
$max = $docsHtmlSearchRenderer->searchQuery->getRowsTotalCount();
- echo $HTML->paging_top($start, $paging, $max, $nbDocs,
$redirect_url.'&view=search&textsearch='.$searchString.'&insideDocuments='.$insideDocuments.'&search_type='.$search_type.'&includesubprojects='.$subprojectsIncluded.'&limitByStartDate='.$limitByStartDate.'&limitByEndDate='.$limitByEndDate.'&start_date='.$received_begin.'&end_date='.$received_end);
+ echo $HTML->paging_top($start, $paging, $max, $nbDocs,
$redirect_url.'&view=search&textsearch='.urlencode($searchString).'&insideDocuments='.$insideDocuments.'&search_type='.$search_type.'&includesubprojects='.$subprojectsIncluded.'&limitByStartDate='.$limitByStartDate.'&limitByEndDate='.$limitByEndDate.'&start_date='.$received_begin.'&end_date='.$received_end);
$docsHtmlSearchRenderer->writeBody(false);
- echo $HTML->paging_bottom($start, $paging, $max,
$redirect_url.'&view=search&textsearch='.$searchString.'&insideDocuments='.$insideDocuments.'&search_type='.$search_type.'&includesubprojects='.$subprojectsIncluded.'&limitByStartDate='.$limitByStartDate.'&limitByEndDate='.$limitByEndDate.'&start_date='.$received_begin.'&end_date='.$received_end);
+ echo $HTML->paging_bottom($start, $paging, $max,
$redirect_url.'&view=search&textsearch='.urlencode($searchString).'&insideDocuments='.$insideDocuments.'&search_type='.$search_type.'&includesubprojects='.$subprojectsIncluded.'&limitByStartDate='.$limitByStartDate.'&limitByEndDate='.$limitByEndDate.'&start_date='.$received_begin.'&end_date='.$received_end);
}
echo html_ac(html_ap() -2);
-----------------------------------------------------------------------
Summary of changes:
src/common/docman/Document.class.php | 123 +++++++++++++++------
.../docman/include/constants.php} | 15 +--
src/common/docman/views/search.php | 4 +-
src/common/include/utils_crossref.php | 8 +-
src/common/search/DocsSearchQuery.class.php | 18 +--
src/common/tracker/Artifact.class.php | 16 +--
.../renderers/DocsHtmlSearchRenderer.class.php | 13 ++-
7 files changed, 122 insertions(+), 75 deletions(-)
copy src/{plugins/mantisbt/view/admin/StatPerMember.php =>
common/docman/include/constants.php} (70%)
hooks/post-receive
--
FusionForge
_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits