]> source.dussan.org Git - nextcloud-server.git/commitdiff
First implementation of edit event
authorBart Visscher <bartv@thisnet.nl>
Thu, 15 Sep 2011 19:20:42 +0000 (21:20 +0200)
committerBart Visscher <bartv@thisnet.nl>
Thu, 15 Sep 2011 22:21:19 +0000 (00:21 +0200)
apps/calendar/ajax/editevent.php
apps/calendar/ajax/editeventform.php
apps/calendar/ajax/newevent.php
apps/calendar/ajax/neweventform.php
apps/calendar/js/calendar.js
apps/calendar/lib/object.php
apps/calendar/templates/part.editevent.php
apps/calendar/templates/part.eventform.php
apps/calendar/templates/part.newevent.php

index 6182a60e611ad4f08771320c1970d24bd3cfebf5..54a9897b9590701ef7a2fee8ba228235385ac272 100644 (file)
@@ -2,21 +2,42 @@
 /*************************************************
  * ownCloud - Calendar Plugin                     *
  *                                                *
- * (c) Copyright 2011 Georg Ehrke                 *
- * author: Georg Ehrke                            *
- * email: ownclouddev at georgswebsite dot de     *
- * homepage: ownclouddev.georgswebsite.de         *
- * manual: ownclouddev.georgswebsite.de/manual    *
+ * (c) Copyright 2011 Bart Visscher               *
  * License: GNU AFFERO GENERAL PUBLIC LICENSE     *
  *                                                *
  * <http://www.gnu.org/licenses/>                 *
  * If you are not able to view the License,       *
  * <http://www.gnu.org/licenses/>                 *
- * <http://ownclouddev.georgswebsite.de/license/> *
  * please write to the Free Software Foundation.  *
  * Address:                                       *
  * 59 Temple Place, Suite 330, Boston,            *
  * MA 02111-1307  USA                             *
  *************************************************/
+require_once('../../../lib/base.php');
 
+$l10n = new OC_L10N('calendar');
+
+if(!OC_USER::isLoggedIn()) {
+       die('<script type="text/javascript">document.location = oc_webroot;</script>');
+}
+
+$errarr = OC_Calendar_Object::validateRequest($_POST);
+if($errarr){
+       //show validate errors
+       $errarr["error"] = "true";
+       echo json_encode($errarr);
+       exit;
+}else{
+       $id = $_POST['id'];
+       $data = OC_Calendar_Object::find($id);
+       if (!$data)
+       {
+               echo json_encode(array("error"=>"true"));
+               exit;
+       }
+       $vcalendar = Sabre_VObject_Reader::read($data['calendardata']);
+       OC_Calendar_Object::updateVCalendarFromRequest($_POST, $vcalendar);
+       $result = OC_Calendar_Object::edit($id, $vcalendar->serialize());
+       echo json_encode(array("success"=>"true"));
+}
 ?> 
index 8d1c8b69c3fce7bea45c73efd06983e3c419a92f..132bb4ae74c9e64f1b321a5b8090b8b564ffbc25 100644 (file)
@@ -1 +1,68 @@
+<?php
+/*************************************************
+ * ownCloud - Calendar Plugin                     *
+ *                                                *
+ * (c) Copyright 2011 Bart Visscher               *
+ * License: GNU AFFERO GENERAL PUBLIC LICENSE     *
+ *                                                *
+ * If you are not able to view the License,       *
+ * <http://www.gnu.org/licenses/>                 *
+ * please write to the Free Software Foundation.  *
+ * Address:                                       *
+ * 59 Temple Place, Suite 330, Boston,            *
+ * MA 02111-1307  USA                             *
+ *************************************************/
+require_once('../../../lib/base.php');
+
+$l10n = new OC_L10N('calendar');
+
+if(!OC_USER::isLoggedIn()) {
+       die('<script type="text/javascript">document.location = oc_webroot;</script>');
+}
+
+$calendars = OC_Calendar_Calendar::allCalendars(OC_User::getUser());
+$categories = OC_Calendar_Object::getCategoryOptions($l10n);
+$repeat_options = OC_Calendar_Object::getRepeatOptions($l10n);
+
+$id = $_GET['id'];
+$data = OC_Calendar_Object::find($id);
+$object = Sabre_VObject_Reader::read($data['calendardata']);
+$vevent = $object->VEVENT;
+$dtstart = $vevent->DTSTART;
+$dtend = $vevent->DTEND;
+switch($dtstart->getDateType()) {
+       case Sabre_VObject_Element_DateTime::LOCALTZ:
+               $startdate = $dtstart->getDateTime()->format('d-m-Y');
+               $starttime = $dtstart->getDateTime()->format('H:i');
+               $enddate = $dtend->getDateTime()->format('d-m-Y');
+               $endtime = $dtend->getDateTime()->format('H:i');
+               $allday = false;
+               break;
+}
+
+$summary = isset($vevent->SUMMARY) ? $vevent->SUMMARY->value : '';
+$location = isset($vevent->LOCATION) ? $vevent->LOCATION->value : '';
+$category = isset($vevent->CATEGORY) ? $vevent->CATEGORY->value : '';
+$repeat = isset($vevent->CATEGORY) ? $vevent->CATEGORY->value : '';
+$description = isset($vevent->DESCRIPTION) ? $vevent->DESCRIPTION->value : '';
+
+$tmpl = new OC_Template('calendar', 'part.editevent');
+$tmpl->assign('id', $id);
+$tmpl->assign('calendars', $calendars);
+$tmpl->assign('categories', $categories);
+$tmpl->assign('repeat_options', $repeat_options);
+
+$tmpl->assign('title', $summary);
+$tmpl->assign('location', $location);
+$tmpl->assign('category', $category);
+$tmpl->assign('calendar', $data['calendarid']);
+$tmpl->assign('allday', $allday);
+$tmpl->assign('startdate', $startdate);
+$tmpl->assign('starttime', $starttime);
+$tmpl->assign('enddate', $enddate);
+$tmpl->assign('endtime', $endtime);
+$tmpl->assign('repeat', $repeat);
+$tmpl->assign('description', $description);
+$tmpl->printpage();
+?>
  
