Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.1
horde3-kronolith
HK-SB-kronolith_2.2_RC1-Fbview_save_attendees.p...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File HK-SB-kronolith_2.2_RC1-Fbview_save_attendees.patch of Package horde3-kronolith
Provides a patch to store the list of attendees in the user preferences. This is a broken patch that has been rejected upstream (http://bugs.horde.org/ticket/?id=4788). This should be solved using Horde::Groups. diff -r 848f241f83e0 kronolith/attendees.php --- a/kronolith/attendees.php Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/attendees.php Thu Nov 29 11:32:43 2007 +0100 @@ -155,6 +155,16 @@ case 'clear': $attendees = array(); $_SESSION['kronolith']['attendees'] = $attendees; break; + +case 'save': + if (empty($attendees)) { + break; + } + $savedattlist = unserialize($prefs->getValue('saved_attendee_list')); + $savedattlist[] = array_keys($attendees); + $prefs->setValue('saved_attendee_list', serialize($savedattlist)); + $notification->push(_('Successfully saved attendee list'), 'horde.success'); + break; } // Get the current Free/Busy view; default to the 'day' view if none specified. @@ -226,6 +236,14 @@ Imple::factory('ContactAutoCompleter', a $title = _("Edit attendees"); require KRONOLITH_TEMPLATES . '/common-header.inc'; + +if ($browser->hasFeature('javascript')) { + Horde::addScriptFile('open_savedattlist_win.js'); + $savedattlist_url = 'javascript:open_savedattlist_win();'; +} else { + $savedattlist_url = Horde::applicationUrl('savedattlist.php'); +} + $notification->notify(array('status')); require KRONOLITH_TEMPLATES . '/attendees/attendees.inc'; require $registry->get('templates', 'horde') . '/common-footer.inc'; diff -r 848f241f83e0 kronolith/config/prefs.php.dist --- a/kronolith/config/prefs.php.dist Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/config/prefs.php.dist Thu Nov 29 11:32:43 2007 +0100 @@ -465,3 +465,11 @@ if ($GLOBALS['registry']->hasMethod('con 'shared' => false, 'type' => 'implicit' ); + +$_prefs['saved_attendee_list'] = array( + 'value' => 'a:0:{}', + 'locked' => false, + 'shared' => false, + 'type' => 'implicit', + 'desc' => _("A saved list of attendees") +); diff -r 848f241f83e0 kronolith/savedattlist.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/savedattlist.php Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,77 @@ +<?php +/** + * $Horde: kronolith/attendeeshandler.php,v 1.1 2004/05/25 08:34:21 stuart Exp $ + * + * Copyright 2004 Code Fusion <http://www.codefusion.co.za/> + * Stuart Binge <s.binge@codefusion.co.za> + * + * See the enclosed file COPYING for license information (GPL). If you + * did not receive this file, see http://www.fsf.org/copyleft/gpl.html. + */ + +@define('KRONOLITH_BASE', dirname(__FILE__)); +require_once KRONOLITH_BASE . '/lib/base.php'; +require_once KRONOLITH_BASE . '/lib/FBView.php'; + +$title = _('Load Attendee List'); + +Horde::addScriptFile('tooltip.js', 'horde'); +require KRONOLITH_TEMPLATES . '/common-header.inc'; + +// Get our list of saved attendees +$savedattlist = unserialize($prefs->getValue('saved_attendee_list')); + +// Preformat our image urls +$delimg = Horde::img('delete.png', _("Remove List"), null, $GLOBALS['registry']->getImageDir('horde')); +$loadimg = Horde::img('tree/folder.png', _("Load List"), null, $GLOBALS['registry']->getImageDir('horde')); + +// Get our Action ID & Value. This specifies what action the user initiated. +$actionID = Util::getFormData('actionID', false); +$actionValue = Util::getFormData('actionValue', false); +if (!$actionID) { + $actionID = (Util::getFormData('addNew', false) ? 'add' : false); + $actionValue = Util::getFormData('newAttendees', ''); +} + +// Perform the specified action, if there is one. +switch ($actionID) { +case 'remove': + // Remove the specified attendee + if (array_key_exists($actionValue, $savedattlist)) { + unset($savedattlist[$actionValue]); + $prefs->setValue('saved_attendee_list', serialize($savedattlist)); + } + + break; + +case 'dismiss': + // Make sure we're actually allowed to dismiss + if (!$allow_dismiss) break; + + // Close the attendee window + global $browser; + + if ($browser->hasFeature('javascript')) { + Util::closeWindowJS(); + } else { + $url = Util::getFormData('url'); + + if (!empty($url)) { + $location = Horde::applicationUrl($url, true); + } else { + $url = Util::addParameter($prefs->getValue('defaultview') . '.php', 'month', Util::getFormData('month')); + $url = Util::addParameter($url, 'year', Util::getFormData('year')); + $location = Horde::applicationUrl($url, true); + } + + // Make sure URL is unique. + $location = Util::addParameter($location, 'unique', md5(microtime())); + + header('Location: ' . $location); + } + break; +} + +$form_handler = Horde::applicationUrl('savedattlist.php'); +require KRONOLITH_TEMPLATES . '/savedattlist/savedattlist.inc'; +require $GLOBALS['registry']->get('templates', 'horde') . '/common-footer.inc'; diff -r 848f241f83e0 kronolith/templates/attendees/attendees.inc --- a/kronolith/templates/attendees/attendees.inc Thu Nov 29 10:56:04 2007 +0100 +++ b/kronolith/templates/attendees/attendees.inc Thu Nov 29 11:32:43 2007 +0100 @@ -92,6 +92,8 @@ function switchDateView(view, timestamp) <div> <input type="submit" class="button" name="addNew" value="<?php echo htmlspecialchars(_("Save Attendees")) ?>" /> <input type="submit" class="button" name="addNewClose" value="<?php echo htmlspecialchars(_("Save and Finish")) ?>" /> + <input type="button" class="button" name="loadAttList" value="<?php echo htmlspecialchars(_("Load Attendee List")) ?>" onclick="<?php echo $savedattlist_url ?>" /> + <?php if (!empty($attendees)): ?><input type="button" class="button" name="saveAttList" value="<?php echo htmlspecialchars(_("Save Attendee List")) ?>" onclick="performAction('save', '');" /><?php endif; ?> <?php if (!empty($attendees)): ?><input type="submit" class="button" name="clearAll" value="<?php echo htmlspecialchars(_("Clear all attendees")) ?>" /><?php endif; ?> </div> diff -r 848f241f83e0 kronolith/templates/javascript/open_savedattlist_win.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/javascript/open_savedattlist_win.js Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,36 @@ +<?php if (!strstr($_SERVER['PHP_SELF'], 'javascript.php')): ?><script language="JavaScript" type="text/javascript"> +<!-- +<?php endif; ?> +function open_savedattlist_win(args) +{ + var url = "<?php echo Horde::url($GLOBALS['registry']->applicationWebPath('%application%/savedattlist.php', 'kronolith')) ?>"; + if (url.indexOf('?') == -1) glue = '?'; + else glue = '<?php echo ini_get('arg_separator.output') ?>'; + var now = new Date(); + var name = "savedattlist_window_" + now.getTime(); + if (args != "") { + url = url + glue + args + '<?php echo ini_get('arg_separator.output') ?>' + "uniq=" + now.getTime(); + } else { + url = url + glue + "uniq=" + now.getTime(); + } + var Width = screen.width; + if (Width > 775) { + Width = 700; + } else { + Width -= 75; + } + var Height = screen.height; + if (Height > 725) { + Height = 650; + } else { + Height -= 75; + } + param = "toolbar=no,location=no,status=yes,scrollbars=yes,resizable=yes,width=" + Width + ",height=" + Height + ",left=0,top=0"; + name = window.open(url, name, param); + if (!eval("name.opener")) { + name.opener = self; + } +} +<?php if (!strstr($_SERVER['PHP_SELF'], 'javascript.php')): ?>// --> +</script> +<?php endif; ?> diff -r 848f241f83e0 kronolith/templates/savedattlist/savedattlist.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kronolith/templates/savedattlist/savedattlist.inc Thu Nov 29 11:32:43 2007 +0100 @@ -0,0 +1,68 @@ +<!-- javascript action handling --> +<script language="JavaScript" type="text/javascript"> +<!-- +function performAction(id, value) +{ + document.savedattlistForm.actionID.value = id; + document.savedattlistForm.actionValue.value = value; + document.savedattlistForm.submit(); + return false; +} + +function updateMessage(list) +{ + if (parent.opener.closed) { + alert('<?php echo addslashes(_("The Edit Attendees screen is no longer present. Exiting.")) ?>'); + this.close(); + return; + } + + if (!parent.opener.document.attendeesForm) { + alert('<?php echo addslashes(_("You can only use this form from the Edit Attendees screen.")) ?>'); + this.close(); + return; + } + + parent.opener.document.attendeesForm.newAttendees.value = list; + this.close(); +} +// --> +</script> + +<form method="post" action="<?php echo $form_handler; ?>" name="savedattlistForm"> +<?php Util::pformInput(); ?> +<input type="hidden" name="actionID" value="" /> +<input type="hidden" name="actionValue" value="" /> + +<div align="center"> + +<table border="0" width="500" cellspacing="0" cellpadding="2"> + +<!-- header --> +<tr><td colspan="4" class="header"><b><?php echo $title ?></b></td></tr> + +<!-- attendee list header --> +<tr class="item"> + <td nowrap="nowrap" width="2%" align="center"><?php echo $loadimg ?></td> + <td nowrap="nowrap" width="2%" align="center"><?php echo $delimg ?></td> + <td nowrap="nowrap" width="96%"><b><?php echo htmlspecialchars(_("Attendees")) ?></b></td> +</tr> + +<!-- attendees --> +<?php $i = 0 ?> +<?php if (empty($savedattlist)): ?> + <tr class="item<?php echo ($i++ % 2) ?>"><td align="center" colspan="3"><i><?php echo htmlspecialchars('-- ' . _("No saved attendee lists are available") . ' --') ?></i></td></tr> +<?php else: foreach ($savedattlist as $index => $list): ?> + <tr class="item<?php echo ($i++ % 2) ?>"> + <?php + echo '<td align="center">', Horde::link("javascript:updateMessage('" . addslashes(implode(', ', $list)) . "')", _("Load this list")), $loadimg, "</a></td>"; + ?> + <?php + echo '<td align="center">', Horde::link("javascript:performAction('remove', '" . $index . "')", _("Remove this list")), $delimg, "</a></td>"; + ?> + <td><?php echo implode(', ', $list); ?></td> + </tr> +<?php endforeach; endif; ?> +</table> +</div> +</form>
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor