[Fusionforge-commits] r8457 - in trunk/gforge: common/docman www/docman/admin www/docman/include
Franck VILLAUME
nerville at libremir.placard.fr.eu.org
Wed Dec 2 14:05:16 CET 2009
Author: nerville
Date: 2009-12-02 14:05:16 +0100 (Wed, 02 Dec 2009)
New Revision: 8457
Modified:
trunk/gforge/common/docman/DocumentGroup.class.php
trunk/gforge/www/docman/admin/index.php
trunk/gforge/www/docman/include/DocumentGroupHTML.class.php
Log:
new feature : delete document group
warning: delete a document group is permanent and recurcive.
It also delete documents inside the document group and it is recurcive too
Modified: trunk/gforge/common/docman/DocumentGroup.class.php
===================================================================
--- trunk/gforge/common/docman/DocumentGroup.class.php 2009-12-01 22:07:06 UTC (rev 8456)
+++ trunk/gforge/common/docman/DocumentGroup.class.php 2009-12-02 13:05:16 UTC (rev 8457)
@@ -237,6 +237,46 @@
}
/**
+ * delete - delete a DocumentGroup.
+ * delete is recursive and permanent
+ * TODO : use the delete status as document ?
+ * @param integer Document Group Id, integer Project Group Id
+ * @return boolean
+ */
+ function delete($doc_groupid,$project_group_id) {
+ $perm =& $this->Group->getPermission (session_get_user());
+ if (!$perm || !$perm->isDocEditor()) {
+ $this->setPermissionDeniedError();
+ return false;
+ }
+ db_begin();
+ /* delete documents in directory */
+ $result = db_query_params ('DELETE FROM doc_data where doc_group = $1 and group_id = $2',
+ array($doc_groupid,
+ $project_group_id));
+
+ /* delete directory */
+ $result = db_query_params ('DELETE FROM doc_groups where doc_group = $1 and group_id = $2',
+ array($doc_groupid,
+ $project_group_id));
+
+ db_commit();
+ /* is there any subdir ? */
+ $result = db_query_params ('select doc_group from doc_groups where parent_doc_group = $1 and group_id = $2',
+ array($doc_groupid,
+ $project_group_id));
+ /* make a recursive call */
+ while ($arr = db_fetch_array($result)) {
+ $this->delete($arr,$project_group_id);
+ }
+
+ if (!$result) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
* hasDocuments - Recursive function that checks if this group or any of it childs has documents associated to it
*
* A group has associated documents if and only if there are documents associated to this
Modified: trunk/gforge/www/docman/admin/index.php
===================================================================
--- trunk/gforge/www/docman/admin/index.php 2009-12-01 22:07:06 UTC (rev 8456)
+++ trunk/gforge/www/docman/admin/index.php 2009-12-02 13:05:16 UTC (rev 8457)
@@ -122,6 +122,19 @@
}
$feedback = _('Updated successfully');
+ } elseif (getStringFromRequest('deletegroup')) {
+ $doc_group = getIntFromRequest('doc_group');
+
+ $dg = new DocumentGroup($g,$doc_group);
+ if ($dg->isError()) {
+ exit_error('Error',$dg->getErrorMessage());
+ }
+ if (!$dg->delete($doc_group,$group_id)) {
+ exit_error('Error',$dg->getErrorMessage());
+ }
+ $feedback = _('Deleted successfully');
+ header('Location: index.php?group_id='.$group_id.'&feedback='.urlencode($feedback));
+ die(); // End parsing file and redirect
} elseif (getStringFromRequest('addgroup')) {
$groupname = getStringFromRequest('groupname');
@@ -329,11 +342,11 @@
// Add a document group / view existing groups list
//
//
-} elseif (getStringFromRequest('addgroup')) {
+} elseif (getStringFromRequest('admingroup')) {
- docman_header(_('Document Manager Administration'),_('Add Document Groups'),'');
+ docman_header(_('Document Manager Administration'),_('Admin Document Groups'),'');
- echo "<h1>"._('Add Document Groups')."</h1>";
+ echo "<h1>"._('Admin Document Groups')."</h1>";
$dgf = new DocumentGroupFactory($g);
if ($dgf->isError()) {
@@ -351,6 +364,7 @@
$title_arr=array();
$title_arr[]=_('ID');
$title_arr[]=_('Group Name');
+ $title_arr[]=_('Delete Group');
echo $GLOBALS['HTML']->listTableTop ($title_arr);
@@ -364,7 +378,7 @@
}
?>
<p><strong><?php echo _('Add a group') ?>:</strong></p>
- <form name="addgroup" action="index.php?addgroup=1&group_id=<?php echo $group_id; ?>" method="post">
+ <form name="admingroup" action="index.php?addgroup=1&group_id=<?php echo $group_id; ?>" method="post">
<table>
<tr>
<th><?php echo _('New Group Name') ?>:</th>
@@ -439,6 +453,26 @@
</form>
<?php
docman_footer(array());
+} else if (getStringFromRequest('deletegroup') && getIntFromRequest('doc_group')) {
+ $doc_group = getIntFromRequest('doc_group');
+
+ $dg = new DocumentGroup($g,$doc_group);
+ if ($dg->isError()) {
+ exit_error('Error',$dg->getErrorMessage());
+ }
+
+ docman_header(_('Document Manager Administration'),_('Delete Groups'),'');
+?>
+ <p>
+ <form action="<?php echo util_make_url('/docman/admin/index.php').'?deletegroup=1&doc_group='.$dg->getID().'&group_id='.$dg->Group->getID() ?>" method="post">
+ <input type="hidden" name="submit" value="1" /><br />
+ <img src="/images/ic/cfolder15.png" /><?php echo $dg->getName(); ?><br />
+ <?php echo _('You are about to permanently delete this document group and his content (documents and subgroups).'); ?>
+ <p><input type="submit" name="post_changes" value="<?php echo _('Delete') ?>" /></p>
+ </form></p>
+<?php
+ docman_footer(array());
+
} else if (getStringFromRequest('deletedoc') && $docid) {
$d= new Document($g,$docid);
if ($d->isError()) {
@@ -487,7 +521,7 @@
?>
<h3><?php echo _('Document Manager: Administration') ?></h3>
<p>
- <a href="index.php?group_id=<?php echo $group_id; ?>&addgroup=1"><?php echo _('Add/Edit Document Groups') ?></a>
+ <a href="index.php?group_id=<?php echo $group_id; ?>&admingroup=1"><?php echo _('Add/Edit/Delete Document Groups') ?></a>
</p>
<?php
Modified: trunk/gforge/www/docman/include/DocumentGroupHTML.class.php
===================================================================
--- trunk/gforge/www/docman/include/DocumentGroupHTML.class.php 2009-12-01 22:07:06 UTC (rev 8456)
+++ trunk/gforge/www/docman/include/DocumentGroupHTML.class.php 2009-12-02 13:05:16 UTC (rev 8457)
@@ -67,7 +67,9 @@
'<td>'.$margin.html_image('ic/'.$img,"15","13",array("border"=>"0")).' '.
'<a href="index.php?editgroup=1&doc_group='.
$doc_group->getID().'&group_id='.$doc_group->Group->getID().'">'.
- $doc_group->getName().'</a></td></tr>';
+ $doc_group->getName().'</a></td>'.
+ '<td><a href="index.php?deletegroup=1&doc_group='.$doc_group->getID().'&group_id='.$doc_group->Group->getID().'">'.
+ '<img src="/images/ic/trash.png"/></a></td></tr>';
// Show childs (if any)
$this->showTableNestedGroups($group_arr, $rowno, $doc_group->getID(), $level+1);
}
More information about the Fusionforge-commits
mailing list