index b81190fd64254798ca92dc0b2a698e1940851bfb..fb3745d0525fb6922aae56050e565081a7d88acf 100644 (file)
  * MA 02111-1307  USA                             *
  *************************************************/
 require_once('../../../lib/base.php');
+
 $l10n = new OC_L10N('calendar');
+
 if(!OC_USER::isLoggedIn()) {
        die("<script type=\"text/javascript\">document.location = oc_webroot;</script>");
 }
-//short variables
-$title = $_POST["title"];
-$location = $_POST["location"];
-$cat = $_POST["cat"];
-$cal = str_replace("option_","", $_POST["cal"]);
-$allday = $_POST["allday"];
-$from = $_POST["from"];
-$fromtime = $_POST["fromtime"];
-$to  = $_POST["to"];
-$totime = $_POST["totime"];
-$description = $_POST["description"];
-//$repeat = $_POST["repeat"];
-/*switch($_POST["repeatfreq"]){
-       case "DAILY":
-               $repeatfreq = "DAILY";
-       case "WEEKLY":
-               $repeatfreq = "WEEKLY";
-       case "WEEKDAY":
-               $repeatfreq = "DAILY;BYDAY=MO,TU,WE,TH,FR"; //load weeksdayss from userconfig when weekdays are choosable
-       case "":
-               $repeatfreq = "";
-       case "":
-               $repeatfreq = "";
-       case "":
-               $repeatfreq = "";
-       default:
-               $repeat = "false";
-}*/
-$repeat = "false";
-//validate variables
-$errnum = 0;
-$errarr = array("title"=>"false", "cal"=>"false", "from"=>"false", "fromtime"=>"false", "to"=>"false", "totime"=>"false", "endbeforestart"=>"false");
-if($title == ""){
-       $errarr["title"] = "true";
-       $errnum++;
-}
-$calendar = OC_Calendar_Calendar::findCalendar($cal);
-if($calendar["userid"] != OC_User::getUser()){
-       $errarr["cal"] = "true";
-       $errnum++;
-}
-$fromday = substr($_POST["from"], 0, 2);
-$frommonth = substr($_POST["from"], 3, 2);
-$fromyear = substr($_POST["from"], 6, 4);
-if(!checkdate($frommonth, $fromday, $fromyear)){
-       $errarr["from"] = "true";
-       $errnum++;
-}
-$fromhours = substr($_POST["fromtime"], 0, 2);
-$fromminutes = substr($_POST["fromtime"], 3, 2);
-if($fromhours > 24 || $fromminutes > 60 || $fromtime == ""){
-       $errarr["fromtime"] = "true";
-       $errnum++;
-}
 
