Merge branch 'master' of ssh://git.kolabsys.com/git/roundcube

This commit is contained in:
Thomas Bruederli 2011-06-20 19:31:54 -06:00
commit 2dc025959c
4 changed files with 91 additions and 8 deletions

View file

@ -90,10 +90,13 @@ class kolab_calendar
/**
* Return color to display this calendar
*/
public function get_color()
public function get_color($owner)
{
// TODO: read color from backend (not yet supported)
return '0000dd';
//temporary color deffirence between own calendars and the rest
if ($owner == $_SESSION['username'])
return 'd63355';
return '1f9ebe';
}
@ -135,6 +138,7 @@ class kolab_calendar
// resolve recurring events (maybe move to _fetch_events() for general use?)
if ($event['recurrence']) {
$recurrence = new Horde_Date_Recurrence($event['start']);
$recurrence->fromRRule20(calendar::to_rrule($event['recurrence']));
@ -169,6 +173,7 @@ class kolab_calendar
* Create a new event record
*
* @see Driver:new_event()
*
* @return mixed The created record ID on success, False on error
*/
public function insert_event($event)

View file

@ -71,7 +71,7 @@ class kolab_driver extends calendar_driver
'id' => $calendar->id,
'name' => $calendar->get_name(),
'editname' => $calendar->get_foldername(),
'color' => $calendar->get_color(),
'color' => $calendar->get_color($c_folder->_owner),
'readonly' => $c_folder->_owner != $_SESSION['username'],
);
}

View file

@ -22,7 +22,7 @@ body.calendarmain {
top: 37px;
left: 10px;
bottom: 0;
width: 230px;
width: 265px;
}
#datepicker {
@ -41,9 +41,9 @@ body.calendarmain {
#sidebartoggle {
position: absolute;
left: 244px;
left: 276px;
width: 8px;
top: 37px;
top: 27px;
bottom: 0;
background: url('images/toggle.gif') 0 48% no-repeat transparent;
cursor: pointer;
@ -60,7 +60,7 @@ div.sidebarclosed {
#calendar {
position: absolute;
top: 0;
left: 256px;
left: 290px;
right: 10px;
bottom: 0;
}
@ -539,4 +539,3 @@ div.fc-event-location {
fieldset #calendarcategories div {
margin-bottom: 0.3em;
}

View file

@ -86,6 +86,7 @@ class rcube_kolab
* Get instance of a Kolab (XML) format object
*
* @param string Data type (contact,event,task,note)
*
* @return object Horde_Kolab_Format_XML The format object
*/
public static function get_format($type)
@ -98,6 +99,7 @@ class rcube_kolab
* Get a list of storage folders for the given data type
*
* @param string Data type to list folders for (contact,event,task,note)
*
* @return array List of Kolab_Folder objects (folder names in UTF7-IMAP)
*/
public static function get_folders($type)
@ -112,6 +114,7 @@ class rcube_kolab
*
* @param string IMAP folder to access (UTF7-IMAP)
* @param string Object type to deal with (leave empty for auto-detection using annotations)
*
* @return object Kolab_Data The data storage object
*/
public static function get_storage($folder, $data_type = null)
@ -143,4 +146,80 @@ class rcube_kolab
return asciiwords(strtr($folder, '/.', '--'));
}
/**
* Deletes IMAP folder
*
* @param string $name Folder name (UTF7-IMAP)
*
* @return bool True on success, false on failure
*/
public static function folder_delete($name)
{
self::setup();
$kolab = Kolab_List::singleton();
$folder = $kolab->getFolder($name);
$result = $folder->delete();
if (is_a($result, 'PEAR_Error')) {
return false;
}
return true;
}
/**
* Creates IMAP folder
*
* @param string $name Folder name (UTF7-IMAP)
* @param string $type Folder type
* @param bool $default True if older is default (for specified type)
*
* @return bool True on success, false on failure
*/
public static function folder_create($name, $type=null, $default=false)
{
self::setup();
$kolab = Kolab_List::singleton();
$folder = new Kolab_Folder();
$folder->setList($kolab);
$folder->setFolder($name);
$result = $folder->save(array(
'type' => $type,
'default' => $default,
));
if (is_a($result, 'PEAR_Error')) {
return false;
}
return true;
}
/**
* Renames IMAP folder
*
* @param string $oldname Old folder name (UTF7-IMAP)
* @param string $newname New folder name (UTF7-IMAP)
*
* @return bool True on success, false on failure
*/
public static function folder_rename($oldname, $newname)
{
self::setup();
$kolab = Kolab_List::singleton();
$folder = $kolab->getFolder($oldname);
$folder->setFolder($newname);
$result = $kolab->rename($folder);
if (is_a($result, 'PEAR_Error')) {
return false;
}
return true;
}
}