[Fusionforge-commits] r13989 - in trunk/src: common/docman common/docman/actions common/docman/views www www/docman www/themes/funky/css www/themes/funky/images/docman www/themes/gforge/images/docman
Franck VILLAUME
nerville at fusionforge.org
Thu Jul 28 17:16:55 CEST 2011
Author: nerville
Date: 2011-07-28 17:16:55 +0200 (Thu, 28 Jul 2011)
New Revision: 13989
Added:
trunk/src/www/themes/funky/images/docman/directory-with-documents.png
trunk/src/www/themes/gforge/images/docman/directory-with-documents.png
Removed:
trunk/src/www/jscook/
Modified:
trunk/src/common/docman/DocumentGroup.class.php
trunk/src/common/docman/DocumentManager.class.php
trunk/src/common/docman/actions/addsubdocgroup.php
trunk/src/common/docman/actions/editdocgroup.php
trunk/src/common/docman/views/editdocgroup.php
trunk/src/common/docman/views/listfile.php
trunk/src/common/docman/views/tree.php
trunk/src/www/docman/index.php
trunk/src/www/themes/funky/css/theme-pages.css
Log:
* first landing of projects_hierarchy in docman
* jscook dies today. fusionforge is using jquery only
Modified: trunk/src/common/docman/DocumentGroup.class.php
===================================================================
--- trunk/src/common/docman/DocumentGroup.class.php 2011-07-28 13:41:20 UTC (rev 13988)
+++ trunk/src/common/docman/DocumentGroup.class.php 2011-07-28 15:16:55 UTC (rev 13989)
@@ -50,7 +50,7 @@
*
* @param object Group object.
* @param array (all fields from doc_groups) OR doc_group id from database.
- * @return boolean success.
+ * @return boolean True on success.
* @access public
*/
function DocumentGroup(&$Group, $data = false) {
@@ -71,9 +71,11 @@
if ($data) {
if (is_array($data)) {
$this->data_array =& $data;
-//
-// should verify group_id
-//
+ if ($this->data_array['group_id'] != $this->Group->getID()) {
+ $this->setError('DocumentGroup:: '. _('Group_id in db result does not match Group Object'));
+ $this->data_array = null;
+ return false;
+ }
return true;
} else {
if (!$this->fetchData($data)) {
@@ -237,8 +239,8 @@
* @access public
*/
function fetchData($id) {
- $res = db_query_params('SELECT * FROM doc_groups WHERE doc_group = $1',
- array($id));
+ $res = db_query_params('SELECT * FROM doc_groups WHERE doc_group = $1 and group_id = $2',
+ array($id, $this->Group->getID()));
if (!$res || db_numrows($res) < 1) {
$this->setError(_('Invalid Document Folder ID'));
return false;
Modified: trunk/src/common/docman/DocumentManager.class.php
===================================================================
--- trunk/src/common/docman/DocumentManager.class.php 2011-07-28 13:41:20 UTC (rev 13988)
+++ trunk/src/common/docman/DocumentManager.class.php 2011-07-28 15:16:55 UTC (rev 13989)
@@ -126,10 +126,12 @@
/**
* getTree - display recursively the content of the doc_group. Only doc_groups within doc_groups.
*
+ * @param integer the selected directory
* @param string the type of link in the menu
- * @param int the doc_group to start: default 0
+ * @param integer the doc_group to start: default 0
*/
- function getTree($linkmenu, $docGroupId = 0) {
+ function getTree($selecteddir, $linkmenu, $docGroupId = 0) {
+ global $g; // the master group of all the groups .... anyway.
$dg = new DocumentGroup($this->Group);
switch ($linkmenu) {
case "listtrashfile": {
@@ -142,67 +144,23 @@
}
}
$subGroupIdArr = $dg->getSubgroup($docGroupId, $stateId);
- echo '<ul>';
- foreach ($subGroupIdArr as $subGroupIdValue) {
- $localDg = new DocumentGroup($this->Group, $subGroupIdValue);
- echo '<li><a href="?group_id='.$this->Group->getID().'&view='.$linkmenu.'&dirid='.$localDg->getID().'">'.$localDg->getName().'</a></il>';
- $this->getTree($linkmenu, $subGroupIdValue);
- }
- echo '</ul>';
- }
-
- function getJSTree($linkmenu, $displayProjectName) {
- global $idExposeTreeIndex;
- $label = '/';
- if ($displayProjectName)
- $label = $this->Group->getPublicName()
- ?>
- <script language="JavaScript" type="text/javascript">/* <![CDATA[ */
- var myThemeXPBase = "<?php echo util_make_uri('/jscook/ThemeXP/'); ?>";
- /* ]]> */</script>
- <script type="text/javascript" src="<?php echo util_make_uri('/jscook/JSCookTree.js'); ?>"></script>
- <script src="<?php echo util_make_uri('/jscook/ThemeXP/theme.js'); ?>" type="text/javascript"></script>
-
- <div id="menu<?php echo $this->Group->getID() ?>" style="overflow:auto;"></div>
-
- <script language="JavaScript" type="text/javascript">/* <![CDATA[ */
- var myMenu =
- [
- ['<span class="JSCookTreeFolderClosed"><i><img alt="" src="' + myThemeXPBase + 'folder1.gif" /></i></span><span id="<?php echo $this->Group->getID().'ctItemID0' ?>" class="JSCookTreeFolderOpen"><i><img alt="" src="' + myThemeXPBase + 'folderopen1.gif" /></i></span>', '<?php echo $label ?>', '<?php echo '?group_id='.$this->Group->getID().'&view='.$linkmenu ?>', '', '', <?php $this->getJSTreeEntry(0, $linkmenu); ?>
- ]
- ];
-
- var treeIndex = ctDraw('<?php echo 'menu'.$this->Group->getID() ?>', myMenu, ctThemeXP1, 'ThemeXP', 0, 1);
- ctExposeTreeIndex(treeIndex, <?php echo $idExposeTreeIndex ?>);
- var openItem = ctGetSelectedItem(treeIndex);
- ctOpenFolder(openItem);
- /* ]]> */</script>
- <?php
- }
-
- /**
- * getJSTreeEntry - Recursive function to show the documents inside the groups tree : javascript enabled function
- *
- * @param int doc_group_id
- * @param string the type of link in the menu
- */
- function getJSTreeEntry($docgroup, $linkmenu) {
- global $nested_groups;
- global $idExposeTreeIndex, $dirid, $idhtml;
-
- if (is_array(@$nested_groups[$docgroup])) {
- foreach ($nested_groups[$docgroup] as $dg) {
- $idhtml++;
-
- if ($dirid == $dg->getID())
- $idExposeTreeIndex = $idhtml;
-
- echo "
- ['".'<span class="JSCookTreeFolderClosed"><i><img alt="" src="\' + ctThemeXPBase + \'folder1.gif" /></i></span><span class="JSCookTreeFolderOpen"><i><img alt="" src="\' + ctThemeXPBase + \'folderopen1.gif" /></i></span>'."', '".addslashes($dg->getName())."', '?group_id=".$this->Group->getID()."&view=".$linkmenu."&dirid=".$dg->getID()."', '', '',";
- $this->getJSTreeEntry($dg->getID(), $linkmenu);
- echo ",
- ],";
+ if (sizeof($subGroupIdArr)) {
+ echo '<ul>';
+ foreach ($subGroupIdArr as $subGroupIdValue) {
+ $localDg = new DocumentGroup($this->Group, $subGroupIdValue);
+ $liclass = 'docman_li_treecontent';
+ if ($selecteddir == $localDg->getID()) {
+ $liclass = 'docman_li_treecontent_selected';
+ }
+ if ($this->Group->getID() != $g->getID()) {
+ $link = '/docman/?group_id='.$g->getID().'&view='.$linkmenu.'&dirid='.$localDg->getID().'&childgroup_id='.$this->Group->getID();
+ } else {
+ $link = '/docman/?group_id='.$this->Group->getID().'&view='.$linkmenu.'&dirid='.$localDg->getID();
+ }
+ echo '<li class="'.$liclass.'">'.util_make_link($link, $localDg->getName()).'</li>';
+ $this->getTree($selecteddir, $linkmenu, $subGroupIdValue);
}
+ echo '</ul>';
}
}
}
Modified: trunk/src/common/docman/actions/addsubdocgroup.php
===================================================================
--- trunk/src/common/docman/actions/addsubdocgroup.php 2011-07-28 13:41:20 UTC (rev 13988)
+++ trunk/src/common/docman/actions/addsubdocgroup.php 2011-07-28 15:16:55 UTC (rev 13989)
@@ -31,6 +31,13 @@
global $dirid; // id of doc_group
global $group_id; // id of group
+$childgroup_id = getIntFromRequest('childgroup_id');
+if ($childgroup_id) {
+ $origin_group_id = $group_id;
+ $group_id = $childgroup_id;
+ $g = group_get_object($group_id);
+}
+
if (!forge_check_perm('docman', $group_id, 'approve')) {
$return_msg = _('Document Manager Action Denied.');
if ($dirid) {
Modified: trunk/src/common/docman/actions/editdocgroup.php
===================================================================
--- trunk/src/common/docman/actions/editdocgroup.php 2011-07-28 13:41:20 UTC (rev 13988)
+++ trunk/src/common/docman/actions/editdocgroup.php 2011-07-28 15:16:55 UTC (rev 13989)
@@ -28,20 +28,30 @@
global $g; //group object
global $dirid; //id of doc_group
global $group_id; // id of group
+global $childgroup_id; // plugin projects hierarchy handler
+
if (!forge_check_perm('docman', $group_id, 'approve')) {
$return_msg = _('Document Manager Action Denied.');
session_redirect('/docman/?group_id='.$group_id.'&view=listfile&dirid='.$dirid.'&warning_msg='.urlencode($return_msg));
}
+$urlredirect = '/docman/?group_id='.$group_id.'&view=listfile&dirid='.$dirid;
+
+// plugin projects_hierarchy handler
+if ($childgroup_id) {
+ $g = group_get_object($childgroup_id);
+ $urlredirect = '/docman/?group_id='.$group_id.'&view=listfile&dirid='.$dirid.'&childgroup_id='.$childgroup_id;
+}
+
$groupname = getStringFromRequest('groupname');
$parent_dirid = getIntFromRequest('parent_dirid');
$dg = new DocumentGroup($g, $dirid);
if ($dg->isError())
- session_redirect('/docman/?group_id='.$group_id.'&view=listfile&dirid='.$dirid.'&error_msg='.urlencode($dg->getErrorMessage()));
+ session_redirect($urlredirect.'&error_msg='.urlencode($dg->getErrorMessage()));
if (!$dg->update($groupname, $parent_dirid))
- session_redirect('/docman/?group_id='.$group_id.'&view=listfile&dirid='.$dirid.'&error_msg='.urlencode($dg->getErrorMessage()));
+ session_redirect($urlredirect.'&error_msg='.urlencode($dg->getErrorMessage()));
if ($dg->getState() == 2) {
/**
@@ -72,8 +82,11 @@
}
if (!$dg->setStateID('1'))
- session_redirect('/docman/?group_id='.$group_id.'&view=listfile&dirid='.$dirid.'&error_msg='.urlencode($dg->getErrorMessage()));
+ session_redirect($urlredirect.'&error_msg='.urlencode($dg->getErrorMessage()));
-$return_msg = sprintf(_('Documents folder %s updated successfully.', $dg->getName()));
-session_redirect('/docman/?group_id='.$group_id.'&view=listfile&dirid='.$dirid.'&feedback='.urlencode($return_msg));
+$return_msg = sprintf(_('Documents folder %s updated successfully'), $dg->getName());
+if ($childgroup_id)
+ $return_msg .= ' '.sprintf(_('on project %s'), $g->getPublicName());
+
+session_redirect($urlredirect.'&feedback='.urlencode($return_msg));
?>
Modified: trunk/src/common/docman/views/editdocgroup.php
===================================================================
--- trunk/src/common/docman/views/editdocgroup.php 2011-07-28 13:41:20 UTC (rev 13988)
+++ trunk/src/common/docman/views/editdocgroup.php 2011-07-28 15:16:55 UTC (rev 13989)
@@ -38,13 +38,20 @@
session_redirect('/docman/?group_id='.$group_id.'&warning_msg='.urlencode($return_msg));
}
+// plugin projects_hierarchy
+$actionurl = '?group_id='.$group_id.'&action=editdocgroup';
+if ($childgroup_id) {
+ $g = group_get_object($childgroup_id);
+ $actionurl = '?group_id='.$group_id.'&action=editdocgroup&childgroup_id='.$childgroup_id;
+}
+
$dg = new DocumentGroup($g, $dirid);
if ($dg->isError())
session_redirect('/docman/?group_id='.$group_id.'&error_msg='.urlencode($dg->getErrorMessage()));
?>
<div class="docmanDivIncluded">
- <form name="editgroup" action="?group_id=<?php echo $group_id; ?>&action=editdocgroup" method="post">
+ <form name="editgroup" action="<?php echo $actionurl; ?>" method="post">
<input type="hidden" name="dirid" value="<?php echo $dirid; ?>" />
<table>
<tr>
Modified: trunk/src/common/docman/views/listfile.php
===================================================================
--- trunk/src/common/docman/views/listfile.php 2011-07-28 13:41:20 UTC (rev 13988)
+++ trunk/src/common/docman/views/listfile.php 2011-07-28 15:16:55 UTC (rev 13989)
@@ -36,11 +36,30 @@
global $g; // the Group object
global $df;
+$childgroup_id = getIntFromRequest('childgroup_id');
+
if (!forge_check_perm('docman', $group_id, 'read')) {
$return_msg= _('Document Manager Access Denied');
session_redirect('/docman/?group_id='.$group_id.'&warning_msg='.urlencode($return_msg));
}
+// plugin projects_hierarchy
+if ($childgroup_id) {
+ $g = group_get_object($childgroup_id);
+}
+
+$df = new DocumentFactory($g);
+if ($df->isError())
+ exit_error($df->getErrorMessage(), 'docman');
+
+$dgf = new DocumentGroupFactory($g);
+if ($dgf->isError())
+ exit_error($dgf->getErrorMessage(), 'docman');
+
+$dgh = new DocumentGroupHTML($g);
+if ($dgh->isError())
+ exit_error($dgh->getErrorMessage(), 'docman');
+
$df->setDocGroupID($dirid);
/**
@@ -115,7 +134,7 @@
/* ]]> */</script>
<?php
-echo '<div id="left" style="float:left; width:17%; min-width: 50px;">';
+echo '<div id="left" style="float:left; width:17%; min-width: 50px; overflow: auto;">';
include ($gfcommon.'docman/views/tree.php');
echo '</div>';
echo '<div id="handle" style="float:left; height:100px; margin:3px; width:3px; background: #000; cursor:e-resize;"></div>';
Modified: trunk/src/common/docman/views/tree.php
===================================================================
--- trunk/src/common/docman/views/tree.php 2011-07-28 13:41:20 UTC (rev 13988)
+++ trunk/src/common/docman/views/tree.php 2011-07-28 15:16:55 UTC (rev 13989)
@@ -27,62 +27,36 @@
/* please do not add require here : use www/docman/index.php to add require */
/* global variables used */
global $group_id; // id of the group
-global $nested_docs;
global $linkmenu;
global $g; // the group object
+global $dirid; // the selected directory
if (!forge_check_perm('docman', $group_id, 'read')) {
$return_msg= _('Document Manager Access Denied');
session_redirect('/docman/?group_id='.$group_id.'&warning_msg='.urlencode($return_msg));
}
-/**
- * needed for docman_recursive_display function call
- * see utils.php for more information
- */
-$idExposeTreeIndex = 0;
-$idhtml = 0;
-$displayProjectName = 0;
+// plugin hierarchy : since tree is loaded from listfile.php, you need to be sure that
+if ($childgroup_id) {
+ $g = group_get_object($group_id);
+}
echo '<div id="documenttree" style="height:100%">';
$dm = new DocumentManager($g);
-$dm->getJSTree($linkmenu, $displayProjectName);
-echo '<noscript>';
-echo '<ul>';
-echo '<li><a href="?group_id='.$g->getID().'&view='.$linkmenu.'">/</a></il>';
-$dm->getTree($linkmenu);
-echo '</ul>';
-echo '</noscript>';
-
+$dm->getTree($dirid, $linkmenu);
if ($g->usesPlugin('projects_hierarchy')) {
$projectsHierarchy = plugin_get_object('projects_hierarchy');
$projectIDsArray = $projectsHierarchy->getFamilyID($group_id, 'child', false, 'validated');
- if (sizeof($projectIDsArray))
- $displayProjectName = 1;
}
if (isset($projectIDsArray) && is_array($projectIDsArray)) {
- if (sizeof($projectIDsArray))
- echo '<h5>'._('Child projects').'</h5>';
foreach ($projectIDsArray as $key=>$projectID) {
$groupObject = group_get_object($projectID);
if ($groupObject->usesDocman() && $projectsHierarchy->getDocmanStatus($groupObject->getID())
&& forge_check_perm('docman', $groupObject->getID(), 'read')) {
-
echo '<hr>';
- if ($displayProjectName)
- $label = $g->getPublicName();
+ echo '<h5>'._('Child project:').$groupObject->getPublicName().'</h5>';
$dm = new DocumentManager($groupObject);
- $dm->getJSTree($linkmenu, $displayProjectName);
- echo '<noscript>';
- echo '<ul>';
- $label = '/';
- if ($displayProjectName)
- $label = $groupObject->getPublicName();
-
- echo '<li><a href="?group_id='.$groupObject->getID().'&view='.$linkmenu.'">'.$label.'</a></il>';
- $dm->getTree($linkmenu);
- echo '</ul>';
- echo '</noscript>';
+ $dm->getTree($dirid, $linkmenu);
}
}
}
Modified: trunk/src/www/docman/index.php
===================================================================
--- trunk/src/www/docman/index.php 2011-07-28 13:41:20 UTC (rev 13988)
+++ trunk/src/www/docman/index.php 2011-07-28 15:16:55 UTC (rev 13989)
@@ -63,6 +63,8 @@
if (empty($dirid))
$dirid = 0;
+$childgroup_id = getIntFromRequest('childgroup_id');
+
/* everything sounds ok, now let do the job */
$action = getStringFromRequest('action');
switch ($action) {
@@ -100,22 +102,9 @@
}
}
-$df = new DocumentFactory($g);
-if ($df->isError())
- exit_error($df->getErrorMessage(), 'docman');
-
-$dgf = new DocumentGroupFactory($g);
-if ($dgf->isError())
- exit_error($dgf->getErrorMessage(), 'docman');
-
-$dgh = new DocumentGroupHTML($g);
-if ($dgh->isError())
- exit_error($dgh->getErrorMessage(), 'docman');
-
html_use_storage();
use_javascript('scripts/DocManController.js');
use_javascript('/js/sortable.js');
-use_stylesheet('/jscook/ThemeXP/theme.css');
$title = _('Documents for ').$g->getPublicName();
Modified: trunk/src/www/themes/funky/css/theme-pages.css
===================================================================
--- trunk/src/www/themes/funky/css/theme-pages.css 2011-07-28 13:41:20 UTC (rev 13988)
+++ trunk/src/www/themes/funky/css/theme-pages.css 2011-07-28 15:16:55 UTC (rev 13989)
@@ -227,6 +227,16 @@
padding: 3px;
}
+.docman_li_treecontent {
+ list-style-image: url('/themes/funky/images/docman/directory.png');
+ margin: 2px;
+}
+
+.docman_li_treecontent_selected {
+ list-style-image: url('/themes/funky/images/docman/directory-with-documents.png');
+ margin: 2px;
+}
+
/*
tracker
*/
Added: trunk/src/www/themes/funky/images/docman/directory-with-documents.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/www/themes/funky/images/docman/directory-with-documents.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: trunk/src/www/themes/gforge/images/docman/directory-with-documents.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/www/themes/gforge/images/docman/directory-with-documents.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
More information about the Fusionforge-commits
mailing list