-$today = substr($_POST["to"], 0, 2);
-$tomonth = substr($_POST["to"], 3, 2);
-$toyear = substr($_POST["to"], 6, 4);
-if(!checkdate($tomonth, $today, $toyear)){
-       $errarr["to"] = "true";
-       $errnum++;
-}
-$tohours = substr($_POST["totime"], 0, 2);
-$tominutes = substr($_POST["totime"], 3, 2);
-if($tohours > 24 || $tominutes > 60 || $totime == ""){
-       $errarr["totime"] = "true";
-       $errnum++;
-}
-if($today < $fromday && $frommonth == $tomonth && $fromyear == $toyear){
-       $errarr["endbeforestart"] = "true";
-       $errnum++;
-}
-if($today == $fromday && $frommonth > $tomonth && $fromyear == $toyear){
-       $errarr["endbeforestart"] = "true";
-       $errnum++;
-}
-if($today == $fromday && $frommonth == $tomonth && $fromyear > $toyear){
-       $errarr["endbeforestart"] = "true";
-       $errnum++;
-}
-if($fromday == $today && $frommonth == $tomonth && $fromyear == $toyear){
-       if($tohours < $fromhours){
-               $errarr["endbeforestart"] = "true";
-               $errnum++;
-       }
-       if($tohours == $fromhours && $tominutes < $fromminutes){
-               $errarr["endbeforestart"] = "true";
-               $errnum++;
-       }
-}
-if($errnum != 0){
+$errarr = OC_Calendar_Object::validateRequest($_POST);
+if($errarr){
        //show validate errors
        $errarr["error"] = "true";
        echo json_encode($errarr);
        exit;
 }else{
-       $data = "BEGIN:VCALENDAR\nPRODID:ownCloud Calendar\nVERSION:2.0\n";
-       $timezone = OC_Preferences::getValue(OC_USER::getUser(), "calendar", "timezone", "Europe/London");
-       $created = date("Ymd") . "T" . date("His");
-       $data .= "BEGIN:VEVENT\n";
-       $data .= "CREATED:" . $created . "\nLAST-MODIFIED:" . $created . "\nDTSTAMP:" . $created . "\n";
-       $data .= "SUMMARY:" . $title . "\n";
-       if($allday == "true"){
-               $start = $fromyear . $frommonth . $fromday;
-               $unixend = mktime(0,0,0,$tomonth, $today, $toyear) + (24 * 60 * 60);
-               $end = date("Ymd", $unixend);
-               $data .= "DTSTART;VALUE=DATE:" . $start . "\n";
-               $data .= "DTEND;VALUE=DATE:" . $end . "\n";
-       }else{
-               $start = $fromyear . $frommonth . $fromday . "T" . $fromhours . $fromminutes . "00";
-               $end = $toyear . $tomonth . $today . "T" . $tohours . $tominutes . "00";
-               $data .= "DTSTART;TZID=" . $timezone . ":" . $start . "\n";
-               $data .= "DTEND;TZID=" . $timezone . ":" . $end . "\n";
-       }
-       if($location != ""){
-               $data .= "LOCATION:" . $location . "\n";
-       }
-       if($description != ""){
-               $des = str_replace("\n","\\n", $description);
-               $data .= "DESCRIPTION:" . $des . "\n";
-       }
-       /*if($cat != $l->t("None")){
-               $data .= "CATEGORIES:" . $cat . "\n";
-       }*/
-       /*if($repeat == "true"){
-               $data .= "RRULE:" . $repeat . "\n";
-       }*/
-       $data .= "END:VEVENT\nEND:VCALENDAR";
-       $result = OC_Calendar_Object::add($cal, $data);
+       $cal = $_POST['calendar'];
+       $vcalendar = OC_Calendar_Object::createVCalendarFromRequest($_POST);
+       $result = OC_Calendar_Object::add($cal, $vcalendar->serialize());
        echo json_encode(array("success"=>"true"));
 }
 ?>
index d331be40e150fc9616da8a55fbe5db5b83105cf5..1d8a61dffd274eff53f11f1aec7491603c943930 100644 (file)
@@ -26,33 +26,8 @@ if(!OC_USER::isLoggedIn()) {
 }
 
 $calendars = OC_Calendar_Calendar::allCalendars(OC_User::getUser());
-$categories = array(
-       $l10n->t('None'),
-       $l10n->t('Birthday'),
-       $l10n->t('Business'),
-       $l10n->t('Call'),
-       $l10n->t('Clients'),
-       $l10n->t('Deliverer'),
-       $l10n->t('Holidays'),
-       $l10n->t('Ideas'),
-       $l10n->t('Journey'),
-       $l10n->t('Jubilee'),
-       $l10n->t('Meeting'),
-       $l10n->t('Other'),
-       $l10n->t('Personal'),
-       $l10n->t('Projects'),
-       $l10n->t('Questions'),
-       $l10n->t('Work'),
-);
-$repeat_options = array(
-       'doesnotrepeat' => $l10n->t('Does not repeat'),
-       'daily'         => $l10n->t('Daily'),
-       'weekly'        => $l10n->t('Weekly'),
-       'weekday'       => $l10n->t('Every Weekday'),
-       'biweekly'      => $l10n->t('Bi-Weekly'),
-       'monthly'       => $l10n->t('Monthly'),
-       'yearly'        => $l10n->t('Yearly'),
-);
+$categories = OC_Calendar_Object::getCategoryOptions($l10n);
+$repeat_options = OC_Calendar_Object::getRepeatOptions($l10n);
 $startday   = substr($_GET['d'], 0, 2);
 $startmonth = substr($_GET['d'], 2, 2);
 $startyear  = substr($_GET['d'], 4, 4);
index 04d709b6ae2ce69d08f6b69a09d1e295e20de308..ad44c5d4bc041b174fd04105abde42e9d43e2c9c 100644 (file)
@@ -273,9 +273,21 @@ Calendar={
                                .addClass('event')
                                .data('event_info', event)
                                .hover(this.createEventPopup,
-                                      this.hideEventPopup);
+                                      this.hideEventPopup)
+                               .click(this.editEventPopup);
                        eventcontainer.append(event_holder);
                },
