[Fusionforge-commits] FusionForge branch master updated. 21ff1f6bb4a439911257dac746f94d764095cdd3
Franck VILLAUME
nerville at fusionforge.org
Tue Jan 15 20:10:17 CET 2013
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 21ff1f6bb4a439911257dac746f94d764095cdd3 (commit)
via 700e8885c3410d929b0174ae80309037ec10c9a8 (commit)
via 9c404318436869742830c56cdfae74f4594c3138 (commit)
via d4975824d3f65c38b3c22ccfeded2ca433529913 (commit)
via f45038b0b4d3bc943ca277b587a46a32324d6b4a (commit)
via 36d28c8de4839c160522e42e59a5f56d3d78fcac (commit)
via 78e2cbd8e6709a0aba61f26aae72705088704612 (commit)
via 660eaf89a682fbb8727165f583d5d82b99a180b2 (commit)
via eb0a6104efc8ffbd6f67f2a7a76286c7983464df (commit)
via 6a44cd505b5eb46d5ed38882703edb141454571f (commit)
via 2994be8618749e07c596e2b4da4e829aaf807db6 (commit)
via 09012df4b26cf75305c7de60deaaa3cf969c9b5b (commit)
via 4bcb05caa64ce606518aad696088d6e8caf7471c (commit)
via f4e778bf303f0aa287527a7e3f23de31d6c4943c (commit)
via b854f04d54b029ec0b0396f09c00f4bb8e5805b4 (commit)
via e0f49ffc3936fbe02bbb56690dbfed471452d51c (commit)
via 046e73e007b1c05c7d62e4ab4811b8e67965cb88 (commit)
via 9ecc5a34d1e6334e74f4a65f0cb7c2efd85d0668 (commit)
via 33373c31732e65bb72bc39af948d42c242ddcded (commit)
via a3485c5bffcc054a8ca85ba1d4cf709780a09fcc (commit)
via 161ce1192d9e64e99373f8e4cf7d5a6b78481887 (commit)
via e3ef7e0aa6ec1a92234e8c8c23ceb553cc2ff5f1 (commit)
via b14742c3b98ea23256f1c56cd481d92584291686 (commit)
via dc3f2903587ec46ec93eb097570369dfcbb91b5c (commit)
via b8a7855ee06bfb2160fe487a7c5bc565b2e78da2 (commit)
via b41cc64626e4e2fb6744e03f6bc39850b184bbed (commit)
via 13f7262281106ed01c3259f45119a2d6a17c994f (commit)
via 5b3fbc221f096665e1a3e967a4495d2a9453a320 (commit)
via 6d60197369a9b316e091a432694dcf4e7ae4a415 (commit)
via 6156169f1c31de2ffeaee1dafe85a0899b1ae6ab (commit)
via 6fc185ab350b26a08d3839a2fadabf87e04fab43 (commit)
via f80aac50f0a246ad1705b8be2456f1cb7ffc3baa (commit)
via 356fb8d91329bd65707005944cb350204a03d749 (commit)
via 4b7db1ddc9540b01c2d38d2d902f6683e8b0d02b (commit)
via 0676f91ca5a269efa210e5289bfe620c17fc78ff (commit)
via 9e0e04dff8611a9ef54cb1aebc15f5bf39bdcc27 (commit)
via 510cfd1b0071ea11194c76703f826b52931f7afc (commit)
via 95e8d0dba6024c5c516ba47e4f002e9c8b2a5fed (commit)
via bf6274fedc2bf22c8a6fb8cc2415be5ff0a813d0 (commit)
via ee21d1af607f69e77f2c286741bb8f2ed8b8dca5 (commit)
via 863f4122d1326a5a84d2d4a7b3c98d16982d3d56 (commit)
via b61dd5050669f424f12cb3460a2e4efd31cd0bf5 (commit)
via 47a023494ec03b3170323af2d7b2f26c822048ed (commit)
via d90024436d97c13abebf025805b5fdbdfa2c5369 (commit)
via 38ed5b26b6bf50ec9ab7303801e653d0931631bf (commit)
via 7fb9c047dfbb1a2955d05e5ce1e7331bb8ff8c53 (commit)
via b21914ec31b87090c11f695f6516fea78048fe0c (commit)
via 68fedbdceeefb3dd150bc17716ed42c38113a2d2 (commit)
via c7d4bb39139657319f495da779b8f7240475387b (commit)
via 5836376760c33cecab4544c81d965dab2a66fc00 (commit)
via fa0d0f67cff1d7bb584eb7856724d1d856c8d9e4 (commit)
via 86e98658a8503aaad70fa83a817551621d5cd894 (commit)
via 6d8f34ada705fdd2d80ee9c00b16e7fffc9dc1e4 (commit)
via b8095e7efe4eb9f16b2e1d0188ebd515a5b3cd14 (commit)
via 687a99794dae78f8f15f9549aba4aaf374ea5921 (commit)
via 9dfc706aae1b800bab11d0ee940e6f122d92453b (commit)
via d82bd7925756e9ccf1ef0dd11c526f873e1d48e3 (commit)
via 7269f4e7f0a482451a39f18fd5d344c7464f7f97 (commit)
via 891bbfe5190026f00fc79ebec3f55506dd7339a5 (commit)
via 224a9968b217024983e6de3a3daada4b9b53c33f (commit)
via 0c7306f17fcd2fd7ca0c17eed7581664b02e436f (commit)
via cc69f88e9f1c13853fee77a949a9a200834346e5 (commit)
via 7dcccf40805eb273d6ddb5db0409ee63590d1c5e (commit)
via f5c6dc80afa6c3c7a100af72e570b53d5c3db232 (commit)
via b41d7debabd7b193cc82ba6ec3fc2552d20d7737 (commit)
via 6adf0b8d6a4feff910a2d0a70aaa028cab476e46 (commit)
via daed2417204c4366af722e84303ac39f882cef6b (commit)
from 499bb4bd02e37e166330a3ff01674c31d733915b (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 -----------------------------------------------------------------
commit 21ff1f6bb4a439911257dac746f94d764095cdd3
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 15 20:07:59 2013 +0100
fix updateLinkValue action
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index d6333d9..67f9caf 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -32,7 +32,7 @@ $htmlcode = getStringFromRequest('htmlcode');
$type = getStringFromRequest('type');
$iframed = getIntFromRequest('iframeview');
-$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
+$redirect_url = '/plugins/'.$headermenu->name.'/?type='.$type;
if (isset($group_id) && $group_id) {
$redirect_url .= '&group_id='.$group_id;
}
diff --git a/src/plugins/headermenu/action/updateLinkValue.php b/src/plugins/headermenu/action/updateLinkValue.php
index 69679db..70cbcb5 100644
--- a/src/plugins/headermenu/action/updateLinkValue.php
+++ b/src/plugins/headermenu/action/updateLinkValue.php
@@ -2,7 +2,7 @@
/**
* headermenu plugin : updateLinkValue action
*
- * Copyright 2012, Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -22,6 +22,7 @@
*/
global $headermenu;
+global $group_id;
$idLink = getIntFromRequest('linkid');
$link = getStringFromRequest('link');
@@ -32,6 +33,11 @@ $linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
$type = getStringFromRequest('type');
+$redirect_url = '/plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+}
+
if (!empty($idLink) && !empty($name)) {
switch ($linkmenu) {
case 'headermenu': {
@@ -39,17 +45,17 @@ if (!empty($idLink) && !empty($name)) {
if (util_check_url($link)) {
if ($headermenu->updateLink($idLink, $link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
}
$warning_msg = _('Missing Link URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+ session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
break;
}
case 'outermenu':
@@ -58,27 +64,27 @@ if (!empty($idLink) && !empty($name)) {
if (util_check_url($link)) {
if ($headermenu->updateLink($idLink, $link, $name, $description, $linkmenu, $typemenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
}
if (!empty($htmlcode) && $typemenu == 'htmlcode') {
if ($headermenu->updateLink($idLink, '', $name, $description, $linkmenu, 'htmlcode', $htmlcode)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link URL or Html Code.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+ session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
}
}
}
$warning_msg = _('No link to update or name missing.');
-session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/view/admin/updateLinkValue.php b/src/plugins/headermenu/view/admin/updateLinkValue.php
index 4b2e884..15e1db0 100644
--- a/src/plugins/headermenu/view/admin/updateLinkValue.php
+++ b/src/plugins/headermenu/view/admin/updateLinkValue.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenuPlugin Class
+ * headermenu plugin : updateLinkValue view
*
* Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
@@ -24,8 +24,15 @@
global $HTML;
global $headermenu;
global $type;
+global $group_id;
$linkId = getIntFromRequest('linkid');
+$redirect_url = '/plugins/'.$headermenu->name.'/?type='.$type;
+$action_url = 'index.php?type='.$type.'&action=updateLinkValue';
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+ $action_url .= '&group_id='.$group_id;
+}
?>
<script language="Javascript" type="text/javascript">//<![CDATA[
@@ -48,7 +55,7 @@ jQuery(document).ready(function() {
<?php
$linkValues = $headermenu->getLink($linkId);
if (is_array($linkValues)) {
- echo '<form method="POST" name="updateLink" action="index.php?type='.$type.'&action=updateLinkValue">';
+ echo '<form method="POST" name="updateLink" action="'.$action_url.'">';
echo '<table><tr>';
echo $HTML->boxTop(_('Update this link'));
echo '<td>'._('Displayed Name').'</td><td><input name="name" type="text" maxsize="255" value="'.$linkValues['name'].'" /></td>';
@@ -95,12 +102,12 @@ if (is_array($linkValues)) {
echo '<td>';
echo '<input type="hidden" name="linkid" value="'.$linkId.'" />';
echo '<input type="submit" value="'. _('Update') .'" />';
- echo '<a href="/plugins/'.$headermenu->name.'/?type='.$type.'"><input type="button" value="'. _('Cancel') .'" /></a>';
+ echo '<a href="'.$redirect_url.'"><input type="button" value="'. _('Cancel') .'" /></a>';
echo '</td>';
echo $HTML->boxBottom();
echo '</tr></table>';
echo '</form>';
} else {
$error_msg = _('Cannot retrieve value for this link:').' '.$linkId;
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
commit 700e8885c3410d929b0174ae80309037ec10c9a8
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 15 00:42:15 2013 +0100
fix js syntax
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 77ef7d8..f50e1da 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -107,7 +107,7 @@ HeaderMenuController.prototype =
action: 'validateOrder',
linkorder: linkOrder,
type: 'globaladmin'
- }
+ },
jQuery.proxy(function(data) {
jQuery('.feedback').remove();
jQuery('.error').remove();
@@ -128,7 +128,7 @@ HeaderMenuController.prototype =
action: 'validateOrder',
linkorder: linkOrder,
type: 'globaladmin'
- }
+ },
jQuery.proxy(function(data) {
jQuery('.feedback').remove();
jQuery('.error').remove();
commit 9c404318436869742830c56cdfae74f4594c3138
Merge: d497582 6156169
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 15 00:34:26 2013 +0100
rebase master
commit d4975824d3f65c38b3c22ccfeded2ca433529913
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Jan 14 23:44:56 2013 +0100
modify CHANGES entry
diff --git a/src/CHANGES b/src/CHANGES
index 630233a..8dee1ba 100644
--- a/src/CHANGES
+++ b/src/CHANGES
@@ -15,8 +15,7 @@ FusionForge-5.3:
* Docman: add report view as in FRS (TrivialDev)
Plugins:
-* headermenu: new plugin to handle links in headermenu, outermenu & groupmenu
- replace the old extratabs plugin (TrivialDev)
+* headermenu: new plugin to handle links in headermenu, outermenu & groupmenu (TrivialDev)
* scmgit: add browsing capability for user personal repository (TrivialDev)
* scmgit: basic activity support (TrivialDev).
* scmgit: multiple repositories per project (developed for/sponsored by AdaCore)
commit f45038b0b4d3bc943ca277b587a46a32324d6b4a
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Jan 14 22:57:18 2013 +0100
better ajax handling
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index f6172f8..a7dde3b 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -41,6 +41,10 @@ jQuery(document).ready(function() {
tableHeaTbLink: jQuery('.sortable_headermenu_listlinks tbody'),
validOutButton: jQuery('#linkorderoutervalidatebutton'),
validHeaButton: jQuery('#linkorderheadervalidatebutton'),
+ validMessOut: '<?php echo _('Outermenu Link Order successfully validated') ?>',
+ validMessHea: '<?php echo _('Headermenu Link Order successfully validated') ?>',
+ errMessOut: '<?php echo _('Error in Outermenu Link Order validation') ?>',
+ errMessHea: '<?php echo _('Error in Headermenu Link Order validation') ?>',
});
});
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 75d671c..d119f70 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -40,7 +40,9 @@ jQuery(document).ready(function() {
tableTbodyLink: jQuery('#sortable tbody'),
validateButton: jQuery('#linkordervalidatebutton'),
groupId: '<?php echo $group_id ?>',
- headerMenuUrl: '<?php util_make_uri("/plugins/headermenu") ?>'
+ headerMenuUrl: '<?php util_make_uri("/plugins/headermenu") ?>',
+ validMessage: '<?php echo _('Link Order successfully validated') ?>',
+ errorMessage: '<?php echo _('Error in Link Order validation') ?>',
});
});
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 608bf4c..77ef7d8 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -102,26 +102,44 @@ HeaderMenuController.prototype =
validateOutLinkOrder: function() {
var linkOrder = jQuery(".sortable_outermenu_listlinks tbody").sortable('toArray').toString();
- jQuery.get(this.params.headerMenuUrl, {
- action: 'validateOrder',
- linkorder: linkOrder,
- type: 'globaladmin'
- });
- jQuery('#validateLinkFeedback').remove();
- jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Outermenu Link Order successfully validated</p>');
- this.params.validOutButton.hide();
+ jQuery.get(this.params.headerMenuUrl,
+ {
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'globaladmin'
+ }
+ jQuery.proxy(function(data) {
+ jQuery('.feedback').remove();
+ jQuery('.error').remove();
+ if (data == 0) {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="feedback">'+this.params.validMessOut+'</p>');
+ } else {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="error">'+this.params.errMessOut+'</p>');
+ }
+ this.params.validateButton.hide();
+ }, this)
+ );
},
validateHeaLinkOrder: function() {
var linkOrder = jQuery(".sortable_headermenu_listlinks tbody").sortable('toArray').toString();
- jQuery.get(this.params.headerMenuUrl, {
- action: 'validateOrder',
- linkorder: linkOrder,
- type: 'globaladmin'
- });
- jQuery('#validateLinkFeedback').remove();
- jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Headermenu Link Order successfully validated</p>');
- this.params.validHeaButton.hide();
+ jQuery.get(this.params.headerMenuUrl,
+ {
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'globaladmin'
+ }
+ jQuery.proxy(function(data) {
+ jQuery('.feedback').remove();
+ jQuery('.error').remove();
+ if (data == 0) {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="feedback">'+this.params.validMessHea+'</p>');
+ } else {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="error">'+this.params.errMessHea+'</p>');
+ }
+ this.params.validateButton.hide();
+ }, this)
+ );
},
};
@@ -172,15 +190,25 @@ GroupMenuController.prototype =
validateProjectLinkOrder: function() {
var linkOrder = jQuery("#sortable tbody").sortable('toArray').toString();
- jQuery.get(this.params.headerMenuUrl, {
- group_id: this.params.groupId,
- action: 'validateOrder',
- linkorder: linkOrder,
- type: 'projectadmin'
- });
- jQuery('#validateLinkFeedback').remove();
- jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Link Order successfully validated</p>');
- this.params.validateButton.hide();
+ jQuery.get(this.params.headerMenuUrl,
+ {
+ group_id: this.params.groupId,
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'projectadmin'
+ },
+ jQuery.proxy(function(data) {
+ jQuery('.feedback').remove();
+ jQuery('.error').remove();
+ if (data == 0) {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="feedback">'+this.params.validMessage+'</p>');
+ } else {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="error">'+this.params.errorMessage+'</p>');
+ }
+ this.params.validateButton.hide();
+ }, this)
+ );
+
},
};
commit 36d28c8de4839c160522e42e59a5f56d3d78fcac
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Jan 6 22:32:40 2013 +0100
support ordering in globaladmin view
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index d3a6da4..f6172f8 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -2,7 +2,7 @@
/**
* headermenu : viewGlobalConfiguration page
*
- * Copyright 2012 Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -37,21 +37,29 @@ jQuery(document).ready(function() {
inputOuter: jQuery('#linkmenu_outermenu'),
trHtmlCode: jQuery('#htmlcode'),
trUrlCode: jQuery('#urlcode'),
- tableTbodyLink: jQuery('#sortable tbody')
+ tableOutTbLink: jQuery('.sortable_outermenu_listlinks tbody'),
+ tableHeaTbLink: jQuery('.sortable_headermenu_listlinks tbody'),
+ validOutButton: jQuery('#linkorderoutervalidatebutton'),
+ validHeaButton: jQuery('#linkorderheadervalidatebutton'),
});
});
//]]></script>
<?php
-$linksArray = $headermenu->getAvailableLinks('headermenu');
-if (sizeof($linksArray)) {
+$linksHeaderMenuArray = $headermenu->getAvailableLinks('headermenu');
+$linksOuterMenuArray = $headermenu->getAvailableLinks('outermenu');
+
+if (sizeof($linksHeaderMenuArray) || sizeof($linksOuterMenuArray)) {
+ echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table below and save order. Please note that those extra tabs can only appear after the standard tabs. And you can only move them inside the set of extra tabs.').'</p>';
+}
+if (sizeof($linksHeaderMenuArray)) {
echo $HTML->boxTop(_('Manage available links in headermenu'));
- $tabletop = array( _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('','','','','unsortable');
+ $tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('', '', '', '', '', 'unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
- foreach ($linksArray as $link) {
- echo '<tr>';
+ foreach ($linksHeaderMenuArray as $link) {
+ echo '<tr id="'.$link['id_headermenu'].'" ><td>'.$link['ordering'].'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
} else {
@@ -73,17 +81,20 @@ if (sizeof($linksArray)) {
}
echo $HTML->listTableBottom();
echo $HTML->boxBottom();
+ echo '<input type="button" id="linkorderheadervalidatebutton" value="'._('Save Order').'" style="display:none;" />';
echo '</br>';
+} else {
+ echo '<p class="information">'._('No links available for headermenu').'</p>';
}
-$linksArray = $headermenu->getAvailableLinks('outermenu');
-if (sizeof($linksArray)) {
+
+if (sizeof($linksOuterMenuArray)) {
echo $HTML->boxTop(_('Manage available links in outermenu'));
- $tabletop = array(_('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('','','','','unsortable');
+ $tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('', '', '', '', '', 'unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_outermenu_listlinks', 'sortable', $classth);
- foreach ($linksArray as $link) {
- echo '<tr>';
+ foreach ($linksOuterMenuArray as $link) {
+ echo '<tr id="'.$link['id_headermenu'].'" ><td>'.$link['ordering'].'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
} else {
@@ -105,9 +116,13 @@ if (sizeof($linksArray)) {
}
echo $HTML->listTableBottom();
echo $HTML->boxBottom();
+ echo '<input type="button" id="linkorderoutervalidatebutton" value="'._('Save Order').'" style="display:none;" />';
echo '</br>';
+} else {
+ echo '<p class="information">'._('No links available for outermenu').'</p>';
}
+echo '<p class="information">'._('You can add specific tabs in outermenu (main tab) or headermenu (next to the login) with the form below.').'</p>';
echo '<form method="POST" name="addLink" action="index.php?type=globaladmin&action=addLink">';
echo '<table><tr>';
echo $HTML->boxTop(_('Add a new link'));
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 7ddde72..75d671c 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -52,7 +52,7 @@ if (sizeof($linksArray)) {
echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table below and save order. Please note that those extra tabs can only appear after the standard tabs. And you can only move them inside the set of extra tabs.').'</p>';
echo $HTML->boxTop(_('Manage available links'));
$tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('', '','','','','unsortable');
+ $classth = array('', '', '', '', '', 'unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
echo '<tr id="'.$link['id_headermenu'].'" ><td>'.$link['ordering'].'</td>';
@@ -81,7 +81,7 @@ if (sizeof($linksArray)) {
}
echo $HTML->listTableBottom();
echo $HTML->boxBottom();
- echo '<input type="button" id="linkordervalidatebutton" value="'._('Validate Order').'" style="display:none;" />';
+ echo '<input type="button" id="linkordervalidatebutton" value="'._('Save Order').'" style="display:none;" />';
echo '</br>';
}
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index 7d09739..a0ed5fa 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -45,7 +45,8 @@ switch ($type) {
case 'addLink':
case 'updateLinkValue':
case 'deleteLink':
- case 'updateLinkStatus': {
+ case 'updateLinkStatus':
+ case 'validateOrder': {
global $gfplugins;
include($gfplugins.$headermenu->name.'/action/'.$action.'.php');
break;
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 5ae0d34..608bf4c 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -45,6 +45,8 @@ HeaderMenuController.prototype =
this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
this.params.inputOuter.click(jQuery.proxy(this, "inputHtmlCodeView"));
this.params.inputHeader.click(jQuery.proxy(this, "initializeView"));
+ this.params.validOutButton.click(jQuery.proxy(this, "validateOutLinkOrder"));
+ this.params.validHeaButton.click(jQuery.proxy(this, "validateHeaLinkOrder"));
},
initializeView: function() {
@@ -52,11 +54,34 @@ HeaderMenuController.prototype =
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
- if (typeof(this.params.tableTbodyLink) != 'undefined') {
- this.params.tableTbodyLink.sortable({
+ if (typeof(this.params.tableOutTbLink) != 'undefined') {
+ this.params.tableOutTbLink.sortable({
update: function(event, ui) {
- jQuery(ui.item).attr("id", jQuery(ui.item).index());
- }
+ jQuery(".sortable_outermenu_listlinks tbody").children().each(function() {
+ if (jQuery(this).index() % 2 === 0) {
+ jQuery(this).attr("class", "even");
+ } else {
+ jQuery(this).attr("class", "odd");
+ }
+ jQuery(this).children(":first").text(jQuery(this).index());
+ });
+ jQuery("#linkorderoutervalidatebutton").show();
+ }
+ });
+ }
+ if (typeof(this.params.tableHeaTbLink) != 'undefined') {
+ this.params.tableHeaTbLink.sortable({
+ update: function(event, ui) {
+ jQuery(".sortable_headermenu_listlinks tbody").children().each(function() {
+ if (jQuery(this).index() % 2 === 0) {
+ jQuery(this).attr("class", "even");
+ } else {
+ jQuery(this).attr("class", "odd");
+ }
+ jQuery(this).children(":first").text(jQuery(this).index());
+ });
+ jQuery("#linkorderheadervalidatebutton").show();
+ }
});
}
},
@@ -73,7 +98,31 @@ HeaderMenuController.prototype =
inputHtmlCodeView: function() {
this.params.inputHtmlCode.prop('disabled', false);
- }
+ },
+
+ validateOutLinkOrder: function() {
+ var linkOrder = jQuery(".sortable_outermenu_listlinks tbody").sortable('toArray').toString();
+ jQuery.get(this.params.headerMenuUrl, {
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'globaladmin'
+ });
+ jQuery('#validateLinkFeedback').remove();
+ jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Outermenu Link Order successfully validated</p>');
+ this.params.validOutButton.hide();
+ },
+
+ validateHeaLinkOrder: function() {
+ var linkOrder = jQuery(".sortable_headermenu_listlinks tbody").sortable('toArray').toString();
+ jQuery.get(this.params.headerMenuUrl, {
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'globaladmin'
+ });
+ jQuery('#validateLinkFeedback').remove();
+ jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Headermenu Link Order successfully validated</p>');
+ this.params.validHeaButton.hide();
+ },
};
GroupMenuController.prototype =
@@ -81,7 +130,7 @@ GroupMenuController.prototype =
bindControls: function() {
this.params.inputHtmlCode.click(jQuery.proxy(this, "htmlCodeView"));
this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
- this.params.validateButton.click(jQuery.proxy(this, "validateLinkOrder"));
+ this.params.validateButton.click(jQuery.proxy(this, "validateProjectLinkOrder"));
},
initializeView: function() {
@@ -121,7 +170,7 @@ GroupMenuController.prototype =
this.params.inputHtmlCode.prop('disabled', false);
},
- validateLinkOrder: function() {
+ validateProjectLinkOrder: function() {
var linkOrder = jQuery("#sortable tbody").sortable('toArray').toString();
jQuery.get(this.params.headerMenuUrl, {
group_id: this.params.groupId,
commit 78e2cbd8e6709a0aba61f26aae72705088704612
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Jan 6 19:44:40 2013 +0100
remove useless column
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index 9e622e1..d3a6da4 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -47,12 +47,11 @@ jQuery(document).ready(function() {
$linksArray = $headermenu->getAvailableLinks('headermenu');
if (sizeof($linksArray)) {
echo $HTML->boxTop(_('Manage available links in headermenu'));
- $tabletop = array(_('Menu Location'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('', '','','','','unsortable');
+ $tabletop = array( _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
echo '<tr>';
- echo '<td>'.htmlspecialchars($link['linkmenu']).'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
} else {
@@ -80,12 +79,11 @@ if (sizeof($linksArray)) {
$linksArray = $headermenu->getAvailableLinks('outermenu');
if (sizeof($linksArray)) {
echo $HTML->boxTop(_('Manage available links in outermenu'));
- $tabletop = array(_('Menu Location'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('', '','','','','unsortable');
+ $tabletop = array(_('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_outermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
echo '<tr>';
- echo '<td>'.htmlspecialchars($link['linkmenu']).'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
} else {
commit 660eaf89a682fbb8727165f583d5d82b99a180b2
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Jan 6 18:43:10 2013 +0100
add copyright
diff --git a/src/www/themes/funky/Theme.class.php b/src/www/themes/funky/Theme.class.php
index 0451a71..b484e4d 100644
--- a/src/www/themes/funky/Theme.class.php
+++ b/src/www/themes/funky/Theme.class.php
@@ -5,7 +5,7 @@
* Copyright 2010, Antoine Mercadal - Capgemini
* Copyright 2010, Marc-Etienne Vargenau, Alcatel-Lucent
* Copyright 2011, Franck Villaume - Capgemini
- * Copyright 2011 - 2012, Franck Villaume - TrivialDev
+ * Copyright 2011-2013, Franck Villaume - TrivialDev
* Copyright (C) 2011 Alain Peyrat - Alcatel-Lucent
*
* This file is part of FusionForge. FusionForge is free software;
commit eb0a6104efc8ffbd6f67f2a7a76286c7983464df
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Jan 6 17:44:34 2013 +0100
implement backend action validateOrder
diff --git a/src/plugins/headermenu/action/deleteLink.php b/src/plugins/headermenu/action/deleteLink.php
index 8cf9ecc..3356fec 100644
--- a/src/plugins/headermenu/action/deleteLink.php
+++ b/src/plugins/headermenu/action/deleteLink.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin: deleteLink action
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
diff --git a/src/plugins/headermenu/action/updateLinkStatus.php b/src/plugins/headermenu/action/updateLinkStatus.php
index 03cce2a..b91c682 100644
--- a/src/plugins/headermenu/action/updateLinkStatus.php
+++ b/src/plugins/headermenu/action/updateLinkStatus.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin: updateLinkStatus action
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
diff --git a/src/plugins/headermenu/action/updateLinkValue.php b/src/plugins/headermenu/action/updateLinkValue.php
index caf7bd9..69679db 100644
--- a/src/plugins/headermenu/action/updateLinkValue.php
+++ b/src/plugins/headermenu/action/updateLinkValue.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin : updateLinkValue action
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
diff --git a/src/plugins/headermenu/action/deleteLink.php b/src/plugins/headermenu/action/validateOrder.php
similarity index 54%
copy from src/plugins/headermenu/action/deleteLink.php
copy to src/plugins/headermenu/action/validateOrder.php
index 8cf9ecc..b16144c 100644
--- a/src/plugins/headermenu/action/deleteLink.php
+++ b/src/plugins/headermenu/action/validateOrder.php
@@ -1,8 +1,8 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin : validateOrder action
*
- * Copyright 2012, Franck Villaume - TrivialDev
+ * Copyright 2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -19,25 +19,19 @@
* 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.
- */
+ */
global $headermenu;
-global $type;
-global $group_id;
-$idLink = getIntFromRequest('linkid');
-$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
-if (isset($group_id) && $group_id) {
- $redirect_url .= '&group_id='.$group_id;
-}
+$sysdebug_enable = false;
+
+$linksOrder = getStringFromRequest('linkorder');
+$returnValue = 1;
-if (!empty($idLink)) {
- if ($headermenu->deleteLink($idLink)) {
- $feedback = _('Link deleted');
- session_redirect($redirect_url.'&feedback='.urlencode($feedback));
- }
- $error_msg = _('Task failed');
- session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
+if ($linksOrder && strlen($linksOrder)) {
+ $linksOrderArr = explode(',', $linksOrder);
+ if ($headermenu->setLinksOrder($linksOrderArr))
+ $returnValue = 0;
}
-$warning_msg = _('Missing Link to be deleted.');
-session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
+echo $returnValue;
+exit;
\ No newline at end of file
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 69c41ac..222c3b2 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -168,7 +168,7 @@ class headermenuPlugin extends Plugin {
* @return array the available links
*/
function getAvailableLinks($linkmenu) {
- $links = db_query_params('select * FROM plugin_headermenu where linkmenu = $1 order by ordering', array($linkmenu));
+ $links = db_query_params('select * FROM plugin_headermenu where linkmenu = $1 order by ordering asc', array($linkmenu));
$availableLinks = array();
while ($arr = db_fetch_array($links)) {
$availableLinks[] = $arr;
@@ -188,6 +188,21 @@ class headermenuPlugin extends Plugin {
}
/**
+ * setLinksOrder - set the linkOrder for a set of links id
+ *
+ * @param array $linksOrder array of ordered links id
+ * @return bool success or not
+ */
+ function setLinksOrder($linksOrder) {
+ for ($i =0; $i < count($linksOrder); $i++) {
+ $res = db_query_params('update plugin_headermenu set ordering = $1 where id_headermenu = $2', array($i, $linksOrder[$i]));
+ if (!$res)
+ return false;
+ }
+ return true;
+ }
+
+ /**
* addLink - add a new valid link
*
* @param string $url the url
@@ -352,7 +367,11 @@ class headermenuPlugin extends Plugin {
html_use_jqueryui();
use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
- site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
+ $group_id = getIntFromRequest('group_id');
+ $params['toptab'] = 'admin';
+ $params['group'] = $group_id;
+ $params['title'] = _('Project groupmenu Admin');
+ site_project_header($params);
$returned = true;
break;
}
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 70af91d..7ddde72 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -2,7 +2,7 @@
/**
* headermenu : viewProjectConfiguration page
*
- * Copyright 2012 Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -49,7 +49,7 @@ jQuery(document).ready(function() {
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
if (sizeof($linksArray)) {
- echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table and save order. Please note that those extra tabs can only appear after the standard tabs. And you can only move them inside the set of extra tabs.').'</p>';
+ echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table below and save order. Please note that those extra tabs can only appear after the standard tabs. And you can only move them inside the set of extra tabs.').'</p>';
echo $HTML->boxTop(_('Manage available links'));
$tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
$classth = array('', '','','','','unsortable');
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index 9388241..7d09739 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -90,7 +90,8 @@ switch ($type) {
case 'addLink':
case 'updateLinkValue':
case 'deleteLink':
- case 'updateLinkStatus': {
+ case 'updateLinkStatus':
+ case 'validateOrder': {
global $gfplugins;
include($gfplugins.$headermenu->name.'/action/'.$action.'.php');
break;
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index d81654a..5ae0d34 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -129,7 +129,8 @@ GroupMenuController.prototype =
linkorder: linkOrder,
type: 'projectadmin'
});
- jQuery('#maindiv').prepend('<p class="feedback">Link Order successfully validated</p>');
+ jQuery('#validateLinkFeedback').remove();
+ jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Link Order successfully validated</p>');
this.params.validateButton.hide();
},
};
commit 6a44cd505b5eb46d5ed38882703edb141454571f
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Jan 6 15:07:14 2013 +0100
complete support for reorder link in groupmenu
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 6cc2c60..69c41ac 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -168,7 +168,7 @@ class headermenuPlugin extends Plugin {
* @return array the available links
*/
function getAvailableLinks($linkmenu) {
- $links = db_query_params('select * FROM plugin_headermenu where linkmenu = $1', array($linkmenu));
+ $links = db_query_params('select * FROM plugin_headermenu where linkmenu = $1 order by ordering', array($linkmenu));
$availableLinks = array();
while ($arr = db_fetch_array($links)) {
$availableLinks[] = $arr;
@@ -230,6 +230,13 @@ class headermenuPlugin extends Plugin {
return false;
}
+ /**
+ * updateLinkStatus - update the link status
+ *
+ * @param int $idLink the link id
+ * @param int $linkStatus the new status of the link id
+ * @return bool success or not
+ */
function updateLinkStatus($idLink, $linkStatus) {
$res = db_query_params('update plugin_headermenu set is_enable = $1 where id_headermenu = $2', array($linkStatus, $idLink));
if ($res) {
@@ -238,6 +245,12 @@ class headermenuPlugin extends Plugin {
return false;
}
+ /**
+ * getLink - get all informations about a link
+ *
+ * @param int $idLink the link id
+ * @return array the link informations
+ */
function getLink($idLink) {
$res = db_query_params('select * from plugin_headermenu where id_headermenu = $1', array($idLink));
if (db_numrows($res) == 1) {
@@ -276,7 +289,11 @@ class headermenuPlugin extends Plugin {
*/
function pageView($pageid) {
$link = $this->getLink($pageid);
- return $link['htmlcode'];
+ if ($link) {
+ return $link['htmlcode'];
+ } else {
+ return '<p class="error" >'._('Cannot retrieve the page').'</p>';
+ }
}
/**
@@ -287,7 +304,11 @@ class headermenuPlugin extends Plugin {
*/
function iframeView($pageid) {
$link = $this->getLink($pageid);
- return '<iframe src="'.rtrim($link['url'],'/').'" frameborder="0" height="600px" width="100%"></iframe>';
+ if ($link) {
+ return '<iframe src="'.rtrim($link['url'],'/').'" frameborder="0" height="600px" width="100%"></iframe>';
+ } else {
+ return '<p class="error" >'._('Cannot retrieve the page').'</p>';
+ }
}
/**
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 810f133..70af91d 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -37,7 +37,10 @@ jQuery(document).ready(function() {
trHtmlCode: jQuery('#htmlcode'),
trUrlCode: jQuery('#urlcode'),
trIframeView: jQuery('#iframe'),
- tableTbodyLink: jQuery('#sortable tbody')
+ tableTbodyLink: jQuery('#sortable tbody'),
+ validateButton: jQuery('#linkordervalidatebutton'),
+ groupId: '<?php echo $group_id ?>',
+ headerMenuUrl: '<?php util_make_uri("/plugins/headermenu") ?>'
});
});
@@ -46,13 +49,13 @@ jQuery(document).ready(function() {
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
if (sizeof($linksArray)) {
- echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table and save order.').'</p>';
+ echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table and save order. Please note that those extra tabs can only appear after the standard tabs. And you can only move them inside the set of extra tabs.').'</p>';
echo $HTML->boxTop(_('Manage available links'));
$tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
$classth = array('', '','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
- echo '<tr id="'.$link['ordering'].'" ><td>'.$link['ordering'].'</td>';
+ echo '<tr id="'.$link['id_headermenu'].'" ><td>'.$link['ordering'].'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL');
if ($link['linktype'] == 'iframe') {
@@ -78,9 +81,11 @@ if (sizeof($linksArray)) {
}
echo $HTML->listTableBottom();
echo $HTML->boxBottom();
+ echo '<input type="button" id="linkordervalidatebutton" value="'._('Validate Order').'" style="display:none;" />';
echo '</br>';
}
+echo '<p class="information">'._('You can add your own tabs in the menu bar with the form below.').'</p>';
echo '<form method="POST" name="addLink" action="index.php?type=projectadmin&group_id='.$group_id.'&action=addLink">';
echo '<table><tr>';
echo $HTML->boxTop(_('Add a new link'));
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 0da2b5c..d81654a 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -81,6 +81,7 @@ GroupMenuController.prototype =
bindControls: function() {
this.params.inputHtmlCode.click(jQuery.proxy(this, "htmlCodeView"));
this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
+ this.params.validateButton.click(jQuery.proxy(this, "validateLinkOrder"));
},
initializeView: function() {
@@ -91,14 +92,14 @@ GroupMenuController.prototype =
this.params.tableTbodyLink.sortable({
update: function(event, ui) {
jQuery("#sortable tbody").children().each(function() {
- jQuery(this).attr("id", jQuery(this).index())
- if (jQuery(this).attr("id") % 2 === 0) {
+ if (jQuery(this).index() % 2 === 0) {
jQuery(this).attr("class", "even");
} else {
jQuery(this).attr("class", "odd");
}
- jQuery(this).children(":first").text(jQuery(this).attr("id"));
+ jQuery(this).children(":first").text(jQuery(this).index());
});
+ jQuery("#linkordervalidatebutton").show();
}
});
}
@@ -118,7 +119,19 @@ GroupMenuController.prototype =
inputHtmlCodeView: function() {
this.params.inputHtmlCode.prop('disabled', false);
- }
+ },
+
+ validateLinkOrder: function() {
+ var linkOrder = jQuery("#sortable tbody").sortable('toArray').toString();
+ jQuery.get(this.params.headerMenuUrl, {
+ group_id: this.params.groupId,
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'projectadmin'
+ });
+ jQuery('#maindiv').prepend('<p class="feedback">Link Order successfully validated</p>');
+ this.params.validateButton.hide();
+ },
};
EditHeaderMenuController.prototype =
diff --git a/src/www/themes/funky/Theme.class.php b/src/www/themes/funky/Theme.class.php
index f234281..0451a71 100644
--- a/src/www/themes/funky/Theme.class.php
+++ b/src/www/themes/funky/Theme.class.php
@@ -444,7 +444,10 @@ class Theme extends Layout {
jQuery.noConflict();
jQuery(window).load(function(){
jQuery(".quicknews").hide();
+ setTimeout("jQuery('.feedback').hide('slow')", 5000);
+ setInterval(function() {
setTimeout("jQuery('.feedback').hide('slow')", 5000);
+ }, 5000);
});
//]]></script>
<?php
commit 2994be8618749e07c596e2b4da4e829aaf807db6
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sat Jan 5 13:32:10 2013 +0100
add support for reorder in js controler
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index f200b60..810f133 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -52,7 +52,7 @@ if (sizeof($linksArray)) {
$classth = array('', '','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
- echo '<tr><td>'.$link['ordering'].'</td>';
+ echo '<tr id="'.$link['ordering'].'" ><td>'.$link['ordering'].'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL');
if ($link['linktype'] == 'iframe') {
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index eb11f3d..0da2b5c 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -53,7 +53,11 @@ HeaderMenuController.prototype =
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
if (typeof(this.params.tableTbodyLink) != 'undefined') {
- this.params.tableTbodyLink.sortable();
+ this.params.tableTbodyLink.sortable({
+ update: function(event, ui) {
+ jQuery(ui.item).attr("id", jQuery(ui.item).index());
+ }
+ });
}
},
@@ -84,7 +88,19 @@ GroupMenuController.prototype =
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
if (typeof(this.params.tableTbodyLink) != 'undefined') {
- this.params.tableTbodyLink.sortable();
+ this.params.tableTbodyLink.sortable({
+ update: function(event, ui) {
+ jQuery("#sortable tbody").children().each(function() {
+ jQuery(this).attr("id", jQuery(this).index())
+ if (jQuery(this).attr("id") % 2 === 0) {
+ jQuery(this).attr("class", "even");
+ } else {
+ jQuery(this).attr("class", "odd");
+ }
+ jQuery(this).children(":first").text(jQuery(this).attr("id"));
+ });
+ }
+ });
}
},
commit 09012df4b26cf75305c7de60deaaa3cf969c9b5b
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 17:56:38 2012 +0100
add support for iframe in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index f9a7f02..d6333d9 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -37,11 +37,6 @@ if (isset($group_id) && $group_id) {
$redirect_url .= '&group_id='.$group_id;
}
-$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
-if (isset($group_id) && $group_id) {
- $redirect_url .= '&group_id='.$group_id;
-}
-
if (!empty($name) && !empty($linkmenu)) {
switch ($linkmenu) {
case 'headermenu': {
commit 4bcb05caa64ce606518aad696088d6e8caf7471c
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 11:27:22 2012 +0100
add support for html page in groupmenu
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 0024cb4..6cc2c60 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -335,14 +335,6 @@ class headermenuPlugin extends Plugin {
$returned = true;
break;
}
- case 'projectadmin': {
- html_use_jquery();
- use_javascript('scripts/HeaderMenuController.js');
- use_javascript('/js/sortable.js');
- site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
- $returned = true;
- break;
- }
}
return $returned;
}
commit f4e778bf303f0aa287527a7e3f23de31d6c4943c
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 30 20:38:42 2012 +0100
start htmlcode support in groupmenu
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 882c0e0..0024cb4 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -337,6 +337,7 @@ class headermenuPlugin extends Plugin {
}
case 'projectadmin': {
html_use_jquery();
+ use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
$returned = true;
commit b854f04d54b029ec0b0396f09c00f4bb8e5805b4
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 30 19:56:25 2012 +0100
support delete link in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index d6333d9..f9a7f02 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -37,6 +37,11 @@ if (isset($group_id) && $group_id) {
$redirect_url .= '&group_id='.$group_id;
}
+$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+}
+
if (!empty($name) && !empty($linkmenu)) {
switch ($linkmenu) {
case 'headermenu': {
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 1939271..882c0e0 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -337,6 +337,7 @@ class headermenuPlugin extends Plugin {
}
case 'projectadmin': {
html_use_jquery();
+ use_javascript('/js/sortable.js');
site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
$returned = true;
break;
commit e0f49ffc3936fbe02bbb56690dbfed471452d51c
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sat Dec 22 20:28:10 2012 +0100
start implement groupmenu hook in headermenu
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 6cc2c60..1939271 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -335,6 +335,12 @@ class headermenuPlugin extends Plugin {
$returned = true;
break;
}
+ case 'projectadmin': {
+ html_use_jquery();
+ site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
+ $returned = true;
+ break;
+ }
}
return $returned;
}
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index 1f053ea..9388241 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -107,6 +107,7 @@ switch ($type) {
break;
}
break;
+ $headermenu->getHeader($type);
}
}
commit 046e73e007b1c05c7d62e4ab4811b8e67965cb88
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 20:47:10 2013 +0100
add notice and reorg display in global
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index eaa3252..9e622e1 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -36,16 +36,17 @@ jQuery(document).ready(function() {
inputHeader: jQuery('#linkmenu_headermenu'),
inputOuter: jQuery('#linkmenu_outermenu'),
trHtmlCode: jQuery('#htmlcode'),
- trUrlCode: jQuery('#urlcode')
- });
+ trUrlCode: jQuery('#urlcode'),
+ tableTbodyLink: jQuery('#sortable tbody')
+ });
});
//]]></script>
<?php
-$linksArray = $headermenu->getAllAvailableLinks();
+$linksArray = $headermenu->getAvailableLinks('headermenu');
if (sizeof($linksArray)) {
- echo $HTML->boxTop(_('Manage available links'));
+ echo $HTML->boxTop(_('Manage available links in headermenu'));
$tabletop = array(_('Menu Location'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
$classth = array('', '','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
@@ -76,6 +77,39 @@ if (sizeof($linksArray)) {
echo '</br>';
}
+$linksArray = $headermenu->getAvailableLinks('outermenu');
+if (sizeof($linksArray)) {
+ echo $HTML->boxTop(_('Manage available links in outermenu'));
+ $tabletop = array(_('Menu Location'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('', '','','','','unsortable');
+ echo $HTML->listTableTop($tabletop, false, 'sortable_outermenu_listlinks', 'sortable', $classth);
+ foreach ($linksArray as $link) {
+ echo '<tr>';
+ echo '<td>'.htmlspecialchars($link['linkmenu']).'</td>';
+ if (strlen($link['url']) > 0) {
+ echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
+ } else {
+ echo '<td>'._('static html code').'</td>';
+ }
+ echo '<td>'.htmlspecialchars($link['name']).'</td>';
+ echo '<td>'.htmlspecialchars($link['description']).'</td>';
+ if ($link['is_enable']) {
+ echo '<td>'.html_image('docman/validate.png', 22, 22, array('alt'=>_('link is on'), 'class'=>'tabtitle', 'title'=>_('link is on'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Desactivate this link').'" href="index.php?type=globaladmin&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=0">'.html_image('docman/release-document.png', 22, 22, array('alt'=>_('Desactivate this link'))). '</a>';
+ } else {
+ echo '<td>'.html_image('docman/delete-directory.png', 22, 22, array('alt'=>_('link is off'), 'class'=>'tabtitle', 'title'=>_('link is off'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Activate this link').'" href="index.php?type=globaladmin&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=1">'.html_image('docman/reserve-document.png', 22, 22, array('alt'=>_('Activate this link'))). '</a>';
+ }
+ echo '<a class="tabtitle-ne" title="'._('Edit this link').'" href="index.php?type=globaladmin&view=updateLinkValue&linkid='.$link['id_headermenu'].'">'.html_image('docman/edit-file.png',22,22, array('alt'=>_('Edit this link'))). '</a>';
+ echo '<a class="tabtitle-ne" title="'._('Delete this link').'" href="index.php?type=globaladmin&action=deleteLink&linkid='.$link['id_headermenu'].'">'.html_image('docman/trash-empty.png',22,22, array('alt'=>_('Delete this link'))). '</a>';
+ echo '</td>';
+ echo '</tr>';
+ }
+ echo $HTML->listTableBottom();
+ echo $HTML->boxBottom();
+ echo '</br>';
+}
+
echo '<form method="POST" name="addLink" action="index.php?type=globaladmin&action=addLink">';
echo '<table><tr>';
echo $HTML->boxTop(_('Add a new link'));
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 1ad33f4..f200b60 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -46,12 +46,13 @@ jQuery(document).ready(function() {
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
if (sizeof($linksArray)) {
+ echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table and save order.').'</p>';
echo $HTML->boxTop(_('Manage available links'));
- $tabletop = array(_('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('','','','','unsortable');
+ $tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('', '','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
- echo '<tr>';
+ echo '<tr><td>'.$link['ordering'].'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL');
if ($link['linktype'] == 'iframe') {
commit 9ecc5a34d1e6334e74f4a65f0cb7c2efd85d0668
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 16:35:35 2013 +0100
start implement reorder
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 93efda2..6cc2c60 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -3,7 +3,7 @@
/**
* headermenuPlugin Class
*
- * Copyright 2012 Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -61,7 +61,7 @@ class headermenuPlugin extends Plugin {
$group_id = $params['group_id'];
$project = group_get_object($group_id);
if ($project->usesPlugin($this->name)) {
- echo '<p>'.util_make_link('/plugins/headermenu/?type=projectadmin&group_id='.$group_id,
+ echo '<p>'.util_make_link('/plugins/'.$this->name.'/?type=projectadmin&group_id='.$group_id,
_('Project GroupMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
}
break;
@@ -304,6 +304,7 @@ class headermenuPlugin extends Plugin {
global $gfwww;
require_once($gfwww.'admin/admin_utils.php');
html_use_jquery();
+ html_use_jqueryui();
use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
site_admin_header(array('title'=>_('Site Global Menu Admin'), 'toptab' => ''));
@@ -315,18 +316,19 @@ class headermenuPlugin extends Plugin {
$link = $this->getLink($this->pageid);
$group_id = getIntFromRequest('group_id');
if ($group_id) {
- $params['toptab'] = '/plugins/headermenu/?type='.$type.'&group_id='.$group_id.'&pageid='.$this->pageid;
+ $params['toptab'] = '/plugins/'.$this->name.'/?type='.$type.'&group_id='.$group_id.'&pageid='.$this->pageid;
$params['group'] = $group_id;
$params['title'] = $link['name'];
site_project_header($params);
} else {
- site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type='.$type.'&pageid='.$this->pageid));
+ site_header(array('title'=> $link['name'], 'toptab' => '/plugins/'.$this->name.'/?type='.$type.'&pageid='.$this->pageid));
}
$returned = true;
break;
}
case 'projectadmin': {
html_use_jquery();
+ html_use_jqueryui();
use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 72c7018..1ad33f4 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -37,7 +37,8 @@ jQuery(document).ready(function() {
trHtmlCode: jQuery('#htmlcode'),
trUrlCode: jQuery('#urlcode'),
trIframeView: jQuery('#iframe'),
- });
+ tableTbodyLink: jQuery('#sortable tbody')
+ });
});
//]]></script>
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 84f2dce..eb11f3d 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -52,6 +52,9 @@ HeaderMenuController.prototype =
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
+ if (typeof(this.params.tableTbodyLink) != 'undefined') {
+ this.params.tableTbodyLink.sortable();
+ }
},
htmlCodeView: function() {
@@ -80,6 +83,9 @@ GroupMenuController.prototype =
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
+ if (typeof(this.params.tableTbodyLink) != 'undefined') {
+ this.params.tableTbodyLink.sortable();
+ }
},
htmlCodeView: function() {
commit 33373c31732e65bb72bc39af948d42c242ddcded
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 15:01:46 2013 +0100
make the update works
diff --git a/src/plugins/headermenu/action/updateLinkValue.php b/src/plugins/headermenu/action/updateLinkValue.php
index e9706ba..caf7bd9 100644
--- a/src/plugins/headermenu/action/updateLinkValue.php
+++ b/src/plugins/headermenu/action/updateLinkValue.php
@@ -23,7 +23,6 @@
global $headermenu;
-session_require_global_perm('forge_admin');
$idLink = getIntFromRequest('linkid');
$link = getStringFromRequest('link');
$name = strip_tags(getStringFromRequest('name'));
@@ -31,53 +30,55 @@ $description = strip_tags(getStringFromRequest('description'));
$typemenu = getStringFromRequest('typemenu');
$linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
+$type = getStringFromRequest('type');
if (!empty($idLink) && !empty($name)) {
switch ($linkmenu) {
- case "headermenu": {
+ case 'headermenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->updateLink($idLink, $link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
$warning_msg = _('Missing Link URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
break;
}
- case "outermenu": {
- if (!empty($link) && $typemenu == 'url') {
+ case 'outermenu':
+ case 'groupmenu': {
+ if (!empty($link) && ($typemenu == 'url' || $typemenu == 'iframe')) {
if (util_check_url($link)) {
- if ($headermenu->updateLink($idLink, $link, $name, $description, $linkmenu)) {
+ if ($headermenu->updateLink($idLink, $link, $name, $description, $linkmenu, $typemenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
if (!empty($htmlcode) && $typemenu == 'htmlcode') {
if ($headermenu->updateLink($idLink, '', $name, $description, $linkmenu, 'htmlcode', $htmlcode)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link URL or Html Code.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
}
}
}
$warning_msg = _('No link to update or name missing.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/view/admin/updateLinkValue.php b/src/plugins/headermenu/view/admin/updateLinkValue.php
index 6edb149..4b2e884 100644
--- a/src/plugins/headermenu/view/admin/updateLinkValue.php
+++ b/src/plugins/headermenu/view/admin/updateLinkValue.php
@@ -63,15 +63,14 @@ if (is_array($linkValues)) {
echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linkmenu'], false);
echo '</td>';
echo '</tr><tr>';
+ $texts = array('URL', 'New Page');
+ $vals = array('url', 'htmlcode');
}
echo '<td>'._('Menu Type').'</td><td>';
if ($type == 'projectadmin') {
$texts = array('URL', 'URL as iframe', 'New Page');
$vals = array('url', 'iframe', 'htmlcode');
- }
- if ($type == 'globaladmin') {
- $texts = array('URL', 'New Page');
- $vals = array('url', 'htmlcode');
+ echo '<input type="hidden" name="linkmenu" value="groupmenu" />';
}
$select_name = 'typemenu';
echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linktype'], false);
commit a3485c5bffcc054a8ca85ba1d4cf709780a09fcc
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 14:44:52 2013 +0100
support for edit link in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 665e460..d6333d9 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -2,7 +2,7 @@
/**
* headermenu plugin : addLink action
*
- * Copyright 2012, Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -61,7 +61,7 @@ if (!empty($name) && !empty($linkmenu)) {
case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
- $linktype = 'URL';
+ $linktype = 'url';
if ($iframed) {
$linktype = 'iframe';
}
diff --git a/src/plugins/headermenu/db/20121231-reorderentry.sql b/src/plugins/headermenu/db/20121231-reorderentry.sql
index 2f1dccf..865b851 100644
--- a/src/plugins/headermenu/db/20121231-reorderentry.sql
+++ b/src/plugins/headermenu/db/20121231-reorderentry.sql
@@ -1 +1,2 @@
+UPDATE plugin_headermenu SET linktype = 'url' where linktype = 'URL';
ALTER TABLE plugin_headermenu ADD COLUMN ordering integer DEFAULT 0 NOT NULL;
diff --git a/src/plugins/headermenu/view/admin/updateLinkValue.php b/src/plugins/headermenu/view/admin/updateLinkValue.php
index 1209aa8..6edb149 100644
--- a/src/plugins/headermenu/view/admin/updateLinkValue.php
+++ b/src/plugins/headermenu/view/admin/updateLinkValue.php
@@ -2,7 +2,7 @@
/**
* headermenuPlugin Class
*
- * Copyright 2012 Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -23,8 +23,8 @@
global $HTML;
global $headermenu;
+global $type;
-session_require_global_perm('forge_admin');
$linkId = getIntFromRequest('linkid');
?>
@@ -35,6 +35,7 @@ jQuery(document).ready(function() {
controllerHeaderMenu = new EditHeaderMenuController({
inputHtmlCode: jQuery('#typemenu_htmlcode'),
inputURL: jQuery('#typemenu_url'),
+ inputURLIframe: jQuery('#typemenu_iframe'),
inputHeader: jQuery('#linkmenu_headermenu'),
inputOuter: jQuery('#linkmenu_outermenu'),
trHtmlCode: jQuery('#htmlcode'),
@@ -47,23 +48,31 @@ jQuery(document).ready(function() {
<?php
$linkValues = $headermenu->getLink($linkId);
if (is_array($linkValues)) {
- echo '<form method="POST" name="updateLink" action="index.php?type=globaladmin&action=updateLinkValue">';
+ echo '<form method="POST" name="updateLink" action="index.php?type='.$type.'&action=updateLinkValue">';
echo '<table><tr>';
echo $HTML->boxTop(_('Update this link'));
echo '<td>'._('Displayed Name').'</td><td><input name="name" type="text" maxsize="255" value="'.$linkValues['name'].'" /></td>';
echo '</tr><tr>';
echo '<td>'._('Description').'</td><td><input name="description" type="text" maxsize="255" value="'.$linkValues['description'].'" /></td>';
echo '</tr><tr>';
- echo '<td>'._('Menu Location').'</td><td>';
- $vals = array('headermenu', 'outermenu');
- $texts = array('headermenu', 'outermenu');
- $select_name = 'linkmenu';
- echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linkmenu'], false);
- echo '</td>';
- echo '</tr><tr>';
+ if ($type == 'globaladmin') {
+ echo '<td>'._('Menu Location').'</td><td>';
+ $vals = array('headermenu', 'outermenu');
+ $texts = array('headermenu', 'outermenu');
+ $select_name = 'linkmenu';
+ echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linkmenu'], false);
+ echo '</td>';
+ echo '</tr><tr>';
+ }
echo '<td>'._('Menu Type').'</td><td>';
- $texts = array('URL', 'New Page');
- $vals = array('url', 'htmlcode');
+ if ($type == 'projectadmin') {
+ $texts = array('URL', 'URL as iframe', 'New Page');
+ $vals = array('url', 'iframe', 'htmlcode');
+ }
+ if ($type == 'globaladmin') {
+ $texts = array('URL', 'New Page');
+ $vals = array('url', 'htmlcode');
+ }
$select_name = 'typemenu';
echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linktype'], false);
echo '</td>';
@@ -81,20 +90,18 @@ if (is_array($linkValues)) {
echo '<textarea name="htmlcode" rows="5" cols="80">'.$body.'</textarea>';
}
unset($GLOBALS['editor_was_set_up']);
- echo '</td></tr><tr id="urlcode" >';
- echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
- echo '</tr><tr id="urlcode" style="display:none" >';
+ echo '</td></tr><tr id="urlcode" style="display:none" >';
echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" value="'.$linkValues['url'].'" /></td>';
echo '</tr><tr>';
echo '<td>';
echo '<input type="hidden" name="linkid" value="'.$linkId.'" />';
echo '<input type="submit" value="'. _('Update') .'" />';
- echo '<a href="/plugins/'.$headermenu->name.'/?type=globaladmin"><input type="button" value="'. _('Cancel') .'" /></a>';
+ echo '<a href="/plugins/'.$headermenu->name.'/?type='.$type.'"><input type="button" value="'. _('Cancel') .'" /></a>';
echo '</td>';
echo $HTML->boxBottom();
echo '</tr></table>';
echo '</form>';
} else {
$error_msg = _('Cannot retrieve value for this link:').' '.$linkId;
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 68aee35..84f2dce 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -1,7 +1,7 @@
/**
* headerMenu Plugin Js Controller
*
- * Copyright 2012, Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -104,8 +104,15 @@ EditHeaderMenuController.prototype =
bindControls: function() {
this.params.inputHtmlCode.click(jQuery.proxy(this, "htmlCodeView"));
this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
- this.params.inputOuter.click(jQuery.proxy(this, "inputHtmlCodeView"));
- this.params.inputHeader.click(jQuery.proxy(this, "headerView"));
+ if (typeof(this.params.inputOuter) != 'undefined') {
+ this.params.inputOuter.click(jQuery.proxy(this, "inputHtmlCodeView"));
+ }
+ if (typeof(this.params.inputHeader) != 'undefined') {
+ this.params.inputHeader.click(jQuery.proxy(this, "headerView"));
+ }
+ if (typeof(this.params.inputURLIframe) != 'undefined') {
+ this.params.inputURLIframe.click(jQuery.proxy(this, "htmlUrlView"));
+ }
},
initializeView: function() {
@@ -120,6 +127,12 @@ EditHeaderMenuController.prototype =
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
}
+ if (typeof(this.params.inputURLIframe) != 'undefined') {
+ if (this.params.inputURLIframe.attr("checked")) {
+ this.params.trHtmlCode.hide();
+ this.params.trUrlCode.show();
+ }
+ }
},
htmlUrlView: function() {
commit 161ce1192d9e64e99373f8e4cf7d5a6b78481887
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 18:10:59 2012 +0100
add new column: ordering, to support order between link
diff --git a/src/plugins/headermenu/db/20121231-reorderentry.sql b/src/plugins/headermenu/db/20121231-reorderentry.sql
new file mode 100644
index 0000000..2f1dccf
--- /dev/null
+++ b/src/plugins/headermenu/db/20121231-reorderentry.sql
@@ -0,0 +1 @@
+ALTER TABLE plugin_headermenu ADD COLUMN ordering integer DEFAULT 0 NOT NULL;
commit e3ef7e0aa6ec1a92234e8c8c23ceb553cc2ff5f1
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 17:56:38 2012 +0100
add support for iframe in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index a31060f..665e460 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -30,6 +30,7 @@ $name = strip_tags(getStringFromRequest('name'));
$linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
$type = getStringFromRequest('type');
+$iframed = getIntFromRequest('iframeview');
$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
if (isset($group_id) && $group_id) {
@@ -60,7 +61,11 @@ if (!empty($name) && !empty($linkmenu)) {
case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
- if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
+ $linktype = 'URL';
+ if ($iframed) {
+ $linktype = 'iframe';
+ }
+ if ($headermenu->addLink($link, $name, $description, $linkmenu, $linktype)) {
$feedback = _('Task succeeded.');
session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index d9debd0..93efda2 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -147,10 +147,10 @@ class headermenuPlugin extends Plugin {
break;
}
case 'iframe': {
- $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframeview&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
- if ($params['toptab'] == '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
+ if ($params['toptab'] == '/plugins/'.$this->name.'/?type=iframeview&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
$params['selected'] = (count($params['DIRS'])-1);
}
break;
@@ -286,7 +286,8 @@ class headermenuPlugin extends Plugin {
* @return string the html code
*/
function iframeView($pageid) {
- return true;
+ $link = $this->getLink($pageid);
+ return '<iframe src="'.rtrim($link['url'],'/').'" frameborder="0" height="600px" width="100%"></iframe>';
}
/**
@@ -309,16 +310,17 @@ class headermenuPlugin extends Plugin {
$returned = true;
break;
}
- case 'pageview': {
+ case 'pageview':
+ case 'iframeview': {
$link = $this->getLink($this->pageid);
$group_id = getIntFromRequest('group_id');
if ($group_id) {
- $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'&pageid='.$this->pageid;
+ $params['toptab'] = '/plugins/headermenu/?type='.$type.'&group_id='.$group_id.'&pageid='.$this->pageid;
$params['group'] = $group_id;
$params['title'] = $link['name'];
site_project_header($params);
} else {
- site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type=pageview&pageid='.$this->pageid));
+ site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type='.$type.'&pageid='.$this->pageid));
}
$returned = true;
break;
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 08a5691..72c7018 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -35,7 +35,8 @@ jQuery(document).ready(function() {
inputHtmlCode: jQuery('#typemenu_htmlcode'),
inputURL: jQuery('#typemenu_url'),
trHtmlCode: jQuery('#htmlcode'),
- trUrlCode: jQuery('#urlcode')
+ trUrlCode: jQuery('#urlcode'),
+ trIframeView: jQuery('#iframe'),
});
});
@@ -51,7 +52,11 @@ if (sizeof($linksArray)) {
foreach ($linksArray as $link) {
echo '<tr>';
if (strlen($link['url']) > 0) {
- echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
+ echo '<td>'._('URL');
+ if ($link['linktype'] == 'iframe') {
+ echo ' '._('displayed as iframe');
+ }
+ echo ' ('.htmlspecialchars($link['url']).')</td>';
} else {
echo '<td>'._('static html code').'</td>';
}
@@ -103,6 +108,8 @@ if (!$GLOBALS['editor_was_set_up']) {
unset($GLOBALS['editor_was_set_up']);
echo '</td></tr><tr id="urlcode" >';
echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
+echo '</td></tr><tr id="iframe" >';
+echo '<td colspan="2" ><input name="iframeview" type="checkbox" value="1" />Display URL as iframe.</td>';
echo '</tr><tr>';
echo '<td>';
echo '<input type="hidden" name="linkmenu" value="groupmenu" />';
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index 7418170..1f053ea 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -70,6 +70,13 @@ switch ($type) {
echo $headermenu->pageView($pageid);
break;
}
+ case 'iframeview': {
+ $pageid = getIntFromRequest('pageid');
+ $headermenu->pageid = $pageid;
+ $headermenu->getHeader($type);
+ echo $headermenu->iframeView($pageid);
+ break;
+ }
case 'projectadmin': {
if (!session_loggedin()) {
exit_not_logged_in();
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 8d91e36..68aee35 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -85,11 +85,13 @@ GroupMenuController.prototype =
htmlCodeView: function() {
this.params.trHtmlCode.show();
this.params.trUrlCode.hide();
+ this.params.trIframeView.hide();
},
htmlUrlView: function() {
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
+ this.params.trIframeView.show();
},
inputHtmlCodeView: function() {
commit b14742c3b98ea23256f1c56cd481d92584291686
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 15:23:15 2012 +0100
fix selected entry in html code for groupmenu
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 2aa7f74..d9debd0 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -141,12 +141,18 @@ class headermenuPlugin extends Plugin {
$params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
+ if ($params['toptab'] == '/plugins/'.$this->name.'/?type=pageview&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
+ $params['selected'] = (count($params['DIRS'])-1);
+ }
break;
}
case 'iframe': {
$params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
+ if ($params['toptab'] == '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
+ $params['selected'] = (count($params['DIRS'])-1);
+ }
break;
}
}
@@ -307,11 +313,9 @@ class headermenuPlugin extends Plugin {
$link = $this->getLink($this->pageid);
$group_id = getIntFromRequest('group_id');
if ($group_id) {
- $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'pageid='.$this->pageid;
+ $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'&pageid='.$this->pageid;
$params['group'] = $group_id;
$params['title'] = $link['name'];
- $params['pagename'] = $link['name'];
- $params['sectionvals'] = array(group_getname($group_id));
site_project_header($params);
} else {
site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type=pageview&pageid='.$this->pageid));
commit dc3f2903587ec46ec93eb097570369dfcbb91b5c
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 11:27:22 2012 +0100
add support for html page in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 2bbb69c..a31060f 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -56,7 +56,8 @@ if (!empty($name) && !empty($linkmenu)) {
session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
break;
}
- case 'outermenu': {
+ case 'outermenu':
+ case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
@@ -81,21 +82,6 @@ if (!empty($name) && !empty($linkmenu)) {
$warning_msg = _('Missing Link URL or Html Code.');
session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
}
- case 'groupmenu': {
- if (!empty($link)) {
- if (util_check_url($link)) {
- if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
- $feedback = _('Task succeeded.');
- session_redirect($redirect_url.'&feedback='.urlencode($feedback));
- }
- $error_msg = _('Task failed');
- session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
- } else {
- $error_msg = _('Provided Link is not a valid URL.');
- session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
- }
- }
- }
}
}
$warning_msg = _('No link to create or name missing.');
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 4a9b0da..2aa7f74 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -138,13 +138,13 @@ class headermenuPlugin extends Plugin {
break;
}
case 'htmlcode': {
- $params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&pageid='.$link['id_headermenu'];
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
break;
}
case 'iframe': {
- $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&pageid='.$link['id_headermenu'];
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
break;
@@ -305,7 +305,17 @@ class headermenuPlugin extends Plugin {
}
case 'pageview': {
$link = $this->getLink($this->pageid);
- site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?pageview&pageid='.$this->pageid));
+ $group_id = getIntFromRequest('group_id');
+ if ($group_id) {
+ $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'pageid='.$this->pageid;
+ $params['group'] = $group_id;
+ $params['title'] = $link['name'];
+ $params['pagename'] = $link['name'];
+ $params['sectionvals'] = array(group_getname($group_id));
+ site_project_header($params);
+ } else {
+ site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type=pageview&pageid='.$this->pageid));
+ }
$returned = true;
break;
}
commit b8a7855ee06bfb2160fe487a7c5bc565b2e78da2
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 30 20:38:42 2012 +0100
start htmlcode support in groupmenu
diff --git a/src/plugins/headermenu/action/updateLinkStatus.php b/src/plugins/headermenu/action/updateLinkStatus.php
index ff482e8..03cce2a 100644
--- a/src/plugins/headermenu/action/updateLinkStatus.php
+++ b/src/plugins/headermenu/action/updateLinkStatus.php
@@ -22,18 +22,23 @@
*/
global $headermenu;
+global $type;
+global $group_id;
-session_require_global_perm('forge_admin');
$idLink = getIntFromRequest('linkid');
$linkStatus = getIntFromRequest('linkstatus');
+$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+}
if (!empty($idLink)) {
if ($headermenu->updateLinkStatus($idLink, $linkStatus)) {
$feedback = _('Link Status updated');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link or status to be updated.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index b2fe5f7..4a9b0da 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -311,6 +311,7 @@ class headermenuPlugin extends Plugin {
}
case 'projectadmin': {
html_use_jquery();
+ use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
$returned = true;
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 0a04884..08a5691 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -27,6 +27,20 @@ global $group_id;
?>
+<script language="Javascript" type="text/javascript">//<![CDATA[
+var controllerGroupMenu;
+
+jQuery(document).ready(function() {
+ controllerGroupMenu = new GroupMenuController({
+ inputHtmlCode: jQuery('#typemenu_htmlcode'),
+ inputURL: jQuery('#typemenu_url'),
+ trHtmlCode: jQuery('#htmlcode'),
+ trUrlCode: jQuery('#urlcode')
+ });
+});
+
+//]]></script>
+
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
if (sizeof($linksArray)) {
@@ -67,7 +81,27 @@ echo '<td>'._('Displayed Name').'</td><td><input name="name" type="text" maxsize
echo '</tr><tr>';
echo '<td>'._('Description').'</td><td><input name="description" type="text" maxsize="255" /></td>';
echo '</tr><tr>';
-echo '<tr id="urlcode" >';
+echo '<td>'._('Menu Type').'</td><td>';
+$texts = array('URL', 'New Page');
+$vals = array('url', 'htmlcode');
+$select_name = 'typemenu';
+echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, 'url', false);
+echo '</td>';
+echo '</tr><tr id="htmlcode" style="display:none">';
+echo '<td>'._('Your HTML Code.').'</td><td>';
+$GLOBALS['editor_was_set_up'] = false;
+$body = _('Just paste your code here...');
+$params['name'] = 'htmlcode';
+$params['body'] = $body;
+$params['width'] = "800";
+$params['height'] = "500";
+$params['user_id'] = user_getid();
+plugin_hook("text_editor", $params);
+if (!$GLOBALS['editor_was_set_up']) {
+ echo '<textarea name="htmlcode" rows="5" cols="80">'.$body.'</textarea>';
+}
+unset($GLOBALS['editor_was_set_up']);
+echo '</td></tr><tr id="urlcode" >';
echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
echo '</tr><tr>';
echo '<td>';
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index ef9a7ed..8d91e36 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -32,6 +32,12 @@ HeaderMenuController = function(params) {
this.initializeView();
};
+GroupMenuController = function(params) {
+ this.params = params;
+ this.bindControls();
+ this.initializeView();
+};
+
HeaderMenuController.prototype =
{
bindControls: function() {
@@ -63,6 +69,34 @@ HeaderMenuController.prototype =
}
};
+GroupMenuController.prototype =
+{
+ bindControls: function() {
+ this.params.inputHtmlCode.click(jQuery.proxy(this, "htmlCodeView"));
+ this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
+ },
+
+ initializeView: function() {
+ this.params.trHtmlCode.hide();
+ this.params.trUrlCode.show();
+ this.params.inputURL.attr('checked', 'checked');
+ },
+
+ htmlCodeView: function() {
+ this.params.trHtmlCode.show();
+ this.params.trUrlCode.hide();
+ },
+
+ htmlUrlView: function() {
+ this.params.trHtmlCode.hide();
+ this.params.trUrlCode.show();
+ },
+
+ inputHtmlCodeView: function() {
+ this.params.inputHtmlCode.prop('disabled', false);
+ }
+};
+
EditHeaderMenuController.prototype =
{
bindControls: function() {
commit b41cc64626e4e2fb6744e03f6bc39850b184bbed
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 30 19:56:25 2012 +0100
support delete link in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 9143385..2bbb69c 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -31,6 +31,11 @@ $linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
$type = getStringFromRequest('type');
+$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+}
+
if (!empty($name) && !empty($linkmenu)) {
switch ($linkmenu) {
case 'headermenu': {
@@ -38,17 +43,17 @@ if (!empty($name) && !empty($linkmenu)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
}
$warning_msg = _('Missing Link URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+ session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
break;
}
case 'outermenu': {
@@ -56,46 +61,42 @@ if (!empty($name) && !empty($linkmenu)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
}
if (!empty($htmlcode)) {
if ($headermenu->addLink('', $name, $description, $linkmenu, 'htmlcode', $htmlcode)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link URL or Html Code.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+ session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
}
case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
}
}
}
}
$warning_msg = _('No link to create or name missing.');
-$url = 'plugins/'.$headermenu->name.'/?type='.$type;
-if (isset($group_id)) {
- $url .= '&group_id='.$group_id;
-}
-session_redirect($url.'&warning_msg='.urlencode($warning_msg));
+session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/action/deleteLink.php b/src/plugins/headermenu/action/deleteLink.php
index 4859571..8cf9ecc 100644
--- a/src/plugins/headermenu/action/deleteLink.php
+++ b/src/plugins/headermenu/action/deleteLink.php
@@ -22,17 +22,22 @@
*/
global $headermenu;
+global $type;
+global $group_id;
-session_require_global_perm('forge_admin');
$idLink = getIntFromRequest('linkid');
+$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+}
if (!empty($idLink)) {
if ($headermenu->deleteLink($idLink)) {
$feedback = _('Link deleted');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link to be deleted.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index e7335cb..b2fe5f7 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -62,7 +62,7 @@ class headermenuPlugin extends Plugin {
$project = group_get_object($group_id);
if ($project->usesPlugin($this->name)) {
echo '<p>'.util_make_link('/plugins/headermenu/?type=projectadmin&group_id='.$group_id,
- _('Project HeaderMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
+ _('Project GroupMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
}
break;
}
@@ -311,6 +311,7 @@ class headermenuPlugin extends Plugin {
}
case 'projectadmin': {
html_use_jquery();
+ use_javascript('/js/sortable.js');
site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
$returned = true;
break;
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 299cdee..0a04884 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -29,6 +29,36 @@ global $group_id;
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
+if (sizeof($linksArray)) {
+ echo $HTML->boxTop(_('Manage available links'));
+ $tabletop = array(_('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('','','','','unsortable');
+ echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
+ foreach ($linksArray as $link) {
+ echo '<tr>';
+ if (strlen($link['url']) > 0) {
+ echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
+ } else {
+ echo '<td>'._('static html code').'</td>';
+ }
+ echo '<td>'.htmlspecialchars($link['name']).'</td>';
+ echo '<td>'.htmlspecialchars($link['description']).'</td>';
+ if ($link['is_enable']) {
+ echo '<td>'.html_image('docman/validate.png', 22, 22, array('alt'=>_('link is on'), 'class'=>'tabtitle', 'title'=>_('link is on'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Desactivate this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=0">'.html_image('docman/release-document.png', 22, 22, array('alt'=>_('Desactivate this link'))). '</a>';
+ } else {
+ echo '<td>'.html_image('docman/delete-directory.png', 22, 22, array('alt'=>_('link is off'), 'class'=>'tabtitle', 'title'=>_('link is off'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Activate this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=1">'.html_image('docman/reserve-document.png', 22, 22, array('alt'=>_('Activate this link'))). '</a>';
+ }
+ echo '<a class="tabtitle-ne" title="'._('Edit this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&view=updateLinkValue&linkid='.$link['id_headermenu'].'">'.html_image('docman/edit-file.png',22,22, array('alt'=>_('Edit this link'))). '</a>';
+ echo '<a class="tabtitle-ne" title="'._('Delete this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&action=deleteLink&linkid='.$link['id_headermenu'].'">'.html_image('docman/trash-empty.png',22,22, array('alt'=>_('Delete this link'))). '</a>';
+ echo '</td>';
+ echo '</tr>';
+ }
+ echo $HTML->listTableBottom();
+ echo $HTML->boxBottom();
+ echo '</br>';
+}
echo '<form method="POST" name="addLink" action="index.php?type=projectadmin&group_id='.$group_id.'&action=addLink">';
echo '<table><tr>';
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index d0ea3eb..7418170 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -78,6 +78,7 @@ switch ($type) {
session_require_perm('project_admin', $group_id);
$action = getStringFromRequest('action');
$view = getStringFromRequest('view');
+
switch ($action) {
case 'addLink':
case 'updateLinkValue':
commit 13f7262281106ed01c3259f45119a2d6a17c994f
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 30 19:22:55 2012 +0100
support add link in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 501348d..9143385 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin : addLink action
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
@@ -22,60 +22,80 @@
*/
global $headermenu;
+global $group_id;
-session_require_global_perm('forge_admin');
$link = getStringFromRequest('link');
$description = strip_tags(getStringFromRequest('description'));
$name = strip_tags(getStringFromRequest('name'));
$linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
+$type = getStringFromRequest('type');
if (!empty($name) && !empty($linkmenu)) {
switch ($linkmenu) {
- case "headermenu": {
+ case 'headermenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
$warning_msg = _('Missing Link URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
break;
}
- case "outermenu": {
+ case 'outermenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
if (!empty($htmlcode)) {
if ($headermenu->addLink('', $name, $description, $linkmenu, 'htmlcode', $htmlcode)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link URL or Html Code.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+ }
+ case 'groupmenu': {
+ if (!empty($link)) {
+ if (util_check_url($link)) {
+ if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
+ $feedback = _('Task succeeded.');
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&feedback='.urlencode($feedback));
+ }
+ $error_msg = _('Task failed');
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ } else {
+ $error_msg = _('Provided Link is not a valid URL.');
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ }
+ }
}
}
}
$warning_msg = _('No link to create or name missing.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+$url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id)) {
+ $url .= '&group_id='.$group_id;
+}
+session_redirect($url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 7c6ee9c..e7335cb 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -27,9 +27,9 @@ class headermenuPlugin extends Plugin {
var $pageid;
function __construct() {
- $this->Plugin() ;
- $this->name = 'headermenu' ;
- $this->text = 'headermenu' ;
+ $this->Plugin();
+ $this->name = 'headermenu';
+ $this->text = 'headermenu';
$this->_addHook('headermenu');
$this->_addHook('site_admin_option_hook');
$this->_addHook('outermenu');
@@ -39,7 +39,7 @@ class headermenuPlugin extends Plugin {
$this->_addHook('project_admin_plugins');
}
- function CallHook ($hookname, &$params) {
+ function CallHook($hookname, &$params) {
switch ($hookname) {
case 'headermenu': {
$this->getHeaderLink();
@@ -332,6 +332,18 @@ class headermenuPlugin extends Plugin {
}
/**
+ * getProjectAdminView - display the Project Admin View
+ *
+ * @return bool true
+ */
+ function getProjectAdminView() {
+ global $gfplugins;
+ $user = session_get_user();
+ include $gfplugins.$this->name.'/view/admin/viewProjectConfiguration.php';
+ return true;
+ }
+
+ /**
* getPluginDescription - display the description of this plugin in pluginman admin page
*
* @return string the description
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index f4b162c..eaa3252 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenuPlugin Class
+ * headermenu : viewGlobalConfiguration page
*
* Copyright 2012 Franck Villaume - TrivialDev
* http://fusionforge.org
@@ -24,7 +24,6 @@
global $HTML;
global $headermenu;
-session_require_global_perm('forge_admin');
?>
<script language="Javascript" type="text/javascript">//<![CDATA[
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
new file mode 100644
index 0000000..299cdee
--- /dev/null
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * headermenu : viewProjectConfiguration page
+ *
+ * Copyright 2012 Franck Villaume - TrivialDev
+ * http://fusionforge.org
+ *
+ * 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.
+ */
+
+global $HTML;
+global $headermenu;
+global $group_id;
+
+?>
+
+<?php
+$linksArray = $headermenu->getAvailableLinks('groupmenu');
+
+echo '<form method="POST" name="addLink" action="index.php?type=projectadmin&group_id='.$group_id.'&action=addLink">';
+echo '<table><tr>';
+echo $HTML->boxTop(_('Add a new link'));
+echo '<td>'._('Displayed Name').'</td><td><input name="name" type="text" maxsize="255" /></td>';
+echo '</tr><tr>';
+echo '<td>'._('Description').'</td><td><input name="description" type="text" maxsize="255" /></td>';
+echo '</tr><tr>';
+echo '<tr id="urlcode" >';
+echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
+echo '</tr><tr>';
+echo '<td>';
+echo '<input type="hidden" name="linkmenu" value="groupmenu" />';
+echo '<input type="submit" value="'. _('Add') .'" />';
+echo '</td>';
+echo $HTML->boxBottom();
+echo '</tr></table>';
+echo '</form>';
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index da2d981..d0ea3eb 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin : index page
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
@@ -76,8 +76,29 @@ switch ($type) {
}
$group_id = getIntFromRequest('group_id');
session_require_perm('project_admin', $group_id);
+ $action = getStringFromRequest('action');
+ $view = getStringFromRequest('view');
+ switch ($action) {
+ case 'addLink':
+ case 'updateLinkValue':
+ case 'deleteLink':
+ case 'updateLinkStatus': {
+ global $gfplugins;
+ include($gfplugins.$headermenu->name.'/action/'.$action.'.php');
+ break;
+ }
+ }
$headermenu->getHeader($type);
-
+ switch ($view) {
+ case 'updateLinkValue':
+ global $gfplugins;
+ include($gfplugins.$headermenu->name.'/view/admin/'.$view.'.php');
+ break;
+ default:
+ $headermenu->getProjectAdminView();
+ break;
+ }
+ break;
}
}
commit 5b3fbc221f096665e1a3e967a4495d2a9453a320
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 23 21:28:40 2012 +0100
sync CHANGES
diff --git a/src/CHANGES b/src/CHANGES
index 97eddb7..630233a 100644
--- a/src/CHANGES
+++ b/src/CHANGES
@@ -15,7 +15,8 @@ FusionForge-5.3:
* Docman: add report view as in FRS (TrivialDev)
Plugins:
-* headermenu: new plugin to handle links in headermenu or outermenu (TrivialDev)
+* headermenu: new plugin to handle links in headermenu, outermenu & groupmenu
+ replace the old extratabs plugin (TrivialDev)
* scmgit: add browsing capability for user personal repository (TrivialDev)
* scmgit: basic activity support (TrivialDev).
* scmgit: multiple repositories per project (developed for/sponsored by AdaCore)
commit 6d60197369a9b316e091a432694dcf4e7ae4a415
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sat Dec 22 20:28:10 2012 +0100
start implement groupmenu hook in headermenu
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 1d8fd29..7c6ee9c 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -33,6 +33,10 @@ class headermenuPlugin extends Plugin {
$this->_addHook('headermenu');
$this->_addHook('site_admin_option_hook');
$this->_addHook('outermenu');
+ $this->_addHook('groupisactivecheckbox'); // The "use ..." checkbox in editgroupinfo
+ $this->_addHook('groupisactivecheckboxpost');
+ $this->_addHook('groupmenu');
+ $this->_addHook('project_admin_plugins');
}
function CallHook ($hookname, &$params) {
@@ -49,6 +53,19 @@ class headermenuPlugin extends Plugin {
echo '<li>'.$this->getAdminOptionLink().'</li>';
break;
}
+ case 'groupmenu': {
+ $this->getGroupLink($params);
+ break;
+ }
+ case 'project_admin_plugins': {
+ $group_id = $params['group_id'];
+ $project = group_get_object($group_id);
+ if ($project->usesPlugin($this->name)) {
+ echo '<p>'.util_make_link('/plugins/headermenu/?type=projectadmin&group_id='.$group_id,
+ _('Project HeaderMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
+ }
+ break;
+ }
}
}
@@ -104,6 +121,41 @@ class headermenuPlugin extends Plugin {
}
/**
+ * getGroupLink - update the links before generate the tab.
+ *
+ * @param array hook params array
+ * @return bool true...
+ */
+ function getGroupLink($params) {
+ $availableLinks = $this->getAvailableLinks('groupmenu');
+ foreach ($availableLinks as $link) {
+ if ($link['is_enable']) {
+ switch ($link['linktype']) {
+ case 'url': {
+ $params['DIRS'][] = $link['url'];
+ $params['TITLES'][] = $link['name'];
+ $params['TOOLTIPS'][] = $link['description'];
+ break;
+ }
+ case 'htmlcode': {
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&pageid='.$link['id_headermenu'];
+ $params['TITLES'][] = $link['name'];
+ $params['TOOLTIPS'][] = $link['description'];
+ break;
+ }
+ case 'iframe': {
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&pageid='.$link['id_headermenu'];
+ $params['TITLES'][] = $link['name'];
+ $params['TOOLTIPS'][] = $link['description'];
+ break;
+ }
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
* getAvailableLinks - get all the links from the db of certain kind
*
* @param string the type of menu links search in db
@@ -222,6 +274,16 @@ class headermenuPlugin extends Plugin {
}
/**
+ * iframeView - display the iframe
+ *
+ * @param int the iframe id
+ * @return string the html code
+ */
+ function iframeView($pageid) {
+ return true;
+ }
+
+ /**
* getHeader - initialize header and js
*
* @param string type : user, project, globaladmin (aka group)
@@ -247,6 +309,12 @@ class headermenuPlugin extends Plugin {
$returned = true;
break;
}
+ case 'projectadmin': {
+ html_use_jquery();
+ site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
+ $returned = true;
+ break;
+ }
}
return $returned;
}
@@ -269,6 +337,6 @@ class headermenuPlugin extends Plugin {
* @return string the description
*/
function getPluginDescription() {
- return _('Get the ability to set new links next to the login menu (headermenu) or in the main menu (outermenu).');
+ return _('Get the ability to set new links next to the login menu (headermenu), in the main menu (outermenu) or in the project menu (groupmenu).');
}
}
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index 2eaabcb..da2d981 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -70,6 +70,15 @@ switch ($type) {
echo $headermenu->pageView($pageid);
break;
}
+ case 'projectadmin': {
+ if (!session_loggedin()) {
+ exit_not_logged_in();
+ }
+ $group_id = getIntFromRequest('group_id');
+ session_require_perm('project_admin', $group_id);
+ $headermenu->getHeader($type);
+
+ }
}
site_project_footer(array());
commit 6156169f1c31de2ffeaee1dafe85a0899b1ae6ab
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Jan 14 23:44:56 2013 +0100
modify CHANGES entry
diff --git a/src/CHANGES b/src/CHANGES
index 630233a..8dee1ba 100644
--- a/src/CHANGES
+++ b/src/CHANGES
@@ -15,8 +15,7 @@ FusionForge-5.3:
* Docman: add report view as in FRS (TrivialDev)
Plugins:
-* headermenu: new plugin to handle links in headermenu, outermenu & groupmenu
- replace the old extratabs plugin (TrivialDev)
+* headermenu: new plugin to handle links in headermenu, outermenu & groupmenu (TrivialDev)
* scmgit: add browsing capability for user personal repository (TrivialDev)
* scmgit: basic activity support (TrivialDev).
* scmgit: multiple repositories per project (developed for/sponsored by AdaCore)
commit 6fc185ab350b26a08d3839a2fadabf87e04fab43
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Jan 14 22:57:18 2013 +0100
better ajax handling
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index f6172f8..a7dde3b 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -41,6 +41,10 @@ jQuery(document).ready(function() {
tableHeaTbLink: jQuery('.sortable_headermenu_listlinks tbody'),
validOutButton: jQuery('#linkorderoutervalidatebutton'),
validHeaButton: jQuery('#linkorderheadervalidatebutton'),
+ validMessOut: '<?php echo _('Outermenu Link Order successfully validated') ?>',
+ validMessHea: '<?php echo _('Headermenu Link Order successfully validated') ?>',
+ errMessOut: '<?php echo _('Error in Outermenu Link Order validation') ?>',
+ errMessHea: '<?php echo _('Error in Headermenu Link Order validation') ?>',
});
});
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 75d671c..d119f70 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -40,7 +40,9 @@ jQuery(document).ready(function() {
tableTbodyLink: jQuery('#sortable tbody'),
validateButton: jQuery('#linkordervalidatebutton'),
groupId: '<?php echo $group_id ?>',
- headerMenuUrl: '<?php util_make_uri("/plugins/headermenu") ?>'
+ headerMenuUrl: '<?php util_make_uri("/plugins/headermenu") ?>',
+ validMessage: '<?php echo _('Link Order successfully validated') ?>',
+ errorMessage: '<?php echo _('Error in Link Order validation') ?>',
});
});
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 608bf4c..77ef7d8 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -102,26 +102,44 @@ HeaderMenuController.prototype =
validateOutLinkOrder: function() {
var linkOrder = jQuery(".sortable_outermenu_listlinks tbody").sortable('toArray').toString();
- jQuery.get(this.params.headerMenuUrl, {
- action: 'validateOrder',
- linkorder: linkOrder,
- type: 'globaladmin'
- });
- jQuery('#validateLinkFeedback').remove();
- jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Outermenu Link Order successfully validated</p>');
- this.params.validOutButton.hide();
+ jQuery.get(this.params.headerMenuUrl,
+ {
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'globaladmin'
+ }
+ jQuery.proxy(function(data) {
+ jQuery('.feedback').remove();
+ jQuery('.error').remove();
+ if (data == 0) {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="feedback">'+this.params.validMessOut+'</p>');
+ } else {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="error">'+this.params.errMessOut+'</p>');
+ }
+ this.params.validateButton.hide();
+ }, this)
+ );
},
validateHeaLinkOrder: function() {
var linkOrder = jQuery(".sortable_headermenu_listlinks tbody").sortable('toArray').toString();
- jQuery.get(this.params.headerMenuUrl, {
- action: 'validateOrder',
- linkorder: linkOrder,
- type: 'globaladmin'
- });
- jQuery('#validateLinkFeedback').remove();
- jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Headermenu Link Order successfully validated</p>');
- this.params.validHeaButton.hide();
+ jQuery.get(this.params.headerMenuUrl,
+ {
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'globaladmin'
+ }
+ jQuery.proxy(function(data) {
+ jQuery('.feedback').remove();
+ jQuery('.error').remove();
+ if (data == 0) {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="feedback">'+this.params.validMessHea+'</p>');
+ } else {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="error">'+this.params.errMessHea+'</p>');
+ }
+ this.params.validateButton.hide();
+ }, this)
+ );
},
};
@@ -172,15 +190,25 @@ GroupMenuController.prototype =
validateProjectLinkOrder: function() {
var linkOrder = jQuery("#sortable tbody").sortable('toArray').toString();
- jQuery.get(this.params.headerMenuUrl, {
- group_id: this.params.groupId,
- action: 'validateOrder',
- linkorder: linkOrder,
- type: 'projectadmin'
- });
- jQuery('#validateLinkFeedback').remove();
- jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Link Order successfully validated</p>');
- this.params.validateButton.hide();
+ jQuery.get(this.params.headerMenuUrl,
+ {
+ group_id: this.params.groupId,
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'projectadmin'
+ },
+ jQuery.proxy(function(data) {
+ jQuery('.feedback').remove();
+ jQuery('.error').remove();
+ if (data == 0) {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="feedback">'+this.params.validMessage+'</p>');
+ } else {
+ jQuery('#maindiv').prepend('<p id="validateLinkMessage" class="error">'+this.params.errorMessage+'</p>');
+ }
+ this.params.validateButton.hide();
+ }, this)
+ );
+
},
};
commit f80aac50f0a246ad1705b8be2456f1cb7ffc3baa
Merge: 356fb8d 499bb4b
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Jan 14 21:00:53 2013 +0100
Merge remote-tracking branch 'origin/master' into headermenu
commit 356fb8d91329bd65707005944cb350204a03d749
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Jan 6 22:32:40 2013 +0100
support ordering in globaladmin view
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index d3a6da4..f6172f8 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -2,7 +2,7 @@
/**
* headermenu : viewGlobalConfiguration page
*
- * Copyright 2012 Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -37,21 +37,29 @@ jQuery(document).ready(function() {
inputOuter: jQuery('#linkmenu_outermenu'),
trHtmlCode: jQuery('#htmlcode'),
trUrlCode: jQuery('#urlcode'),
- tableTbodyLink: jQuery('#sortable tbody')
+ tableOutTbLink: jQuery('.sortable_outermenu_listlinks tbody'),
+ tableHeaTbLink: jQuery('.sortable_headermenu_listlinks tbody'),
+ validOutButton: jQuery('#linkorderoutervalidatebutton'),
+ validHeaButton: jQuery('#linkorderheadervalidatebutton'),
});
});
//]]></script>
<?php
-$linksArray = $headermenu->getAvailableLinks('headermenu');
-if (sizeof($linksArray)) {
+$linksHeaderMenuArray = $headermenu->getAvailableLinks('headermenu');
+$linksOuterMenuArray = $headermenu->getAvailableLinks('outermenu');
+
+if (sizeof($linksHeaderMenuArray) || sizeof($linksOuterMenuArray)) {
+ echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table below and save order. Please note that those extra tabs can only appear after the standard tabs. And you can only move them inside the set of extra tabs.').'</p>';
+}
+if (sizeof($linksHeaderMenuArray)) {
echo $HTML->boxTop(_('Manage available links in headermenu'));
- $tabletop = array( _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('','','','','unsortable');
+ $tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('', '', '', '', '', 'unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
- foreach ($linksArray as $link) {
- echo '<tr>';
+ foreach ($linksHeaderMenuArray as $link) {
+ echo '<tr id="'.$link['id_headermenu'].'" ><td>'.$link['ordering'].'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
} else {
@@ -73,17 +81,20 @@ if (sizeof($linksArray)) {
}
echo $HTML->listTableBottom();
echo $HTML->boxBottom();
+ echo '<input type="button" id="linkorderheadervalidatebutton" value="'._('Save Order').'" style="display:none;" />';
echo '</br>';
+} else {
+ echo '<p class="information">'._('No links available for headermenu').'</p>';
}
-$linksArray = $headermenu->getAvailableLinks('outermenu');
-if (sizeof($linksArray)) {
+
+if (sizeof($linksOuterMenuArray)) {
echo $HTML->boxTop(_('Manage available links in outermenu'));
- $tabletop = array(_('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('','','','','unsortable');
+ $tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('', '', '', '', '', 'unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_outermenu_listlinks', 'sortable', $classth);
- foreach ($linksArray as $link) {
- echo '<tr>';
+ foreach ($linksOuterMenuArray as $link) {
+ echo '<tr id="'.$link['id_headermenu'].'" ><td>'.$link['ordering'].'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
} else {
@@ -105,9 +116,13 @@ if (sizeof($linksArray)) {
}
echo $HTML->listTableBottom();
echo $HTML->boxBottom();
+ echo '<input type="button" id="linkorderoutervalidatebutton" value="'._('Save Order').'" style="display:none;" />';
echo '</br>';
+} else {
+ echo '<p class="information">'._('No links available for outermenu').'</p>';
}
+echo '<p class="information">'._('You can add specific tabs in outermenu (main tab) or headermenu (next to the login) with the form below.').'</p>';
echo '<form method="POST" name="addLink" action="index.php?type=globaladmin&action=addLink">';
echo '<table><tr>';
echo $HTML->boxTop(_('Add a new link'));
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 7ddde72..75d671c 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -52,7 +52,7 @@ if (sizeof($linksArray)) {
echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table below and save order. Please note that those extra tabs can only appear after the standard tabs. And you can only move them inside the set of extra tabs.').'</p>';
echo $HTML->boxTop(_('Manage available links'));
$tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('', '','','','','unsortable');
+ $classth = array('', '', '', '', '', 'unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
echo '<tr id="'.$link['id_headermenu'].'" ><td>'.$link['ordering'].'</td>';
@@ -81,7 +81,7 @@ if (sizeof($linksArray)) {
}
echo $HTML->listTableBottom();
echo $HTML->boxBottom();
- echo '<input type="button" id="linkordervalidatebutton" value="'._('Validate Order').'" style="display:none;" />';
+ echo '<input type="button" id="linkordervalidatebutton" value="'._('Save Order').'" style="display:none;" />';
echo '</br>';
}
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index f8b88f2..ae77ec3 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -45,7 +45,8 @@ switch ($type) {
case 'addLink':
case 'updateLinkValue':
case 'deleteLink':
- case 'updateLinkStatus': {
+ case 'updateLinkStatus':
+ case 'validateOrder': {
global $gfplugins;
include($gfplugins.$headermenu->name.'/action/'.$action.'.php');
break;
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 5ae0d34..608bf4c 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -45,6 +45,8 @@ HeaderMenuController.prototype =
this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
this.params.inputOuter.click(jQuery.proxy(this, "inputHtmlCodeView"));
this.params.inputHeader.click(jQuery.proxy(this, "initializeView"));
+ this.params.validOutButton.click(jQuery.proxy(this, "validateOutLinkOrder"));
+ this.params.validHeaButton.click(jQuery.proxy(this, "validateHeaLinkOrder"));
},
initializeView: function() {
@@ -52,11 +54,34 @@ HeaderMenuController.prototype =
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
- if (typeof(this.params.tableTbodyLink) != 'undefined') {
- this.params.tableTbodyLink.sortable({
+ if (typeof(this.params.tableOutTbLink) != 'undefined') {
+ this.params.tableOutTbLink.sortable({
update: function(event, ui) {
- jQuery(ui.item).attr("id", jQuery(ui.item).index());
- }
+ jQuery(".sortable_outermenu_listlinks tbody").children().each(function() {
+ if (jQuery(this).index() % 2 === 0) {
+ jQuery(this).attr("class", "even");
+ } else {
+ jQuery(this).attr("class", "odd");
+ }
+ jQuery(this).children(":first").text(jQuery(this).index());
+ });
+ jQuery("#linkorderoutervalidatebutton").show();
+ }
+ });
+ }
+ if (typeof(this.params.tableHeaTbLink) != 'undefined') {
+ this.params.tableHeaTbLink.sortable({
+ update: function(event, ui) {
+ jQuery(".sortable_headermenu_listlinks tbody").children().each(function() {
+ if (jQuery(this).index() % 2 === 0) {
+ jQuery(this).attr("class", "even");
+ } else {
+ jQuery(this).attr("class", "odd");
+ }
+ jQuery(this).children(":first").text(jQuery(this).index());
+ });
+ jQuery("#linkorderheadervalidatebutton").show();
+ }
});
}
},
@@ -73,7 +98,31 @@ HeaderMenuController.prototype =
inputHtmlCodeView: function() {
this.params.inputHtmlCode.prop('disabled', false);
- }
+ },
+
+ validateOutLinkOrder: function() {
+ var linkOrder = jQuery(".sortable_outermenu_listlinks tbody").sortable('toArray').toString();
+ jQuery.get(this.params.headerMenuUrl, {
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'globaladmin'
+ });
+ jQuery('#validateLinkFeedback').remove();
+ jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Outermenu Link Order successfully validated</p>');
+ this.params.validOutButton.hide();
+ },
+
+ validateHeaLinkOrder: function() {
+ var linkOrder = jQuery(".sortable_headermenu_listlinks tbody").sortable('toArray').toString();
+ jQuery.get(this.params.headerMenuUrl, {
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'globaladmin'
+ });
+ jQuery('#validateLinkFeedback').remove();
+ jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Headermenu Link Order successfully validated</p>');
+ this.params.validHeaButton.hide();
+ },
};
GroupMenuController.prototype =
@@ -81,7 +130,7 @@ GroupMenuController.prototype =
bindControls: function() {
this.params.inputHtmlCode.click(jQuery.proxy(this, "htmlCodeView"));
this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
- this.params.validateButton.click(jQuery.proxy(this, "validateLinkOrder"));
+ this.params.validateButton.click(jQuery.proxy(this, "validateProjectLinkOrder"));
},
initializeView: function() {
@@ -121,7 +170,7 @@ GroupMenuController.prototype =
this.params.inputHtmlCode.prop('disabled', false);
},
- validateLinkOrder: function() {
+ validateProjectLinkOrder: function() {
var linkOrder = jQuery("#sortable tbody").sortable('toArray').toString();
jQuery.get(this.params.headerMenuUrl, {
group_id: this.params.groupId,
commit 4b7db1ddc9540b01c2d38d2d902f6683e8b0d02b
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Jan 6 19:44:40 2013 +0100
remove useless column
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index 9e622e1..d3a6da4 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -47,12 +47,11 @@ jQuery(document).ready(function() {
$linksArray = $headermenu->getAvailableLinks('headermenu');
if (sizeof($linksArray)) {
echo $HTML->boxTop(_('Manage available links in headermenu'));
- $tabletop = array(_('Menu Location'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('', '','','','','unsortable');
+ $tabletop = array( _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
echo '<tr>';
- echo '<td>'.htmlspecialchars($link['linkmenu']).'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
} else {
@@ -80,12 +79,11 @@ if (sizeof($linksArray)) {
$linksArray = $headermenu->getAvailableLinks('outermenu');
if (sizeof($linksArray)) {
echo $HTML->boxTop(_('Manage available links in outermenu'));
- $tabletop = array(_('Menu Location'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('', '','','','','unsortable');
+ $tabletop = array(_('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_outermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
echo '<tr>';
- echo '<td>'.htmlspecialchars($link['linkmenu']).'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
} else {
commit 0676f91ca5a269efa210e5289bfe620c17fc78ff
Merge: 9e0e04d 11dbbd9
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Jan 6 18:45:21 2013 +0100
Merge remote-tracking branch 'origin/master' into headermenu
commit 9e0e04dff8611a9ef54cb1aebc15f5bf39bdcc27
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Jan 6 18:43:10 2013 +0100
add copyright
diff --git a/src/www/themes/funky/Theme.class.php b/src/www/themes/funky/Theme.class.php
index 0451a71..b484e4d 100644
--- a/src/www/themes/funky/Theme.class.php
+++ b/src/www/themes/funky/Theme.class.php
@@ -5,7 +5,7 @@
* Copyright 2010, Antoine Mercadal - Capgemini
* Copyright 2010, Marc-Etienne Vargenau, Alcatel-Lucent
* Copyright 2011, Franck Villaume - Capgemini
- * Copyright 2011 - 2012, Franck Villaume - TrivialDev
+ * Copyright 2011-2013, Franck Villaume - TrivialDev
* Copyright (C) 2011 Alain Peyrat - Alcatel-Lucent
*
* This file is part of FusionForge. FusionForge is free software;
commit 510cfd1b0071ea11194c76703f826b52931f7afc
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Jan 6 17:44:34 2013 +0100
implement backend action validateOrder
diff --git a/src/plugins/headermenu/action/deleteLink.php b/src/plugins/headermenu/action/deleteLink.php
index 8cf9ecc..3356fec 100644
--- a/src/plugins/headermenu/action/deleteLink.php
+++ b/src/plugins/headermenu/action/deleteLink.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin: deleteLink action
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
diff --git a/src/plugins/headermenu/action/updateLinkStatus.php b/src/plugins/headermenu/action/updateLinkStatus.php
index 03cce2a..b91c682 100644
--- a/src/plugins/headermenu/action/updateLinkStatus.php
+++ b/src/plugins/headermenu/action/updateLinkStatus.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin: updateLinkStatus action
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
diff --git a/src/plugins/headermenu/action/updateLinkValue.php b/src/plugins/headermenu/action/updateLinkValue.php
index caf7bd9..69679db 100644
--- a/src/plugins/headermenu/action/updateLinkValue.php
+++ b/src/plugins/headermenu/action/updateLinkValue.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin : updateLinkValue action
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
diff --git a/src/plugins/headermenu/action/deleteLink.php b/src/plugins/headermenu/action/validateOrder.php
similarity index 54%
copy from src/plugins/headermenu/action/deleteLink.php
copy to src/plugins/headermenu/action/validateOrder.php
index 8cf9ecc..b16144c 100644
--- a/src/plugins/headermenu/action/deleteLink.php
+++ b/src/plugins/headermenu/action/validateOrder.php
@@ -1,8 +1,8 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin : validateOrder action
*
- * Copyright 2012, Franck Villaume - TrivialDev
+ * Copyright 2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -19,25 +19,19 @@
* 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.
- */
+ */
global $headermenu;
-global $type;
-global $group_id;
-$idLink = getIntFromRequest('linkid');
-$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
-if (isset($group_id) && $group_id) {
- $redirect_url .= '&group_id='.$group_id;
-}
+$sysdebug_enable = false;
+
+$linksOrder = getStringFromRequest('linkorder');
+$returnValue = 1;
-if (!empty($idLink)) {
- if ($headermenu->deleteLink($idLink)) {
- $feedback = _('Link deleted');
- session_redirect($redirect_url.'&feedback='.urlencode($feedback));
- }
- $error_msg = _('Task failed');
- session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
+if ($linksOrder && strlen($linksOrder)) {
+ $linksOrderArr = explode(',', $linksOrder);
+ if ($headermenu->setLinksOrder($linksOrderArr))
+ $returnValue = 0;
}
-$warning_msg = _('Missing Link to be deleted.');
-session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
+echo $returnValue;
+exit;
\ No newline at end of file
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 69c41ac..222c3b2 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -168,7 +168,7 @@ class headermenuPlugin extends Plugin {
* @return array the available links
*/
function getAvailableLinks($linkmenu) {
- $links = db_query_params('select * FROM plugin_headermenu where linkmenu = $1 order by ordering', array($linkmenu));
+ $links = db_query_params('select * FROM plugin_headermenu where linkmenu = $1 order by ordering asc', array($linkmenu));
$availableLinks = array();
while ($arr = db_fetch_array($links)) {
$availableLinks[] = $arr;
@@ -188,6 +188,21 @@ class headermenuPlugin extends Plugin {
}
/**
+ * setLinksOrder - set the linkOrder for a set of links id
+ *
+ * @param array $linksOrder array of ordered links id
+ * @return bool success or not
+ */
+ function setLinksOrder($linksOrder) {
+ for ($i =0; $i < count($linksOrder); $i++) {
+ $res = db_query_params('update plugin_headermenu set ordering = $1 where id_headermenu = $2', array($i, $linksOrder[$i]));
+ if (!$res)
+ return false;
+ }
+ return true;
+ }
+
+ /**
* addLink - add a new valid link
*
* @param string $url the url
@@ -352,7 +367,11 @@ class headermenuPlugin extends Plugin {
html_use_jqueryui();
use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
- site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
+ $group_id = getIntFromRequest('group_id');
+ $params['toptab'] = 'admin';
+ $params['group'] = $group_id;
+ $params['title'] = _('Project groupmenu Admin');
+ site_project_header($params);
$returned = true;
break;
}
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 70af91d..7ddde72 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -2,7 +2,7 @@
/**
* headermenu : viewProjectConfiguration page
*
- * Copyright 2012 Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -49,7 +49,7 @@ jQuery(document).ready(function() {
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
if (sizeof($linksArray)) {
- echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table and save order. Please note that those extra tabs can only appear after the standard tabs. And you can only move them inside the set of extra tabs.').'</p>';
+ echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table below and save order. Please note that those extra tabs can only appear after the standard tabs. And you can only move them inside the set of extra tabs.').'</p>';
echo $HTML->boxTop(_('Manage available links'));
$tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
$classth = array('', '','','','','unsortable');
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index 1f053ea..f8b88f2 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -90,7 +90,8 @@ switch ($type) {
case 'addLink':
case 'updateLinkValue':
case 'deleteLink':
- case 'updateLinkStatus': {
+ case 'updateLinkStatus':
+ case 'validateOrder': {
global $gfplugins;
include($gfplugins.$headermenu->name.'/action/'.$action.'.php');
break;
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index d81654a..5ae0d34 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -129,7 +129,8 @@ GroupMenuController.prototype =
linkorder: linkOrder,
type: 'projectadmin'
});
- jQuery('#maindiv').prepend('<p class="feedback">Link Order successfully validated</p>');
+ jQuery('#validateLinkFeedback').remove();
+ jQuery('#maindiv').prepend('<p id="validateLinkFeedback" class="feedback">Link Order successfully validated</p>');
this.params.validateButton.hide();
},
};
commit 95e8d0dba6024c5c516ba47e4f002e9c8b2a5fed
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Jan 6 15:07:14 2013 +0100
complete support for reorder link in groupmenu
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 6cc2c60..69c41ac 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -168,7 +168,7 @@ class headermenuPlugin extends Plugin {
* @return array the available links
*/
function getAvailableLinks($linkmenu) {
- $links = db_query_params('select * FROM plugin_headermenu where linkmenu = $1', array($linkmenu));
+ $links = db_query_params('select * FROM plugin_headermenu where linkmenu = $1 order by ordering', array($linkmenu));
$availableLinks = array();
while ($arr = db_fetch_array($links)) {
$availableLinks[] = $arr;
@@ -230,6 +230,13 @@ class headermenuPlugin extends Plugin {
return false;
}
+ /**
+ * updateLinkStatus - update the link status
+ *
+ * @param int $idLink the link id
+ * @param int $linkStatus the new status of the link id
+ * @return bool success or not
+ */
function updateLinkStatus($idLink, $linkStatus) {
$res = db_query_params('update plugin_headermenu set is_enable = $1 where id_headermenu = $2', array($linkStatus, $idLink));
if ($res) {
@@ -238,6 +245,12 @@ class headermenuPlugin extends Plugin {
return false;
}
+ /**
+ * getLink - get all informations about a link
+ *
+ * @param int $idLink the link id
+ * @return array the link informations
+ */
function getLink($idLink) {
$res = db_query_params('select * from plugin_headermenu where id_headermenu = $1', array($idLink));
if (db_numrows($res) == 1) {
@@ -276,7 +289,11 @@ class headermenuPlugin extends Plugin {
*/
function pageView($pageid) {
$link = $this->getLink($pageid);
- return $link['htmlcode'];
+ if ($link) {
+ return $link['htmlcode'];
+ } else {
+ return '<p class="error" >'._('Cannot retrieve the page').'</p>';
+ }
}
/**
@@ -287,7 +304,11 @@ class headermenuPlugin extends Plugin {
*/
function iframeView($pageid) {
$link = $this->getLink($pageid);
- return '<iframe src="'.rtrim($link['url'],'/').'" frameborder="0" height="600px" width="100%"></iframe>';
+ if ($link) {
+ return '<iframe src="'.rtrim($link['url'],'/').'" frameborder="0" height="600px" width="100%"></iframe>';
+ } else {
+ return '<p class="error" >'._('Cannot retrieve the page').'</p>';
+ }
}
/**
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 810f133..70af91d 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -37,7 +37,10 @@ jQuery(document).ready(function() {
trHtmlCode: jQuery('#htmlcode'),
trUrlCode: jQuery('#urlcode'),
trIframeView: jQuery('#iframe'),
- tableTbodyLink: jQuery('#sortable tbody')
+ tableTbodyLink: jQuery('#sortable tbody'),
+ validateButton: jQuery('#linkordervalidatebutton'),
+ groupId: '<?php echo $group_id ?>',
+ headerMenuUrl: '<?php util_make_uri("/plugins/headermenu") ?>'
});
});
@@ -46,13 +49,13 @@ jQuery(document).ready(function() {
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
if (sizeof($linksArray)) {
- echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table and save order.').'</p>';
+ echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table and save order. Please note that those extra tabs can only appear after the standard tabs. And you can only move them inside the set of extra tabs.').'</p>';
echo $HTML->boxTop(_('Manage available links'));
$tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
$classth = array('', '','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
- echo '<tr id="'.$link['ordering'].'" ><td>'.$link['ordering'].'</td>';
+ echo '<tr id="'.$link['id_headermenu'].'" ><td>'.$link['ordering'].'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL');
if ($link['linktype'] == 'iframe') {
@@ -78,9 +81,11 @@ if (sizeof($linksArray)) {
}
echo $HTML->listTableBottom();
echo $HTML->boxBottom();
+ echo '<input type="button" id="linkordervalidatebutton" value="'._('Validate Order').'" style="display:none;" />';
echo '</br>';
}
+echo '<p class="information">'._('You can add your own tabs in the menu bar with the form below.').'</p>';
echo '<form method="POST" name="addLink" action="index.php?type=projectadmin&group_id='.$group_id.'&action=addLink">';
echo '<table><tr>';
echo $HTML->boxTop(_('Add a new link'));
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 0da2b5c..d81654a 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -81,6 +81,7 @@ GroupMenuController.prototype =
bindControls: function() {
this.params.inputHtmlCode.click(jQuery.proxy(this, "htmlCodeView"));
this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
+ this.params.validateButton.click(jQuery.proxy(this, "validateLinkOrder"));
},
initializeView: function() {
@@ -91,14 +92,14 @@ GroupMenuController.prototype =
this.params.tableTbodyLink.sortable({
update: function(event, ui) {
jQuery("#sortable tbody").children().each(function() {
- jQuery(this).attr("id", jQuery(this).index())
- if (jQuery(this).attr("id") % 2 === 0) {
+ if (jQuery(this).index() % 2 === 0) {
jQuery(this).attr("class", "even");
} else {
jQuery(this).attr("class", "odd");
}
- jQuery(this).children(":first").text(jQuery(this).attr("id"));
+ jQuery(this).children(":first").text(jQuery(this).index());
});
+ jQuery("#linkordervalidatebutton").show();
}
});
}
@@ -118,7 +119,19 @@ GroupMenuController.prototype =
inputHtmlCodeView: function() {
this.params.inputHtmlCode.prop('disabled', false);
- }
+ },
+
+ validateLinkOrder: function() {
+ var linkOrder = jQuery("#sortable tbody").sortable('toArray').toString();
+ jQuery.get(this.params.headerMenuUrl, {
+ group_id: this.params.groupId,
+ action: 'validateOrder',
+ linkorder: linkOrder,
+ type: 'projectadmin'
+ });
+ jQuery('#maindiv').prepend('<p class="feedback">Link Order successfully validated</p>');
+ this.params.validateButton.hide();
+ },
};
EditHeaderMenuController.prototype =
diff --git a/src/www/themes/funky/Theme.class.php b/src/www/themes/funky/Theme.class.php
index f234281..0451a71 100644
--- a/src/www/themes/funky/Theme.class.php
+++ b/src/www/themes/funky/Theme.class.php
@@ -444,7 +444,10 @@ class Theme extends Layout {
jQuery.noConflict();
jQuery(window).load(function(){
jQuery(".quicknews").hide();
+ setTimeout("jQuery('.feedback').hide('slow')", 5000);
+ setInterval(function() {
setTimeout("jQuery('.feedback').hide('slow')", 5000);
+ }, 5000);
});
//]]></script>
<?php
commit bf6274fedc2bf22c8a6fb8cc2415be5ff0a813d0
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sat Jan 5 13:32:10 2013 +0100
add support for reorder in js controler
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index f200b60..810f133 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -52,7 +52,7 @@ if (sizeof($linksArray)) {
$classth = array('', '','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
- echo '<tr><td>'.$link['ordering'].'</td>';
+ echo '<tr id="'.$link['ordering'].'" ><td>'.$link['ordering'].'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL');
if ($link['linktype'] == 'iframe') {
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index eb11f3d..0da2b5c 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -53,7 +53,11 @@ HeaderMenuController.prototype =
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
if (typeof(this.params.tableTbodyLink) != 'undefined') {
- this.params.tableTbodyLink.sortable();
+ this.params.tableTbodyLink.sortable({
+ update: function(event, ui) {
+ jQuery(ui.item).attr("id", jQuery(ui.item).index());
+ }
+ });
}
},
@@ -84,7 +88,19 @@ GroupMenuController.prototype =
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
if (typeof(this.params.tableTbodyLink) != 'undefined') {
- this.params.tableTbodyLink.sortable();
+ this.params.tableTbodyLink.sortable({
+ update: function(event, ui) {
+ jQuery("#sortable tbody").children().each(function() {
+ jQuery(this).attr("id", jQuery(this).index())
+ if (jQuery(this).attr("id") % 2 === 0) {
+ jQuery(this).attr("class", "even");
+ } else {
+ jQuery(this).attr("class", "odd");
+ }
+ jQuery(this).children(":first").text(jQuery(this).attr("id"));
+ });
+ }
+ });
}
},
commit ee21d1af607f69e77f2c286741bb8f2ed8b8dca5
Merge: 863f412 b8095e7
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sat Jan 5 09:57:08 2013 +0100
Merge branch 'headermenu' of git+ssh://fusionforge.org/scmrepos/git/fusionforge/users/nerville into headermenu
commit 863f4122d1326a5a84d2d4a7b3c98d16982d3d56
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 20:47:10 2013 +0100
add notice and reorg display in global
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index eaa3252..9e622e1 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -36,16 +36,17 @@ jQuery(document).ready(function() {
inputHeader: jQuery('#linkmenu_headermenu'),
inputOuter: jQuery('#linkmenu_outermenu'),
trHtmlCode: jQuery('#htmlcode'),
- trUrlCode: jQuery('#urlcode')
- });
+ trUrlCode: jQuery('#urlcode'),
+ tableTbodyLink: jQuery('#sortable tbody')
+ });
});
//]]></script>
<?php
-$linksArray = $headermenu->getAllAvailableLinks();
+$linksArray = $headermenu->getAvailableLinks('headermenu');
if (sizeof($linksArray)) {
- echo $HTML->boxTop(_('Manage available links'));
+ echo $HTML->boxTop(_('Manage available links in headermenu'));
$tabletop = array(_('Menu Location'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
$classth = array('', '','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
@@ -76,6 +77,39 @@ if (sizeof($linksArray)) {
echo '</br>';
}
+$linksArray = $headermenu->getAvailableLinks('outermenu');
+if (sizeof($linksArray)) {
+ echo $HTML->boxTop(_('Manage available links in outermenu'));
+ $tabletop = array(_('Menu Location'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('', '','','','','unsortable');
+ echo $HTML->listTableTop($tabletop, false, 'sortable_outermenu_listlinks', 'sortable', $classth);
+ foreach ($linksArray as $link) {
+ echo '<tr>';
+ echo '<td>'.htmlspecialchars($link['linkmenu']).'</td>';
+ if (strlen($link['url']) > 0) {
+ echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
+ } else {
+ echo '<td>'._('static html code').'</td>';
+ }
+ echo '<td>'.htmlspecialchars($link['name']).'</td>';
+ echo '<td>'.htmlspecialchars($link['description']).'</td>';
+ if ($link['is_enable']) {
+ echo '<td>'.html_image('docman/validate.png', 22, 22, array('alt'=>_('link is on'), 'class'=>'tabtitle', 'title'=>_('link is on'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Desactivate this link').'" href="index.php?type=globaladmin&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=0">'.html_image('docman/release-document.png', 22, 22, array('alt'=>_('Desactivate this link'))). '</a>';
+ } else {
+ echo '<td>'.html_image('docman/delete-directory.png', 22, 22, array('alt'=>_('link is off'), 'class'=>'tabtitle', 'title'=>_('link is off'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Activate this link').'" href="index.php?type=globaladmin&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=1">'.html_image('docman/reserve-document.png', 22, 22, array('alt'=>_('Activate this link'))). '</a>';
+ }
+ echo '<a class="tabtitle-ne" title="'._('Edit this link').'" href="index.php?type=globaladmin&view=updateLinkValue&linkid='.$link['id_headermenu'].'">'.html_image('docman/edit-file.png',22,22, array('alt'=>_('Edit this link'))). '</a>';
+ echo '<a class="tabtitle-ne" title="'._('Delete this link').'" href="index.php?type=globaladmin&action=deleteLink&linkid='.$link['id_headermenu'].'">'.html_image('docman/trash-empty.png',22,22, array('alt'=>_('Delete this link'))). '</a>';
+ echo '</td>';
+ echo '</tr>';
+ }
+ echo $HTML->listTableBottom();
+ echo $HTML->boxBottom();
+ echo '</br>';
+}
+
echo '<form method="POST" name="addLink" action="index.php?type=globaladmin&action=addLink">';
echo '<table><tr>';
echo $HTML->boxTop(_('Add a new link'));
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 1ad33f4..f200b60 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -46,12 +46,13 @@ jQuery(document).ready(function() {
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
if (sizeof($linksArray)) {
+ echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table and save order.').'</p>';
echo $HTML->boxTop(_('Manage available links'));
- $tabletop = array(_('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('','','','','unsortable');
+ $tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('', '','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
- echo '<tr>';
+ echo '<tr><td>'.$link['ordering'].'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL');
if ($link['linktype'] == 'iframe') {
commit b61dd5050669f424f12cb3460a2e4efd31cd0bf5
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 16:35:35 2013 +0100
start implement reorder
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 93efda2..6cc2c60 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -3,7 +3,7 @@
/**
* headermenuPlugin Class
*
- * Copyright 2012 Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -61,7 +61,7 @@ class headermenuPlugin extends Plugin {
$group_id = $params['group_id'];
$project = group_get_object($group_id);
if ($project->usesPlugin($this->name)) {
- echo '<p>'.util_make_link('/plugins/headermenu/?type=projectadmin&group_id='.$group_id,
+ echo '<p>'.util_make_link('/plugins/'.$this->name.'/?type=projectadmin&group_id='.$group_id,
_('Project GroupMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
}
break;
@@ -304,6 +304,7 @@ class headermenuPlugin extends Plugin {
global $gfwww;
require_once($gfwww.'admin/admin_utils.php');
html_use_jquery();
+ html_use_jqueryui();
use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
site_admin_header(array('title'=>_('Site Global Menu Admin'), 'toptab' => ''));
@@ -315,18 +316,19 @@ class headermenuPlugin extends Plugin {
$link = $this->getLink($this->pageid);
$group_id = getIntFromRequest('group_id');
if ($group_id) {
- $params['toptab'] = '/plugins/headermenu/?type='.$type.'&group_id='.$group_id.'&pageid='.$this->pageid;
+ $params['toptab'] = '/plugins/'.$this->name.'/?type='.$type.'&group_id='.$group_id.'&pageid='.$this->pageid;
$params['group'] = $group_id;
$params['title'] = $link['name'];
site_project_header($params);
} else {
- site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type='.$type.'&pageid='.$this->pageid));
+ site_header(array('title'=> $link['name'], 'toptab' => '/plugins/'.$this->name.'/?type='.$type.'&pageid='.$this->pageid));
}
$returned = true;
break;
}
case 'projectadmin': {
html_use_jquery();
+ html_use_jqueryui();
use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 72c7018..1ad33f4 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -37,7 +37,8 @@ jQuery(document).ready(function() {
trHtmlCode: jQuery('#htmlcode'),
trUrlCode: jQuery('#urlcode'),
trIframeView: jQuery('#iframe'),
- });
+ tableTbodyLink: jQuery('#sortable tbody')
+ });
});
//]]></script>
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 84f2dce..eb11f3d 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -52,6 +52,9 @@ HeaderMenuController.prototype =
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
+ if (typeof(this.params.tableTbodyLink) != 'undefined') {
+ this.params.tableTbodyLink.sortable();
+ }
},
htmlCodeView: function() {
@@ -80,6 +83,9 @@ GroupMenuController.prototype =
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
+ if (typeof(this.params.tableTbodyLink) != 'undefined') {
+ this.params.tableTbodyLink.sortable();
+ }
},
htmlCodeView: function() {
commit 47a023494ec03b3170323af2d7b2f26c822048ed
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 15:01:46 2013 +0100
make the update works
diff --git a/src/plugins/headermenu/action/updateLinkValue.php b/src/plugins/headermenu/action/updateLinkValue.php
index e9706ba..caf7bd9 100644
--- a/src/plugins/headermenu/action/updateLinkValue.php
+++ b/src/plugins/headermenu/action/updateLinkValue.php
@@ -23,7 +23,6 @@
global $headermenu;
-session_require_global_perm('forge_admin');
$idLink = getIntFromRequest('linkid');
$link = getStringFromRequest('link');
$name = strip_tags(getStringFromRequest('name'));
@@ -31,53 +30,55 @@ $description = strip_tags(getStringFromRequest('description'));
$typemenu = getStringFromRequest('typemenu');
$linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
+$type = getStringFromRequest('type');
if (!empty($idLink) && !empty($name)) {
switch ($linkmenu) {
- case "headermenu": {
+ case 'headermenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->updateLink($idLink, $link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
$warning_msg = _('Missing Link URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
break;
}
- case "outermenu": {
- if (!empty($link) && $typemenu == 'url') {
+ case 'outermenu':
+ case 'groupmenu': {
+ if (!empty($link) && ($typemenu == 'url' || $typemenu == 'iframe')) {
if (util_check_url($link)) {
- if ($headermenu->updateLink($idLink, $link, $name, $description, $linkmenu)) {
+ if ($headermenu->updateLink($idLink, $link, $name, $description, $linkmenu, $typemenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
if (!empty($htmlcode) && $typemenu == 'htmlcode') {
if ($headermenu->updateLink($idLink, '', $name, $description, $linkmenu, 'htmlcode', $htmlcode)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link URL or Html Code.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
}
}
}
$warning_msg = _('No link to update or name missing.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/view/admin/updateLinkValue.php b/src/plugins/headermenu/view/admin/updateLinkValue.php
index 6edb149..4b2e884 100644
--- a/src/plugins/headermenu/view/admin/updateLinkValue.php
+++ b/src/plugins/headermenu/view/admin/updateLinkValue.php
@@ -63,15 +63,14 @@ if (is_array($linkValues)) {
echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linkmenu'], false);
echo '</td>';
echo '</tr><tr>';
+ $texts = array('URL', 'New Page');
+ $vals = array('url', 'htmlcode');
}
echo '<td>'._('Menu Type').'</td><td>';
if ($type == 'projectadmin') {
$texts = array('URL', 'URL as iframe', 'New Page');
$vals = array('url', 'iframe', 'htmlcode');
- }
- if ($type == 'globaladmin') {
- $texts = array('URL', 'New Page');
- $vals = array('url', 'htmlcode');
+ echo '<input type="hidden" name="linkmenu" value="groupmenu" />';
}
$select_name = 'typemenu';
echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linktype'], false);
commit d90024436d97c13abebf025805b5fdbdfa2c5369
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 14:44:52 2013 +0100
support for edit link in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 665e460..d6333d9 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -2,7 +2,7 @@
/**
* headermenu plugin : addLink action
*
- * Copyright 2012, Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -61,7 +61,7 @@ if (!empty($name) && !empty($linkmenu)) {
case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
- $linktype = 'URL';
+ $linktype = 'url';
if ($iframed) {
$linktype = 'iframe';
}
diff --git a/src/plugins/headermenu/db/20121231-reorderentry.sql b/src/plugins/headermenu/db/20121231-reorderentry.sql
index 2f1dccf..865b851 100644
--- a/src/plugins/headermenu/db/20121231-reorderentry.sql
+++ b/src/plugins/headermenu/db/20121231-reorderentry.sql
@@ -1 +1,2 @@
+UPDATE plugin_headermenu SET linktype = 'url' where linktype = 'URL';
ALTER TABLE plugin_headermenu ADD COLUMN ordering integer DEFAULT 0 NOT NULL;
diff --git a/src/plugins/headermenu/view/admin/updateLinkValue.php b/src/plugins/headermenu/view/admin/updateLinkValue.php
index 1209aa8..6edb149 100644
--- a/src/plugins/headermenu/view/admin/updateLinkValue.php
+++ b/src/plugins/headermenu/view/admin/updateLinkValue.php
@@ -2,7 +2,7 @@
/**
* headermenuPlugin Class
*
- * Copyright 2012 Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -23,8 +23,8 @@
global $HTML;
global $headermenu;
+global $type;
-session_require_global_perm('forge_admin');
$linkId = getIntFromRequest('linkid');
?>
@@ -35,6 +35,7 @@ jQuery(document).ready(function() {
controllerHeaderMenu = new EditHeaderMenuController({
inputHtmlCode: jQuery('#typemenu_htmlcode'),
inputURL: jQuery('#typemenu_url'),
+ inputURLIframe: jQuery('#typemenu_iframe'),
inputHeader: jQuery('#linkmenu_headermenu'),
inputOuter: jQuery('#linkmenu_outermenu'),
trHtmlCode: jQuery('#htmlcode'),
@@ -47,23 +48,31 @@ jQuery(document).ready(function() {
<?php
$linkValues = $headermenu->getLink($linkId);
if (is_array($linkValues)) {
- echo '<form method="POST" name="updateLink" action="index.php?type=globaladmin&action=updateLinkValue">';
+ echo '<form method="POST" name="updateLink" action="index.php?type='.$type.'&action=updateLinkValue">';
echo '<table><tr>';
echo $HTML->boxTop(_('Update this link'));
echo '<td>'._('Displayed Name').'</td><td><input name="name" type="text" maxsize="255" value="'.$linkValues['name'].'" /></td>';
echo '</tr><tr>';
echo '<td>'._('Description').'</td><td><input name="description" type="text" maxsize="255" value="'.$linkValues['description'].'" /></td>';
echo '</tr><tr>';
- echo '<td>'._('Menu Location').'</td><td>';
- $vals = array('headermenu', 'outermenu');
- $texts = array('headermenu', 'outermenu');
- $select_name = 'linkmenu';
- echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linkmenu'], false);
- echo '</td>';
- echo '</tr><tr>';
+ if ($type == 'globaladmin') {
+ echo '<td>'._('Menu Location').'</td><td>';
+ $vals = array('headermenu', 'outermenu');
+ $texts = array('headermenu', 'outermenu');
+ $select_name = 'linkmenu';
+ echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linkmenu'], false);
+ echo '</td>';
+ echo '</tr><tr>';
+ }
echo '<td>'._('Menu Type').'</td><td>';
- $texts = array('URL', 'New Page');
- $vals = array('url', 'htmlcode');
+ if ($type == 'projectadmin') {
+ $texts = array('URL', 'URL as iframe', 'New Page');
+ $vals = array('url', 'iframe', 'htmlcode');
+ }
+ if ($type == 'globaladmin') {
+ $texts = array('URL', 'New Page');
+ $vals = array('url', 'htmlcode');
+ }
$select_name = 'typemenu';
echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linktype'], false);
echo '</td>';
@@ -81,20 +90,18 @@ if (is_array($linkValues)) {
echo '<textarea name="htmlcode" rows="5" cols="80">'.$body.'</textarea>';
}
unset($GLOBALS['editor_was_set_up']);
- echo '</td></tr><tr id="urlcode" >';
- echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
- echo '</tr><tr id="urlcode" style="display:none" >';
+ echo '</td></tr><tr id="urlcode" style="display:none" >';
echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" value="'.$linkValues['url'].'" /></td>';
echo '</tr><tr>';
echo '<td>';
echo '<input type="hidden" name="linkid" value="'.$linkId.'" />';
echo '<input type="submit" value="'. _('Update') .'" />';
- echo '<a href="/plugins/'.$headermenu->name.'/?type=globaladmin"><input type="button" value="'. _('Cancel') .'" /></a>';
+ echo '<a href="/plugins/'.$headermenu->name.'/?type='.$type.'"><input type="button" value="'. _('Cancel') .'" /></a>';
echo '</td>';
echo $HTML->boxBottom();
echo '</tr></table>';
echo '</form>';
} else {
$error_msg = _('Cannot retrieve value for this link:').' '.$linkId;
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 68aee35..84f2dce 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -1,7 +1,7 @@
/**
* headerMenu Plugin Js Controller
*
- * Copyright 2012, Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -104,8 +104,15 @@ EditHeaderMenuController.prototype =
bindControls: function() {
this.params.inputHtmlCode.click(jQuery.proxy(this, "htmlCodeView"));
this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
- this.params.inputOuter.click(jQuery.proxy(this, "inputHtmlCodeView"));
- this.params.inputHeader.click(jQuery.proxy(this, "headerView"));
+ if (typeof(this.params.inputOuter) != 'undefined') {
+ this.params.inputOuter.click(jQuery.proxy(this, "inputHtmlCodeView"));
+ }
+ if (typeof(this.params.inputHeader) != 'undefined') {
+ this.params.inputHeader.click(jQuery.proxy(this, "headerView"));
+ }
+ if (typeof(this.params.inputURLIframe) != 'undefined') {
+ this.params.inputURLIframe.click(jQuery.proxy(this, "htmlUrlView"));
+ }
},
initializeView: function() {
@@ -120,6 +127,12 @@ EditHeaderMenuController.prototype =
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
}
+ if (typeof(this.params.inputURLIframe) != 'undefined') {
+ if (this.params.inputURLIframe.attr("checked")) {
+ this.params.trHtmlCode.hide();
+ this.params.trUrlCode.show();
+ }
+ }
},
htmlUrlView: function() {
commit 38ed5b26b6bf50ec9ab7303801e653d0931631bf
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 18:10:59 2012 +0100
add new column: ordering, to support order between link
diff --git a/src/plugins/headermenu/db/20121231-reorderentry.sql b/src/plugins/headermenu/db/20121231-reorderentry.sql
new file mode 100644
index 0000000..2f1dccf
--- /dev/null
+++ b/src/plugins/headermenu/db/20121231-reorderentry.sql
@@ -0,0 +1 @@
+ALTER TABLE plugin_headermenu ADD COLUMN ordering integer DEFAULT 0 NOT NULL;
commit 7fb9c047dfbb1a2955d05e5ce1e7331bb8ff8c53
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 17:56:38 2012 +0100
add support for iframe in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index a31060f..665e460 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -30,6 +30,7 @@ $name = strip_tags(getStringFromRequest('name'));
$linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
$type = getStringFromRequest('type');
+$iframed = getIntFromRequest('iframeview');
$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
if (isset($group_id) && $group_id) {
@@ -60,7 +61,11 @@ if (!empty($name) && !empty($linkmenu)) {
case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
- if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
+ $linktype = 'URL';
+ if ($iframed) {
+ $linktype = 'iframe';
+ }
+ if ($headermenu->addLink($link, $name, $description, $linkmenu, $linktype)) {
$feedback = _('Task succeeded.');
session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index d9debd0..93efda2 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -147,10 +147,10 @@ class headermenuPlugin extends Plugin {
break;
}
case 'iframe': {
- $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframeview&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
- if ($params['toptab'] == '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
+ if ($params['toptab'] == '/plugins/'.$this->name.'/?type=iframeview&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
$params['selected'] = (count($params['DIRS'])-1);
}
break;
@@ -286,7 +286,8 @@ class headermenuPlugin extends Plugin {
* @return string the html code
*/
function iframeView($pageid) {
- return true;
+ $link = $this->getLink($pageid);
+ return '<iframe src="'.rtrim($link['url'],'/').'" frameborder="0" height="600px" width="100%"></iframe>';
}
/**
@@ -309,16 +310,17 @@ class headermenuPlugin extends Plugin {
$returned = true;
break;
}
- case 'pageview': {
+ case 'pageview':
+ case 'iframeview': {
$link = $this->getLink($this->pageid);
$group_id = getIntFromRequest('group_id');
if ($group_id) {
- $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'&pageid='.$this->pageid;
+ $params['toptab'] = '/plugins/headermenu/?type='.$type.'&group_id='.$group_id.'&pageid='.$this->pageid;
$params['group'] = $group_id;
$params['title'] = $link['name'];
site_project_header($params);
} else {
- site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type=pageview&pageid='.$this->pageid));
+ site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type='.$type.'&pageid='.$this->pageid));
}
$returned = true;
break;
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 08a5691..72c7018 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -35,7 +35,8 @@ jQuery(document).ready(function() {
inputHtmlCode: jQuery('#typemenu_htmlcode'),
inputURL: jQuery('#typemenu_url'),
trHtmlCode: jQuery('#htmlcode'),
- trUrlCode: jQuery('#urlcode')
+ trUrlCode: jQuery('#urlcode'),
+ trIframeView: jQuery('#iframe'),
});
});
@@ -51,7 +52,11 @@ if (sizeof($linksArray)) {
foreach ($linksArray as $link) {
echo '<tr>';
if (strlen($link['url']) > 0) {
- echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
+ echo '<td>'._('URL');
+ if ($link['linktype'] == 'iframe') {
+ echo ' '._('displayed as iframe');
+ }
+ echo ' ('.htmlspecialchars($link['url']).')</td>';
} else {
echo '<td>'._('static html code').'</td>';
}
@@ -103,6 +108,8 @@ if (!$GLOBALS['editor_was_set_up']) {
unset($GLOBALS['editor_was_set_up']);
echo '</td></tr><tr id="urlcode" >';
echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
+echo '</td></tr><tr id="iframe" >';
+echo '<td colspan="2" ><input name="iframeview" type="checkbox" value="1" />Display URL as iframe.</td>';
echo '</tr><tr>';
echo '<td>';
echo '<input type="hidden" name="linkmenu" value="groupmenu" />';
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index 7418170..1f053ea 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -70,6 +70,13 @@ switch ($type) {
echo $headermenu->pageView($pageid);
break;
}
+ case 'iframeview': {
+ $pageid = getIntFromRequest('pageid');
+ $headermenu->pageid = $pageid;
+ $headermenu->getHeader($type);
+ echo $headermenu->iframeView($pageid);
+ break;
+ }
case 'projectadmin': {
if (!session_loggedin()) {
exit_not_logged_in();
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 8d91e36..68aee35 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -85,11 +85,13 @@ GroupMenuController.prototype =
htmlCodeView: function() {
this.params.trHtmlCode.show();
this.params.trUrlCode.hide();
+ this.params.trIframeView.hide();
},
htmlUrlView: function() {
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
+ this.params.trIframeView.show();
},
inputHtmlCodeView: function() {
commit b21914ec31b87090c11f695f6516fea78048fe0c
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 15:23:15 2012 +0100
fix selected entry in html code for groupmenu
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 2aa7f74..d9debd0 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -141,12 +141,18 @@ class headermenuPlugin extends Plugin {
$params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
+ if ($params['toptab'] == '/plugins/'.$this->name.'/?type=pageview&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
+ $params['selected'] = (count($params['DIRS'])-1);
+ }
break;
}
case 'iframe': {
$params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
+ if ($params['toptab'] == '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
+ $params['selected'] = (count($params['DIRS'])-1);
+ }
break;
}
}
@@ -307,11 +313,9 @@ class headermenuPlugin extends Plugin {
$link = $this->getLink($this->pageid);
$group_id = getIntFromRequest('group_id');
if ($group_id) {
- $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'pageid='.$this->pageid;
+ $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'&pageid='.$this->pageid;
$params['group'] = $group_id;
$params['title'] = $link['name'];
- $params['pagename'] = $link['name'];
- $params['sectionvals'] = array(group_getname($group_id));
site_project_header($params);
} else {
site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type=pageview&pageid='.$this->pageid));
commit 68fedbdceeefb3dd150bc17716ed42c38113a2d2
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 11:27:22 2012 +0100
add support for html page in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 2bbb69c..a31060f 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -56,7 +56,8 @@ if (!empty($name) && !empty($linkmenu)) {
session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
break;
}
- case 'outermenu': {
+ case 'outermenu':
+ case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
@@ -81,21 +82,6 @@ if (!empty($name) && !empty($linkmenu)) {
$warning_msg = _('Missing Link URL or Html Code.');
session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
}
- case 'groupmenu': {
- if (!empty($link)) {
- if (util_check_url($link)) {
- if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
- $feedback = _('Task succeeded.');
- session_redirect($redirect_url.'&feedback='.urlencode($feedback));
- }
- $error_msg = _('Task failed');
- session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
- } else {
- $error_msg = _('Provided Link is not a valid URL.');
- session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
- }
- }
- }
}
}
$warning_msg = _('No link to create or name missing.');
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 4a9b0da..2aa7f74 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -138,13 +138,13 @@ class headermenuPlugin extends Plugin {
break;
}
case 'htmlcode': {
- $params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&pageid='.$link['id_headermenu'];
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
break;
}
case 'iframe': {
- $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&pageid='.$link['id_headermenu'];
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
break;
@@ -305,7 +305,17 @@ class headermenuPlugin extends Plugin {
}
case 'pageview': {
$link = $this->getLink($this->pageid);
- site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?pageview&pageid='.$this->pageid));
+ $group_id = getIntFromRequest('group_id');
+ if ($group_id) {
+ $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'pageid='.$this->pageid;
+ $params['group'] = $group_id;
+ $params['title'] = $link['name'];
+ $params['pagename'] = $link['name'];
+ $params['sectionvals'] = array(group_getname($group_id));
+ site_project_header($params);
+ } else {
+ site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type=pageview&pageid='.$this->pageid));
+ }
$returned = true;
break;
}
commit c7d4bb39139657319f495da779b8f7240475387b
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 30 20:38:42 2012 +0100
start htmlcode support in groupmenu
diff --git a/src/plugins/headermenu/action/updateLinkStatus.php b/src/plugins/headermenu/action/updateLinkStatus.php
index ff482e8..03cce2a 100644
--- a/src/plugins/headermenu/action/updateLinkStatus.php
+++ b/src/plugins/headermenu/action/updateLinkStatus.php
@@ -22,18 +22,23 @@
*/
global $headermenu;
+global $type;
+global $group_id;
-session_require_global_perm('forge_admin');
$idLink = getIntFromRequest('linkid');
$linkStatus = getIntFromRequest('linkstatus');
+$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+}
if (!empty($idLink)) {
if ($headermenu->updateLinkStatus($idLink, $linkStatus)) {
$feedback = _('Link Status updated');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link or status to be updated.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index b2fe5f7..4a9b0da 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -311,6 +311,7 @@ class headermenuPlugin extends Plugin {
}
case 'projectadmin': {
html_use_jquery();
+ use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
$returned = true;
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 0a04884..08a5691 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -27,6 +27,20 @@ global $group_id;
?>
+<script language="Javascript" type="text/javascript">//<![CDATA[
+var controllerGroupMenu;
+
+jQuery(document).ready(function() {
+ controllerGroupMenu = new GroupMenuController({
+ inputHtmlCode: jQuery('#typemenu_htmlcode'),
+ inputURL: jQuery('#typemenu_url'),
+ trHtmlCode: jQuery('#htmlcode'),
+ trUrlCode: jQuery('#urlcode')
+ });
+});
+
+//]]></script>
+
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
if (sizeof($linksArray)) {
@@ -67,7 +81,27 @@ echo '<td>'._('Displayed Name').'</td><td><input name="name" type="text" maxsize
echo '</tr><tr>';
echo '<td>'._('Description').'</td><td><input name="description" type="text" maxsize="255" /></td>';
echo '</tr><tr>';
-echo '<tr id="urlcode" >';
+echo '<td>'._('Menu Type').'</td><td>';
+$texts = array('URL', 'New Page');
+$vals = array('url', 'htmlcode');
+$select_name = 'typemenu';
+echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, 'url', false);
+echo '</td>';
+echo '</tr><tr id="htmlcode" style="display:none">';
+echo '<td>'._('Your HTML Code.').'</td><td>';
+$GLOBALS['editor_was_set_up'] = false;
+$body = _('Just paste your code here...');
+$params['name'] = 'htmlcode';
+$params['body'] = $body;
+$params['width'] = "800";
+$params['height'] = "500";
+$params['user_id'] = user_getid();
+plugin_hook("text_editor", $params);
+if (!$GLOBALS['editor_was_set_up']) {
+ echo '<textarea name="htmlcode" rows="5" cols="80">'.$body.'</textarea>';
+}
+unset($GLOBALS['editor_was_set_up']);
+echo '</td></tr><tr id="urlcode" >';
echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
echo '</tr><tr>';
echo '<td>';
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index ef9a7ed..8d91e36 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -32,6 +32,12 @@ HeaderMenuController = function(params) {
this.initializeView();
};
+GroupMenuController = function(params) {
+ this.params = params;
+ this.bindControls();
+ this.initializeView();
+};
+
HeaderMenuController.prototype =
{
bindControls: function() {
@@ -63,6 +69,34 @@ HeaderMenuController.prototype =
}
};
+GroupMenuController.prototype =
+{
+ bindControls: function() {
+ this.params.inputHtmlCode.click(jQuery.proxy(this, "htmlCodeView"));
+ this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
+ },
+
+ initializeView: function() {
+ this.params.trHtmlCode.hide();
+ this.params.trUrlCode.show();
+ this.params.inputURL.attr('checked', 'checked');
+ },
+
+ htmlCodeView: function() {
+ this.params.trHtmlCode.show();
+ this.params.trUrlCode.hide();
+ },
+
+ htmlUrlView: function() {
+ this.params.trHtmlCode.hide();
+ this.params.trUrlCode.show();
+ },
+
+ inputHtmlCodeView: function() {
+ this.params.inputHtmlCode.prop('disabled', false);
+ }
+};
+
EditHeaderMenuController.prototype =
{
bindControls: function() {
commit 5836376760c33cecab4544c81d965dab2a66fc00
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 30 19:56:25 2012 +0100
support delete link in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 9143385..2bbb69c 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -31,6 +31,11 @@ $linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
$type = getStringFromRequest('type');
+$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+}
+
if (!empty($name) && !empty($linkmenu)) {
switch ($linkmenu) {
case 'headermenu': {
@@ -38,17 +43,17 @@ if (!empty($name) && !empty($linkmenu)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
}
$warning_msg = _('Missing Link URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+ session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
break;
}
case 'outermenu': {
@@ -56,46 +61,42 @@ if (!empty($name) && !empty($linkmenu)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
}
if (!empty($htmlcode)) {
if ($headermenu->addLink('', $name, $description, $linkmenu, 'htmlcode', $htmlcode)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link URL or Html Code.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+ session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
}
case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
}
}
}
}
$warning_msg = _('No link to create or name missing.');
-$url = 'plugins/'.$headermenu->name.'/?type='.$type;
-if (isset($group_id)) {
- $url .= '&group_id='.$group_id;
-}
-session_redirect($url.'&warning_msg='.urlencode($warning_msg));
+session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/action/deleteLink.php b/src/plugins/headermenu/action/deleteLink.php
index 4859571..8cf9ecc 100644
--- a/src/plugins/headermenu/action/deleteLink.php
+++ b/src/plugins/headermenu/action/deleteLink.php
@@ -22,17 +22,22 @@
*/
global $headermenu;
+global $type;
+global $group_id;
-session_require_global_perm('forge_admin');
$idLink = getIntFromRequest('linkid');
+$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+}
if (!empty($idLink)) {
if ($headermenu->deleteLink($idLink)) {
$feedback = _('Link deleted');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link to be deleted.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index e7335cb..b2fe5f7 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -62,7 +62,7 @@ class headermenuPlugin extends Plugin {
$project = group_get_object($group_id);
if ($project->usesPlugin($this->name)) {
echo '<p>'.util_make_link('/plugins/headermenu/?type=projectadmin&group_id='.$group_id,
- _('Project HeaderMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
+ _('Project GroupMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
}
break;
}
@@ -311,6 +311,7 @@ class headermenuPlugin extends Plugin {
}
case 'projectadmin': {
html_use_jquery();
+ use_javascript('/js/sortable.js');
site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
$returned = true;
break;
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 299cdee..0a04884 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -29,6 +29,36 @@ global $group_id;
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
+if (sizeof($linksArray)) {
+ echo $HTML->boxTop(_('Manage available links'));
+ $tabletop = array(_('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('','','','','unsortable');
+ echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
+ foreach ($linksArray as $link) {
+ echo '<tr>';
+ if (strlen($link['url']) > 0) {
+ echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
+ } else {
+ echo '<td>'._('static html code').'</td>';
+ }
+ echo '<td>'.htmlspecialchars($link['name']).'</td>';
+ echo '<td>'.htmlspecialchars($link['description']).'</td>';
+ if ($link['is_enable']) {
+ echo '<td>'.html_image('docman/validate.png', 22, 22, array('alt'=>_('link is on'), 'class'=>'tabtitle', 'title'=>_('link is on'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Desactivate this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=0">'.html_image('docman/release-document.png', 22, 22, array('alt'=>_('Desactivate this link'))). '</a>';
+ } else {
+ echo '<td>'.html_image('docman/delete-directory.png', 22, 22, array('alt'=>_('link is off'), 'class'=>'tabtitle', 'title'=>_('link is off'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Activate this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=1">'.html_image('docman/reserve-document.png', 22, 22, array('alt'=>_('Activate this link'))). '</a>';
+ }
+ echo '<a class="tabtitle-ne" title="'._('Edit this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&view=updateLinkValue&linkid='.$link['id_headermenu'].'">'.html_image('docman/edit-file.png',22,22, array('alt'=>_('Edit this link'))). '</a>';
+ echo '<a class="tabtitle-ne" title="'._('Delete this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&action=deleteLink&linkid='.$link['id_headermenu'].'">'.html_image('docman/trash-empty.png',22,22, array('alt'=>_('Delete this link'))). '</a>';
+ echo '</td>';
+ echo '</tr>';
+ }
+ echo $HTML->listTableBottom();
+ echo $HTML->boxBottom();
+ echo '</br>';
+}
echo '<form method="POST" name="addLink" action="index.php?type=projectadmin&group_id='.$group_id.'&action=addLink">';
echo '<table><tr>';
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index d0ea3eb..7418170 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -78,6 +78,7 @@ switch ($type) {
session_require_perm('project_admin', $group_id);
$action = getStringFromRequest('action');
$view = getStringFromRequest('view');
+
switch ($action) {
case 'addLink':
case 'updateLinkValue':
commit fa0d0f67cff1d7bb584eb7856724d1d856c8d9e4
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 30 19:22:55 2012 +0100
support add link in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 501348d..9143385 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin : addLink action
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
@@ -22,60 +22,80 @@
*/
global $headermenu;
+global $group_id;
-session_require_global_perm('forge_admin');
$link = getStringFromRequest('link');
$description = strip_tags(getStringFromRequest('description'));
$name = strip_tags(getStringFromRequest('name'));
$linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
+$type = getStringFromRequest('type');
if (!empty($name) && !empty($linkmenu)) {
switch ($linkmenu) {
- case "headermenu": {
+ case 'headermenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
$warning_msg = _('Missing Link URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
break;
}
- case "outermenu": {
+ case 'outermenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
if (!empty($htmlcode)) {
if ($headermenu->addLink('', $name, $description, $linkmenu, 'htmlcode', $htmlcode)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link URL or Html Code.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+ }
+ case 'groupmenu': {
+ if (!empty($link)) {
+ if (util_check_url($link)) {
+ if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
+ $feedback = _('Task succeeded.');
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&feedback='.urlencode($feedback));
+ }
+ $error_msg = _('Task failed');
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ } else {
+ $error_msg = _('Provided Link is not a valid URL.');
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ }
+ }
}
}
}
$warning_msg = _('No link to create or name missing.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+$url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id)) {
+ $url .= '&group_id='.$group_id;
+}
+session_redirect($url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 7c6ee9c..e7335cb 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -27,9 +27,9 @@ class headermenuPlugin extends Plugin {
var $pageid;
function __construct() {
- $this->Plugin() ;
- $this->name = 'headermenu' ;
- $this->text = 'headermenu' ;
+ $this->Plugin();
+ $this->name = 'headermenu';
+ $this->text = 'headermenu';
$this->_addHook('headermenu');
$this->_addHook('site_admin_option_hook');
$this->_addHook('outermenu');
@@ -39,7 +39,7 @@ class headermenuPlugin extends Plugin {
$this->_addHook('project_admin_plugins');
}
- function CallHook ($hookname, &$params) {
+ function CallHook($hookname, &$params) {
switch ($hookname) {
case 'headermenu': {
$this->getHeaderLink();
@@ -332,6 +332,18 @@ class headermenuPlugin extends Plugin {
}
/**
+ * getProjectAdminView - display the Project Admin View
+ *
+ * @return bool true
+ */
+ function getProjectAdminView() {
+ global $gfplugins;
+ $user = session_get_user();
+ include $gfplugins.$this->name.'/view/admin/viewProjectConfiguration.php';
+ return true;
+ }
+
+ /**
* getPluginDescription - display the description of this plugin in pluginman admin page
*
* @return string the description
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index f4b162c..eaa3252 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenuPlugin Class
+ * headermenu : viewGlobalConfiguration page
*
* Copyright 2012 Franck Villaume - TrivialDev
* http://fusionforge.org
@@ -24,7 +24,6 @@
global $HTML;
global $headermenu;
-session_require_global_perm('forge_admin');
?>
<script language="Javascript" type="text/javascript">//<![CDATA[
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
new file mode 100644
index 0000000..299cdee
--- /dev/null
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * headermenu : viewProjectConfiguration page
+ *
+ * Copyright 2012 Franck Villaume - TrivialDev
+ * http://fusionforge.org
+ *
+ * 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.
+ */
+
+global $HTML;
+global $headermenu;
+global $group_id;
+
+?>
+
+<?php
+$linksArray = $headermenu->getAvailableLinks('groupmenu');
+
+echo '<form method="POST" name="addLink" action="index.php?type=projectadmin&group_id='.$group_id.'&action=addLink">';
+echo '<table><tr>';
+echo $HTML->boxTop(_('Add a new link'));
+echo '<td>'._('Displayed Name').'</td><td><input name="name" type="text" maxsize="255" /></td>';
+echo '</tr><tr>';
+echo '<td>'._('Description').'</td><td><input name="description" type="text" maxsize="255" /></td>';
+echo '</tr><tr>';
+echo '<tr id="urlcode" >';
+echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
+echo '</tr><tr>';
+echo '<td>';
+echo '<input type="hidden" name="linkmenu" value="groupmenu" />';
+echo '<input type="submit" value="'. _('Add') .'" />';
+echo '</td>';
+echo $HTML->boxBottom();
+echo '</tr></table>';
+echo '</form>';
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index da2d981..d0ea3eb 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin : index page
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
@@ -76,8 +76,29 @@ switch ($type) {
}
$group_id = getIntFromRequest('group_id');
session_require_perm('project_admin', $group_id);
+ $action = getStringFromRequest('action');
+ $view = getStringFromRequest('view');
+ switch ($action) {
+ case 'addLink':
+ case 'updateLinkValue':
+ case 'deleteLink':
+ case 'updateLinkStatus': {
+ global $gfplugins;
+ include($gfplugins.$headermenu->name.'/action/'.$action.'.php');
+ break;
+ }
+ }
$headermenu->getHeader($type);
-
+ switch ($view) {
+ case 'updateLinkValue':
+ global $gfplugins;
+ include($gfplugins.$headermenu->name.'/view/admin/'.$view.'.php');
+ break;
+ default:
+ $headermenu->getProjectAdminView();
+ break;
+ }
+ break;
}
}
commit 86e98658a8503aaad70fa83a817551621d5cd894
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 23 21:28:40 2012 +0100
sync CHANGES
diff --git a/src/CHANGES b/src/CHANGES
index 97eddb7..630233a 100644
--- a/src/CHANGES
+++ b/src/CHANGES
@@ -15,7 +15,8 @@ FusionForge-5.3:
* Docman: add report view as in FRS (TrivialDev)
Plugins:
-* headermenu: new plugin to handle links in headermenu or outermenu (TrivialDev)
+* headermenu: new plugin to handle links in headermenu, outermenu & groupmenu
+ replace the old extratabs plugin (TrivialDev)
* scmgit: add browsing capability for user personal repository (TrivialDev)
* scmgit: basic activity support (TrivialDev).
* scmgit: multiple repositories per project (developed for/sponsored by AdaCore)
commit 6d8f34ada705fdd2d80ee9c00b16e7fffc9dc1e4
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sat Dec 22 20:28:10 2012 +0100
start implement groupmenu hook in headermenu
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 1d8fd29..7c6ee9c 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -33,6 +33,10 @@ class headermenuPlugin extends Plugin {
$this->_addHook('headermenu');
$this->_addHook('site_admin_option_hook');
$this->_addHook('outermenu');
+ $this->_addHook('groupisactivecheckbox'); // The "use ..." checkbox in editgroupinfo
+ $this->_addHook('groupisactivecheckboxpost');
+ $this->_addHook('groupmenu');
+ $this->_addHook('project_admin_plugins');
}
function CallHook ($hookname, &$params) {
@@ -49,6 +53,19 @@ class headermenuPlugin extends Plugin {
echo '<li>'.$this->getAdminOptionLink().'</li>';
break;
}
+ case 'groupmenu': {
+ $this->getGroupLink($params);
+ break;
+ }
+ case 'project_admin_plugins': {
+ $group_id = $params['group_id'];
+ $project = group_get_object($group_id);
+ if ($project->usesPlugin($this->name)) {
+ echo '<p>'.util_make_link('/plugins/headermenu/?type=projectadmin&group_id='.$group_id,
+ _('Project HeaderMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
+ }
+ break;
+ }
}
}
@@ -104,6 +121,41 @@ class headermenuPlugin extends Plugin {
}
/**
+ * getGroupLink - update the links before generate the tab.
+ *
+ * @param array hook params array
+ * @return bool true...
+ */
+ function getGroupLink($params) {
+ $availableLinks = $this->getAvailableLinks('groupmenu');
+ foreach ($availableLinks as $link) {
+ if ($link['is_enable']) {
+ switch ($link['linktype']) {
+ case 'url': {
+ $params['DIRS'][] = $link['url'];
+ $params['TITLES'][] = $link['name'];
+ $params['TOOLTIPS'][] = $link['description'];
+ break;
+ }
+ case 'htmlcode': {
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&pageid='.$link['id_headermenu'];
+ $params['TITLES'][] = $link['name'];
+ $params['TOOLTIPS'][] = $link['description'];
+ break;
+ }
+ case 'iframe': {
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&pageid='.$link['id_headermenu'];
+ $params['TITLES'][] = $link['name'];
+ $params['TOOLTIPS'][] = $link['description'];
+ break;
+ }
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
* getAvailableLinks - get all the links from the db of certain kind
*
* @param string the type of menu links search in db
@@ -222,6 +274,16 @@ class headermenuPlugin extends Plugin {
}
/**
+ * iframeView - display the iframe
+ *
+ * @param int the iframe id
+ * @return string the html code
+ */
+ function iframeView($pageid) {
+ return true;
+ }
+
+ /**
* getHeader - initialize header and js
*
* @param string type : user, project, globaladmin (aka group)
@@ -247,6 +309,12 @@ class headermenuPlugin extends Plugin {
$returned = true;
break;
}
+ case 'projectadmin': {
+ html_use_jquery();
+ site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
+ $returned = true;
+ break;
+ }
}
return $returned;
}
@@ -269,6 +337,6 @@ class headermenuPlugin extends Plugin {
* @return string the description
*/
function getPluginDescription() {
- return _('Get the ability to set new links next to the login menu (headermenu) or in the main menu (outermenu).');
+ return _('Get the ability to set new links next to the login menu (headermenu), in the main menu (outermenu) or in the project menu (groupmenu).');
}
}
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index 2eaabcb..da2d981 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -70,6 +70,15 @@ switch ($type) {
echo $headermenu->pageView($pageid);
break;
}
+ case 'projectadmin': {
+ if (!session_loggedin()) {
+ exit_not_logged_in();
+ }
+ $group_id = getIntFromRequest('group_id');
+ session_require_perm('project_admin', $group_id);
+ $headermenu->getHeader($type);
+
+ }
}
site_project_footer(array());
commit b8095e7efe4eb9f16b2e1d0188ebd515a5b3cd14
Merge: 687a997 fafb465
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sat Jan 5 09:47:33 2013 +0100
Merge remote-tracking branch 'upstream/master' into headermenu
commit 687a99794dae78f8f15f9549aba4aaf374ea5921
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 20:47:10 2013 +0100
add notice and reorg display in global
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index eaa3252..9e622e1 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -36,16 +36,17 @@ jQuery(document).ready(function() {
inputHeader: jQuery('#linkmenu_headermenu'),
inputOuter: jQuery('#linkmenu_outermenu'),
trHtmlCode: jQuery('#htmlcode'),
- trUrlCode: jQuery('#urlcode')
- });
+ trUrlCode: jQuery('#urlcode'),
+ tableTbodyLink: jQuery('#sortable tbody')
+ });
});
//]]></script>
<?php
-$linksArray = $headermenu->getAllAvailableLinks();
+$linksArray = $headermenu->getAvailableLinks('headermenu');
if (sizeof($linksArray)) {
- echo $HTML->boxTop(_('Manage available links'));
+ echo $HTML->boxTop(_('Manage available links in headermenu'));
$tabletop = array(_('Menu Location'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
$classth = array('', '','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
@@ -76,6 +77,39 @@ if (sizeof($linksArray)) {
echo '</br>';
}
+$linksArray = $headermenu->getAvailableLinks('outermenu');
+if (sizeof($linksArray)) {
+ echo $HTML->boxTop(_('Manage available links in outermenu'));
+ $tabletop = array(_('Menu Location'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('', '','','','','unsortable');
+ echo $HTML->listTableTop($tabletop, false, 'sortable_outermenu_listlinks', 'sortable', $classth);
+ foreach ($linksArray as $link) {
+ echo '<tr>';
+ echo '<td>'.htmlspecialchars($link['linkmenu']).'</td>';
+ if (strlen($link['url']) > 0) {
+ echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
+ } else {
+ echo '<td>'._('static html code').'</td>';
+ }
+ echo '<td>'.htmlspecialchars($link['name']).'</td>';
+ echo '<td>'.htmlspecialchars($link['description']).'</td>';
+ if ($link['is_enable']) {
+ echo '<td>'.html_image('docman/validate.png', 22, 22, array('alt'=>_('link is on'), 'class'=>'tabtitle', 'title'=>_('link is on'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Desactivate this link').'" href="index.php?type=globaladmin&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=0">'.html_image('docman/release-document.png', 22, 22, array('alt'=>_('Desactivate this link'))). '</a>';
+ } else {
+ echo '<td>'.html_image('docman/delete-directory.png', 22, 22, array('alt'=>_('link is off'), 'class'=>'tabtitle', 'title'=>_('link is off'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Activate this link').'" href="index.php?type=globaladmin&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=1">'.html_image('docman/reserve-document.png', 22, 22, array('alt'=>_('Activate this link'))). '</a>';
+ }
+ echo '<a class="tabtitle-ne" title="'._('Edit this link').'" href="index.php?type=globaladmin&view=updateLinkValue&linkid='.$link['id_headermenu'].'">'.html_image('docman/edit-file.png',22,22, array('alt'=>_('Edit this link'))). '</a>';
+ echo '<a class="tabtitle-ne" title="'._('Delete this link').'" href="index.php?type=globaladmin&action=deleteLink&linkid='.$link['id_headermenu'].'">'.html_image('docman/trash-empty.png',22,22, array('alt'=>_('Delete this link'))). '</a>';
+ echo '</td>';
+ echo '</tr>';
+ }
+ echo $HTML->listTableBottom();
+ echo $HTML->boxBottom();
+ echo '</br>';
+}
+
echo '<form method="POST" name="addLink" action="index.php?type=globaladmin&action=addLink">';
echo '<table><tr>';
echo $HTML->boxTop(_('Add a new link'));
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 1ad33f4..f200b60 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -46,12 +46,13 @@ jQuery(document).ready(function() {
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
if (sizeof($linksArray)) {
+ echo '<p class="information">'. _('You can reorder links, just drag & drop rows in the table and save order.').'</p>';
echo $HTML->boxTop(_('Manage available links'));
- $tabletop = array(_('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
- $classth = array('','','','','unsortable');
+ $tabletop = array(_('Order'), _('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('', '','','','','unsortable');
echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
foreach ($linksArray as $link) {
- echo '<tr>';
+ echo '<tr><td>'.$link['ordering'].'</td>';
if (strlen($link['url']) > 0) {
echo '<td>'._('URL');
if ($link['linktype'] == 'iframe') {
commit 9dfc706aae1b800bab11d0ee940e6f122d92453b
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 16:35:35 2013 +0100
start implement reorder
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 93efda2..6cc2c60 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -3,7 +3,7 @@
/**
* headermenuPlugin Class
*
- * Copyright 2012 Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -61,7 +61,7 @@ class headermenuPlugin extends Plugin {
$group_id = $params['group_id'];
$project = group_get_object($group_id);
if ($project->usesPlugin($this->name)) {
- echo '<p>'.util_make_link('/plugins/headermenu/?type=projectadmin&group_id='.$group_id,
+ echo '<p>'.util_make_link('/plugins/'.$this->name.'/?type=projectadmin&group_id='.$group_id,
_('Project GroupMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
}
break;
@@ -304,6 +304,7 @@ class headermenuPlugin extends Plugin {
global $gfwww;
require_once($gfwww.'admin/admin_utils.php');
html_use_jquery();
+ html_use_jqueryui();
use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
site_admin_header(array('title'=>_('Site Global Menu Admin'), 'toptab' => ''));
@@ -315,18 +316,19 @@ class headermenuPlugin extends Plugin {
$link = $this->getLink($this->pageid);
$group_id = getIntFromRequest('group_id');
if ($group_id) {
- $params['toptab'] = '/plugins/headermenu/?type='.$type.'&group_id='.$group_id.'&pageid='.$this->pageid;
+ $params['toptab'] = '/plugins/'.$this->name.'/?type='.$type.'&group_id='.$group_id.'&pageid='.$this->pageid;
$params['group'] = $group_id;
$params['title'] = $link['name'];
site_project_header($params);
} else {
- site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type='.$type.'&pageid='.$this->pageid));
+ site_header(array('title'=> $link['name'], 'toptab' => '/plugins/'.$this->name.'/?type='.$type.'&pageid='.$this->pageid));
}
$returned = true;
break;
}
case 'projectadmin': {
html_use_jquery();
+ html_use_jqueryui();
use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 72c7018..1ad33f4 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -37,7 +37,8 @@ jQuery(document).ready(function() {
trHtmlCode: jQuery('#htmlcode'),
trUrlCode: jQuery('#urlcode'),
trIframeView: jQuery('#iframe'),
- });
+ tableTbodyLink: jQuery('#sortable tbody')
+ });
});
//]]></script>
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 84f2dce..eb11f3d 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -52,6 +52,9 @@ HeaderMenuController.prototype =
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
+ if (typeof(this.params.tableTbodyLink) != 'undefined') {
+ this.params.tableTbodyLink.sortable();
+ }
},
htmlCodeView: function() {
@@ -80,6 +83,9 @@ GroupMenuController.prototype =
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
this.params.inputURL.attr('checked', 'checked');
+ if (typeof(this.params.tableTbodyLink) != 'undefined') {
+ this.params.tableTbodyLink.sortable();
+ }
},
htmlCodeView: function() {
commit d82bd7925756e9ccf1ef0dd11c526f873e1d48e3
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 15:01:46 2013 +0100
make the update works
diff --git a/src/plugins/headermenu/action/updateLinkValue.php b/src/plugins/headermenu/action/updateLinkValue.php
index e9706ba..caf7bd9 100644
--- a/src/plugins/headermenu/action/updateLinkValue.php
+++ b/src/plugins/headermenu/action/updateLinkValue.php
@@ -23,7 +23,6 @@
global $headermenu;
-session_require_global_perm('forge_admin');
$idLink = getIntFromRequest('linkid');
$link = getStringFromRequest('link');
$name = strip_tags(getStringFromRequest('name'));
@@ -31,53 +30,55 @@ $description = strip_tags(getStringFromRequest('description'));
$typemenu = getStringFromRequest('typemenu');
$linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
+$type = getStringFromRequest('type');
if (!empty($idLink) && !empty($name)) {
switch ($linkmenu) {
- case "headermenu": {
+ case 'headermenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->updateLink($idLink, $link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
$warning_msg = _('Missing Link URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
break;
}
- case "outermenu": {
- if (!empty($link) && $typemenu == 'url') {
+ case 'outermenu':
+ case 'groupmenu': {
+ if (!empty($link) && ($typemenu == 'url' || $typemenu == 'iframe')) {
if (util_check_url($link)) {
- if ($headermenu->updateLink($idLink, $link, $name, $description, $linkmenu)) {
+ if ($headermenu->updateLink($idLink, $link, $name, $description, $linkmenu, $typemenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
if (!empty($htmlcode) && $typemenu == 'htmlcode') {
if ($headermenu->updateLink($idLink, '', $name, $description, $linkmenu, 'htmlcode', $htmlcode)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link URL or Html Code.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
}
}
}
$warning_msg = _('No link to update or name missing.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/view/admin/updateLinkValue.php b/src/plugins/headermenu/view/admin/updateLinkValue.php
index 6edb149..4b2e884 100644
--- a/src/plugins/headermenu/view/admin/updateLinkValue.php
+++ b/src/plugins/headermenu/view/admin/updateLinkValue.php
@@ -63,15 +63,14 @@ if (is_array($linkValues)) {
echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linkmenu'], false);
echo '</td>';
echo '</tr><tr>';
+ $texts = array('URL', 'New Page');
+ $vals = array('url', 'htmlcode');
}
echo '<td>'._('Menu Type').'</td><td>';
if ($type == 'projectadmin') {
$texts = array('URL', 'URL as iframe', 'New Page');
$vals = array('url', 'iframe', 'htmlcode');
- }
- if ($type == 'globaladmin') {
- $texts = array('URL', 'New Page');
- $vals = array('url', 'htmlcode');
+ echo '<input type="hidden" name="linkmenu" value="groupmenu" />';
}
$select_name = 'typemenu';
echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linktype'], false);
commit 7269f4e7f0a482451a39f18fd5d344c7464f7f97
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Tue Jan 1 14:44:52 2013 +0100
support for edit link in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 665e460..d6333d9 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -2,7 +2,7 @@
/**
* headermenu plugin : addLink action
*
- * Copyright 2012, Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -61,7 +61,7 @@ if (!empty($name) && !empty($linkmenu)) {
case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
- $linktype = 'URL';
+ $linktype = 'url';
if ($iframed) {
$linktype = 'iframe';
}
diff --git a/src/plugins/headermenu/db/20121231-reorderentry.sql b/src/plugins/headermenu/db/20121231-reorderentry.sql
index 2f1dccf..865b851 100644
--- a/src/plugins/headermenu/db/20121231-reorderentry.sql
+++ b/src/plugins/headermenu/db/20121231-reorderentry.sql
@@ -1 +1,2 @@
+UPDATE plugin_headermenu SET linktype = 'url' where linktype = 'URL';
ALTER TABLE plugin_headermenu ADD COLUMN ordering integer DEFAULT 0 NOT NULL;
diff --git a/src/plugins/headermenu/view/admin/updateLinkValue.php b/src/plugins/headermenu/view/admin/updateLinkValue.php
index 1209aa8..6edb149 100644
--- a/src/plugins/headermenu/view/admin/updateLinkValue.php
+++ b/src/plugins/headermenu/view/admin/updateLinkValue.php
@@ -2,7 +2,7 @@
/**
* headermenuPlugin Class
*
- * Copyright 2012 Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -23,8 +23,8 @@
global $HTML;
global $headermenu;
+global $type;
-session_require_global_perm('forge_admin');
$linkId = getIntFromRequest('linkid');
?>
@@ -35,6 +35,7 @@ jQuery(document).ready(function() {
controllerHeaderMenu = new EditHeaderMenuController({
inputHtmlCode: jQuery('#typemenu_htmlcode'),
inputURL: jQuery('#typemenu_url'),
+ inputURLIframe: jQuery('#typemenu_iframe'),
inputHeader: jQuery('#linkmenu_headermenu'),
inputOuter: jQuery('#linkmenu_outermenu'),
trHtmlCode: jQuery('#htmlcode'),
@@ -47,23 +48,31 @@ jQuery(document).ready(function() {
<?php
$linkValues = $headermenu->getLink($linkId);
if (is_array($linkValues)) {
- echo '<form method="POST" name="updateLink" action="index.php?type=globaladmin&action=updateLinkValue">';
+ echo '<form method="POST" name="updateLink" action="index.php?type='.$type.'&action=updateLinkValue">';
echo '<table><tr>';
echo $HTML->boxTop(_('Update this link'));
echo '<td>'._('Displayed Name').'</td><td><input name="name" type="text" maxsize="255" value="'.$linkValues['name'].'" /></td>';
echo '</tr><tr>';
echo '<td>'._('Description').'</td><td><input name="description" type="text" maxsize="255" value="'.$linkValues['description'].'" /></td>';
echo '</tr><tr>';
- echo '<td>'._('Menu Location').'</td><td>';
- $vals = array('headermenu', 'outermenu');
- $texts = array('headermenu', 'outermenu');
- $select_name = 'linkmenu';
- echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linkmenu'], false);
- echo '</td>';
- echo '</tr><tr>';
+ if ($type == 'globaladmin') {
+ echo '<td>'._('Menu Location').'</td><td>';
+ $vals = array('headermenu', 'outermenu');
+ $texts = array('headermenu', 'outermenu');
+ $select_name = 'linkmenu';
+ echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linkmenu'], false);
+ echo '</td>';
+ echo '</tr><tr>';
+ }
echo '<td>'._('Menu Type').'</td><td>';
- $texts = array('URL', 'New Page');
- $vals = array('url', 'htmlcode');
+ if ($type == 'projectadmin') {
+ $texts = array('URL', 'URL as iframe', 'New Page');
+ $vals = array('url', 'iframe', 'htmlcode');
+ }
+ if ($type == 'globaladmin') {
+ $texts = array('URL', 'New Page');
+ $vals = array('url', 'htmlcode');
+ }
$select_name = 'typemenu';
echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, $linkValues['linktype'], false);
echo '</td>';
@@ -81,20 +90,18 @@ if (is_array($linkValues)) {
echo '<textarea name="htmlcode" rows="5" cols="80">'.$body.'</textarea>';
}
unset($GLOBALS['editor_was_set_up']);
- echo '</td></tr><tr id="urlcode" >';
- echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
- echo '</tr><tr id="urlcode" style="display:none" >';
+ echo '</td></tr><tr id="urlcode" style="display:none" >';
echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" value="'.$linkValues['url'].'" /></td>';
echo '</tr><tr>';
echo '<td>';
echo '<input type="hidden" name="linkid" value="'.$linkId.'" />';
echo '<input type="submit" value="'. _('Update') .'" />';
- echo '<a href="/plugins/'.$headermenu->name.'/?type=globaladmin"><input type="button" value="'. _('Cancel') .'" /></a>';
+ echo '<a href="/plugins/'.$headermenu->name.'/?type='.$type.'"><input type="button" value="'. _('Cancel') .'" /></a>';
echo '</td>';
echo $HTML->boxBottom();
echo '</tr></table>';
echo '</form>';
} else {
$error_msg = _('Cannot retrieve value for this link:').' '.$linkId;
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 68aee35..84f2dce 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -1,7 +1,7 @@
/**
* headerMenu Plugin Js Controller
*
- * Copyright 2012, Franck Villaume - TrivialDev
+ * Copyright 2012-2013, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge. FusionForge is free software;
@@ -104,8 +104,15 @@ EditHeaderMenuController.prototype =
bindControls: function() {
this.params.inputHtmlCode.click(jQuery.proxy(this, "htmlCodeView"));
this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
- this.params.inputOuter.click(jQuery.proxy(this, "inputHtmlCodeView"));
- this.params.inputHeader.click(jQuery.proxy(this, "headerView"));
+ if (typeof(this.params.inputOuter) != 'undefined') {
+ this.params.inputOuter.click(jQuery.proxy(this, "inputHtmlCodeView"));
+ }
+ if (typeof(this.params.inputHeader) != 'undefined') {
+ this.params.inputHeader.click(jQuery.proxy(this, "headerView"));
+ }
+ if (typeof(this.params.inputURLIframe) != 'undefined') {
+ this.params.inputURLIframe.click(jQuery.proxy(this, "htmlUrlView"));
+ }
},
initializeView: function() {
@@ -120,6 +127,12 @@ EditHeaderMenuController.prototype =
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
}
+ if (typeof(this.params.inputURLIframe) != 'undefined') {
+ if (this.params.inputURLIframe.attr("checked")) {
+ this.params.trHtmlCode.hide();
+ this.params.trUrlCode.show();
+ }
+ }
},
htmlUrlView: function() {
commit 891bbfe5190026f00fc79ebec3f55506dd7339a5
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 18:10:59 2012 +0100
add new column: ordering, to support order between link
diff --git a/src/plugins/headermenu/db/20121231-reorderentry.sql b/src/plugins/headermenu/db/20121231-reorderentry.sql
new file mode 100644
index 0000000..2f1dccf
--- /dev/null
+++ b/src/plugins/headermenu/db/20121231-reorderentry.sql
@@ -0,0 +1 @@
+ALTER TABLE plugin_headermenu ADD COLUMN ordering integer DEFAULT 0 NOT NULL;
commit 224a9968b217024983e6de3a3daada4b9b53c33f
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 17:56:38 2012 +0100
add support for iframe in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index a31060f..665e460 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -30,6 +30,7 @@ $name = strip_tags(getStringFromRequest('name'));
$linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
$type = getStringFromRequest('type');
+$iframed = getIntFromRequest('iframeview');
$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
if (isset($group_id) && $group_id) {
@@ -60,7 +61,11 @@ if (!empty($name) && !empty($linkmenu)) {
case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
- if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
+ $linktype = 'URL';
+ if ($iframed) {
+ $linktype = 'iframe';
+ }
+ if ($headermenu->addLink($link, $name, $description, $linkmenu, $linktype)) {
$feedback = _('Task succeeded.');
session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index d9debd0..93efda2 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -147,10 +147,10 @@ class headermenuPlugin extends Plugin {
break;
}
case 'iframe': {
- $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframeview&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
- if ($params['toptab'] == '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
+ if ($params['toptab'] == '/plugins/'.$this->name.'/?type=iframeview&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
$params['selected'] = (count($params['DIRS'])-1);
}
break;
@@ -286,7 +286,8 @@ class headermenuPlugin extends Plugin {
* @return string the html code
*/
function iframeView($pageid) {
- return true;
+ $link = $this->getLink($pageid);
+ return '<iframe src="'.rtrim($link['url'],'/').'" frameborder="0" height="600px" width="100%"></iframe>';
}
/**
@@ -309,16 +310,17 @@ class headermenuPlugin extends Plugin {
$returned = true;
break;
}
- case 'pageview': {
+ case 'pageview':
+ case 'iframeview': {
$link = $this->getLink($this->pageid);
$group_id = getIntFromRequest('group_id');
if ($group_id) {
- $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'&pageid='.$this->pageid;
+ $params['toptab'] = '/plugins/headermenu/?type='.$type.'&group_id='.$group_id.'&pageid='.$this->pageid;
$params['group'] = $group_id;
$params['title'] = $link['name'];
site_project_header($params);
} else {
- site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type=pageview&pageid='.$this->pageid));
+ site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type='.$type.'&pageid='.$this->pageid));
}
$returned = true;
break;
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 08a5691..72c7018 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -35,7 +35,8 @@ jQuery(document).ready(function() {
inputHtmlCode: jQuery('#typemenu_htmlcode'),
inputURL: jQuery('#typemenu_url'),
trHtmlCode: jQuery('#htmlcode'),
- trUrlCode: jQuery('#urlcode')
+ trUrlCode: jQuery('#urlcode'),
+ trIframeView: jQuery('#iframe'),
});
});
@@ -51,7 +52,11 @@ if (sizeof($linksArray)) {
foreach ($linksArray as $link) {
echo '<tr>';
if (strlen($link['url']) > 0) {
- echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
+ echo '<td>'._('URL');
+ if ($link['linktype'] == 'iframe') {
+ echo ' '._('displayed as iframe');
+ }
+ echo ' ('.htmlspecialchars($link['url']).')</td>';
} else {
echo '<td>'._('static html code').'</td>';
}
@@ -103,6 +108,8 @@ if (!$GLOBALS['editor_was_set_up']) {
unset($GLOBALS['editor_was_set_up']);
echo '</td></tr><tr id="urlcode" >';
echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
+echo '</td></tr><tr id="iframe" >';
+echo '<td colspan="2" ><input name="iframeview" type="checkbox" value="1" />Display URL as iframe.</td>';
echo '</tr><tr>';
echo '<td>';
echo '<input type="hidden" name="linkmenu" value="groupmenu" />';
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index 7418170..1f053ea 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -70,6 +70,13 @@ switch ($type) {
echo $headermenu->pageView($pageid);
break;
}
+ case 'iframeview': {
+ $pageid = getIntFromRequest('pageid');
+ $headermenu->pageid = $pageid;
+ $headermenu->getHeader($type);
+ echo $headermenu->iframeView($pageid);
+ break;
+ }
case 'projectadmin': {
if (!session_loggedin()) {
exit_not_logged_in();
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index 8d91e36..68aee35 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -85,11 +85,13 @@ GroupMenuController.prototype =
htmlCodeView: function() {
this.params.trHtmlCode.show();
this.params.trUrlCode.hide();
+ this.params.trIframeView.hide();
},
htmlUrlView: function() {
this.params.trHtmlCode.hide();
this.params.trUrlCode.show();
+ this.params.trIframeView.show();
},
inputHtmlCodeView: function() {
commit 0c7306f17fcd2fd7ca0c17eed7581664b02e436f
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 15:23:15 2012 +0100
fix selected entry in html code for groupmenu
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 2aa7f74..d9debd0 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -141,12 +141,18 @@ class headermenuPlugin extends Plugin {
$params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
+ if ($params['toptab'] == '/plugins/'.$this->name.'/?type=pageview&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
+ $params['selected'] = (count($params['DIRS'])-1);
+ }
break;
}
case 'iframe': {
$params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
+ if ($params['toptab'] == '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu']) {
+ $params['selected'] = (count($params['DIRS'])-1);
+ }
break;
}
}
@@ -307,11 +313,9 @@ class headermenuPlugin extends Plugin {
$link = $this->getLink($this->pageid);
$group_id = getIntFromRequest('group_id');
if ($group_id) {
- $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'pageid='.$this->pageid;
+ $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'&pageid='.$this->pageid;
$params['group'] = $group_id;
$params['title'] = $link['name'];
- $params['pagename'] = $link['name'];
- $params['sectionvals'] = array(group_getname($group_id));
site_project_header($params);
} else {
site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type=pageview&pageid='.$this->pageid));
commit cc69f88e9f1c13853fee77a949a9a200834346e5
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Mon Dec 31 11:27:22 2012 +0100
add support for html page in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 2bbb69c..a31060f 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -56,7 +56,8 @@ if (!empty($name) && !empty($linkmenu)) {
session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
break;
}
- case 'outermenu': {
+ case 'outermenu':
+ case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
@@ -81,21 +82,6 @@ if (!empty($name) && !empty($linkmenu)) {
$warning_msg = _('Missing Link URL or Html Code.');
session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
}
- case 'groupmenu': {
- if (!empty($link)) {
- if (util_check_url($link)) {
- if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
- $feedback = _('Task succeeded.');
- session_redirect($redirect_url.'&feedback='.urlencode($feedback));
- }
- $error_msg = _('Task failed');
- session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
- } else {
- $error_msg = _('Provided Link is not a valid URL.');
- session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
- }
- }
- }
}
}
$warning_msg = _('No link to create or name missing.');
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 4a9b0da..2aa7f74 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -138,13 +138,13 @@ class headermenuPlugin extends Plugin {
break;
}
case 'htmlcode': {
- $params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&pageid='.$link['id_headermenu'];
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
break;
}
case 'iframe': {
- $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&pageid='.$link['id_headermenu'];
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&group_id='.$params['group'].'&pageid='.$link['id_headermenu'];
$params['TITLES'][] = $link['name'];
$params['TOOLTIPS'][] = $link['description'];
break;
@@ -305,7 +305,17 @@ class headermenuPlugin extends Plugin {
}
case 'pageview': {
$link = $this->getLink($this->pageid);
- site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?pageview&pageid='.$this->pageid));
+ $group_id = getIntFromRequest('group_id');
+ if ($group_id) {
+ $params['toptab'] = '/plugins/headermenu/?type=pageview&group_id='.$group_id.'pageid='.$this->pageid;
+ $params['group'] = $group_id;
+ $params['title'] = $link['name'];
+ $params['pagename'] = $link['name'];
+ $params['sectionvals'] = array(group_getname($group_id));
+ site_project_header($params);
+ } else {
+ site_header(array('title'=> $link['name'], 'toptab' => '/plugins/headermenu/?type=pageview&pageid='.$this->pageid));
+ }
$returned = true;
break;
}
commit 7dcccf40805eb273d6ddb5db0409ee63590d1c5e
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 30 20:38:42 2012 +0100
start htmlcode support in groupmenu
diff --git a/src/plugins/headermenu/action/updateLinkStatus.php b/src/plugins/headermenu/action/updateLinkStatus.php
index ff482e8..03cce2a 100644
--- a/src/plugins/headermenu/action/updateLinkStatus.php
+++ b/src/plugins/headermenu/action/updateLinkStatus.php
@@ -22,18 +22,23 @@
*/
global $headermenu;
+global $type;
+global $group_id;
-session_require_global_perm('forge_admin');
$idLink = getIntFromRequest('linkid');
$linkStatus = getIntFromRequest('linkstatus');
+$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+}
if (!empty($idLink)) {
if ($headermenu->updateLinkStatus($idLink, $linkStatus)) {
$feedback = _('Link Status updated');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link or status to be updated.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index b2fe5f7..4a9b0da 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -311,6 +311,7 @@ class headermenuPlugin extends Plugin {
}
case 'projectadmin': {
html_use_jquery();
+ use_javascript('scripts/HeaderMenuController.js');
use_javascript('/js/sortable.js');
site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
$returned = true;
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 0a04884..08a5691 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -27,6 +27,20 @@ global $group_id;
?>
+<script language="Javascript" type="text/javascript">//<![CDATA[
+var controllerGroupMenu;
+
+jQuery(document).ready(function() {
+ controllerGroupMenu = new GroupMenuController({
+ inputHtmlCode: jQuery('#typemenu_htmlcode'),
+ inputURL: jQuery('#typemenu_url'),
+ trHtmlCode: jQuery('#htmlcode'),
+ trUrlCode: jQuery('#urlcode')
+ });
+});
+
+//]]></script>
+
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
if (sizeof($linksArray)) {
@@ -67,7 +81,27 @@ echo '<td>'._('Displayed Name').'</td><td><input name="name" type="text" maxsize
echo '</tr><tr>';
echo '<td>'._('Description').'</td><td><input name="description" type="text" maxsize="255" /></td>';
echo '</tr><tr>';
-echo '<tr id="urlcode" >';
+echo '<td>'._('Menu Type').'</td><td>';
+$texts = array('URL', 'New Page');
+$vals = array('url', 'htmlcode');
+$select_name = 'typemenu';
+echo html_build_radio_buttons_from_arrays($vals, $texts, $select_name, 'url', false);
+echo '</td>';
+echo '</tr><tr id="htmlcode" style="display:none">';
+echo '<td>'._('Your HTML Code.').'</td><td>';
+$GLOBALS['editor_was_set_up'] = false;
+$body = _('Just paste your code here...');
+$params['name'] = 'htmlcode';
+$params['body'] = $body;
+$params['width'] = "800";
+$params['height'] = "500";
+$params['user_id'] = user_getid();
+plugin_hook("text_editor", $params);
+if (!$GLOBALS['editor_was_set_up']) {
+ echo '<textarea name="htmlcode" rows="5" cols="80">'.$body.'</textarea>';
+}
+unset($GLOBALS['editor_was_set_up']);
+echo '</td></tr><tr id="urlcode" >';
echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
echo '</tr><tr>';
echo '<td>';
diff --git a/src/plugins/headermenu/www/scripts/HeaderMenuController.js b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
index ef9a7ed..8d91e36 100644
--- a/src/plugins/headermenu/www/scripts/HeaderMenuController.js
+++ b/src/plugins/headermenu/www/scripts/HeaderMenuController.js
@@ -32,6 +32,12 @@ HeaderMenuController = function(params) {
this.initializeView();
};
+GroupMenuController = function(params) {
+ this.params = params;
+ this.bindControls();
+ this.initializeView();
+};
+
HeaderMenuController.prototype =
{
bindControls: function() {
@@ -63,6 +69,34 @@ HeaderMenuController.prototype =
}
};
+GroupMenuController.prototype =
+{
+ bindControls: function() {
+ this.params.inputHtmlCode.click(jQuery.proxy(this, "htmlCodeView"));
+ this.params.inputURL.click(jQuery.proxy(this, "htmlUrlView"));
+ },
+
+ initializeView: function() {
+ this.params.trHtmlCode.hide();
+ this.params.trUrlCode.show();
+ this.params.inputURL.attr('checked', 'checked');
+ },
+
+ htmlCodeView: function() {
+ this.params.trHtmlCode.show();
+ this.params.trUrlCode.hide();
+ },
+
+ htmlUrlView: function() {
+ this.params.trHtmlCode.hide();
+ this.params.trUrlCode.show();
+ },
+
+ inputHtmlCodeView: function() {
+ this.params.inputHtmlCode.prop('disabled', false);
+ }
+};
+
EditHeaderMenuController.prototype =
{
bindControls: function() {
commit f5c6dc80afa6c3c7a100af72e570b53d5c3db232
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 30 19:56:25 2012 +0100
support delete link in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 9143385..2bbb69c 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -31,6 +31,11 @@ $linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
$type = getStringFromRequest('type');
+$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+}
+
if (!empty($name) && !empty($linkmenu)) {
switch ($linkmenu) {
case 'headermenu': {
@@ -38,17 +43,17 @@ if (!empty($name) && !empty($linkmenu)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
}
$warning_msg = _('Missing Link URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+ session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
break;
}
case 'outermenu': {
@@ -56,46 +61,42 @@ if (!empty($name) && !empty($linkmenu)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
}
if (!empty($htmlcode)) {
if ($headermenu->addLink('', $name, $description, $linkmenu, 'htmlcode', $htmlcode)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link URL or Html Code.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+ session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
}
case 'groupmenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
}
}
}
}
$warning_msg = _('No link to create or name missing.');
-$url = 'plugins/'.$headermenu->name.'/?type='.$type;
-if (isset($group_id)) {
- $url .= '&group_id='.$group_id;
-}
-session_redirect($url.'&warning_msg='.urlencode($warning_msg));
+session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/action/deleteLink.php b/src/plugins/headermenu/action/deleteLink.php
index 4859571..8cf9ecc 100644
--- a/src/plugins/headermenu/action/deleteLink.php
+++ b/src/plugins/headermenu/action/deleteLink.php
@@ -22,17 +22,22 @@
*/
global $headermenu;
+global $type;
+global $group_id;
-session_require_global_perm('forge_admin');
$idLink = getIntFromRequest('linkid');
+$redirect_url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id) && $group_id) {
+ $redirect_url .= '&group_id='.$group_id;
+}
if (!empty($idLink)) {
if ($headermenu->deleteLink($idLink)) {
$feedback = _('Link deleted');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect($redirect_url.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect($redirect_url.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link to be deleted.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+session_redirect($redirect_url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index e7335cb..b2fe5f7 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -62,7 +62,7 @@ class headermenuPlugin extends Plugin {
$project = group_get_object($group_id);
if ($project->usesPlugin($this->name)) {
echo '<p>'.util_make_link('/plugins/headermenu/?type=projectadmin&group_id='.$group_id,
- _('Project HeaderMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
+ _('Project GroupMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
}
break;
}
@@ -311,6 +311,7 @@ class headermenuPlugin extends Plugin {
}
case 'projectadmin': {
html_use_jquery();
+ use_javascript('/js/sortable.js');
site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
$returned = true;
break;
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
index 299cdee..0a04884 100644
--- a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -29,6 +29,36 @@ global $group_id;
<?php
$linksArray = $headermenu->getAvailableLinks('groupmenu');
+if (sizeof($linksArray)) {
+ echo $HTML->boxTop(_('Manage available links'));
+ $tabletop = array(_('Menu Type'), _('Displayed Name'), _('Description'), _('Status'), _('Actions'));
+ $classth = array('','','','','unsortable');
+ echo $HTML->listTableTop($tabletop, false, 'sortable_headermenu_listlinks', 'sortable', $classth);
+ foreach ($linksArray as $link) {
+ echo '<tr>';
+ if (strlen($link['url']) > 0) {
+ echo '<td>'._('URL').' ('.htmlspecialchars($link['url']).')</td>';
+ } else {
+ echo '<td>'._('static html code').'</td>';
+ }
+ echo '<td>'.htmlspecialchars($link['name']).'</td>';
+ echo '<td>'.htmlspecialchars($link['description']).'</td>';
+ if ($link['is_enable']) {
+ echo '<td>'.html_image('docman/validate.png', 22, 22, array('alt'=>_('link is on'), 'class'=>'tabtitle', 'title'=>_('link is on'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Desactivate this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=0">'.html_image('docman/release-document.png', 22, 22, array('alt'=>_('Desactivate this link'))). '</a>';
+ } else {
+ echo '<td>'.html_image('docman/delete-directory.png', 22, 22, array('alt'=>_('link is off'), 'class'=>'tabtitle', 'title'=>_('link is off'))).'</td>';
+ echo '<td><a class="tabtitle-ne" title="'._('Activate this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&action=updateLinkStatus&linkid='.$link['id_headermenu'].'&linkstatus=1">'.html_image('docman/reserve-document.png', 22, 22, array('alt'=>_('Activate this link'))). '</a>';
+ }
+ echo '<a class="tabtitle-ne" title="'._('Edit this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&view=updateLinkValue&linkid='.$link['id_headermenu'].'">'.html_image('docman/edit-file.png',22,22, array('alt'=>_('Edit this link'))). '</a>';
+ echo '<a class="tabtitle-ne" title="'._('Delete this link').'" href="index.php?type=projectadmin&group_id='.$group_id.'&action=deleteLink&linkid='.$link['id_headermenu'].'">'.html_image('docman/trash-empty.png',22,22, array('alt'=>_('Delete this link'))). '</a>';
+ echo '</td>';
+ echo '</tr>';
+ }
+ echo $HTML->listTableBottom();
+ echo $HTML->boxBottom();
+ echo '</br>';
+}
echo '<form method="POST" name="addLink" action="index.php?type=projectadmin&group_id='.$group_id.'&action=addLink">';
echo '<table><tr>';
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index d0ea3eb..7418170 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -78,6 +78,7 @@ switch ($type) {
session_require_perm('project_admin', $group_id);
$action = getStringFromRequest('action');
$view = getStringFromRequest('view');
+
switch ($action) {
case 'addLink':
case 'updateLinkValue':
commit b41d7debabd7b193cc82ba6ec3fc2552d20d7737
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 30 19:22:55 2012 +0100
support add link in groupmenu
diff --git a/src/plugins/headermenu/action/addLink.php b/src/plugins/headermenu/action/addLink.php
index 501348d..9143385 100644
--- a/src/plugins/headermenu/action/addLink.php
+++ b/src/plugins/headermenu/action/addLink.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin : addLink action
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
@@ -22,60 +22,80 @@
*/
global $headermenu;
+global $group_id;
-session_require_global_perm('forge_admin');
$link = getStringFromRequest('link');
$description = strip_tags(getStringFromRequest('description'));
$name = strip_tags(getStringFromRequest('name'));
$linkmenu = getStringFromRequest('linkmenu');
$htmlcode = getStringFromRequest('htmlcode');
+$type = getStringFromRequest('type');
if (!empty($name) && !empty($linkmenu)) {
switch ($linkmenu) {
- case "headermenu": {
+ case 'headermenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
$warning_msg = _('Missing Link URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
break;
}
- case "outermenu": {
+ case 'outermenu': {
if (!empty($link)) {
if (util_check_url($link)) {
if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
} else {
$error_msg = _('Provided Link is not a valid URL.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
}
if (!empty($htmlcode)) {
if ($headermenu->addLink('', $name, $description, $linkmenu, 'htmlcode', $htmlcode)) {
$feedback = _('Task succeeded.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&feedback='.urlencode($feedback));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&feedback='.urlencode($feedback));
}
$error_msg = _('Task failed');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&error_msg='.urlencode($error_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&error_msg='.urlencode($error_msg));
}
$warning_msg = _('Missing Link URL or Html Code.');
- session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&warning_msg='.urlencode($warning_msg));
+ }
+ case 'groupmenu': {
+ if (!empty($link)) {
+ if (util_check_url($link)) {
+ if ($headermenu->addLink($link, $name, $description, $linkmenu)) {
+ $feedback = _('Task succeeded.');
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&feedback='.urlencode($feedback));
+ }
+ $error_msg = _('Task failed');
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ } else {
+ $error_msg = _('Provided Link is not a valid URL.');
+ session_redirect('plugins/'.$headermenu->name.'/?type='.$type.'&group_id='.$group_id.'&error_msg='.urlencode($error_msg));
+ }
+ }
}
}
}
$warning_msg = _('No link to create or name missing.');
-session_redirect('plugins/'.$headermenu->name.'/?type=globaladmin&warning_msg='.urlencode($warning_msg));
+$url = 'plugins/'.$headermenu->name.'/?type='.$type;
+if (isset($group_id)) {
+ $url .= '&group_id='.$group_id;
+}
+session_redirect($url.'&warning_msg='.urlencode($warning_msg));
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 7c6ee9c..e7335cb 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -27,9 +27,9 @@ class headermenuPlugin extends Plugin {
var $pageid;
function __construct() {
- $this->Plugin() ;
- $this->name = 'headermenu' ;
- $this->text = 'headermenu' ;
+ $this->Plugin();
+ $this->name = 'headermenu';
+ $this->text = 'headermenu';
$this->_addHook('headermenu');
$this->_addHook('site_admin_option_hook');
$this->_addHook('outermenu');
@@ -39,7 +39,7 @@ class headermenuPlugin extends Plugin {
$this->_addHook('project_admin_plugins');
}
- function CallHook ($hookname, &$params) {
+ function CallHook($hookname, &$params) {
switch ($hookname) {
case 'headermenu': {
$this->getHeaderLink();
@@ -332,6 +332,18 @@ class headermenuPlugin extends Plugin {
}
/**
+ * getProjectAdminView - display the Project Admin View
+ *
+ * @return bool true
+ */
+ function getProjectAdminView() {
+ global $gfplugins;
+ $user = session_get_user();
+ include $gfplugins.$this->name.'/view/admin/viewProjectConfiguration.php';
+ return true;
+ }
+
+ /**
* getPluginDescription - display the description of this plugin in pluginman admin page
*
* @return string the description
diff --git a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
index f4b162c..eaa3252 100644
--- a/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
+++ b/src/plugins/headermenu/view/admin/viewGlobalConfiguration.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenuPlugin Class
+ * headermenu : viewGlobalConfiguration page
*
* Copyright 2012 Franck Villaume - TrivialDev
* http://fusionforge.org
@@ -24,7 +24,6 @@
global $HTML;
global $headermenu;
-session_require_global_perm('forge_admin');
?>
<script language="Javascript" type="text/javascript">//<![CDATA[
diff --git a/src/plugins/headermenu/view/admin/viewProjectConfiguration.php b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
new file mode 100644
index 0000000..299cdee
--- /dev/null
+++ b/src/plugins/headermenu/view/admin/viewProjectConfiguration.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * headermenu : viewProjectConfiguration page
+ *
+ * Copyright 2012 Franck Villaume - TrivialDev
+ * http://fusionforge.org
+ *
+ * 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.
+ */
+
+global $HTML;
+global $headermenu;
+global $group_id;
+
+?>
+
+<?php
+$linksArray = $headermenu->getAvailableLinks('groupmenu');
+
+echo '<form method="POST" name="addLink" action="index.php?type=projectadmin&group_id='.$group_id.'&action=addLink">';
+echo '<table><tr>';
+echo $HTML->boxTop(_('Add a new link'));
+echo '<td>'._('Displayed Name').'</td><td><input name="name" type="text" maxsize="255" /></td>';
+echo '</tr><tr>';
+echo '<td>'._('Description').'</td><td><input name="description" type="text" maxsize="255" /></td>';
+echo '</tr><tr>';
+echo '<tr id="urlcode" >';
+echo '<td>'._('URL').'</td><td><input name="link" type="text" maxsize="255" /></td>';
+echo '</tr><tr>';
+echo '<td>';
+echo '<input type="hidden" name="linkmenu" value="groupmenu" />';
+echo '<input type="submit" value="'. _('Add') .'" />';
+echo '</td>';
+echo $HTML->boxBottom();
+echo '</tr></table>';
+echo '</form>';
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index da2d981..d0ea3eb 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -1,6 +1,6 @@
<?php
/**
- * headermenu plugin
+ * headermenu plugin : index page
*
* Copyright 2012, Franck Villaume - TrivialDev
* http://fusionforge.org
@@ -76,8 +76,29 @@ switch ($type) {
}
$group_id = getIntFromRequest('group_id');
session_require_perm('project_admin', $group_id);
+ $action = getStringFromRequest('action');
+ $view = getStringFromRequest('view');
+ switch ($action) {
+ case 'addLink':
+ case 'updateLinkValue':
+ case 'deleteLink':
+ case 'updateLinkStatus': {
+ global $gfplugins;
+ include($gfplugins.$headermenu->name.'/action/'.$action.'.php');
+ break;
+ }
+ }
$headermenu->getHeader($type);
-
+ switch ($view) {
+ case 'updateLinkValue':
+ global $gfplugins;
+ include($gfplugins.$headermenu->name.'/view/admin/'.$view.'.php');
+ break;
+ default:
+ $headermenu->getProjectAdminView();
+ break;
+ }
+ break;
}
}
commit 6adf0b8d6a4feff910a2d0a70aaa028cab476e46
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sun Dec 23 21:28:40 2012 +0100
sync CHANGES
diff --git a/src/CHANGES b/src/CHANGES
index 97eddb7..630233a 100644
--- a/src/CHANGES
+++ b/src/CHANGES
@@ -15,7 +15,8 @@ FusionForge-5.3:
* Docman: add report view as in FRS (TrivialDev)
Plugins:
-* headermenu: new plugin to handle links in headermenu or outermenu (TrivialDev)
+* headermenu: new plugin to handle links in headermenu, outermenu & groupmenu
+ replace the old extratabs plugin (TrivialDev)
* scmgit: add browsing capability for user personal repository (TrivialDev)
* scmgit: basic activity support (TrivialDev).
* scmgit: multiple repositories per project (developed for/sponsored by AdaCore)
commit daed2417204c4366af722e84303ac39f882cef6b
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date: Sat Dec 22 20:28:10 2012 +0100
start implement groupmenu hook in headermenu
diff --git a/src/plugins/headermenu/common/headermenuPlugin.class.php b/src/plugins/headermenu/common/headermenuPlugin.class.php
index 1d8fd29..7c6ee9c 100644
--- a/src/plugins/headermenu/common/headermenuPlugin.class.php
+++ b/src/plugins/headermenu/common/headermenuPlugin.class.php
@@ -33,6 +33,10 @@ class headermenuPlugin extends Plugin {
$this->_addHook('headermenu');
$this->_addHook('site_admin_option_hook');
$this->_addHook('outermenu');
+ $this->_addHook('groupisactivecheckbox'); // The "use ..." checkbox in editgroupinfo
+ $this->_addHook('groupisactivecheckboxpost');
+ $this->_addHook('groupmenu');
+ $this->_addHook('project_admin_plugins');
}
function CallHook ($hookname, &$params) {
@@ -49,6 +53,19 @@ class headermenuPlugin extends Plugin {
echo '<li>'.$this->getAdminOptionLink().'</li>';
break;
}
+ case 'groupmenu': {
+ $this->getGroupLink($params);
+ break;
+ }
+ case 'project_admin_plugins': {
+ $group_id = $params['group_id'];
+ $project = group_get_object($group_id);
+ if ($project->usesPlugin($this->name)) {
+ echo '<p>'.util_make_link('/plugins/headermenu/?type=projectadmin&group_id='.$group_id,
+ _('Project HeaderMenu Admin'), array('class' => 'tabtitle', 'title' => _('Add/Remove/Activate/Desactivate tabs'))) . '</p>';
+ }
+ break;
+ }
}
}
@@ -104,6 +121,41 @@ class headermenuPlugin extends Plugin {
}
/**
+ * getGroupLink - update the links before generate the tab.
+ *
+ * @param array hook params array
+ * @return bool true...
+ */
+ function getGroupLink($params) {
+ $availableLinks = $this->getAvailableLinks('groupmenu');
+ foreach ($availableLinks as $link) {
+ if ($link['is_enable']) {
+ switch ($link['linktype']) {
+ case 'url': {
+ $params['DIRS'][] = $link['url'];
+ $params['TITLES'][] = $link['name'];
+ $params['TOOLTIPS'][] = $link['description'];
+ break;
+ }
+ case 'htmlcode': {
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=pageview&pageid='.$link['id_headermenu'];
+ $params['TITLES'][] = $link['name'];
+ $params['TOOLTIPS'][] = $link['description'];
+ break;
+ }
+ case 'iframe': {
+ $params['DIRS'][] = '/plugins/'.$this->name.'/?type=iframe&pageid='.$link['id_headermenu'];
+ $params['TITLES'][] = $link['name'];
+ $params['TOOLTIPS'][] = $link['description'];
+ break;
+ }
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
* getAvailableLinks - get all the links from the db of certain kind
*
* @param string the type of menu links search in db
@@ -222,6 +274,16 @@ class headermenuPlugin extends Plugin {
}
/**
+ * iframeView - display the iframe
+ *
+ * @param int the iframe id
+ * @return string the html code
+ */
+ function iframeView($pageid) {
+ return true;
+ }
+
+ /**
* getHeader - initialize header and js
*
* @param string type : user, project, globaladmin (aka group)
@@ -247,6 +309,12 @@ class headermenuPlugin extends Plugin {
$returned = true;
break;
}
+ case 'projectadmin': {
+ html_use_jquery();
+ site_header(array('title'=>_('Project Menu Admin'), 'toptab' => ''));
+ $returned = true;
+ break;
+ }
}
return $returned;
}
@@ -269,6 +337,6 @@ class headermenuPlugin extends Plugin {
* @return string the description
*/
function getPluginDescription() {
- return _('Get the ability to set new links next to the login menu (headermenu) or in the main menu (outermenu).');
+ return _('Get the ability to set new links next to the login menu (headermenu), in the main menu (outermenu) or in the project menu (groupmenu).');
}
}
diff --git a/src/plugins/headermenu/www/index.php b/src/plugins/headermenu/www/index.php
index 2eaabcb..da2d981 100644
--- a/src/plugins/headermenu/www/index.php
+++ b/src/plugins/headermenu/www/index.php
@@ -70,6 +70,15 @@ switch ($type) {
echo $headermenu->pageView($pageid);
break;
}
+ case 'projectadmin': {
+ if (!session_loggedin()) {
+ exit_not_logged_in();
+ }
+ $group_id = getIntFromRequest('group_id');
+ session_require_perm('project_admin', $group_id);
+ $headermenu->getHeader($type);
+
+ }
}
site_project_footer(array());
-----------------------------------------------------------------------
Summary of changes:
src/CHANGES | 2 +-
src/plugins/headermenu/action/addLink.php | 46 ++++--
src/plugins/headermenu/action/deleteLink.php | 15 +-
src/plugins/headermenu/action/updateLinkStatus.php | 15 +-
src/plugins/headermenu/action/updateLinkValue.php | 43 ++---
.../headermenu/action/validateOrder.php} | 28 ++--
.../headermenu/common/headermenuPlugin.class.php | 160 ++++++++++++++++--
.../headermenu/db/20121231-reorderentry.sql | 2 +
.../headermenu/view/admin/updateLinkValue.php | 49 +++---
.../view/admin/viewGlobalConfiguration.php | 76 +++++++--
...figuration.php => viewProjectConfiguration.php} | 63 ++++----
src/plugins/headermenu/www/index.php | 44 ++++-
.../headermenu/www/scripts/HeaderMenuController.js | 170 +++++++++++++++++++-
src/www/themes/funky/Theme.class.php | 5 +-
14 files changed, 583 insertions(+), 135 deletions(-)
copy src/{www/include/unicode.php => plugins/headermenu/action/validateOrder.php} (67%)
create mode 100644 src/plugins/headermenu/db/20121231-reorderentry.sql
copy src/plugins/headermenu/view/admin/{viewGlobalConfiguration.php => viewProjectConfiguration.php} (57%)
hooks/post-receive
--
FusionForge
More information about the Fusionforge-commits
mailing list