$filters = &$ingo_storage->retrieve(Ingo_Storage::ACTION_FILTERS);
$bl_rule = $filters->findRule(Ingo_Storage::ACTION_BLACKLIST);
-/* Include new folder JS if necessary. */
-if ($registry->hasMethod('mail/createFolder')) {
- Horde::addScriptFile('new_folder.js');
-}
-
+Ingo::prepareMenu();
+Ingo::addNewFolderJs();
$title = _("Blacklist Edit");
require INGO_TEMPLATES . '/common-header.inc';
require INGO_TEMPLATES . '/menu.inc';
Horde::addScriptFile('tooltips.js', 'horde', true);
Horde::addScriptFile('stripe.js', 'horde', true);
+Horde::addScriptFile('filters.js', 'ingo', true);
+Ingo::prepareMenu();
$title = _("Filter Rules");
require INGO_TEMPLATES . '/common-header.inc';
require INGO_TEMPLATES . '/menu.inc';
$form->setTitle($form_title);
$title = _("Forwards Edit");
+Ingo::prepareMenu();
require INGO_TEMPLATES . '/common-header.inc';
require INGO_TEMPLATES . '/menu.inc';
$form->renderActive(new Horde_Form_Renderer(array('encode_title' => false)), $vars, 'forward.php', 'post');
--- /dev/null
+/**
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+var IngoFilters = {
+
+ moveFromTo: function(from, to, upurl, downurl)
+ {
+ var steps = to - from;
+ if (steps < 0) {
+ window.location = upurl + '&steps=' + -steps;
+ } else if (steps > 0) {
+ window.location = downurl + '&steps=' + steps;
+ }
+ return true;
+ }
+
+};
--- /dev/null
+/**
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+var IngoNewFolder = {
+
+ newFolderName: function(name, tagname)
+ {
+ var form = document.getElementsByName(name);
+ var selector = form[0].elements.namedItem(tagname);
+
+ if (selector.selectedIndex == 1){
+ var folder = window.prompt(this.folderprompt . '\n', '');
+
+ if ((folder != null) && (folder != '')) {
+ form[0].actionID.value = 'create_folder';
+ form[0].new_folder_name.value = folder;
+ form[0].submit();
+ }
+ }
+
+ return true;
+ }
+
+};
--- /dev/null
+/**
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+var IngoRule = {
+
+ delete_condition: function(num)
+ {
+ document.rule.actionID.value = 'rule_delete';
+ document.rule.conditionnumber.value = num;
+ document.rule.submit();
+ return true;
+ }
+
+};
*/
const USER_HEADER = '++USER_HEADER++';
+ /* getMenu() cache. */
+ static private $_menuCache = null;
+
/**
* Generates a folder widget.
* If an application is available that provides a folderlist method
$text .= $onchange . ';';
}
if ($createfolder) {
- $text .= 'newFolderName(\'' . $form . '\', \'' .
+ $text .= 'IngoNewFolder.newFolderName(\'' . $form . '\', \'' .
$tagname . '\');';
}
$text .= '"';
return $menu;
}
+ /**
+ * Prepares and caches Ingo's list of menu items.
+ *
+ * @return string The menu text.
+ */
+ static public function prepareMenu()
+ {
+ if (!self::$_menuCache) {
+ self::$_menuCache = self::getMenu()->render();
+ }
+
+ return self::$_menuCache;
+ }
+
+ /**
+ * Add new_folder.js to the list of output javascript files.
+ */
+ static public function addNewFolderJs()
+ {
+ if ($GLOBALS['registry']->hasMethod('mail/createFolder')) {
+ Horde::addScriptFile('new_folder.js', 'ingo', true);
+ Horde::addInlineScript(array(
+ 'IngoNewFolder.folderprompt = ' . Horde_Serialize::serialize(_("Please enter the name of the new folder:"), Horde_Serialize::JSON, Horde_Nls::getCharset())
+ ));
+ }
+ }
+
}
exit;
}
-if ($registry->hasMethod('mail/createFolder')) {
- Horde::addScriptFile('new_folder.js');
-}
-
$title = $rule['name'];
+Horde::addScriptFile('rule.js', 'ingo', true);
+Ingo::prepareMenu();
+Ingo::addNewFolderJs();
require INGO_TEMPLATES . '/common-header.inc';
require INGO_TEMPLATES . '/menu.inc';
require INGO_TEMPLATES . '/rule/header.inc';
}
$title = _("Filter Script Display");
+Ingo::prepareMenu();
require INGO_TEMPLATES . '/common-header.inc';
require INGO_TEMPLATES . '/menu.inc';
require INGO_TEMPLATES . '/script/header.inc';
$vars->set('new_folder_name', '');
}
-/* Include new folder JS if necessary. */
-if ($registry->hasMethod('mail/createFolder')) {
- Horde::addScriptFile('new_folder.js');
-}
-
/* Set form title. */
$form_title = _("Spam Filtering");
if (!empty($spam_rule['disable'])) {
$form->setTitle($form_title);
$title = _("Spam Filtering");
+Ingo::prepareMenu();
+Ingo::addNewFolderJs();
require INGO_TEMPLATES . '/common-header.inc';
require INGO_TEMPLATES . '/menu.inc';
$form->renderActive($renderer, $vars, 'spam.php', 'post');
<?php if (!empty($refresh_time) && !empty($refresh_url)): ?>
<meta http-equiv="refresh" content="<?php echo $refresh_time ?>;url=<?php echo $refresh_url ?>">
<?php endif; ?>
+<?php Horde::includeStylesheetFiles() ?>
<?php Horde::includeScriptFiles(); ?>
<title><?php echo htmlspecialchars($page_title) ?></title>
<link href="<?php echo $GLOBALS['registry']->getImageDir()?>/favicon.ico" rel="SHORTCUT ICON" />
-<?php Horde::includeStylesheetFiles() ?>
+<?php Horde::outputInlineScript(); ?>
</head>
<body<?php if ($bc = Horde_Util::nonInputVar('bodyClass')) echo ' class="' . $bc . '"' ?><?php if ($bi = Horde_Util::nonInputVar('bodyId')) echo ' id="' . $bi . '"'; ?>>
<if:filter.downlink><tag:filter.downlink /><tag:down_img /></a></if:filter.downlink>
</td>
<td class="nowrap">
- <label><gettext>To:</gettext> <input type="text" size="2" onchange="moveFromTo(<tag:filter.number />, this.value, '<tag:filter.upurl />', '<tag:filter.downurl />');"/></label>
+ <label><gettext>To:</gettext> <input type="text" size="2" onchange="IngoFilters.moveFromTo(<tag:filter.number />, this.value, '<tag:filter.upurl />', '<tag:filter.downurl />');"/></label>
</td>
</if:edit_allowed>
</tr>
-<script type="text/javascript">
-function moveFromTo(from, to, upurl, downurl)
-{
- var steps = to - from;
- if (steps < 0) {
- window.location = upurl + '&steps=' + -steps;
- } else if (steps > 0) {
- window.location = downurl + '&steps=' + steps;
- }
- return true;
-}
-</script>
<form method="post" name="filters" action="<?php echo Horde::applicationUrl('filters.php') ?>">
<?php Horde_Util::pformInput() ?>
<input type="hidden" name="actionID" value="" />
+++ /dev/null
-function newFolderName(name, tagname)
-{
- var form = document.getElementsByName(name);
- var selector = form[0].elements.namedItem(tagname);
-
- if (selector.selectedIndex == 1){
- var folder = window.prompt('<?php echo addslashes(_("Please enter the name of the new folder:")) ?>\n', '');
-
- if ((folder != null) && (folder != '')) {
- form[0].actionID.value = 'create_folder';
- form[0].new_folder_name.value = folder;
- form[0].submit();
- }
- }
-
- return true;
-}
</div>
<?php endif; ?>
- <?php echo Ingo::getMenu()->render() ?>
+ <?php echo Ingo::prepareMenu() ?>
</div>
</form>
</td>
<?php endif; ?>
<?php if (!$lastfield): ?>
- <td><?php echo Horde::link('javascript:delete_condition(' . (int)$cond_num . ');', _("Delete Condition")) . Horde::img('delete.png', _("Delete Condition"), null, $registry->getImageDir('horde')) ?></a></td>
+ <td><?php echo Horde::link('javascript:IngoRule.delete_condition(' . (int)$cond_num . ');', _("Delete Condition")) . Horde::img('delete.png', _("Delete Condition"), null, $registry->getImageDir('horde')) ?></a></td>
<?php elseif ($cond_num != 0): ?>
<td> </td>
<?php endif; ?>
-<script type="text/javascript">
-<!--
-function delete_condition(num)
-{
- document.rule.actionID.value = 'rule_delete';
- document.rule.conditionnumber.value = num;
- document.rule.submit();
- return true;
-}
-//-->
-</script>
-
<form method="post" name="rule" action="<?php echo Horde::applicationUrl('rule.php') ?>">
<?php Horde_Util::pformInput() ?>
<input type="hidden" name="actionID" value="rule_update" />
$form->setTitle($form_title);
$title = _("Vacation Edit");
+Ingo::prepareMenu();
require INGO_TEMPLATES . '/common-header.inc';
require INGO_TEMPLATES . '/menu.inc';
$form->renderActive(new Horde_Form_Renderer(array('encode_title' => false)), $vars, 'vacation.php', 'post');
$wl_rule = $filters->findRule(Ingo_Storage::ACTION_WHITELIST);
$title = _("Whitelist Edit");
+Ingo::prepareMenu();
require INGO_TEMPLATES . '/common-header.inc';
require INGO_TEMPLATES . '/menu.inc';
require INGO_TEMPLATES . '/whitelist/whitelist.inc';