+               editEventPopup:function(event){
+                       event.stopPropagation();
+                       var event_data = $(this).data('event_info');
+                       var id = event_data.id;
+                       if(oc_cal_opendialog == 0){
+                               $("#dialog_holder").load(oc_webroot + "/apps/calendar/ajax/editeventform.php?id="+id);
+                               oc_cal_opendialog = 1;
+                       }else{
+                               alert(t("calendar", "You can't open more than one dialog per site!"));
+                       }
+               },
                createEventPopup:function(e){
                        var popup = $(this).data('popup');
                        if (!popup){
@@ -764,3 +776,44 @@ function oc_cal_newevent(selector, time){
                alert(t("calendar", "You can't open more than one dialog per site!"));
        }
 }
+
+function validate_event_form(url){
+       var post = $( "#event_form" ).serialize();
+       $("#errorbox").html("");
+       $.post(url, post,
+               function(data){
+                       if(data.error == "true"){
+                               var output = "Missing fields: <br />";
+                               if(data.title == "true"){
+                                       output = output + "Title<br />";
+                               }
+                               if(data.cal == "true"){
+                                       output = output + "Calendar<br />";
+                               }
+                               if(data.from == "true"){
+                                       output = output + "From Date<br />";
+                               }
+                               if(data.fromtime == "true"){
+                                       output = output + "From Time<br />";
+                               }
+                               if(data.to == "true"){
+                                       output = output + "To Date<br />";
+                               }
+                               if(data.totime == "true"){
+                                       output = output + "To Time<br />";
+                               }
+                               if(data.endbeforestart == "true"){
+                                       output = "The event ends before it starts!";
+                               }
+                               if(data.dberror == "true"){
+                                       output = "There was a database fail!";
+                               }
+                               $("#errorbox").html(output);
+                       }else{
+                               window.location.reload();
+                       }
+                       if(data.success == true){
+                               location.reload();
+                       }
+               },"json");
+}
index aa30c7305dcd8783423b4c9147cc32be2eb64403..ab29307ce13ac17b4fedc0189e3509729c3303d7 100644 (file)
@@ -288,4 +288,214 @@ class OC_Calendar_Object{
                        return null;
                }
        }
