Fix editing remote cals.
authorJan Schneider <jan@horde.org>
Tue, 15 Dec 2009 17:09:25 +0000 (18:09 +0100)
committerJan Schneider <jan@horde.org>
Tue, 15 Dec 2009 17:09:25 +0000 (18:09 +0100)
kronolith/calendars/remote_edit.php
kronolith/lib/Forms/EditRemoteCalendar.php
kronolith/templates/calendar_list.php

index c2790a6..2905a02 100644 (file)
@@ -61,12 +61,12 @@ if ($key) {
 $vars->set('name', $calendar['name']);
 $vars->set('url', $calendar['url']);
 if (isset($calendar['desc'])) {
-    $vars->set('decription', $calendar['desc']);
+    $vars->set('desc', $calendar['desc']);
 }
 if (isset($calendar['color'])) {
     $vars->set('color', $calendar['color']);
 }
-$vars->set('username', $username);
+$vars->set('user', $username);
 $vars->set('password', $password);
 $title = $form->getTitle();
 require KRONOLITH_TEMPLATES . '/common-header.inc';
index 1ce275d..33fdfbb 100644 (file)
@@ -31,45 +31,43 @@ class Kronolith_EditRemoteCalendarForm extends Horde_Form {
         $this->addVariable(_("Name"), 'name', 'text', true);
         $v = &$this->addVariable(_("URL"), 'new_url', 'text', true);
         $v->setDefault($vars->get('url'));
-        $this->addVariable(_("Username"), 'username', 'text', false);
+        $this->addVariable(_("Username"), 'user', 'text', false);
         $this->addVariable(_("Password"), 'password', 'password', false);
+        $this->addVariable(_("Color"), 'color', 'colorpicker', false);
+        $this->addVariable(_("Description"), 'desc', 'longtext', false, false, null, array(4, 60));
 
         $this->setButtons(array(_("Save")));
     }
 
     function execute()
     {
-        $name = trim($this->_vars->get('name'));
+        $info = array();
+        foreach (array('name', 'new_url', 'user', 'password', 'color', 'desc') as $key) {
+            $info[$key == 'new_url' ? 'url' : $key] = $this->_vars->get($key);
+        }
         $url = trim($this->_vars->get('url'));
-        $new_url = trim($this->_vars->get('new_url'));
-        $username = trim($this->_vars->get('username'));
-        $password = trim($this->_vars->get('password'));
 
-        if (!(strlen($name) && strlen($url))) {
+        if (!strlen($info['name']) || !strlen($url)) {
             return false;
         }
 
-        if (strlen($username) || strlen($password)) {
+        if (strlen($info['username']) || strlen($info['password'])) {
             $key = Horde_Auth::getCredential('password');
             if ($key) {
-                $username = base64_encode(Horde_Secret::write($key, $username));
-                $password = base64_encode(Horde_Secret::write($key, $password));
+                $info['username'] = base64_encode(Horde_Secret::write($key, $info['username']));
+                $info['password'] = base64_encode(Horde_Secret::write($key, $info['password']));
             }
         }
 
         $remote_calendars = unserialize($GLOBALS['prefs']->getValue('remote_cals'));
         foreach ($remote_calendars as $key => $calendar) {
             if ($calendar['url'] == $url) {
-                $remote_calendars[$key]['name'] = $name;
-                $remote_calendars[$key]['url'] = $new_url;
-                $remote_calendars[$key]['user'] = $username;
-                $remote_calendars[$key]['password'] = $password;
+                $remote_calendars[$key] = $info;
                 break;
             }
         }
 
         $GLOBALS['prefs']->setValue('remote_cals', serialize($remote_calendars));
-        return true;
     }
 
 }
index b653440..f28bc76 100644 (file)
@@ -36,7 +36,7 @@
    <td><?php echo htmlspecialchars($calendar['name']) ?></td>
    <td><?php echo _("Remote") ?></td>
    <td><?php $url = $display_url_base->add('display_cal', 'remote_' . $calendar['url']); echo $url->link(array('title' => _("Click or copy this URL to display this calendar"), 'target' => '_blank')) . htmlspecialchars(shorten_url($url)) . '</a>' ?></td>
-   <td><?php echo $calendar['url']->link(array('title' => _("Click or copy this URL to display this calendar"), 'target' => '_blank')) . htmlspecialchars(shorten_url($calendar['url'])) . '</a>' ?></td>
+   <td><?php $url = new Horde_Url($calendar['url']); echo $url->link(array('title' => _("Click or copy this URL to display this calendar"), 'target' => '_blank')) . htmlspecialchars(shorten_url($calendar['url'])) . '</a>' ?></td>
    <td><?php echo $remote_edit_url_base->add('url', $calendar['url'])->link(array('title' => _("Edit"))) . $edit_img . '</a>' ?></td>
 <?php if (empty($conf['share']['no_sharing'])): ?>
    <td>&nbsp;</td>
@@ -46,7 +46,7 @@
    <td><?php echo htmlspecialchars($calendar->get('name')) ?></td>
    <td><?php echo _("Local") ?></td>
    <td><?php $url = $display_url_base->add('display_cal', $calendar->getName()); echo $url->link(array('title' => _("Click or copy this URL to display this calendar"))) . htmlspecialchars(shorten_url($url)) . '</a>' ?></td>
-   <td><?php $url = $subscribe_url_base . ($calendar->get('owner') ? $calendar->get('owner') : '-system-') . '/' . $calendar->getName() . '.ics'; echo $url->link(array('title' => _("Click or copy this URL to display this calendar"), 'target' => '_blank')) . htmlspecialchars(shorten_url($url)) . '</a>' ?></td>
+   <td><?php $url = new Horde_Url($subscribe_url_base . ($calendar->get('owner') ? $calendar->get('owner') : '-system-') . '/' . $calendar->getName() . '.ics'); echo $url->link(array('title' => _("Click or copy this URL to display this calendar"), 'target' => '_blank')) . htmlspecialchars(shorten_url($url)) . '</a>' ?></td>
    <td><?php echo $edit_url_base->add('c', $calendar->getName())->link(array('title' => _("Edit"))) . $edit_img . '</a>' ?></td>
 <?php if (empty($conf['share']['no_sharing'])): ?>
    <td><?php echo $perms_url_base->add('share', $calendar->getName())->link(array('title' => _("Change Permissions"), 'target' => '_blank', 'onclick' => Horde::popupJs($perms_url_base, array('params' => array('share' => $calendar->getName()), 'urlencode' => true)) . 'return false;')) . $perms_img . '</a>' ?></td>