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  d610efb13e3be0b9de2a25b8e8adad3db9abc0a6 (commit)
      from  37d609d0ecd3594241562d36da6040c2d0669de5 (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=d610efb13e3be0b9de2a25b8e8adad3db9abc0a6

commit d610efb13e3be0b9de2a25b8e8adad3db9abc0a6
Author: Franck Villaume <[email protected]>
Date:   Sun Apr 2 14:02:56 2017 +0200

    forge cli: implement docgroupDump & add missing help messages

diff --git a/src/bin/forge b/src/bin/forge
index 063825d..c56fe46 100755
--- a/src/bin/forge
+++ b/src/bin/forge
@@ -65,11 +65,21 @@ class CliActions {
                                echo "to dump a document from a specific 
project.\n";
                                echo $dumpFormatInfo;
                                break;
+                       case 'docgroupDump':
+                               echo "Use: .../forge docgroupDump <docgroupid> 
[json|raw]\n";
+                               echo "to dump a document group (folder) from a 
specific project.\n";
+                               echo $dumpFormatInfo;
+                               break;
                        case 'docmanDump':
                                echo "Use: .../forge docmanDump <groupid> 
[json|raw]\n";
                                echo "to dump docman from a specific 
project.\n";
                                echo $dumpFormatInfo;
                                break;
+                       case 'releaseDump':
+                               echo "Use: .../forge releaseDump <releaseid> 
[json|raw]\n";
+                               echo "to dump a spectific FRS release from a 
specific project.\n";
+                               echo $dumpFormatInfo;
+                               break;
                        case 'packageDump':
                                echo "Use: .../forge packageDump <packageid> 
[json|raw]\n";
                                echo "to dump a spectific FRS package from a 
specific project.\n";
@@ -80,6 +90,11 @@ class CliActions {
                                echo "to dump FRS from a specific project.\n";
                                echo $dumpFormatInfo;
                                break;
+                       case 'surveyDump':
+                               echo "Use: .../forge surveyDump <surveyid> 
[json|raw]\n";
+                               echo "to dump a specific survey from a specific 
project.\n";
+                               echo $dumpFormatInfo;
+                               break;
                        case 'groupDump':
                                echo "Use: .../forge groupDump <groupid> 
[json|raw]\n";
                                echo "to dump a group.\n";
@@ -328,6 +343,29 @@ class CliActions {
                return $documentDump;
        }
 
+       function docgroupDump($docgroup_id, $format = 'json') {
+               $docgroupDump['id'] = $docgroup_id;
+               $docgroup = documentgroup_get_object_byid($docgroup_id);
+               if ($docgroup && is_object($docgroup) && !$docgroup->isError()) 
{
+                       $dm = new DocumentManager($docgroup->getGroup());
+                       if ($dm && is_object($dm) && !$dm->isError()) {
+                               $docgroupDump['subdocgroups'] = 
$dm->getTree($docgroup_id);
+                               $df = new 
DocumentFactory($docgroup->getGroup());
+                               $df->setDocGroupID($docgroup_id);
+                               $df->setStateID(array(1, 2, 3, 4, 5));
+                               $df->setOrder(array('docid'));
+                               $docgroupDump['files'] = 
(array)$df->getDocumentsWithVersions();
+                       } else {
+                               $docgroupDump['error'][] = _('Unable to get 
document manager for docgroup id')._(': ').$docgroup_id;
+                       }
+               } else {
+                       $docgroupDump['error'][] = _('Unable to get docgroup 
id')._(': ').$docgroup_id;
+               }
+               ksort($docgroupDump);
+               $this->print_result($docgroupDump, $format);
+               return $docgroupDump;
+       }
+
        function docmanDump($group_id, $format = 'json') {
                $docmanDump = array();
                $group = group_get_object($group_id);
diff --git a/src/common/docman/DocumentGroup.class.php 
b/src/common/docman/DocumentGroup.class.php
index 86d2c4c..54fcd8e 100644
--- a/src/common/docman/DocumentGroup.class.php
+++ b/src/common/docman/DocumentGroup.class.php
@@ -59,6 +59,25 @@ function &documentgroup_get_object($docgroup_id, $group_id, 
$res = false) {
        return $DOCUMENTGROUP_OBJ["_".$docgroup_id."_"];
 }
 
+function &documentgroup_get_object_byid($docgroup_id, $res = false) {
+       global $DOCUMENTGROUP_OBJ;
+       if (!isset($DOCUMENTGROUP_OBJ["_".$docgroup_id."_"])) {
+               if ($res) {
+                       //the db result handle was passed in
+               } else {
+                       $res = db_query_params('SELECT * FROM doc_groups WHERE 
doc_group = $1',
+                                               array($docgroup_id));
+               }
+               if (!$res || db_numrows($res) < 1) {
+                       $DOCUMENTGROUP_OBJ["_".$docgroup_id."_"] = false;
+               } else {
+                       $arr = db_fetch_array($res);
+                       $DOCUMENTGROUP_OBJ["_".$docgroup_id."_"] = new 
DocumentGroup(group_get_object($arr['group_id']), $arr);
+               }
+       }
+       return $DOCUMENTGROUP_OBJ["_".$docgroup_id."_"];
+}
+
 class DocumentGroup extends FFError {
 
        /**

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

Summary of changes:
 src/bin/forge                             | 38 +++++++++++++++++++++++++++++++
 src/common/docman/DocumentGroup.class.php | 19 ++++++++++++++++
 2 files changed, 57 insertions(+)


hooks/post-receive
-- 
FusionForge

_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits

Reply via email to