+
+       public static function getCategoryOptions($l10n)
+       {
+               return array(
+                       $l10n->t('None'),
+                       $l10n->t('Birthday'),
+                       $l10n->t('Business'),
+                       $l10n->t('Call'),
+                       $l10n->t('Clients'),
+                       $l10n->t('Deliverer'),
+                       $l10n->t('Holidays'),
+                       $l10n->t('Ideas'),
+                       $l10n->t('Journey'),
+                       $l10n->t('Jubilee'),
+                       $l10n->t('Meeting'),
+                       $l10n->t('Other'),
+                       $l10n->t('Personal'),
+                       $l10n->t('Projects'),
+                       $l10n->t('Questions'),
+                       $l10n->t('Work'),
+               );
+       }
+
+       public static function getRepeatOptions($l10n)
+       {
+               return array(
+                       'doesnotrepeat' => $l10n->t('Does not repeat'),
+                       'daily'         => $l10n->t('Daily'),
+                       'weekly'        => $l10n->t('Weekly'),
+                       'weekday'       => $l10n->t('Every Weekday'),
+                       'biweekly'      => $l10n->t('Bi-Weekly'),
+                       'monthly'       => $l10n->t('Monthly'),
+                       'yearly'        => $l10n->t('Yearly'),
+               );
+       }
+       public static function validateRequest($request)
+       {
+               $errnum = 0;
+               $errarr = array('title'=>'false', 'cal'=>'false', 'from'=>'false', 'fromtime'=>'false', 'to'=>'false', 'totime'=>'false', 'endbeforestart'=>'false');
+               if($request['title'] == ''){
+                       $errarr['title'] = 'true';
+                       $errnum++;
+               }
+               $calendar = OC_Calendar_Calendar::findCalendar($request['calendar']);
+               if($calendar['userid'] != OC_User::getUser()){
+                       $errarr['cal'] = 'true';
+                       $errnum++;
+               }
+               $fromday = substr($request['from'], 0, 2);
+               $frommonth = substr($request['from'], 3, 2);
+               $fromyear = substr($request['from'], 6, 4);
+               if(!checkdate($frommonth, $fromday, $fromyear)){
+                       $errarr['from'] = 'true';
+                       $errnum++;
+               }
+               $allday = isset($request['allday']);
+               if(!$allday && self::checkTime(urldecode($request['fromtime']))) {
+                       $errarr['fromtime'] = 'true';
+                       $errnum++;
+               }
+
+               $today = substr($request['to'], 0, 2);
+               $tomonth = substr($request['to'], 3, 2);
+               $toyear = substr($request['to'], 6, 4);
+               if(!checkdate($tomonth, $today, $toyear)){
+                       $errarr['to'] = 'true';
+                       $errnum++;
+               }
+               ;
+               if(!$allday && self::checkTime(urldecode($request['totime']))) {
+                       $errarr['totime'] = 'true';
+                       $errnum++;
+               }
+               if($today < $fromday && $frommonth == $tomonth && $fromyear == $toyear){
+                       $errarr['endbeforestart'] = 'true';
+                       $errnum++;
+               }
+               if($today == $fromday && $frommonth > $tomonth && $fromyear == $toyear){
+                       $errarr['endbeforestart'] = 'true';
+                       $errnum++;
+               }
+               if($today == $fromday && $frommonth == $tomonth && $fromyear > $toyear){
+                       $errarr['endbeforestart'] = 'true';
+                       $errnum++;
+               }
+               if($fromday == $today && $frommonth == $tomonth && $fromyear == $toyear){
+                       list($tohours, $tominutes) = explode(':', $request['totime']);
+                       list($fromhours, $fromminutes) = explode(':', $request['fromtime']);
+                       if($tohours < $fromhours){
+                               $errarr['endbeforestart'] = 'true';
+                               $errnum++;
+                       }
+                       if($tohours == $fromhours && $tominutes < $fromminutes){
+                               $errarr['endbeforestart'] = 'true';
+                               $errnum++;
+                       }
+               }
+               if ($errnum)
+               {
+                       return $errarr;
+               }
+               return false;
+       }
+
+       protected static function checkTime($time)
+       {
+               list($hours, $minutes) = explode(':', $time);
+               return empty($time)
+                       || $hours < 0 || $hours > 24
+                       || $minutes < 0 || $minutes > 60;
+       }
+
+       public static function createVCalendarFromRequest($request)
+       {
+               $vcalendar = new Sabre_VObject_Component('VCALENDAR');
+               $vcalendar->add('PRODID', 'ownCloud Calendar');
+               $vcalendar->add('VERSION', '2.0');
+
+               $now = new DateTime();
+
+               $vevent = new Sabre_VObject_Component('VEVENT');
+               $vcalendar->add($vevent);
+
+               $created = new Sabre_VObject_Element_DateTime('CREATED');
+               $created->setDateTime($now, Sabre_VObject_Element_DateTime::UTC);
+               $vevent->add($created);
+
+               return self::updateVCalendarFromRequest($request, $vcalendar);
+       }
+
+       public static function updateVCalendarFromRequest($request, $vcalendar)
+       {
+               $title = $request["title"];
+               $location = $request["location"];
+               $cat = $request["category"];
+               $allday = isset($request["allday"]);
+               $from = $request["from"];
+               $fromtime = $request["fromtime"];
+               $to  = $request["to"];
+               $totime = $request["totime"];
+               $description = $request["description"];
+               //$repeat = $request["repeat"];
+               /*switch($request["repeatfreq"]){
+                       case "DAILY":
+                               $repeatfreq = "DAILY";
+                       case "WEEKLY":
+                               $repeatfreq = "WEEKLY";
+                       case "WEEKDAY":
+                               $repeatfreq = "DAILY;BYDAY=MO,TU,WE,TH,FR"; //load weeksdayss from userconfig when weekdays are choosable
+                       case "":
+                               $repeatfreq = "";
+                       case "":
+                               $repeatfreq = "";
+                       case "":
+                               $repeatfreq = "";
+                       default:
+                               $repeat = "false";
+               }*/
+               $repeat = "false";
+
+               $now = new DateTime();
+               $vevent = $vcalendar->VEVENT[0];
+
+               $last_modified = new Sabre_VObject_Element_DateTime('LAST-MODIFIED');
+               $last_modified->setDateTime($now, Sabre_VObject_Element_DateTime::UTC);
+               $vevent->__set('LAST-MODIFIED', $last_modified);
+
+               $dtstamp = new Sabre_VObject_Element_DateTime('DTSTAMP');
+               $dtstamp->setDateTime($now, Sabre_VObject_Element_DateTime::UTC);
+               $vevent->DTSTAMP = $dtstamp;
+
+               $vevent->SUMMARY = $title;
+
+               $dtstart = new Sabre_VObject_Element_DateTime('DTSTART');
+               $dtend = new Sabre_VObject_Element_DateTime('DTEND');
+               if($allday){
+                       $start = new DateTime($from);
+                       $end = new DateTime($to.' +1 day');
+                       $dtstart->setDateTime($start, Sabre_VObject_Element_DateTime::DATE);
+                       $dtend->setDateTime($end, Sabre_VObject_Element_DateTime::DATE);
+               }else{
+                       $timezone = OC_Preferences::getValue(OC_USER::getUser(), "calendar", "timezone", "Europe/London");
+                       $timezone = new DateTimeZone($timezone);
+                       $start = new DateTime($from.' '.$fromtime, $timezone);
+                       $end = new DateTime($to.' '.$totime, $timezone);
+                       $dtstart->setDateTime($start, Sabre_VObject_Element_DateTime::LOCALTZ);
+                       $dtend->setDateTime($end, Sabre_VObject_Element_DateTime::LOCALTZ);
+               }
+               $vevent->DTSTART = $dtstart;
+               $vevent->DTEND = $dtend;
+
+               if($location != ""){
+                       $vevent->LOCATION = $location;
+               }
+
+               if($description != ""){
+                       $des = str_replace("\n","\\n", $description);
+                       $vevent->DESCRIPTION = $des;
+               }
+
+               if($cat != ""){
+                       $vevent->CATEGORIES = $cat;
+               }
+
+               /*if($repeat == "true"){
+                       $vevent->RRULE = $repeat;
+               }*/
+
+               return $vcalendar;
+       }
 }
