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, 6.1 has been updated
       via  45083485a0a78fa6e2544c08a03edfdcaafa7184 (commit)
      from  bcf5bb49d98d0a017295ad9f7ca2aa2d653dbbb4 (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=45083485a0a78fa6e2544c08a03edfdcaafa7184

commit 45083485a0a78fa6e2544c08a03edfdcaafa7184
Author: Franck Villaume <franck.villa...@trivialdev.com>
Date:   Thu Feb 15 17:17:20 2018 +0000

    scmhook: start implement support multirepo

diff --git a/src/plugins/scmhook/common/scmhookPlugin.class.php 
b/src/plugins/scmhook/common/scmhookPlugin.class.php
index b584de4..bf63023 100644
--- a/src/plugins/scmhook/common/scmhookPlugin.class.php
+++ b/src/plugins/scmhook/common/scmhookPlugin.class.php
@@ -188,6 +188,7 @@ project independently.");
                $hooksAvailable = $this->getAvailableHooks($group_id);
                $hooksEnabled = $this->getEnabledHooks($group_id);
                if (count($hooksAvailable)) {
+                       echo $HTML->openForm(array('id' => 'scmhook_form', 
'action' => '/scm/admin/?group_id='.$group_id, 'method' => 'post'));
                        echo '<div id="scmhook">';
                        echo html_e('h2', array(), _('Enable Repository 
Hooks'));
                        switch ($scm) {
@@ -196,15 +197,15 @@ project independently.");
                                        break;
                                }
                                case "scmhg": {
-                                       
$this->displayScmHgHook($hooksAvailable, $hooksEnabled);
+                                       
$this->displayScmHgHook($hooksAvailable, $hooksEnabled, $group_id);
                                        break;
                                }
                                case "scmgit": {
-                                       
$this->displayScmGitHook($hooksAvailable, $hooksEnabled);
+                                       
$this->displayScmGitHook($hooksAvailable, $hooksEnabled, $group_id);
                                        break;
                                }
                                case "scmcvs": {
-                                       
$this->displayScmCVSHook($hooksAvailable, $hooksEnabled);
+                                       
$this->displayScmCVSHook($hooksAvailable, $hooksEnabled, $group_id);
                                        break;
                                }
                                default: {
@@ -213,6 +214,8 @@ project independently.");
                                }
                        }
                        echo '</div>'."\n";
+                       echo $HTML->html_input('scmhook_submit', '', '', 
'submit', _('Submit'));
+                       echo $HTML->closeForm();
                } else {
                        echo $HTML->information(_('No hooks available'));
                }
@@ -239,15 +242,15 @@ project independently.");
        }
 
        function getEnabledHooks($group_id) {
-               $res = db_query_params('SELECT hooks FROM plugin_scmhook WHERE 
id_group = $1', array($group_id));
+               $enabledHooks = array();
+               $res = db_query_params('SELECT hooks, repository_name FROM 
plugin_scmhook WHERE id_group = $1', array($group_id));
                if (!$res)
-                       return false;
+                       return $enabledHooks;
 
-               $row = db_fetch_array($res);
-               if (count($row)) {
-                       return explode('|', $row['hooks']);
+               while ($arr = db_fetch_array($res)) {
+                       $enabledHooks[$row['repository_name']] = explode('|', 
$row['hooks']);
                }
-               return array();
+               return $enabledHooks;
        }
 
        function getListLibraryScm() {
@@ -371,7 +374,7 @@ project independently.");
                }
        }
 
-       function displayScmHgHook($hooksAvailable, $hooksEnabled) {
+       function displayScmHgHook($hooksAvailable, $hooksEnabled, $group_id) {
                global $HTML;
                $hooksServePushPullBundle = array();
                foreach ($hooksAvailable as $hook) {
@@ -423,13 +426,16 @@ project independently.");
                }
        }
 
-       function displayScmGitHook($hooksAvailable, $hooksEnabled) {
+       function displayScmGitHook($hooksAvailable, $hooksEnabled, $group_id) {
                global $HTML;
+               $scm_plugin = plugin_get_object('scmgit');
+               $groupObject = group_get_object($group_id);
+               $repositories = $scm_plugin->getRepositories($groupObject);
                $hooksPostReceive = array();
                foreach ($hooksAvailable as $hook) {
                        if ($hook->label == 'scmgit') {
                                switch ($hook->getHookType()) {
-                                       case "post-receive": {
+                                       case 'post-receive': {
                                                $hooksPostReceive[] = $hook;
                                                break;
                                        }
@@ -441,41 +447,39 @@ project independently.");
                        }
                }
                if (count($hooksPostReceive)) {
-                       echo html_e('h3', array(), _('post-receive Hooks'), 
false);
-                       $tabletop = array('', _('Hook Name'), _('Description'));
-                       $classth = array('unsortable', '', '');
-                       echo $HTML->listTableTop($tabletop, array(), 
'sortable_scmhook_post-receive', 'sortable', $classth);
+                       $tabletop = array(_('Repository'));
+                       $classth = array('');
+                       $titleArr = array('');
                        foreach ($hooksPostReceive as $hookPostReceive) {
-                               if (! empty($hookPostReceive->onlyGlobalAdmin) 
&& ! Permission::isGlobalAdmin()) {
-                                       echo '<tr class="hide" ><td>';
-                               }
-                               else {
-                                       echo '<tr><td>';
+                               $tabletop[] = $hookPostReceive->getName();
+                               $classth[] = 'unsortable';
+                               $titleArr[] = 
$hookPostReceive->getDescription();
+                       }
+                       
+                       echo $HTML->listTableTop($tabletop, '', 
'sortable_scmhook_scmgit', 'sortable', $classth, $titleArr);
+                       foreach($repositories as $repository) {
+                               $cells = array();
+                               $cells[][] = $repository;
+                               foreach ($hooksPostReceive as $hookPostReceive) 
{
+                                       $attr = array('type' => 'checkbox');
+                                       if 
((!empty($hookPostReceive->onlyGlobalAdmin) && !Permission::isGlobalAdmin()) || 
!$hookPostReceive->isAvailable()) {
+                                               $attr = array_merge($attr, 
array('disabled' => 'disabled'));
+                                               if 
(!$hookPostReceive->isAvailable()) {
+                                                       $attr = 
array_merge($attr, array('title' => $hookPostReceive->getDisabledMessage()));
+                                               }
+                                       }
+                                       if 
(in_array($hookPostReceive->getName(), $hooksEnabled[$repository])) {
+                                               $attr = array_merge($attr, 
array('checked' => 'checked'));
+                                       }
+                                       $cells[][] = html_e('input', 
array('type' => 'checkbox', 'name' => 
$hookPostReceive->getLabel().'_'.$hookPostReceive->getClassname(), 'value' => 
$repository));
                                }
-                               echo '<input type="checkbox" ';
-                               echo 
'name="'.$hookPostReceive->getLabel().'_'.$hookPostReceive->getClassname().'" ';
-                               if (in_array($hookPostReceive->getClassname(), 
$hooksEnabled))
-                                       echo ' checked="checked"';
-
-                               if (!$hookPostReceive->isAvailable())
-                                       echo ' disabled="disabled"';
-
-                               echo ' />';
-                               echo '</td><td';
-                               if (!$hookPostReceive->isAvailable())
-                                       echo ' 
title="'.$hookPostReceive->getDisabledMessage().'"';
-
-                               echo ' >';
-                               echo $hookPostReceive->getName();
-                               echo '</td><td>';
-                               echo $hookPostReceive->getDescription();
-                               echo '</td></tr>';
+                               echo $HTML->multiTableRow(array(), $cells);
                        }
                        echo $HTML->listTableBottom();
                }
        }
 
-       function displayScmCVSHook($hooksAvailable, $hooksEnabled) {
+       function displayScmCVSHook($hooksAvailable, $hooksEnabled, $group_id) {
                global $HTML;
                $hooksPostCommit = array();
                foreach ($hooksAvailable as $hook) {

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

Summary of changes:
 src/plugins/scmhook/common/scmhookPlugin.class.php | 84 +++++++++++-----------
 1 file changed, 44 insertions(+), 40 deletions(-)


hooks/post-receive
-- 
FusionForge

_______________________________________________
Fusionforge-commits mailing list
Fusionforge-commits@lists.fusionforge.org
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits

Reply via email to