index e722515c9d071fa5ed7770b885d063026e0e9453..7fbb75756cd9cb3f4b432c2311bd3eb0c3b6aec9 100644 (file)
@@ -1,8 +1,12 @@
 <div id="editevent" title="<?php echo $l->t("Edit an event");?>">
+       <form id="event_form">
+               <input type="hidden" name="id" value="<?php echo $_['id'] ?>">
 <?php echo $this->inc("part.eventform"); ?>
-       <span id="editevent_actions">
-               <input type="button" style="float: left;" value="<?php echo $l->t("Submit");?>">
+       <div style="width: 100%;text-align: center;color: #FF1D1D;" id="errorbox"></div>
+       <span id="actions">
+               <input type="button" class="submit" style="float: left;" value="<?php echo $l->t("Submit");?>" onclick="validate_event_form('ajax/editevent.php');">
        </span>
+       </form>
 </div>
 <script type="text/javascript">
        $( "#editevent" ).dialog({
@@ -14,8 +18,7 @@
                                                document.getElementById("body-user").removeChild(lastchild);
                                                lastchild = document.getElementById("body-user").lastChild;
                                        }
-                       },
-               open : function(){alert("Doesn't work yet.");}
+                       }
        });
        $( "#from" ).datepicker({
                dateFormat : 'dd-mm-yy'
                if(document.getElementById("totime").disabled == true) {
                        document.getElementById("fromtime").disabled = false;
                        document.getElementById("totime").disabled = false;
-                       document.getElementById("fromtime").style.color = "#333";
-                       document.getElementById("totime").style.color = "#333";
+                       $("#fromtime").css('color', "#333");
+                       $("#totime").css('color', "#333");
                } else {
                        document.getElementById("fromtime").disabled = true;
                        document.getElementById("totime").disabled = true;
-                       document.getElementById("fromtime").style.color = "#A9A9A9";
-                       document.getElementById("totime").style.color = "#A9A9A9";
+                       $("#fromtime").css('color', "#A9A9A9");
+                       $("#totime").css('color', "#A9A9A9");
                }
        }
 </script>
index 450f641762416bc07f64d2c67c8dd955b444fcf5..4c3024e1debb147ab1ba6b1f663e6a9105a52714 100644 (file)
@@ -2,13 +2,13 @@
                <tr>
                        <th width="75px"><?php echo $l->t("Title");?>:</th>
                        <td>
-                       <input type="text" style="width:350px;" size="100" placeholder="<?php echo $l->t("Title of the Event");?>"  maxlength="100" id="newevent_title"/>
+                       <input type="text" style="width:350px;" size="100" placeholder="<?php echo $l->t("Title of the Event");?>" value="<?php echo $_['title'] ?>" maxlength="100" name="title"/>
                        </td>
                </tr>
                <tr>
                        <th width="75px"><?php echo $l->t("Location");?>:</th>
                        <td>
-                       <input type="text" style="width:350px;" size="100" placeholder="<?php echo $l->t("Location of the Event");?>" maxlength="100"  id="newevent_location" />
+                       <input type="text" style="width:350px;" size="100" placeholder="<?php echo $l->t("Location of the Event");?>" value="<?php echo $_['location'] ?>" maxlength="100"  name="location" />
                        </td>
                </tr>
        </table>
                <tr>
                        <th width="75px"><?php echo $l->t("Category");?>:</th>
                        <td>
-                       <select class="formselect" id="formcategorie_select" style="width:140px;">
+                       <select style="width:140px;" name="category">
                                <?php
                                foreach($_['categories'] as $category){
-                                       echo '<option value="' . $category . '">' . $category . '</option>';
+                                       echo '<option value="' . $category . '"' . ($_['category'] == $category ? ' selected="selected"' : '') . '>' . $category . '</option>';
                                }
                                ?>
                        </select></td>
                        <th width="75px">&nbsp;&nbsp;&nbsp;<?php echo $l->t("Calendar");?>:</th>
                        <td>
-                       <select class="formselect" id="formcalendar_select" style="width:140px;" id="newevent_cal">
+                       <select style="width:140px;" name="calendar">
                                <?php
                                foreach($_['calendars'] as $calendar){
-                                       echo '<option id="option_' . $calendar['id'] . '">' . $calendar['displayname'] . '</option>';
+                                       echo '<option value="' . $calendar['id'] . '"' . ($_['calendar'] == $calendar['id'] ? ' selected="selected"' : '') . '>' . $calendar['displayname'] . '</option>';
                                }
                                ?>
                        </select></td>
                <tr>
                        <th width="75px"></th>
                        <td>
-                       <input onclick="lock_time();" type="checkbox"<?php if($_['allday']){echo 'checked="checked"';} ?> id="newcalendar_allday_checkbox">
+                       <input onclick="lock_time();" type="checkbox"<?php if($_['allday']){echo 'checked="checked"';} ?> id="allday_checkbox" name="allday">
                        <?php if($_['allday']){echo '<script type="text/javascript">document.getElementById("fromtime").disabled = true;document.getElementById("totime").disabled = true;document.getElementById("fromtime").style.color = "#A9A9A9";document.getElementById("totime").style.color = "#A9A9A9";</script>';}?>
-                       <label for="newcalendar_allday_checkbox"><?php echo $l->t("All Day Event");?></label></td>
+                       <label for="allday_checkbox"><?php echo $l->t("All Day Event");?></label></td>
                </tr>
                <tr>
 
                        <th width="75px"><?php echo $l->t("From");?>:</th>
                        <td>
-                       <input type="text" value="<?php echo $_['startdate'];?>" id="from">
+                       <input type="text" value="<?php echo $_['startdate'];?>" name="from" id="from">
                        &nbsp;&nbsp;
-                       <input type="time" value="<?php echo $_['starttime'];?>" id="fromtime">
+                       <input type="time" value="<?php echo $_['starttime'];?>" name="fromtime" id="fromtime">
                        </td><!--use jquery-->
                </tr>
                <tr>
                        <th width="75px"><?php echo $l->t("To");?>:</th>
                        <td>
-                       <input type="text" value="<?php echo $_['enddate'];?>" id="to">
+                       <input type="text" value="<?php echo $_['enddate'];?>" name="to" id="to">
                        &nbsp;&nbsp;
-                       <input type="time" value="<?php echo $_['endtime'];?>" id="totime">
+                       <input type="time" value="<?php echo $_['endtime'];?>" name="totime" id="totime">
                        </td><!--use jquery-->
                </tr><!--
                <tr>
                        <th width="75px"><?php echo $l->t("Repeat");?>:</th>
                        <td>
-                       <select class="formselect" id="formrepeat_select" style="width:350px;">
+                       <select name="repeat" style="width:350px;">
                                <?php
                                foreach($_['repeat_options'] as $id => $label){
-                                       echo '<option id="repeat_' . $id . '">' . $label . '</option>';
+                                       echo '<option value="' . $id . '"' . ($_['repeat'] == $id ? ' selected="selected"' : '') . '>' . $label . '</option>';
                                }
                                ?>
                        </select></td>
@@ -83,6 +83,6 @@
        <table>
                <tr>
                        <th width="75px" style="vertical-align: top;"><?php echo $l->t("Description");?>:</th>
-                       <td><textarea style="width:350px;height: 150px;"placeholder="<?php echo $l->t("Description of the Event");?>" id="description"></textarea></td>
+                       <td><textarea style="width:350px;height: 150px;" placeholder="<?php echo $l->t("Description of the Event");?>" name="description"><?php echo $_['description'] ?></textarea></td>
                </tr>
        </table>
index a1c48d2c22b8631a2590359ef8fef833fd87d0d9..cff8d4412b292a25ba29424b2540b9d78682e422 100644 (file)
@@ -1,9 +1,9 @@
 <div id="newevent" title="<?php echo $l->t("Create a new event");?>">
-       <form>
+       <form id="event_form">
 <?php echo $this->inc("part.eventform"); ?>
        <div style="width: 100%;text-align: center;color: #FF1D1D;" id="errorbox"></div>
-       <span id="newcalendar_actions">
-               <input type="button" class="submit" style="float: left;" value="<?php echo $l->t("Submit");?>" onclick="validate_newevent_form();">
+       <span id="actions">
+               <input type="button" class="submit" style="float: left;" value="<?php echo $l->t("Submit");?>" onclick="validate_event_form('ajax/newevent.php');">
        </span>
        </form>
 </div>
                if(document.getElementById("totime").disabled == true) {
                        document.getElementById("fromtime").disabled = false;
                        document.getElementById("totime").disabled = false;
-                       document.getElementById("fromtime").style.color = "#333";
-                       document.getElementById("totime").style.color = "#333";
+                       $("#fromtime").css('color', "#333");
+                       $("#totime").css('color', "#333");
                } else {
                        document.getElementById("fromtime").disabled = true;
                        document.getElementById("totime").disabled = true;
-                       document.getElementById("fromtime").style.color = "#A9A9A9";
-                       document.getElementById("totime").style.color = "#A9A9A9";
+                       $("#fromtime").css('color', "#A9A9A9");
+                       $("#totime").css('color', "#A9A9A9");
                }
        }
-       function validate_newevent_form(){
-               var newevent_title = document.getElementById("newevent_title").value;
-               var newevent_location = document.getElementById("newevent_location").value;
-               var newevent_cat = document.getElementById("formcategorie_select").options[document.getElementById("formcategorie_select").selectedIndex].value;
-               var newevent_cal = document.getElementById("formcalendar_select").options[document.getElementById("formcalendar_select").selectedIndex].id;
-               var newevent_allday = document.getElementById("newcalendar_allday_checkbox").checked;
-               var newevent_from = document.getElementById("from").value;
-               var newevent_fromtime = document.getElementById("fromtime").value;
-               var newevent_to = document.getElementById("to").value;
-               var newevent_totime = document.getElementById("totime").value;
-               var newevent_description = document.getElementById("description").value;
-               $.post("ajax/newevent.php", { title: newevent_title, location: newevent_location, cat: newevent_cat, cal: newevent_cal, allday: newevent_allday, from: newevent_from, fromtime: newevent_fromtime, to: newevent_to, totime: newevent_totime, description: newevent_description},
-                       function(data){
-                               if(data.error == "true"){
-                                       document.getElementById("errorbox").innerHTML = "";
-                                       var output = "Missing fields: <br />";
-                                       if(data.title == "true"){
-                                               output = output + "Title<br />";
-                                       }
-                                       if(data.cal == "true"){
-                                               output = output + "Calendar<br />";
-                                       }
-                                       if(data.from == "true"){
-                                               output = output + "From Date<br />";
-                                       }
-                                       if(data.fromtime == "true"){
-                                               output = output + "From Time<br />";
-                                       }
-                                       if(data.to == "true"){
-                                               output = output + "To Date<br />";
-                                       }
-                                       if(data.totime == "true"){
-                                               output = output + "To Time<br />";
-                                       }
-                                       if(data.endbeforestart == "true"){
-                                               output = "The event ends before it starts!";
-                                       }
-                                       if(data.dberror == "true"){
-                                               output = "There was a database fail!";
-                                       }
-                                       document.getElementById("errorbox").innerHTML = output;
-                               }else{
-                                       window.location.reload();
-                               }
-                               if(data.success == true){
-                                       location.reload();
-                               }
-                       },"json");
-       }
 </script>