23 changed files with 11067 additions and 0 deletions
-
25apps/calendar/ajax/ajax.php
-
18apps/calendar/appinfo/app.php
-
189apps/calendar/appinfo/database.xml
-
10apps/calendar/appinfo/info.xml
-
48apps/calendar/caldav.php
-
7apps/calendar/cfg/root.cfg.php
-
171apps/calendar/css/style.css
-
BINapps/calendar/img/icon.png
-
36apps/calendar/index.php
-
35apps/calendar/install.php
-
890apps/calendar/js/calendar.js
-
56apps/calendar/js/calendar_dialog.js
-
61apps/calendar/js/calendar_init.js
-
352apps/calendar/lib/PDO.php
-
286apps/calendar/lib/calendar.php
-
41apps/calendar/lib/hooks.php
-
7473apps/calendar/libs/iCalcreator.php
-
72apps/calendar/libs/oc_calendar.php
-
271apps/calendar/libs/sanitize.php
-
27apps/calendar/settings.php
-
982apps/calendar/templates/calendar.php
-
0apps/calendar/templates/install.php
-
17apps/calendar/templates/settings.php
@ -0,0 +1,25 @@ |
|||
<?php |
|||
require_once("../libs/sanitize.php"); |
|||
require_once ("../../../lib/base.php"); |
|||
if( !OC_USER::isLoggedIn()){ |
|||
die("nosession"); |
|||
} |
|||
if(sanitize_paranoid_string($_GET["task"]) == "load_events"){ |
|||
echo "parsing_fail"; |
|||
exit; |
|||
}elseif(sanitize_paranoid_string($_GET["task"]) == "edit_event"){ |
|||
echo "edit_event"; |
|||
exit; |
|||
}elseif(sanitize_paranoid_string($_GET["task"]) == "new_event"){ |
|||
echo "new_event"; |
|||
exit; |
|||
}elseif(sanitize_paranoid_string($_GET["task"]) == "edit_settings"){ |
|||
echo "edit_settings"; |
|||
exit; |
|||
}elseif(sanitize_paranoid_string($_GET["task"]) == "choose_calendar"){ |
|||
echo "choose_calendar"; |
|||
exit; |
|||
}else{ |
|||
die("unknown task"); |
|||
} |
|||
?>
|
|||
@ -0,0 +1,18 @@ |
|||
<?php |
|||
|
|||
OC::$CLASSPATH['OC_Calendat_Calendar'] = 'apps/calendar/lib/calendar.php'; |
|||
OC::$CLASSPATH['OC_Calendar_Hooks'] = 'apps/calendar/lib/hooks.php'; |
|||
OC::$CLASSPATH['OC_Connector_Sabre_CalDAV'] = 'apps/calendar/lib/connector_sabre.php'; |
|||
OC_HOOK::connect('OC_User', 'post_createUser', 'OC_Calendar_Hooks', 'deleteUser'); |
|||
|
|||
OC_App::register( array( |
|||
'order' => 10, |
|||
'id' => 'calendar', |
|||
'name' => 'Calendar' )); |
|||
|
|||
OC_App::addNavigationEntry( array( |
|||
'id' => 'calendar_index', |
|||
'order' => 10, |
|||
'href' => OC_Helper::linkTo( 'calendar', 'index.php' ), |
|||
'icon' => OC_Helper::imagePath( 'calendar', 'icon.png' ), |
|||
'name' => 'Calendar' )); |
|||
@ -0,0 +1,189 @@ |
|||
<?xml version="1.0" encoding="ISO-8859-1" ?> |
|||
<database> |
|||
|
|||
<name>*dbname*</name> |
|||
<create>true</create> |
|||
<overwrite>false</overwrite> |
|||
|
|||
<charset>utf8</charset> |
|||
|
|||
<table> |
|||
|
|||
<name>*dbprefix*calendar_objects</name> |
|||
|
|||
<declaration> |
|||
|
|||
<field> |
|||
<name>id</name> |
|||
<type>integer</type> |
|||
<default>0</default> |
|||
<notnull>true</notnull> |
|||
<autoincrement>1</autoincrement> |
|||
<unsigned>true</unsigned> |
|||
<length>4</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>calendarid</name> |
|||
<type>integer</type> |
|||
<default></default> |
|||
<notnull>true</notnull> |
|||
<unsigned>true</unsigned> |
|||
<length>4</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>objecttype</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>true</notnull> |
|||
<length>40</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>startdate</name> |
|||
<type>timestamp</type> |
|||
<default>0000-00-00 00:00:00</default> |
|||
<notnull>false</notnull> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>enddate</name> |
|||
<type>timestamp</type> |
|||
<default>0000-00-00 00:00:00</default> |
|||
<notnull>false</notnull> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>repeating</name> |
|||
<type>integer</type> |
|||
<default></default> |
|||
<notnull>false</notnull> |
|||
<length>4</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>summary</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>false</notnull> |
|||
<length>255</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>calendardata</name> |
|||
<type>clob</type> |
|||
<notnull>false</notnull> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>uri</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>false</notnull> |
|||
<length>100</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>lastmodified</name> |
|||
<type>integer</type> |
|||
<default></default> |
|||
<notnull>false</notnull> |
|||
<length>4</length> |
|||
</field> |
|||
|
|||
</declaration> |
|||
|
|||
</table> |
|||
|
|||
<table> |
|||
|
|||
<name>*dbprefix*calendar_calendars</name> |
|||
|
|||
<declaration> |
|||
|
|||
<field> |
|||
<name>id</name> |
|||
<type>integer</type> |
|||
<default>0</default> |
|||
<notnull>true</notnull> |
|||
<autoincrement>1</autoincrement> |
|||
<unsigned>true</unsigned> |
|||
<length>4</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>userid</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>false</notnull> |
|||
<length>255</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>displayname</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>false</notnull> |
|||
<length>100</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>uri</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>false</notnull> |
|||
<length>100</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>ctag</name> |
|||
<type>integer</type> |
|||
<default>0</default> |
|||
<notnull>true</notnull> |
|||
<unsigned>true</unsigned> |
|||
<length>4</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>description</name> |
|||
<type>clob</type> |
|||
<notnull>false</notnull> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>calendarorder</name> |
|||
<type>integer</type> |
|||
<default>0</default> |
|||
<notnull>true</notnull> |
|||
<unsigned>true</unsigned> |
|||
<length>4</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>calendarcolor</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>false</notnull> |
|||
<length>10</length> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>timezone</name> |
|||
<type>clob</type> |
|||
<notnull>false</notnull> |
|||
</field> |
|||
|
|||
<field> |
|||
<name>components</name> |
|||
<type>text</type> |
|||
<default></default> |
|||
<notnull>false</notnull> |
|||
<length>20</length> |
|||
</field> |
|||
|
|||
</declaration> |
|||
|
|||
</table> |
|||
|
|||
</database> |
|||
@ -0,0 +1,10 @@ |
|||
<?xml version="1.0"?> |
|||
<info> |
|||
<id>calendar</id> |
|||
<name>Calendar</name> |
|||
<version>0.1</version> |
|||
<licence>AGPL</licence> |
|||
<author>Jakob Sack</author> |
|||
<require>2</require> |
|||
<description>CalDAV server with viewing support.</description> |
|||
</info> |
|||
@ -0,0 +1,48 @@ |
|||
<?php |
|||
/** |
|||
* ownCloud - Addressbook |
|||
* |
|||
* @author Jakob Sack |
|||
* @copyright 2011 Jakob Sack mail@jakobsack.de |
|||
* |
|||
* This library is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE |
|||
* License as published by the Free Software Foundation; either |
|||
* version 3 of the License, or any later version. |
|||
* |
|||
* This library is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public |
|||
* License along with this library. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
|
|||
// Do not load FS ...
|
|||
$RUNTIME_NOSETUPFS = true; |
|||
|
|||
require_once('../../lib/base.php'); |
|||
|
|||
// Backends
|
|||
$authBackend = new OC_Connector_Sabre_Auth(); |
|||
$principalBackend = new OC_Connector_Sabre_Principal(); |
|||
$caldavBackend = new OC_Connector_Sabre_CalDAV(); |
|||
|
|||
// Root nodes
|
|||
$nodes = array( |
|||
new Sabre_DAVACL_PrincipalCollection($principalBackend), |
|||
new Sabre_CalDAV_CalendarRootNode($principalBackend, $caldavBackend), |
|||
); |
|||
|
|||
// Fire up server
|
|||
$server = new Sabre_DAV_Server($nodes); |
|||
$server->setBaseUri($WEBROOT.'/apps/calendar/caldav.php'); |
|||
// Add plugins
|
|||
$server->addPlugin(new Sabre_DAV_Auth_Plugin($authBackend,'ownCloud')); |
|||
$server->addPlugin(new Sabre_CalDAV_Plugin()); |
|||
$server->addPlugin(new Sabre_DAVACL_Plugin()); |
|||
|
|||
// And off we go!
|
|||
$server->exec(); |
|||
@ -0,0 +1,7 @@ |
|||
<?php |
|||
$defaultview = "onemonthview"; |
|||
$calendar = array("files/calendar_app/private.ics", "files/calendar_app/german_hol.ics","files/calendar_app/christ_hol.ics"); |
|||
$calendar_name = array("files/calendar_app/private.ics"=>"Privater Kalender", "files/calendar_app/german_hol.ics"=>"Deutsche Feiertage", "files/calendar_app/christ_hol.ics"=>"Christliche Feiertage"); |
|||
$calendar_status = array("files/calendar_app/private.ics"=>"enabled", "files/calendar_app/german_hol.ics"=>"disabled", "files/calendar_app/christ_hol.ics"=>"enabled"); |
|||
$default_timezone; |
|||
?>
|
|||
@ -0,0 +1,171 @@ |
|||
/************************************************* |
|||
* 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 * |
|||
* License: GNU General Public License (GPL) * |
|||
* * |
|||
* <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 * |
|||
************************************************** |
|||
* list of IDs * |
|||
* calendar_container - contains all calendar * |
|||
* choosecalendar - choose Calender holder * |
|||
* choosecalendar_dialog - Dialog to choose cal. * |
|||
* newentry_dialog - Dialog for creating an event * |
|||
* editentry_dialog - Dialog for editing an event * |
|||
* view - container for view chooser * |
|||
* datecontrol - Date in the top middle * |
|||
* datecontrol_label - label for datecontrol * |
|||
* onedayview - view for one day * |
|||
* oneweekview - view for one week * |
|||
* fourweeksview - view for four weeks * |
|||
* onemonthview - view for one month * |
|||
* list of classes * |
|||
* actions - owncloud native class * |
|||
* center - centering an element * |
|||
* control - owncloud native class * |
|||
* dateinfo - date in four weeks and month view * |
|||
* calender_row - normal calender row * |
|||
* calender_time - calender row for time * |
|||
* fourweeksview_item - item in fourweeksview * |
|||
* onemonthview_item - item in onemonthview * |
|||
*************************************************/ |
|||
#calendar_container { |
|||
position: absolute; |
|||
top: 150px; |
|||
bottom: 10px; |
|||
left: 230px; |
|||
right: 100px; |
|||
} |
|||
#choosecalendar { |
|||
margin-right: 10px; |
|||
float: right; |
|||
} |
|||
#choosecalendar_dialog { |
|||
display: none; |
|||
} |
|||
#newentry_dialog { |
|||
display: none; |
|||
} |
|||
#editentry_dialog { |
|||
display: none; |
|||
} |
|||
#parsingfail_dialog{ |
|||
display: none; |
|||
} |
|||
#view { |
|||
margin-left: 10px; |
|||
float: left; |
|||
} |
|||
#datecontrol { |
|||
text-align: center; |
|||
} |
|||
#datecontrol_date_label { |
|||
margin: 0; |
|||
padding: 0; |
|||
} |
|||
#onedayview, #oneweekview, #fourweeksview, #onemonthview, #listview { |
|||
display: none; |
|||
} |
|||
#onedayview table { |
|||
margin: 0; |
|||
padding: 0; |
|||
width: 100%; |
|||
} |
|||
#oneweekview table { |
|||
margin: 0; |
|||
padding: 0; |
|||
width: 100%; |
|||
} |
|||
#fourweeksview table { |
|||
margin: 0; |
|||
padding: 0; |
|||
width: 100%; |
|||
} |
|||
#onemonthview table { |
|||
margin: 0; |
|||
padding: 0; |
|||
width: 100%; |
|||
} |
|||
#fourweeksview_calw1, #fourweeksview_calw2, #fourweeksview_calw3, #fourweeksview_calw4{ |
|||
vertical-align: middle; |
|||
text-align: center; |
|||
width: 50px; |
|||
} |
|||
#devbox { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 300px; |
|||
right: 300px; |
|||
text-align: center; |
|||
height: 50px; |
|||
} |
|||
.actions { |
|||
height: 33px; |
|||
min-width: 800px; |
|||
} |
|||
.controls { |
|||
min-width: 800px; |
|||
} |
|||
.center { |
|||
text-align: center; |
|||
} |
|||
.dateinfo { |
|||
height: 15px; |
|||
width: 100%; |
|||
overflow: hidden; |
|||
margin: 0; |
|||
padding: 0; |
|||
font-size: 12px; |
|||
} |
|||
.events { |
|||
height: 65px; |
|||
width: 100%; |
|||
margin: 0; |
|||
padding: 0; |
|||
} |
|||
.calendar_row { |
|||
height: 20px; |
|||
text-align: center; |
|||
} |
|||
.calendar_time { |
|||
height: 20px; |
|||
width: 50px; |
|||
text-align:right; |
|||
} |
|||
.fourweeksview_item { |
|||
text-align: center; |
|||
height: 80px; |
|||
} |
|||
.onemonthview_item { |
|||
text-align: center; |
|||
height: 80px; |
|||
margin: 0; |
|||
padding: 0; |
|||
vertical-align: top; |
|||
} |
|||
.weekend{ |
|||
text-align: center; |
|||
height: 80px; |
|||
margin: 0; |
|||
padding: 0; |
|||
vertical-align: top; |
|||
background: #F3F3F3; |
|||
} |
|||
|
|||
.weekend_thead, .weekend_row{ |
|||
height: 20px; |
|||
text-align: center; |
|||
text-align: center; |
|||
background: #F3F3F3; |
|||
} |
|||
|
After Width: 16 | Height: 16 | Size: 398 B |
@ -0,0 +1,36 @@ |
|||
<?php |
|||
/************************************************* |
|||
* 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 * |
|||
* License: GNU General Public License (GPL) * |
|||
* * |
|||
* 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"); |
|||
if(!OC_USER::isLoggedIn()) { |
|||
header("Location: " . OC_HELPER::linkTo("", "index.php")); |
|||
exit ; |
|||
} |
|||
if(!file_exists("cfg/" . OC_USER::getUser() . ".cfg.php")) { |
|||
header("Location: install.php"); |
|||
} |
|||
OC_UTIL::addScript("calendar", "calendar"); |
|||
OC_UTIL::addScript("calendar", "calendar_init"); |
|||
OC_UTIL::addScript("calendar", "calendar_dialog"); |
|||
OC_UTIL::addStyle("calendar", "style"); |
|||
require_once ("libs/iCalcreator.php"); |
|||
require_once ("libs/oc_calendar.php"); |
|||
OC_APP::setActiveNavigationEntry("calendar_index"); |
|||
$output = new OC_TEMPLATE("calendar", "calendar", "user"); |
|||
$output -> printpage(); |
|||
@ -0,0 +1,35 @@ |
|||
<?php |
|||
/************************************************* |
|||
* 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 * |
|||
* License: GNU General Public License (GPL) * |
|||
* * |
|||
* 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"); |
|||
if(!OC_USER::isLoggedIn()) { |
|||
header("Location: " . OC_HELPER::linkTo("index.php")); |
|||
exit(); |
|||
} |
|||
if(!file_exists("cfg/" . OC_USER::getUser() . ".cfg.php")) { |
|||
header("Location: install.php"); |
|||
} |
|||
OC_UTIL::addScript("calendar", "calendar"); |
|||
OC_UTIL::addScript("calendar", "calendar_init"); |
|||
OC_UTIL::addStyle("calendar", "style"); |
|||
require_once ("template.php"); |
|||
OC_APP::setActiveNavigationEntry("calendar_settings"); |
|||
$output = new OC_TEMPLATE("calendar", "settings", "admin"); |
|||
$output -> printpage(); |
|||
?>
|
|||
@ -0,0 +1,890 @@ |
|||
/************************************************* |
|||
* 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 * |
|||
* License: GNU General Public License (GPL) * |
|||
* * |
|||
* 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 * |
|||
************************************************** |
|||
* list of all fx * |
|||
* calw - Calendarweek * |
|||
* doy - Day of the year * |
|||
* checkforleapyear - check for a leap year * |
|||
* update_view - update the view of the calendar * |
|||
* onedayview - one day view * |
|||
* oneweekview - one week view * |
|||
* onemonthview - four Weeks view * |
|||
* onemonthview - one Month view * |
|||
* listview - listview * |
|||
* forward_day - switching one day forward * |
|||
* forward_week - switching one week forward * |
|||
* forward_month - switching one month forward * |
|||
* backward_day - switching one day backward * |
|||
* backward_week - switching one week backward * |
|||
* backward_month - switching one month backward * |
|||
* generate_monthview - generating month view * |
|||
* generate_dates - generate other days for view * |
|||
* load_events - load the events * |
|||
* switch2today - switching to today * |
|||
* remove_events - remove old events in view * |
|||
*************************************************/ |
|||
function calw() { |
|||
var generate_dayofweek = dayofweek; |
|||
if(generate_dayofweek == 0) { |
|||
generate_dayofweek = 7; |
|||
} |
|||
var calw = Math.floor((doy() - generate_dayofweek) / 7) + 1; |
|||
return calw; |
|||
} |
|||
|
|||
function doy() { |
|||
if(checkforleapyear(year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
var doy = 0; |
|||
for(var i = 0; i < month; i++) { |
|||
doy = parseInt(doy) + parseInt(cal[i]); |
|||
} |
|||
doy = parseInt(doy) + dayofmonth; |
|||
return doy; |
|||
} |
|||
|
|||
function checkforleapyear(year2check) { |
|||
if((year2check / 600) == Math.floor(year2check / 400)) { |
|||
return true; |
|||
} |
|||
if((year2check / 4) == Math.floor(year2check / 4)) { |
|||
if((year2check / 100) == Math.floor(year2check / 100)) { |
|||
return false; |
|||
} |
|||
return true; |
|||
} |
|||
return false; |
|||
} |
|||
|
|||
function update_view(view, task) { |
|||
if(view == "") { |
|||
view = currentview; |
|||
} |
|||
switch(view) { |
|||
case "onedayview": |
|||
if(task == "forward") { |
|||
forward_day(); |
|||
} |
|||
if(task == "backward") { |
|||
backward_day(); |
|||
} |
|||
remove_events("oneday"); |
|||
load_cal("oneday"); |
|||
load_events("oneday"); |
|||
break; |
|||
case "oneweekview": |
|||
if(task == "forward") { |
|||
forward_week(); |
|||
} |
|||
if(task == "backward") { |
|||
backward_week(); |
|||
} |
|||
remove_events("oneweek"); |
|||
load_cal("oneweek"); |
|||
load_events("oneweek"); |
|||
break; |
|||
case "fourweeksview": |
|||
if(task == "forward") { |
|||
forward_week(); |
|||
} |
|||
if(task == "backward") { |
|||
backward_week(); |
|||
} |
|||
remove_events("fourweeks"); |
|||
load_cal("fourweeks"); |
|||
load_events("fourweeks"); |
|||
break; |
|||
case "onemonthview": |
|||
if(task == "forward") { |
|||
forward_month(); |
|||
} |
|||
if(task == "backward") { |
|||
backward_month(); |
|||
} |
|||
remove_events("onemonth"); |
|||
load_cal("onemonth"); |
|||
load_events("onemonth"); |
|||
break; |
|||
case "listview": |
|||
if(task == "forward") { |
|||
forward_day(); |
|||
} |
|||
if(task == "backward") { |
|||
backward_day(); |
|||
} |
|||
remove_events("list"); |
|||
load_cal("list"); |
|||
load_events("list"); |
|||
break; |
|||
default: |
|||
return false; |
|||
} |
|||
} |
|||
|
|||
function listview(task) { |
|||
if(task == "forward") { |
|||
forward_day(); |
|||
} |
|||
if(task == "backward") { |
|||
backward_day(); |
|||
} |
|||
document.getElementById("datecontrol_date_label").innerHTML = dayshort[dayofweek] + space + dayofmonth + space + monthshort[month] + space + year; |
|||
} |
|||
|
|||
function forward_day() { |
|||
if(checkforleapyear(year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
if(dayofmonth == cal[month]) { |
|||
if(month == 11) { |
|||
date.setFullYear(year++, month = 0, dayofmonth = 1); |
|||
if(dayofweek == 6) { |
|||
dayofweek = 0; |
|||
} else { |
|||
dayofweek++; |
|||
} |
|||
} else { |
|||
date.setMonth(month++, dayofmonth = 1); |
|||
if(dayofweek == 6) { |
|||
dayofweek = 0; |
|||
} else { |
|||
dayofweek++; |
|||
} |
|||
} |
|||
} else { |
|||
date.setDate(dayofmonth++); |
|||
if(dayofweek == 6) { |
|||
dayofweek = 0; |
|||
} else { |
|||
dayofweek++; |
|||
} |
|||
} |
|||
if(month == 11) { |
|||
update_eventsvar(year + 1); |
|||
} |
|||
} |
|||
|
|||
function forward_week() { |
|||
for(var i = 1; i <= 7; i++) { |
|||
forward_day(); |
|||
} |
|||
} |
|||
|
|||
function forward_month() { |
|||
if(checkforleapyear(year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
for(var i = 1; i <= cal[month]; i++) { |
|||
forward_day(); |
|||
} |
|||
} |
|||
|
|||
function backward_day() { |
|||
if(checkforleapyear(year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
if(dayofmonth == 1) { |
|||
if(month == 0) { |
|||
date.setFullYear(year--, month = 11, dayofmonth = 31); |
|||
if(dayofweek == 0) { |
|||
dayofweek = 6; |
|||
} else { |
|||
dayofweek--; |
|||
} |
|||
} else { |
|||
date.setMonth(month--, dayofmonth = cal[month]); |
|||
if(dayofweek == 0) { |
|||
dayofweek = 6; |
|||
} else { |
|||
dayofweek--; |
|||
} |
|||
} |
|||
} else { |
|||
date.setDate(dayofmonth--); |
|||
if(dayofweek == 0) { |
|||
dayofweek = 6; |
|||
} else { |
|||
dayofweek--; |
|||
} |
|||
} |
|||
if(month == 0) { |
|||
update_eventsvar( year - 1); |
|||
} |
|||
} |
|||
|
|||
function backward_week() { |
|||
for(var i = 1; i <= 7; i++) { |
|||
backward_day(); |
|||
} |
|||
} |
|||
|
|||
function backward_month() { |
|||
if(checkforleapyear(year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
for(var i = cal[month]; i >= 1; i--) { |
|||
backward_day(); |
|||
} |
|||
} |
|||
|
|||
function generate_dates(view) { |
|||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
if(view == "oneweek") { |
|||
var generate_dayofweek = dayofweek; |
|||
var generate_dayofmonth = dayofmonth; |
|||
var generate_month = month; |
|||
var generate_year = year; |
|||
var dates = new Array(); |
|||
if(generate_dayofweek == 0) { |
|||
generate_dayofweek = 7; |
|||
} |
|||
for(var i = generate_dayofweek; i > 1; i--) { |
|||
if(checkforleapyear(generate_year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
if(generate_dayofmonth == 1) { |
|||
if(generate_month == 0) { |
|||
generate_year--; |
|||
generate_month = 11; |
|||
generate_dayofmonth = cal[generate_month]; |
|||
} else { |
|||
generate_month--; |
|||
generate_dayofmonth = cal[generate_month]; |
|||
} |
|||
} else { |
|||
generate_dayofmonth--; |
|||
} |
|||
generate_dayofweek--; |
|||
} |
|||
dates[0] = new Array(generate_dayofmonth, generate_month, generate_year); |
|||
for(var i = 1; i <= 6; i++) { |
|||
if(checkforleapyear(generate_year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
if(generate_dayofmonth == cal[generate_month]) { |
|||
if(generate_month == 11) { |
|||
generate_year++; |
|||
generate_month = 0; |
|||
generate_dayofmonth = 1; |
|||
} else { |
|||
generate_month++; |
|||
generate_dayofmonth = 1; |
|||
} |
|||
} else { |
|||
generate_dayofmonth++; |
|||
} |
|||
dates[i] = new Array(generate_dayofmonth, generate_month, generate_year); |
|||
} |
|||
return dates; |
|||
} |
|||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
if(view == "fourweeks") { |
|||
var generate_dayofweek = dayofweek; |
|||
var generate_dayofmonth = dayofmonth; |
|||
var generate_month = month; |
|||
var generate_year = year; |
|||
var dates = new Array(); |
|||
if(generate_dayofweek == 0) { |
|||
generate_dayofweek = 7; |
|||
} |
|||
for(var i = generate_dayofweek; i > 1; i--) { |
|||
if(checkforleapyear(generate_year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
if(generate_dayofmonth == 1) { |
|||
if(generate_month == 0) { |
|||
generate_year--; |
|||
generate_month = 11; |
|||
generate_dayofmonth = cal[generate_month]; |
|||
} else { |
|||
generate_month--; |
|||
generate_dayofmonth = cal[generate_month]; |
|||
} |
|||
} else { |
|||
generate_dayofmonth--; |
|||
} |
|||
generate_dayofweek--; |
|||
} |
|||
dates[0] = new Array(generate_dayofmonth, generate_month, generate_year); |
|||
for(var i = 1; i <= 27; i++) { |
|||
if(checkforleapyear(generate_year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
if(generate_dayofmonth == cal[generate_month]) { |
|||
if(generate_month == 11) { |
|||
generate_year++; |
|||
generate_month = 0; |
|||
generate_dayofmonth = 1; |
|||
} else { |
|||
generate_month++; |
|||
generate_dayofmonth = 1; |
|||
} |
|||
} else { |
|||
generate_dayofmonth++; |
|||
} |
|||
dates[i] = new Array(generate_dayofmonth, generate_month, generate_year); |
|||
} |
|||
return dates; |
|||
} |
|||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
if(view == "onemonth") { |
|||
var generate_dayofweek = dayofweek; |
|||
var generate_dayofmonth = dayofmonth; |
|||
var generate_month = month; |
|||
var generate_year = year; |
|||
var dates = new Array(); |
|||
for(var i = generate_dayofmonth; i > 1; i--) { |
|||
if(checkforleapyear(generate_year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
if(generate_dayofmonth == 1) { |
|||
if(generate_month == 0) { |
|||
generate_year--; |
|||
generate_month = 11; |
|||
generate_dayofmonth = cal[generate_month]; |
|||
} else { |
|||
generate_month--; |
|||
generate_dayofmonth = cal[generate_month]; |
|||
} |
|||
} else { |
|||
generate_dayofmonth--; |
|||
} |
|||
if(generate_dayofweek == 0) { |
|||
generate_dayofweek = 6; |
|||
} else { |
|||
generate_dayofweek--; |
|||
} |
|||
} |
|||
if(generate_dayofweek == 0) { |
|||
generate_dayofweek = 7; |
|||
rows++; |
|||
} |
|||
for(var i = generate_dayofweek; i > 1; i--) { |
|||
if(checkforleapyear(generate_year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
if(generate_dayofmonth == 1) { |
|||
if(generate_month == 0) { |
|||
generate_year--; |
|||
generate_month = 11; |
|||
generate_dayofmonth = cal[generate_month]; |
|||
} else { |
|||
generate_month--; |
|||
generate_dayofmonth = cal[generate_month]; |
|||
} |
|||
} else { |
|||
generate_dayofmonth--; |
|||
} |
|||
generate_dayofweek--; |
|||
} |
|||
dates[0] = new Array(generate_dayofmonth, generate_month, generate_year); |
|||
for(var i = 1; i <= 41; i++) { |
|||
if(checkforleapyear(generate_year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
if(generate_dayofmonth == cal[generate_month]) { |
|||
if(generate_month == 11) { |
|||
generate_year++; |
|||
generate_month = 0; |
|||
generate_dayofmonth = 1; |
|||
} else { |
|||
generate_month++; |
|||
generate_dayofmonth = 1; |
|||
} |
|||
} else { |
|||
generate_dayofmonth++; |
|||
} |
|||
dates[i] = new Array(generate_dayofmonth, generate_month, generate_year); |
|||
} |
|||
return dates; |
|||
} else {////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
return false; |
|||
} |
|||
} |
|||
|
|||
function switch2today() { |
|||
date = today; |
|||
dayofweek = todaydayofweek; |
|||
month = todaymonth; |
|||
dayofmonth = todaydayofmonth; |
|||
year = todayyear; |
|||
update_view('', ''); |
|||
} |
|||
|
|||
function load_events(view, date) { |
|||
|
|||
} |
|||
|
|||
function update_eventsvar(loadyear) { |
|||
$("#js_events").load(oc_webroot + "/apps/calendar/ajax/ajax.php?task=load_events&year=" + loadyear); |
|||
if(document.getElementById("js_events").innerHTML == "nosession") { |
|||
alert("You are not logged in. That can happen if you don't use owncloud for a long time."); |
|||
document.location(oc_webroot); |
|||
} |
|||
if(document.getElementById("js_events").innerHTML == "parsingfail" || typeof (newevents) == "undefined") { |
|||
$(function() { |
|||
$( "#parsingfail_dialog" ).dialog(); |
|||
}); |
|||
} else { |
|||
events.concat(newevents); |
|||
} |
|||
} |
|||
|
|||
function load_cal(loadview) { |
|||
if(loadview == "oneday") { |
|||
document.getElementById("datecontrol_date_label").innerHTML = dayshort[dayofweek] + space + dayofmonth + space + monthshort[month] + space + year; |
|||
document.getElementById("onedayview_today").innerHTML = daylong[dayofweek] + space + dayofmonth + space + monthshort[month]; |
|||
} |
|||
if(loadview == "oneweek") { |
|||
document.getElementById("datecontrol_date_label").innerHTML = "CW: " + calw(); |
|||
var dates = generate_dates("oneweek"); |
|||
document.getElementById("oneweekview_monday").innerHTML = dayshort[1] + space + dates[0][0] + space + monthshort[dates[0][1]]; |
|||
document.getElementById("oneweekview_tuesday").innerHTML = dayshort[2] + space + dates[1][0] + space + monthshort[dates[1][1]]; |
|||
document.getElementById("oneweekview_wednesday").innerHTML = dayshort[3] + space + dates[2][0] + space + monthshort[dates[2][1]]; |
|||
document.getElementById("oneweekview_thursday").innerHTML = dayshort[4] + space + dates[3][0] + space + monthshort[dates[3][1]]; |
|||
document.getElementById("oneweekview_friday").innerHTML = dayshort[5] + space + dates[4][0] + space + monthshort[dates[4][1]]; |
|||
document.getElementById("oneweekview_saturday").innerHTML = dayshort[6] + space + dates[5][0] + space + monthshort[dates[5][1]]; |
|||
document.getElementById("oneweekview_sunday").innerHTML = dayshort[0] + space + dates[6][0] + space + monthshort[dates[6][1]]; |
|||
} |
|||
if(loadview == "fourweeks") { |
|||
var calw1 = calw(); |
|||
if(calw1 == 52) { //////////////////////////////// !!!! OPTIMIEREN !!!! ///////////////////////////////////////////////////////////
|
|||
var calw2 = 1; |
|||
} else { |
|||
var calw2 = calw() + 1; |
|||
} |
|||
if(calw1 == 51) { |
|||
var calw3 = 1; |
|||
} else if(calw1 == 52) { |
|||
var calw3 = 2; |
|||
} else { |
|||
var calw3 = calw() + 2; |
|||
} |
|||
if(calw1 == 50) { |
|||
var calw4 = 1; |
|||
} else if(calw1 == 51) { |
|||
var calw4 = 2; |
|||
} else if(calw1 == 52) { |
|||
var calw4 = 3; |
|||
} else { |
|||
var calw4 = calw() + 3; |
|||
} |
|||
var calwplusfour = calw4; |
|||
var dates = generate_dates("fourweeks"); |
|||
document.getElementById("dateinfo_fourweeksview_monday_1").innerHTML = dates[0][0] + space + monthshort[dates[0][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_tuesday_1").innerHTML = dates[1][0] + space + monthshort[dates[1][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_wednesday_1").innerHTML = dates[2][0] + space + monthshort[dates[2][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_thursday_1").innerHTML = dates[3][0] + space + monthshort[dates[3][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_friday_1").innerHTML = dates[4][0] + space + monthshort[dates[4][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_saturday_1").innerHTML = dates[5][0] + space + monthshort[dates[5][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_sunday_1").innerHTML = dates[6][0] + space + monthshort[dates[6][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_monday_2").innerHTML = dates[7][0] + space + monthshort[dates[7][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_tuesday_2").innerHTML = dates[8][0] + space + monthshort[dates[8][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_wednesday_2").innerHTML = dates[9][0] + space + monthshort[dates[9][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_thursday_2").innerHTML = dates[10][0] + space + monthshort[dates[10][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_friday_2").innerHTML = dates[11][0] + space + monthshort[dates[11][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_saturday_2").innerHTML = dates[12][0] + space + monthshort[dates[12][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_sunday_2").innerHTML = dates[13][0] + space + monthshort[dates[13][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_monday_3").innerHTML = dates[14][0] + space + monthshort[dates[14][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_tuesday_3").innerHTML = dates[15][0] + space + monthshort[dates[15][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_wednesday_3").innerHTML = dates[16][0] + space + monthshort[dates[16][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_thursday_3").innerHTML = dates[17][0] + space + monthshort[dates[17][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_friday_3").innerHTML = dates[18][0] + space + monthshort[dates[18][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_saturday_3").innerHTML = dates[19][0] + space + monthshort[dates[19][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_sunday_3").innerHTML = dates[20][0] + space + monthshort[dates[20][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_monday_4").innerHTML = dates[21][0] + space + monthshort[dates[21][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_tuesday_4").innerHTML = dates[22][0] + space + monthshort[dates[22][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_wednesday_4").innerHTML = dates[23][0] + space + monthshort[dates[23][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_thursday_4").innerHTML = dates[24][0] + space + monthshort[dates[24][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_friday_4").innerHTML = dates[25][0] + space + monthshort[dates[25][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_saturday_4").innerHTML = dates[26][0] + space + monthshort[dates[26][1]]; |
|||
document.getElementById("dateinfo_fourweeksview_sunday_4").innerHTML = dates[27][0] + space + monthshort[dates[27][1]]; |
|||
document.getElementById("fourweeksview_calw1").innerHTML = calw1; |
|||
document.getElementById("fourweeksview_calw2").innerHTML = calw2; |
|||
document.getElementById("fourweeksview_calw3").innerHTML = calw3; |
|||
document.getElementById("fourweeksview_calw4").innerHTML = calw4; |
|||
document.getElementById("datecontrol_date_label").innerHTML = "CWs: " + calw() + " - " + calwplusfour; |
|||
} |
|||
if(loadview == "onemonth") { |
|||
document.getElementById("datecontrol_date_label").innerHTML = monthlong[month] + space + year; |
|||
if(checkforleapyear(year) == true) { |
|||
var cal = leap_cal; |
|||
} else { |
|||
var cal = normal_cal; |
|||
} |
|||
var monthview_dayofweek = dayofweek; |
|||
var monthview_dayofmonth = dayofmonth; |
|||
for(var i = monthview_dayofmonth; i > 1; i--) { |
|||
if(monthview_dayofweek == 0) { |
|||
monthview_dayofweek = 6; |
|||
} else { |
|||
monthview_dayofweek--; |
|||
} |
|||
} |
|||
document.getElementById("onemonthview_week_5").style.display = "none"; |
|||
document.getElementById("onemonthview_week_6").style.display = "none"; |
|||
rows = parseInt(monthview_dayofweek) + parseInt(cal[month]); |
|||
rows = rows / 7; |
|||
rows = Math.ceil(rows); |
|||
var dates = generate_dates("onemonth"); |
|||
document.getElementById("dateinfo_onemonthview_monday_1").innerHTML = dates[0][0] + space + monthshort[dates[0][1]]; |
|||
document.getElementById("dateinfo_onemonthview_tuesday_1").innerHTML = dates[1][0] + space + monthshort[dates[1][1]]; |
|||
document.getElementById("dateinfo_onemonthview_wednesday_1").innerHTML = dates[2][0] + space + monthshort[dates[2][1]]; |
|||
document.getElementById("dateinfo_onemonthview_thursday_1").innerHTML = dates[3][0] + space + monthshort[dates[3][1]]; |
|||
document.getElementById("dateinfo_onemonthview_friday_1").innerHTML = dates[4][0] + space + monthshort[dates[4][1]]; |
|||
document.getElementById("dateinfo_onemonthview_saturday_1").innerHTML = dates[5][0] + space + monthshort[dates[5][1]]; |
|||
document.getElementById("dateinfo_onemonthview_sunday_1").innerHTML = dates[6][0] + space + monthshort[dates[6][1]]; |
|||
document.getElementById("dateinfo_onemonthview_monday_2").innerHTML = dates[7][0] + space + monthshort[dates[7][1]]; |
|||
document.getElementById("dateinfo_onemonthview_tuesday_2").innerHTML = dates[8][0] + space + monthshort[dates[8][1]]; |
|||
document.getElementById("dateinfo_onemonthview_wednesday_2").innerHTML = dates[9][0] + space + monthshort[dates[9][1]]; |
|||
document.getElementById("dateinfo_onemonthview_thursday_2").innerHTML = dates[10][0] + space + monthshort[dates[10][1]]; |
|||
document.getElementById("dateinfo_onemonthview_friday_2").innerHTML = dates[11][0] + space + monthshort[dates[11][1]]; |
|||
document.getElementById("dateinfo_onemonthview_saturday_2").innerHTML = dates[12][0] + space + monthshort[dates[12][1]]; |
|||
document.getElementById("dateinfo_onemonthview_sunday_2").innerHTML = dates[13][0] + space + monthshort[dates[13][1]]; |
|||
document.getElementById("dateinfo_onemonthview_monday_3").innerHTML = dates[14][0] + space + monthshort[dates[14][1]]; |
|||
document.getElementById("dateinfo_onemonthview_tuesday_3").innerHTML = dates[15][0] + space + monthshort[dates[15][1]]; |
|||
document.getElementById("dateinfo_onemonthview_wednesday_3").innerHTML = dates[16][0] + space + monthshort[dates[16][1]]; |
|||
document.getElementById("dateinfo_onemonthview_thursday_3").innerHTML = dates[17][0] + space + monthshort[dates[17][1]]; |
|||
document.getElementById("dateinfo_onemonthview_friday_3").innerHTML = dates[18][0] + space + monthshort[dates[18][1]]; |
|||
document.getElementById("dateinfo_onemonthview_saturday_3").innerHTML = dates[19][0] + space + monthshort[dates[19][1]]; |
|||
document.getElementById("dateinfo_onemonthview_sunday_3").innerHTML = dates[20][0] + space + monthshort[dates[20][1]]; |
|||
document.getElementById("dateinfo_onemonthview_monday_4").innerHTML = dates[21][0] + space + monthshort[dates[21][1]]; |
|||
document.getElementById("dateinfo_onemonthview_tuesday_4").innerHTML = dates[22][0] + space + monthshort[dates[22][1]]; |
|||
document.getElementById("dateinfo_onemonthview_wednesday_4").innerHTML = dates[23][0] + space + monthshort[dates[23][1]]; |
|||
document.getElementById("dateinfo_onemonthview_thursday_4").innerHTML = dates[24][0] + space + monthshort[dates[24][1]]; |
|||
document.getElementById("dateinfo_onemonthview_friday_4").innerHTML = dates[25][0] + space + monthshort[dates[25][1]]; |
|||
document.getElementById("dateinfo_onemonthview_saturday_4").innerHTML = dates[26][0] + space + monthshort[dates[26][1]]; |
|||
document.getElementById("dateinfo_onemonthview_sunday_4").innerHTML = dates[27][0] + space + monthshort[dates[27][1]]; |
|||
document.getElementById("dateinfo_onemonthview_monday_5").innerHTML = dates[28][0] + space + monthshort[dates[28][1]]; |
|||
document.getElementById("dateinfo_onemonthview_tuesday_5").innerHTML = dates[29][0] + space + monthshort[dates[29][1]]; |
|||
document.getElementById("dateinfo_onemonthview_wednesday_5").innerHTML = dates[30][0] + space + monthshort[dates[30][1]]; |
|||
document.getElementById("dateinfo_onemonthview_thursday_5").innerHTML = dates[31][0] + space + monthshort[dates[31][1]]; |
|||
document.getElementById("dateinfo_onemonthview_friday_5").innerHTML = dates[32][0] + space + monthshort[dates[32][1]]; |
|||
document.getElementById("dateinfo_onemonthview_saturday_5").innerHTML = dates[33][0] + space + monthshort[dates[33][1]]; |
|||
document.getElementById("dateinfo_onemonthview_sunday_5").innerHTML = dates[34][0] + space + monthshort[dates[34][1]]; |
|||
document.getElementById("dateinfo_onemonthview_monday_6").innerHTML = dates[35][0] + space + monthshort[dates[35][1]]; |
|||
document.getElementById("dateinfo_onemonthview_tuesday_6").innerHTML = dates[36][0] + space + monthshort[dates[36][1]]; |
|||
document.getElementById("dateinfo_onemonthview_wednesday_6").innerHTML = dates[37][0] + space + monthshort[dates[37][1]]; |
|||
document.getElementById("dateinfo_onemonthview_thursday_6").innerHTML = dates[38][0] + space + monthshort[dates[38][1]]; |
|||
document.getElementById("dateinfo_onemonthview_friday_6").innerHTML = dates[39][0] + space + monthshort[dates[39][1]]; |
|||
document.getElementById("dateinfo_onemonthview_saturday_6").innerHTML = dates[40][0] + space + monthshort[dates[40][1]]; |
|||
document.getElementById("dateinfo_onemonthview_sunday_6").innerHTML = dates[41][0] + space + monthshort[dates[41][1]]; |
|||
if(rows == 5) { |
|||
document.getElementById("onemonthview_week_5").style.display = "table-row"; |
|||
} |
|||
if(rows == 6) { |
|||
document.getElementById("onemonthview_week_5").style.display = "table-row"; |
|||
document.getElementById("onemonthview_week_6").style.display = "table-row"; |
|||
} |
|||
} |
|||
if(loadview == "list") { |
|||
document.getElementById("datecontrol_date_label").innerHTML = dayshort[dayofweek] + space + dayofmonth + space + monthshort[month] + space + year; |
|||
} |
|||
} |
|||
|
|||
function load_events(loadview) { |
|||
if(loadview == "oneday") { |
|||
if( typeof (events[year][month][dayofmonth]) != "undefined") { |
|||
if( typeof (events[year][month][dayofmonth]["allday"]) != "undefined") { |
|||
var eventnumber = 1; |
|||
var eventcontainer = document.getElementById("onedayview_wholeday"); |
|||
while( typeof (events[year][month][dayofmonth]["allday"][eventnumber]) != "undefined") { |
|||
var newp = document.createElement("p"); |
|||
newp.id = "onedayview_allday_" + eventnumber; |
|||
newp.className = "onedayview_event"; |
|||
eventcontainer.appendChild(newp); |
|||
document.getElementById("onedayview_allday_" + eventnumber).innerHTML = events[year][month][dayofmonth]["allday"][eventnumber]["description"]; |
|||
eventnumber++; |
|||
} |
|||
} |
|||
for( i = 0; i <= 23; i++) { |
|||
if( typeof (events[year][month][dayofmonth][i]) != "undefined") { |
|||
var eventnumber = 1; |
|||
while( typeof (events[year][month][dayofmonth][i][eventnumber]) != "undefined") { |
|||
var newp = document.createElement("p"); |
|||
newp.id = "onedayview_" + i + "_" + eventnumber; |
|||
newp.className = "onedayview_event"; |
|||
eventcontainer.appendChild(newp); |
|||
document.getElementById("onedayview_" + i + "_" + eventnumber).innerHTML = events[year][month][dayofmonth][i][eventnumber]["description"]; |
|||
eventnumber++; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
if(loadview == "oneweek") {//(generate_dayofmonth, generate_month, generate_year);
|
|||
var weekdays = new Array("monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"); |
|||
var dates = generate_dates("oneweek"); |
|||
document.getElementById("devbox").innerHTML = ""; |
|||
for(var i = 0; i <= 6; i++) { |
|||
var loadevents_month = dates[i][0]; |
|||
var loadevents_days = dates[i][1]; |
|||
if( typeof (events[year][loadevents_month]) != "undefined") { |
|||
if( typeof (events[year][loadevents_month][loadevents_days]) != "undefined") { |
|||
if( typeof (events[year][loadevents_month][loadevents_days]["allday"]) != "undefined") { |
|||
var eventnumber = 1; |
|||
var eventcontainer = document.getElementById("oneweekview_" + weekdays[i] + "_allday"); |
|||
while( typeof (events[year][loadevents_month][loadevents_days]["allday"][eventnumber]) != "undefined") { |
|||
var newp = document.createElement("p"); |
|||
newp.id = "oneweekview_" + weekdays[i] + "_allday_" + eventnumber; |
|||
newp.className = "oneweekview_event"; |
|||
eventcontainer.appendChild(newp); |
|||
document.getElementById("oneweekview_" + weekdays[i] + "_allday_" + eventnumber).innerHTML = events[year][loadevents_month][loadevents_days]["allday"][eventnumber]["description"]; |
|||
eventnumber++; |
|||
} |
|||
} |
|||
for(var time = 0; time <= 23; time++) { |
|||
if( typeof (events[year][loadevents_month][loadevents_days][time]) != "undefined") { |
|||
var eventnumber = 1; |
|||
var eventcontainer = document.getElementById("oneweekview_" + weekdays[i] + "_" + time); |
|||
while( typeof (events[year][loadevents_month][loadevents_days][eventnumber]) != "undefined") { |
|||
var newp = document.createElement("p"); |
|||
newp.id = "oneweekview_" + i + "_" + eventnumber; |
|||
newp.className = "oneweekview_event"; |
|||
eventcontainer.appendChild(newp); |
|||
document.getElementById("oneweekview_" + i + "_" + eventnumber).innerHTML = events[year][loadevents_month][loadevents_days][i][eventnumber]["description"]; |
|||
eventnumber++; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
if(loadview == "fourweeks") { |
|||
var weekdays = new Array("monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"); |
|||
var dates = generate_dates("fourweeks"); |
|||
var weekdaynum = 0; |
|||
var weeknum = 1; |
|||
for(var i = 0; i <= 27; i++) { |
|||
var loadevents_month = dates[i][0]; |
|||
var loadevents_days = dates[i][1]; |
|||
if( typeof (events[year][loadevents_month]) != "undefined") { |
|||
if( typeof (events[year][loadevents_month][loadevents_days]) != "undefined") { |
|||
var pnum = 0; |
|||
if( typeof (events[year][loadevents_month][loadevents_days]["allday"]) != "undefined") { |
|||
var eventnumber = 1; |
|||
var eventcontainer = document.getElementById("events_fourweeksview_" + weekdays[weekdaynum] + "_" + weeknum); |
|||
while( typeof (events[year][loadevents_month][loadevents_days]["allday"][eventnumber]) != "undefined") { |
|||
var newp = document.createElement("p"); |
|||
newp.id = "fourweeksview_" + weekdays[weekdaynum] + "_" + weeknum + "_" + pnum; |
|||
newp.className = "fourweeksview_event"; |
|||
eventcontainer.appendChild(newp); |
|||
document.getElementById("fourweeksview_" + weekdays[weekdaynum] + "_" + weeknum + "_" + pnum).innerHTML = events[year][loadevents_month][loadevents_days]["allday"][eventnumber]["description"]; |
|||
eventnumber++; |
|||
pnum++; |
|||
} |
|||
} |
|||
for(var time = 0; time <= 23; time++) { |
|||
if( typeof (events[year][loadevents_month][loadevents_days][time]) != "undefined") { |
|||
var eventnumber = 1; |
|||
var eventcontainer = document.getElementById("events_fourweeksview_" + weekdays[weekdaynum] + "_" + weeknum); |
|||
while( typeof (events[year][loadevents_month][loadevents_days][i][eventnumber]) != "undefined") { |
|||
var newp = document.createElement("p"); |
|||
newp.id = "fourweeksview_" + i + "_" + eventnumber; |
|||
newp.className = "fourweeksview_event"; |
|||
eventcontainer.appendChild(newp); |
|||
document.getElementById("fourweeksview_" + i + "_" + eventnumber).innerHTML = events[year][loadevents_month][loadevents_days][i][eventnumber]["description"]; |
|||
eventnumber++; |
|||
pnum++; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
if(weekdaynum == 6){ |
|||
weekdaynum = 0; |
|||
weeknum++; |
|||
}else{ |
|||
weekdaynum++; |
|||
} |
|||
} |
|||
} |
|||
if(loadview == "onemonth") { |
|||
var weekdays = new Array("monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"); |
|||
var dates = generate_dates("onemonth"); |
|||
var weekdaynum = 0; |
|||
var weeknum = 1; |
|||
for(var i = 0; i <= 41; i++) { |
|||
var loadevents_month = dates[i][0]; |
|||
var loadevents_days = dates[i][1]; |
|||
if( typeof (events[year][loadevents_month]) != "undefined") { |
|||
if( typeof (events[year][loadevents_month][loadevents_days]) != "undefined") { |
|||
var pnum = 0; |
|||
if( typeof (events[year][loadevents_month][loadevents_days]["allday"]) != "undefined") { |
|||
var eventnumber = 1; |
|||
var eventcontainer = document.getElementById("events_onemonthview_" + weekdays[weekdaynum] + "_" + weeknum); |
|||
while( typeof (events[year][loadevents_month][loadevents_days]["allday"][eventnumber]) != "undefined") { |
|||
var newp = document.createElement("p"); |
|||
newp.id = "onemonthview_" + weekdays[weekdaynum] + "_" + weeknum + "_" + pnum; |
|||
newp.className = "onemonthview_event"; |
|||
eventcontainer.appendChild(newp); |
|||
document.getElementById("onemonthview_" + weekdays[weekdaynum] + "_" + weeknum + "_" + pnum).innerHTML = events[year][loadevents_month][loadevents_days]["allday"][eventnumber]["description"]; |
|||
eventnumber++; |
|||
pnum++; |
|||
} |
|||
} |
|||
for(var time = 0; time <= 23; time++) { |
|||
if( typeof (events[year][loadevents_month][loadevents_days][time]) != "undefined") { |
|||
var eventnumber = 1; |
|||
var eventcontainer = document.getElementById("events_onemonthview_" + weekdays[weekdaynum] + "_" + weeknum); |
|||
while( typeof (events[year][loadevents_month][loadevents_days][i][eventnumber]) != "undefined") { |
|||
var newp = document.createElement("p"); |
|||
newp.id = "onemonthview_" + i + "_" + eventnumber; |
|||
newp.className = "onemonthview_event"; |
|||
eventcontainer.appendChild(newp); |
|||
document.getElementById("onemonthview_" + i + "_" + eventnumber).innerHTML = events[year][loadevents_month][loadevents_days][i][eventnumber]["description"]; |
|||
eventnumber++; |
|||
pnum++; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
if(weekdaynum == 6){ |
|||
weekdaynum = 0; |
|||
weeknum++; |
|||
}else{ |
|||
weekdaynum++; |
|||
} |
|||
} |
|||
} |
|||
if(loadview == "list") { |
|||
//
|
|||
} |
|||
} |
|||
|
|||
function remove_events(removeview) { |
|||
if(removeview == "oneday") { |
|||
document.getElementById("onedayview_wholeday").innerHTML = ""; |
|||
for(var i = 0; i <= 23; i++) { |
|||
document.getElementById("onedayview_" + i).innerHTML = ""; |
|||
} |
|||
} |
|||
if(removeview == "oneweek") { |
|||
var weekdays = new Array("monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"); |
|||
for( i = 0; i <= 6; i++) { |
|||
document.getElementById("oneweekview_" + weekdays[i] + "_allday").innerHTML = ""; |
|||
for(var time = 0; time <= 23; time++) { |
|||
document.getElementById("oneweekview_" + weekdays[i] + "_" + time).innerHTML = ""; |
|||
} |
|||
} |
|||
} |
|||
if(removeview == "fourweeks") { |
|||
document.getElementById("events_fourweeksview_monday_1").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_tuesday_1").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_wednesday_1").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_thursday_1").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_friday_1").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_saturday_1").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_sunday_1").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_monday_2").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_tuesday_2").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_wednesday_2").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_thursday_2").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_friday_2").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_saturday_2").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_sunday_2").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_monday_3").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_tuesday_3").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_wednesday_3").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_thursday_3").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_friday_3").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_saturday_3").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_sunday_3").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_monday_4").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_tuesday_4").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_wednesday_4").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_thursday_4").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_friday_4").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_saturday_4").innerHTML = ""; |
|||
document.getElementById("events_fourweeksview_sunday_4").innerHTML = ""; |
|||
} |
|||
if(removeview == "onemonth") { |
|||
document.getElementById("events_onemonthview_monday_1").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_tuesday_1").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_wednesday_1").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_thursday_1").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_friday_1").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_saturday_1").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_sunday_1").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_monday_2").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_tuesday_2").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_wednesday_2").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_thursday_2").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_friday_2").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_saturday_2").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_sunday_2").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_monday_3").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_tuesday_3").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_wednesday_3").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_thursday_3").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_friday_3").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_saturday_3").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_sunday_3").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_monday_4").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_tuesday_4").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_wednesday_4").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_thursday_4").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_friday_4").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_saturday_4").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_sunday_4").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_monday_5").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_tuesday_5").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_wednesday_5").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_thursday_5").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_friday_5").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_saturday_5").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_sunday_5").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_monday_6").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_tuesday_6").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_wednesday_6").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_thursday_6").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_friday_6").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_saturday_6").innerHTML = ""; |
|||
document.getElementById("events_onemonthview_sunday_6").innerHTML = ""; |
|||
} |
|||
if(removeview == "list") { |
|||
document.getElementById("listview").innerHTML = ""; |
|||
} |
|||
} |
|||
@ -0,0 +1,56 @@ |
|||
/************************************************* |
|||
* 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 * |
|||
* License: GNU General Public License (GPL) * |
|||
* * |
|||
* <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 * |
|||
************************************************** |
|||
* list of all fx * |
|||
* choosecalendar_dialog - calendar chooser * |
|||
* newevent_dialog - create event dialog * |
|||
* editevent_dialog - edit event dialog * |
|||
* choosecalendar_dialog_submit - submit * |
|||
* newevent_dialog_submit - submit * |
|||
* editevent_dialog_submit - submit * |
|||
*************************************************/ |
|||
function choosecalendar_dialog() { |
|||
$( function() { |
|||
$( "#choosecalendar_dialog" ).dialog(); |
|||
}); |
|||
} |
|||
|
|||
function newevent_dialog() { |
|||
$( function() { |
|||
$( "#newevent" ).dialog(); |
|||
}); |
|||
} |
|||
|
|||
function editevent_dialog() { |
|||
$( function() { |
|||
$( "#editevent" ).dialog(); |
|||
}); |
|||
} |
|||
|
|||
function choosecalendar_dialog_submit() { |
|||
|
|||
} |
|||
|
|||
function newevent_dialog_submit() { |
|||
|
|||
} |
|||
|
|||
function editevent_dialog_submit() { |
|||
|
|||
} |
|||
@ -0,0 +1,61 @@ |
|||
/************************************************ |
|||
* ownCloud - Calendar Plugin * |
|||
* * |
|||
* (c) Copyright 2011 Georg Ehrke * |
|||
* author: Georg Ehrke * |
|||
* email: ownclouddev at georgswebsite dot de * |
|||
* homepage: http://ownclouddev.georgswebsite.de *
|
|||
* License: GPL * |
|||
* <http://www.gnu.org/licenses/>. *
|
|||
************************************************/ |
|||
//loading Buttons
|
|||
$(function(){ |
|||
$("#view").buttonset(); |
|||
$("#choosecalendar").buttonset(); |
|||
$("#datecontrol_left").button(); |
|||
$("#datecontrol_left").button({ disabled: true }); |
|||
$("#datecontrol_date").button(); |
|||
$("#datecontrol_right").button(); |
|||
$("#datecontrol_right").button({ disabled: true }); |
|||
$(".choosecalendar_check").button(); |
|||
$("#oneday").button(); |
|||
$("#oneweek").button(); |
|||
$("#fourweek").button(); |
|||
$("#onemonth").button(); |
|||
$("#list").button(); |
|||
}); |
|||
//init date vars
|
|||
var date = new Date(); |
|||
var dayofweek = date.getDay(); |
|||
var month = date.getMonth(); |
|||
var dayofmonth = date.getDate(); |
|||
var year = date.getFullYear(); |
|||
var daylong = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); |
|||
var dayshort = new Array("Sun.", "Mon.", "Tue.", "Wed.", "Thu.", "Fri.", "Sat."); |
|||
var monthlong = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); |
|||
var monthshort = new Array("Jan.", "Feb.", "Mar.", "Apr.", "May", "Jun.", "Jul.", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."); |
|||
var space = " "; |
|||
var normal_cal = new Array("31","28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31"); |
|||
var leap_cal = new Array("31","29", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31"); |
|||
//init today date vars
|
|||
var today = new Date(); |
|||
var todaydayofweek = today.getDay(); |
|||
var todaymonth = today.getMonth(); |
|||
var todaydayofmonth = today.getDate(); |
|||
var todayyear = today.getFullYear(); |
|||
//other vars
|
|||
var rows; |
|||
var dates; |
|||
var listview_numofevents = 0; |
|||
var listview_count = 0; |
|||
//event vars
|
|||
var events = new Array(2011); |
|||
events[2011] = new Array(0,1,2,3,4,5,6,7,8,9,10,11); |
|||
events[2011][7] = new Array(); |
|||
events[2011][7][7] = new Array(); |
|||
events[2011][7][7]["allday"] = new Array(1, 2); |
|||
events[2011][7][7]["allday"][1] = new Array("description"); |
|||
events[2011][7][7]["allday"][1]["description"] = "abc"; |
|||
events[2011][7][7]["allday"][2] = new Array("description"); |
|||
events[2011][7][7]["allday"][2]["description"] = "ghfgh"; |
|||
events[2011][7][13] = new Array(); |
|||
@ -0,0 +1,352 @@ |
|||
<?php |
|||
|
|||
/** |
|||
* PDO CalDAV backend |
|||
* |
|||
* This backend is used to store calendar-data in a PDO database, such as |
|||
* sqlite or MySQL |
|||
* |
|||
* @package Sabre |
|||
* @subpackage CalDAV |
|||
* @copyright Copyright (C) 2007-2011 Rooftop Solutions. All rights reserved. |
|||
* @author Evert Pot (http://www.rooftopsolutions.nl/) |
|||
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License |
|||
*/ |
|||
class OC_Connector_Sabre_CalDAV extends Sabre_CalDAV_Backend_Abstract { |
|||
/** |
|||
* List of CalDAV properties, and how they map to database fieldnames |
|||
* |
|||
* Add your own properties by simply adding on to this array |
|||
* |
|||
* @var array |
|||
*/ |
|||
public $propertyMap = array( |
|||
'{DAV:}displayname' => 'displayname', |
|||
'{urn:ietf:params:xml:ns:caldav}calendar-description' => 'description', |
|||
'{urn:ietf:params:xml:ns:caldav}calendar-timezone' => 'timezone', |
|||
'{http://apple.com/ns/ical/}calendar-order' => 'calendarorder', |
|||
'{http://apple.com/ns/ical/}calendar-color' => 'calendarcolor', |
|||
); |
|||
|
|||
/** |
|||
* Returns a list of calendars for a principal. |
|||
* |
|||
* Every project is an array with the following keys: |
|||
* * id, a unique id that will be used by other functions to modify the |
|||
* calendar. This can be the same as the uri or a database key. |
|||
* * uri, which the basename of the uri with which the calendar is |
|||
* accessed. |
|||
* * principalUri. The owner of the calendar. Almost always the same as |
|||
* principalUri passed to this method. |
|||
* |
|||
* Furthermore it can contain webdav properties in clark notation. A very |
|||
* common one is '{DAV:}displayname'. |
|||
* |
|||
* @param string $principalUri |
|||
* @return array |
|||
*/ |
|||
public function getCalendarsForUser($principalUri) { |
|||
|
|||
$fields = array_values($this->propertyMap); |
|||
$fields[] = 'id'; |
|||
$fields[] = 'uri'; |
|||
$fields[] = 'ctag'; |
|||
$fields[] = 'components'; |
|||
$fields[] = 'principaluri'; |
|||
|
|||
// Making fields a comma-delimited list
|
|||
$fields = implode(', ', $fields); |
|||
$stmt = $this->pdo->prepare("SELECT " . $fields . " FROM `".$this->calendarTableName."` WHERE principaluri = ?"); |
|||
$stmt->execute(array($principalUri)); |
|||
|
|||
$calendars = array(); |
|||
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { |
|||
|
|||
$components = explode(',',$row['components']); |
|||
|
|||
$calendar = array( |
|||
'id' => $row['id'], |
|||
'uri' => $row['uri'], |
|||
'principaluri' => $row['principaluri'], |
|||
'{' . Sabre_CalDAV_Plugin::NS_CALENDARSERVER . '}getctag' => $row['ctag']?$row['ctag']:'0', |
|||
'{' . Sabre_CalDAV_Plugin::NS_CALDAV . '}supported-calendar-component-set' => new Sabre_CalDAV_Property_SupportedCalendarComponentSet($components), |
|||
); |
|||
|
|||
|
|||
foreach($this->propertyMap as $xmlName=>$dbName) { |
|||
$calendar[$xmlName] = $row[$dbName]; |
|||
} |
|||
|
|||
$calendars[] = $calendar; |
|||
|
|||
} |
|||
|
|||
return $calendars; |
|||
|
|||
} |
|||
|
|||
/** |
|||
* Creates a new calendar for a principal. |
|||
* |
|||
* If the creation was a success, an id must be returned that can be used to reference |
|||
* this calendar in other methods, such as updateCalendar |
|||
* |
|||
* @param string $principalUri |
|||
* @param string $calendarUri |
|||
* @param array $properties |
|||
* @return mixed |
|||
*/ |
|||
public function createCalendar($principalUri,$calendarUri, array $properties) { |
|||
|
|||
$fieldNames = array( |
|||
'principaluri', |
|||
'uri', |
|||
'ctag', |
|||
); |
|||
$values = array( |
|||
':principaluri' => $principalUri, |
|||
':uri' => $calendarUri, |
|||
':ctag' => 1, |
|||
); |
|||
|
|||
// Default value
|
|||
$sccs = '{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set'; |
|||
$fieldNames[] = 'components'; |
|||
if (!isset($properties[$sccs])) { |
|||
$values[':components'] = 'VEVENT,VTODO'; |
|||
} else { |
|||
if (!($properties[$sccs] instanceof Sabre_CalDAV_Property_SupportedCalendarComponentSet)) { |
|||
throw new Sabre_DAV_Exception('The ' . $sccs . ' property must be of type: Sabre_CalDAV_Property_SupportedCalendarComponentSet'); |
|||
} |
|||
$values[':components'] = implode(',',$properties[$sccs]->getValue()); |
|||
} |
|||
|
|||
foreach($this->propertyMap as $xmlName=>$dbName) { |
|||
if (isset($properties[$xmlName])) { |
|||
|
|||
$myValue = $properties[$xmlName]; |
|||
$values[':' . $dbName] = $properties[$xmlName]; |
|||
$fieldNames[] = $dbName; |
|||
} |
|||
} |
|||
|
|||
$stmt = $this->pdo->prepare("INSERT INTO `".$this->calendarTableName."` (".implode(', ', $fieldNames).") VALUES (".implode(', ',array_keys($values)).")"); |
|||
$stmt->execute($values); |
|||
|
|||
return $this->pdo->lastInsertId(); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* Updates a calendars properties |
|||
* |
|||
* The properties array uses the propertyName in clark-notation as key, |
|||
* and the array value for the property value. In the case a property |
|||
* should be deleted, the property value will be null. |
|||
* |
|||
* This method must be atomic. If one property cannot be changed, the |
|||
* entire operation must fail. |
|||
* |
|||
* If the operation was successful, true can be returned. |
|||
* If the operation failed, false can be returned. |
|||
* |
|||
* Deletion of a non-existant property is always succesful. |
|||
* |
|||
* Lastly, it is optional to return detailed information about any |
|||
* failures. In this case an array should be returned with the following |
|||
* structure: |
|||
* |
|||
* array( |
|||
* 403 => array( |
|||
* '{DAV:}displayname' => null, |
|||
* ), |
|||
* 424 => array( |
|||
* '{DAV:}owner' => null, |
|||
* ) |
|||
* ) |
|||
* |
|||
* In this example it was forbidden to update {DAV:}displayname. |
|||
* (403 Forbidden), which in turn also caused {DAV:}owner to fail |
|||
* (424 Failed Dependency) because the request needs to be atomic. |
|||
* |
|||
* @param string $calendarId |
|||
* @param array $properties |
|||
* @return bool|array |
|||
*/ |
|||
public function updateCalendar($calendarId, array $properties) { |
|||
|
|||
$newValues = array(); |
|||
$result = array( |
|||
200 => array(), // Ok
|
|||
403 => array(), // Forbidden
|
|||
424 => array(), // Failed Dependency
|
|||
); |
|||
|
|||
$hasError = false; |
|||
|
|||
foreach($properties as $propertyName=>$propertyValue) { |
|||
|
|||
// We don't know about this property.
|
|||
if (!isset($this->propertyMap[$propertyName])) { |
|||
$hasError = true; |
|||
$result[403][$propertyName] = null; |
|||
unset($properties[$propertyName]); |
|||
continue; |
|||
} |
|||
|
|||
$fieldName = $this->propertyMap[$propertyName]; |
|||
$newValues[$fieldName] = $propertyValue; |
|||
|
|||
} |
|||
|
|||
// If there were any errors we need to fail the request
|
|||
if ($hasError) { |
|||
// Properties has the remaining properties
|
|||
foreach($properties as $propertyName=>$propertyValue) { |
|||
$result[424][$propertyName] = null; |
|||
} |
|||
|
|||
// Removing unused statuscodes for cleanliness
|
|||
foreach($result as $status=>$properties) { |
|||
if (is_array($properties) && count($properties)===0) unset($result[$status]); |
|||
} |
|||
|
|||
return $result; |
|||
|
|||
} |
|||
|
|||
// Success
|
|||
|
|||
// Now we're generating the sql query.
|
|||
$valuesSql = array(); |
|||
foreach($newValues as $fieldName=>$value) { |
|||
$valuesSql[] = $fieldName . ' = ?'; |
|||
} |
|||
$valuesSql[] = 'ctag = ctag + 1'; |
|||
|
|||
$stmt = $this->pdo->prepare("UPDATE `" . $this->calendarTableName . "` SET " . implode(', ',$valuesSql) . " WHERE id = ?"); |
|||
$newValues['id'] = $calendarId; |
|||
$stmt->execute(array_values($newValues)); |
|||
|
|||
return true; |
|||
|
|||
} |
|||
|
|||
/** |
|||
* Delete a calendar and all it's objects |
|||
* |
|||
* @param string $calendarId |
|||
* @return void |
|||
*/ |
|||
public function deleteCalendar($calendarId) { |
|||
|
|||
$stmt = $this->pdo->prepare('DELETE FROM `'.$this->calendarObjectTableName.'` WHERE calendarid = ?'); |
|||
$stmt->execute(array($calendarId)); |
|||
|
|||
$stmt = $this->pdo->prepare('DELETE FROM `'.$this->calendarTableName.'` WHERE id = ?'); |
|||
$stmt->execute(array($calendarId)); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* Returns all calendar objects within a calendar object. |
|||
* |
|||
* Every item contains an array with the following keys: |
|||
* * id - unique identifier which will be used for subsequent updates |
|||
* * calendardata - The iCalendar-compatible calnedar data |
|||
* * uri - a unique key which will be used to construct the uri. This can be any arbitrary string. |
|||
* * lastmodified - a timestamp of the last modification time |
|||
* * etag - An arbitrary string, surrounded by double-quotes. (e.g.: |
|||
* ' "abcdef"') |
|||
* * calendarid - The calendarid as it was passed to this function. |
|||
* |
|||
* Note that the etag is optional, but it's highly encouraged to return for |
|||
* speed reasons. |
|||
* |
|||
* The calendardata is also optional. If it's not returned |
|||
* 'getCalendarObject' will be called later, which *is* expected to return |
|||
* calendardata. |
|||
* |
|||
* @param string $calendarId |
|||
* @return array |
|||
*/ |
|||
public function getCalendarObjects($calendarId) { |
|||
|
|||
$stmt = $this->pdo->prepare('SELECT * FROM `'.$this->calendarObjectTableName.'` WHERE calendarid = ?'); |
|||
$stmt->execute(array($calendarId)); |
|||
return $stmt->fetchAll(); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* Returns information from a single calendar object, based on it's object |
|||
* uri. |
|||
* |
|||
* The returned array must have the same keys as getCalendarObjects. The |
|||
* 'calendardata' object is required here though, while it's not required |
|||
* for getCalendarObjects. |
|||
* |
|||
* @param string $calendarId |
|||
* @param string $objectUri |
|||
* @return array |
|||
*/ |
|||
public function getCalendarObject($calendarId,$objectUri) { |
|||
|
|||
$stmt = $this->pdo->prepare('SELECT * FROM `'.$this->calendarObjectTableName.'` WHERE calendarid = ? AND uri = ?'); |
|||
$stmt->execute(array($calendarId, $objectUri)); |
|||
return $stmt->fetch(); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* Creates a new calendar object. |
|||
* |
|||
* @param string $calendarId |
|||
* @param string $objectUri |
|||
* @param string $calendarData |
|||
* @return void |
|||
*/ |
|||
public function createCalendarObject($calendarId,$objectUri,$calendarData) { |
|||
|
|||
$stmt = $this->pdo->prepare('INSERT INTO `'.$this->calendarObjectTableName.'` (calendarid, uri, calendardata, lastmodified) VALUES (?,?,?,?)'); |
|||
$stmt->execute(array($calendarId,$objectUri,$calendarData,time())); |
|||
$stmt = $this->pdo->prepare('UPDATE `'.$this->calendarTableName.'` SET ctag = ctag + 1 WHERE id = ?'); |
|||
$stmt->execute(array($calendarId)); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* Updates an existing calendarobject, based on it's uri. |
|||
* |
|||
* @param string $calendarId |
|||
* @param string $objectUri |
|||
* @param string $calendarData |
|||
* @return void |
|||
*/ |
|||
public function updateCalendarObject($calendarId,$objectUri,$calendarData) { |
|||
|
|||
$stmt = $this->pdo->prepare('UPDATE `'.$this->calendarObjectTableName.'` SET calendardata = ?, lastmodified = ? WHERE calendarid = ? AND uri = ?'); |
|||
$stmt->execute(array($calendarData,time(),$calendarId,$objectUri)); |
|||
$stmt = $this->pdo->prepare('UPDATE `'.$this->calendarTableName.'` SET ctag = ctag + 1 WHERE id = ?'); |
|||
$stmt->execute(array($calendarId)); |
|||
|
|||
} |
|||
|
|||
/** |
|||
* Deletes an existing calendar object. |
|||
* |
|||
* @param string $calendarId |
|||
* @param string $objectUri |
|||
* @return void |
|||
*/ |
|||
public function deleteCalendarObject($calendarId,$objectUri) { |
|||
|
|||
$stmt = $this->pdo->prepare('DELETE FROM `'.$this->calendarObjectTableName.'` WHERE calendarid = ? AND uri = ?'); |
|||
$stmt->execute(array($calendarId,$objectUri)); |
|||
$stmt = $this->pdo->prepare('UPDATE `'. $this->calendarTableName .'` SET ctag = ctag + 1 WHERE id = ?'); |
|||
$stmt->execute(array($calendarId)); |
|||
|
|||
} |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,286 @@ |
|||
<?php |
|||
/** |
|||
* ownCloud - Addressbook |
|||
* |
|||
* @author Jakob Sack |
|||
* @copyright 2011 Jakob Sack mail@jakobsack.de |
|||
* |
|||
* This library is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE |
|||
* License as published by the Free Software Foundation; either |
|||
* version 3 of the License, or any later version. |
|||
* |
|||
* This library is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public |
|||
* License along with this library. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
/* |
|||
* |
|||
* The following SQL statement is just a help for developers and will not be |
|||
* executed! |
|||
* |
|||
* CREATE TABLE calendar_objects ( |
|||
* id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
|||
* calendarid INTEGER UNSIGNED NOT NULL, |
|||
* objecttype VARCHAR(40) NOT NULL, |
|||
* startdate DATETIME, |
|||
* enddate DATETIME, |
|||
* repeating INT(1), |
|||
* summary VARCHAR(255), |
|||
* calendardata TEXT, |
|||
* uri VARCHAR(100), |
|||
* lastmodified INT(11) |
|||
* ); |
|||
* |
|||
* CREATE TABLE calendar_calendars ( |
|||
* id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, |
|||
* userid VARCHAR(255), |
|||
* displayname VARCHAR(100), |
|||
* uri VARCHAR(100), |
|||
* ctag INTEGER UNSIGNED NOT NULL DEFAULT '0', |
|||
* description TEXT, |
|||
* calendarorder INTEGER UNSIGNED NOT NULL DEFAULT '0', |
|||
* calendarcolor VARCHAR(10), |
|||
* timezone TEXT, |
|||
* components VARCHAR(20) |
|||
* ); |
|||
*/ |
|||
|
|||
/** |
|||
* This class manages our addressbooks. |
|||
*/ |
|||
class OC_Calendar_Calendar{ |
|||
public static function allCalendars($uid){ |
|||
$stmt = OC_DB::prepare( 'SELECT * FROM *PREFIX*calendar_calendars WHERE userid = ?' ); |
|||
$result = $stmt->execute(array($uid)); |
|||
|
|||
$addressbooks = array(); |
|||
while( $row = $result->fetchRow()){ |
|||
$addressbooks[] = $row; |
|||
} |
|||
|
|||
return $addressbooks; |
|||
} |
|||
|
|||
public static function allCakendarsWherePrincipalURIIs($principaluri){ |
|||
$uid = self::extractUserID($principaluri); |
|||
return self::allCalendars($uid); |
|||
} |
|||
|
|||
public static function findCalendar($id){ |
|||
$stmt = OC_DB::prepare( 'SELECT * FROM *PREFIX*calendar_calendars WHERE id = ?' ); |
|||
$result = $stmt->execute(array($id)); |
|||
|
|||
return $result->fetchRow(); |
|||
} |
|||
|
|||
public static function addAddressbook($userid,$name,$description){ |
|||
$all = self::allAddressbooks($userid); |
|||
$uris = array(); |
|||
foreach($all as $i){ |
|||
$uris[] = $i['uri']; |
|||
} |
|||
|
|||
$uri = self::createURI($name, $uris ); |
|||
|
|||
$stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*contacts_addressbooks (userid,displayname,uri,description,ctag) VALUES(?,?,?,?,?)' ); |
|||
$result = $stmt->execute(array($userid,$name,$uri,$description,1)); |
|||
|
|||
return OC_DB::insertid(); |
|||
} |
|||
|
|||
public static function addAddressbookFromDAVData($principaluri,$uri,$name,$description){ |
|||
$userid = self::extractUserID($principaluri); |
|||
|
|||
$stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*contacts_addressbooks (userid,displayname,uri,description,ctag) VALUES(?,?,?,?,?)' ); |
|||
$result = $stmt->execute(array($userid,$name,$uri,$description,1)); |
|||
|
|||
return OC_DB::insertid(); |
|||
} |
|||
|
|||
public static function editAddressbook($id,$name,$description){ |
|||
// Need these ones for checking uri
|
|||
$addressbook = self::find($id); |
|||
|
|||
if(is_null($name)){ |
|||
$name = $addressbook['name']; |
|||
} |
|||
if(is_null($description)){ |
|||
$description = $addressbook['description']; |
|||
} |
|||
|
|||
$stmt = OC_DB::prepare( 'UPDATE *PREFIX*contacts_addressbooks SET displayname=?,description=?, ctag=ctag+1 WHERE id=?' ); |
|||
$result = $stmt->execute(array($name,$description,$id)); |
|||
|
|||
return true; |
|||
} |
|||
|
|||
public static function touchCalendar($id){ |
|||
$stmt = OC_DB::prepare( 'UPDATE *PREFIX*calendar_calendars SET ctag = ctag + 1 WHERE id = ?' ); |
|||
$stmt->execute(array($id)); |
|||
|
|||
return true; |
|||
} |
|||
|
|||
public static function deleteCalendar($id){ |
|||
$stmt = OC_DB::prepare( 'DELETE FROM *PREFIX*calendar_calendars WHERE id = ?' ); |
|||
$stmt->execute(array($id)); |
|||
|
|||
$stmt = OC_DB::prepare( 'DELETE FROM *PREFIX*calendar_objects WHERE addressbookid = ?' ); |
|||
$stmt->execute(array($id)); |
|||
|
|||
return true; |
|||
} |
|||
|
|||
public static function allCalendarObjects($id){ |
|||
$stmt = OC_DB::prepare( 'SELECT * FROM *PREFIX*calendar_objects WHERE calendarid = ?' ); |
|||
$result = $stmt->execute(array($id)); |
|||
|
|||
$addressbooks = array(); |
|||
while( $row = $result->fetchRow()){ |
|||
$addressbooks[] = $row; |
|||
} |
|||
|
|||
return $addressbooks; |
|||
} |
|||
|
|||
public static function findCalendarObject($id){ |
|||
$stmt = OC_DB::prepare( 'SELECT * FROM *PREFIX*calendar_objects WHERE id = ?' ); |
|||
$result = $stmt->execute(array($id)); |
|||
|
|||
return $result->fetchRow(); |
|||
} |
|||
|
|||
public static function findCalendarObjectWhereDAVDataIs($cid,$uri){ |
|||
$stmt = OC_DB::prepare( 'SELECT * FROM *PREFIX*calendar_objects WHERE calendarid = ? AND uri = ?' ); |
|||
$result = $stmt->execute(array($cid,$uri)); |
|||
|
|||
return $result->fetchRow(); |
|||
} |
|||
|
|||
public static function addCard($id,$data){ |
|||
$object = Sabre_VObject_Reader::read($data); |
|||
list($startdate,$enddate,$summary,$repeating,$uid) = self::extractData($object); |
|||
|
|||
$fn = null; |
|||
$uri = null; |
|||
$card = Sabre_VObject_Reader::read($data); |
|||
foreach($card->children as $property){ |
|||
if($property->name == 'FN'){ |
|||
$fn = $property->value; |
|||
} |
|||
elseif(is_null($uri) && $property->name == 'UID' ){ |
|||
$uri = $property->value.'.vcf'; |
|||
} |
|||
} |
|||
if(is_null($uri)) $uri = self::createUID().'.vcf'; |
|||
|
|||
$stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*contacts_cards (addressbookid,fullname,carddata,uri,lastmodified) VALUES(?,?,?,?,?)' ); |
|||
$result = $stmt->execute(array($id,$fn,$data,$uri,time())); |
|||
|
|||
self::touchAddressbook($id); |
|||
|
|||
return OC_DB::insertid(); |
|||
} |
|||
|
|||
public static function addCalendarObjectFromDAVData($id,$uri,$data){ |
|||
$object = Sabre_VObject_Reader::read($data); |
|||
list($startdate,$enddate,$summary,$repeating,$uid) = self::extractData($object); |
|||
|
|||
$stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*calendar_objects (calendarid,objecttye,startdate,enddate,repeating,summary,calendardata,uri,lastmodified) VALUES(?,?,?,?,?,?,?,?,?)' ); |
|||
$result = $stmt->execute(array($id,$object->name,(is_null($startdate)?null:$startdate->format('Y-m-d H:i:s')),(is_null($enddate)?null:$enddate->format('Y-m-d H:i:s')),$repeating,$summary,$data,$uri,time())); |
|||
|
|||
self::touchCalendar($id); |
|||
|
|||
return OC_DB::insertid(); |
|||
} |
|||
|
|||
public static function editCalendarObject($id, $data){ |
|||
$oldobject = self::findCard($id); |
|||
|
|||
$object = Sabre_VObject_Reader::read($data); |
|||
list($startdate,$enddate,$summary,$repeating,$uid) = self::extractData($object); |
|||
|
|||
$stmt = OC_DB::prepare( 'UPDATE *PREFIX*contacts_cards SET objecttye=?,startdate=?,enddate=?,repeating=?,summary=?,calendardata=?, lastmodified = ? WHERE id = ?' ); |
|||
$result = $stmt->execute(array($object->name,(is_null($startdate)?null:$startdate->format('Y-m-d H:i:s')),(is_null($enddate)?null:$enddate->format('Y-m-d H:i:s')),$repeating,$summary,$data,time(),$id)); |
|||
|
|||
self::touchCalendar($id); |
|||
|
|||
return true; |
|||
} |
|||
|
|||
public static function editCalendarObjectFromDAVData($cid,$uri,$data){ |
|||
$oldobject = self::findCardWhereDAVDataIs($cid,$uri); |
|||
|
|||
$object = Sabre_VObject_Reader::read($data); |
|||
list($startdate,$enddate,$summary,$repeating,$uid) = self::extractData($object); |
|||
|
|||
$stmt = OC_DB::prepare( 'UPDATE *PREFIX*contacts_cards SET objecttye=?,startdate=?,enddate=?,repeating=?,summary=?,calendardata=?, lastmodified = ? WHERE id = ?' ); |
|||
$result = $stmt->execute(array($object->name,(is_null($startdate)?null:$startdate->format('Y-m-d H:i:s')),(is_null($enddate)?null:$enddate->format('Y-m-d H:i:s')),$repeating,$summary,$data,time(),$oldobject['id'])); |
|||
|
|||
self::touchCalendar($oldobject['calendarid']); |
|||
|
|||
return true; |
|||
} |
|||
|
|||
public static function deleteCalendarObject($id){ |
|||
$stmt = OC_DB::prepare( 'DELETE FROM *PREFIX*calendar_objects WHERE id = ?' ); |
|||
$stmt->execute(array($id)); |
|||
|
|||
return true; |
|||
} |
|||
|
|||
public static function deleteCalendarObjectFromDAVData($cid,$uri){ |
|||
$stmt = OC_DB::prepare( 'DELETE FROM *PREFIX*calendar_objects WHERE calendarid = ? AND uri=?' ); |
|||
$stmt->execute(array($cid,$uri)); |
|||
|
|||
return true; |
|||
} |
|||
|
|||
public static function createURI($name,$existing){ |
|||
$name = strtolower($name); |
|||
$newname = $name; |
|||
$i = 1; |
|||
while(in_array($newname,$existing)){ |
|||
$newname = $name.$i; |
|||
$i = $i + 1; |
|||
} |
|||
return $newname; |
|||
} |
|||
|
|||
public static function createUID(){ |
|||
return substr(md5(rand().time()),0,10); |
|||
} |
|||
|
|||
public static function extractUserID($principaluri){ |
|||
list($prefix,$userid) = Sabre_DAV_URLUtil::splitPath($principaluri); |
|||
return $userid; |
|||
} |
|||
|
|||
protected static function extractData($object){ |
|||
$return = array(null,null,'',false,null); |
|||
foreach($object->children as $property){ |
|||
if($property->name == 'DTSTART'){ |
|||
$return[0] = $property->getDateTime(); |
|||
} |
|||
elseif($property->name == 'DTEND'){ |
|||
$return[1] = $property->getDateTime(); |
|||
} |
|||
elseif($property->name == 'SUMMARY'){ |
|||
$return[2] = $property->value; |
|||
} |
|||
elseif($property->name == 'RRULE'){ |
|||
$return[3] = true; |
|||
} |
|||
elseif($property->name == 'UID'){ |
|||
$return[4] = $property->value; |
|||
} |
|||
} |
|||
return $return; |
|||
} |
|||
} |
|||
@ -0,0 +1,41 @@ |
|||
<?php |
|||
/** |
|||
* ownCloud - Addressbook |
|||
* |
|||
* @author Jakob Sack |
|||
* @copyright 2011 Jakob Sack mail@jakobsack.de |
|||
* |
|||
* This library is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE |
|||
* License as published by the Free Software Foundation; either |
|||
* version 3 of the License, or any later version. |
|||
* |
|||
* This library is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public |
|||
* License along with this library. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
|
|||
/** |
|||
* This class contains all hooks. |
|||
*/ |
|||
class OC_Calendar_Hooks{ |
|||
/** |
|||
* @brief Deletes all Addressbooks of a certain user |
|||
* @param paramters parameters from postDeleteUser-Hook |
|||
* @return array |
|||
*/ |
|||
public function deleteUser($parameters) { |
|||
$calendars = OC_Calendar_Calendar::allCalendars($parameters['uid']); |
|||
|
|||
foreach($calendars as $calendar) { |
|||
OC_Calendar_Calendar::deleteCalendar($addressbook['id']); |
|||
} |
|||
|
|||
return true; |
|||
} |
|||
} |
|||
7473
apps/calendar/libs/iCalcreator.php
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,72 @@ |
|||
<?php |
|||
/** |
|||
/ ownCloud - Calendar Plugin |
|||
/ |
|||
/ (c) Copyright 2011 Georg Ehrke |
|||
/ author: Georg Ehrke |
|||
/ email: ownclouddev at georgswebsite dot de |
|||
/ homepage: ownclouddev.georgswebsite.de |
|||
/ License: GPL |
|||
/ <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
class OC_CALENDAR_ICAL{ |
|||
public $defaultview; |
|||
public $calendar; |
|||
public $calendar_name; |
|||
public $calendar_status; |
|||
public $ics_properties; |
|||
public $VCALENDAR; |
|||
public $VTIMEZONE; |
|||
public $DAYLIGHT; |
|||
|
|||
function __construct(){ |
|||
include("cfg/" . OC_USER::getUser() . ".cfg.php"); |
|||
include("iCalcreator.php"); |
|||
$this->defaultview = $defaultview; |
|||
$this->calendar = $calendar; |
|||
$this->calendar_name = $calendar_name; |
|||
$this->calendarstatus = $calendar_status; |
|||
} |
|||
|
|||
public function load_ics($path){ |
|||
if(!file_exists("../../data/" . OC_USER::getUser() . $path)){ |
|||
return false; |
|||
}else{ |
|||
$calfile = file("../../data/" . OC_USER::getUser() . $path); |
|||
$return = array(); |
|||
$eventnum = 0; |
|||
foreach($calfile as $line){ |
|||
|
|||
|
|||
|
|||
} |
|||
} |
|||
} |
|||
|
|||
public function converttojs($cal){ |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
public function addevent($event, $calendar){ |
|||
|
|||
} |
|||
|
|||
public function removeevent($event, $calendar){ |
|||
|
|||
} |
|||
|
|||
public function changeevent($event, $calendar){ |
|||
|
|||
} |
|||
|
|||
public function moveevent($event, $calendar){ |
|||
|
|||
} |
|||
|
|||
public function choosecalendar_dialog(){ |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,271 @@ |
|||
<?php |
|||
/* |
|||
* Copyright (c) 2002,2003 Free Software Foundation |
|||
* developed under the custody of the |
|||
* Open Web Application Security Project |
|||
* (http://www.owasp.org) |
|||
* |
|||
* This file is part of the PHP Filters. |
|||
* PHP Filters is free software; you can redistribute it and/or modify it |
|||
* under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation; either version 2 of the License, or |
|||
* (at your option) any later version. |
|||
* |
|||
* PHP Filters is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|||
* See the GNU General Public License for more details. |
|||
* |
|||
* If you are not able to view the LICENSE, which should |
|||
* always be possible within a valid and working PHP Filters release, |
|||
* please write to the Free Software Foundation, Inc., |
|||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|||
* to get a copy of the GNU General Public License or to report a |
|||
* possible license violation. |
|||
*/ |
|||
///////////////////////////////////////
|
|||
// sanitize.inc.php
|
|||
// Sanitization functions for PHP
|
|||
// by: Gavin Zuchlinski, Jamie Pratt, Hokkaido
|
|||
// webpage: http://libox.net
|
|||
// Last modified: December 21, 2003
|
|||
//
|
|||
// Many thanks to those on the webappsec list for helping me improve these functions
|
|||
///////////////////////////////////////
|
|||
// Function list:
|
|||
// sanitize_paranoid_string($string) -- input string, returns string stripped of all non
|
|||
// alphanumeric
|
|||
// sanitize_system_string($string) -- input string, returns string stripped of special
|
|||
// characters
|
|||
// sanitize_sql_string($string) -- input string, returns string with slashed out quotes
|
|||
// sanitize_html_string($string) -- input string, returns string with html replacements
|
|||
// for special characters
|
|||
// sanitize_int($integer) -- input integer, returns ONLY the integer (no extraneous
|
|||
// characters
|
|||
// sanitize_float($float) -- input float, returns ONLY the float (no extraneous
|
|||
// characters)
|
|||
// sanitize($input, $flags) -- input any variable, performs sanitization
|
|||
// functions specified in flags. flags can be bitwise
|
|||
// combination of PARANOID, SQL, SYSTEM, HTML, INT, FLOAT, LDAP,
|
|||
// UTF8
|
|||
//
|
|||
//
|
|||
///////////////////////////////////////
|
|||
//
|
|||
// 20031121 jp - added defines for magic_quotes and register_globals, added ; to replacements
|
|||
// in sanitize_sql_string() function, created rudimentary testing pages
|
|||
// 20031221 gz - added nice_addslashes and changed sanitize_sql_string to use it
|
|||
//
|
|||
/////////////////////////////////////////
|
|||
|
|||
define("PARANOID", 1); |
|||
define("SQL", 2); |
|||
define("SYSTEM", 4); |
|||
define("HTML", 8); |
|||
define("INT", 16); |
|||
define("FLOAT", 32); |
|||
define("LDAP", 64); |
|||
define("UTF8", 128); |
|||
|
|||
// get register_globals ini setting - jp
|
|||
$register_globals = (bool) ini_get('register_gobals'); |
|||
if ($register_globals == TRUE) { define("REGISTER_GLOBALS", 1); } else { define("REGISTER_GLOBALS", 0); } |
|||
|
|||
// get magic_quotes_gpc ini setting - jp
|
|||
$magic_quotes = (bool) ini_get('magic_quotes_gpc'); |
|||
if ($magic_quotes == TRUE) { define("MAGIC_QUOTES", 1); } else { define("MAGIC_QUOTES", 0); } |
|||
|
|||
// addslashes wrapper to check for gpc_magic_quotes - gz
|
|||
function nice_addslashes($string) |
|||
{ |
|||
// if magic quotes is on the string is already quoted, just return it
|
|||
if(MAGIC_QUOTES) |
|||
return $string; |
|||
else |
|||
return addslashes($string); |
|||
} |
|||
|
|||
// internal function for utf8 decoding
|
|||
// thanks to Hokkaido for noticing that PHP's utf8_decode function is a little
|
|||
// screwy, and to jamie for the code
|
|||
function my_utf8_decode($string) |
|||
{ |
|||
return strtr($string, |
|||
"???????��������������������������������������������������������������", |
|||
"SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy"); |
|||
} |
|||
|
|||
// paranoid sanitization -- only let the alphanumeric set through
|
|||
function sanitize_paranoid_string($string, $min='', $max='') |
|||
{ |
|||
$string = preg_replace("/[^a-zA-Z0-9]/", "", $string); |
|||
$len = strlen($string); |
|||
if((($min != '') && ($len < $min)) || (($max != '') && ($len > $max))) |
|||
return FALSE; |
|||
return $string; |
|||
} |
|||
|
|||
// sanitize a string in prep for passing a single argument to system() (or similar)
|
|||
function sanitize_system_string($string, $min='', $max='') |
|||
{ |
|||
$pattern = '/(;|\||`|>|<|&|^|"|'."\n|\r|'".'|{|}|[|]|\)|\()/i'; // no piping, passing possible environment variables ($),
|
|||
// seperate commands, nested execution, file redirection,
|
|||
// background processing, special commands (backspace, etc.), quotes
|
|||
// newlines, or some other special characters
|
|||
$string = preg_replace($pattern, '', $string); |
|||
$string = '"'.preg_replace('/\$/', '\\\$', $string).'"'; //make sure this is only interpretted as ONE argument
|
|||
$len = strlen($string); |
|||
if((($min != '') && ($len < $min)) || (($max != '') && ($len > $max))) |
|||
return FALSE; |
|||
return $string; |
|||
} |
|||
|
|||
// sanitize a string for SQL input (simple slash out quotes and slashes)
|
|||
function sanitize_sql_string($string, $min='', $max='') |
|||
{ |
|||
$string = nice_addslashes($string); //gz
|
|||
$pattern = "/;/"; // jp
|
|||
$replacement = ""; |
|||
$len = strlen($string); |
|||
if((($min != '') && ($len < $min)) || (($max != '') && ($len > $max))) |
|||
return FALSE; |
|||
return preg_replace($pattern, $replacement, $string); |
|||
} |
|||
|
|||
// sanitize a string for SQL input (simple slash out quotes and slashes)
|
|||
function sanitize_ldap_string($string, $min='', $max='') |
|||
{ |
|||
$pattern = '/(\)|\(|\||&)/'; |
|||
$len = strlen($string); |
|||
if((($min != '') && ($len < $min)) || (($max != '') && ($len > $max))) |
|||
return FALSE; |
|||
return preg_replace($pattern, '', $string); |
|||
} |
|||
|
|||
|
|||
// sanitize a string for HTML (make sure nothing gets interpretted!)
|
|||
function sanitize_html_string($string) |
|||
{ |
|||
$pattern[0] = '/\&/'; |
|||
$pattern[1] = '/</'; |
|||
$pattern[2] = "/>/"; |
|||
$pattern[3] = '/\n/'; |
|||
$pattern[4] = '/"/'; |
|||
$pattern[5] = "/'/"; |
|||
$pattern[6] = "/%/"; |
|||
$pattern[7] = '/\(/'; |
|||
$pattern[8] = '/\)/'; |
|||
$pattern[9] = '/\+/'; |
|||
$pattern[10] = '/-/'; |
|||
$replacement[0] = '&'; |
|||
$replacement[1] = '<'; |
|||
$replacement[2] = '>'; |
|||
$replacement[3] = '<br>'; |
|||
$replacement[4] = '"'; |
|||
$replacement[5] = '''; |
|||
$replacement[6] = '%'; |
|||
$replacement[7] = '('; |
|||
$replacement[8] = ')'; |
|||
$replacement[9] = '+'; |
|||
$replacement[10] = '-'; |
|||
return preg_replace($pattern, $replacement, $string); |
|||
} |
|||
|
|||
// make int int!
|
|||
function sanitize_int($integer, $min='', $max='') |
|||
{ |
|||
$int = intval($integer); |
|||
if((($min != '') && ($int < $min)) || (($max != '') && ($int > $max))) |
|||
return FALSE; |
|||
return $int; |
|||
} |
|||
|
|||
// make float float!
|
|||
function sanitize_float($float, $min='', $max='') |
|||
{ |
|||
$float = floatval($float); |
|||
if((($min != '') && ($float < $min)) || (($max != '') && ($float > $max))) |
|||
return FALSE; |
|||
return $float; |
|||
} |
|||
|
|||
// glue together all the other functions
|
|||
function sanitize($input, $flags, $min='', $max='') |
|||
{ |
|||
if($flags & UTF8) $input = my_utf8_decode($input); |
|||
if($flags & PARANOID) $input = sanitize_paranoid_string($input, $min, $max); |
|||
if($flags & INT) $input = sanitize_int($input, $min, $max); |
|||
if($flags & FLOAT) $input = sanitize_float($input, $min, $max); |
|||
if($flags & HTML) $input = sanitize_html_string($input, $min, $max); |
|||
if($flags & SQL) $input = sanitize_sql_string($input, $min, $max); |
|||
if($flags & LDAP) $input = sanitize_ldap_string($input, $min, $max); |
|||
if($flags & SYSTEM) $input = sanitize_system_string($input, $min, $max); |
|||
return $input; |
|||
} |
|||
|
|||
function check_paranoid_string($input, $min='', $max='') |
|||
{ |
|||
if($input != sanitize_paranoid_string($input, $min, $max)) |
|||
return FALSE; |
|||
return TRUE; |
|||
} |
|||
|
|||
function check_int($input, $min='', $max='') |
|||
{ |
|||
if($input != sanitize_int($input, $min, $max)) |
|||
return FALSE; |
|||
return TRUE; |
|||
} |
|||
|
|||
function check_float($input, $min='', $max='') |
|||
{ |
|||
if($input != sanitize_float($input, $min, $max)) |
|||
return FALSE; |
|||
return TRUE; |
|||
} |
|||
|
|||
function check_html_string($input, $min='', $max='') |
|||
{ |
|||
if($input != sanitize_html_string($input, $min, $max)) |
|||
return FALSE; |
|||
return TRUE; |
|||
} |
|||
|
|||
function check_sql_string($input, $min='', $max='') |
|||
{ |
|||
if($input != sanitize_sql_string($input, $min, $max)) |
|||
return FALSE; |
|||
return TRUE; |
|||
} |
|||
|
|||
function check_ldap_string($input, $min='', $max='') |
|||
{ |
|||
if($input != sanitize_string($input, $min, $max)) |
|||
return FALSE; |
|||
return TRUE; |
|||
} |
|||
|
|||
function check_system_string($input, $min='', $max='') |
|||
{ |
|||
if($input != sanitize_system_string($input, $min, $max, TRUE)) |
|||
return FALSE; |
|||
return TRUE; |
|||
} |
|||
|
|||
// glue together all the other functions
|
|||
function check($input, $flags, $min='', $max='') |
|||
{ |
|||
$oldput = $input; |
|||
if($flags & UTF8) $input = my_utf8_decode($input); |
|||
if($flags & PARANOID) $input = sanitize_paranoid_string($input, $min, $max); |
|||
if($flags & INT) $input = sanitize_int($input, $min, $max); |
|||
if($flags & FLOAT) $input = sanitize_float($input, $min, $max); |
|||
if($flags & HTML) $input = sanitize_html_string($input, $min, $max); |
|||
if($flags & SQL) $input = sanitize_sql_string($input, $min, $max); |
|||
if($flags & LDAP) $input = sanitize_ldap_string($input, $min, $max); |
|||
if($flags & SYSTEM) $input = sanitize_system_string($input, $min, $max, TRUE); |
|||
if($input != $oldput) |
|||
return FALSE; |
|||
return TRUE; |
|||
} |
|||
?>
|
|||
@ -0,0 +1,27 @@ |
|||
<?php |
|||
/************************************************ |
|||
* ownCloud - Calendar Plugin * |
|||
* * |
|||
* (c) Copyright 2011 Georg Ehrke * |
|||
* author: Georg Ehrke * |
|||
* email: ownclouddev at georgswebsite dot de * |
|||
* homepage: http://ownclouddev.georgswebsite.de * |
|||
* License: GPL * |
|||
* <http://www.gnu.org/licenses/>. * |
|||
************************************************/ |
|||
require_once('../../lib/base.php'); |
|||
if(!OC_USER::isLoggedIn()){ |
|||
header("Location: " . OC_HELPER::linkTo("index.php")); |
|||
exit(); |
|||
} |
|||
if(!file_exists("cfg/" . OC_USER::getUser() . ".cfg.php")){ |
|||
header("Location: install.php"); |
|||
} |
|||
OC_UTIL::addScript("calendar", "calendar"); |
|||
OC_UTIL::addScript("calendar", "calendar_init"); |
|||
OC_UTIL::addStyle("calendar", "style"); |
|||
require_once("template.php"); |
|||
OC_APP::setActiveNavigationEntry("calendar_settings"); |
|||
$output = new OC_TEMPLATE("calendar", "settings", "admin"); |
|||
$output->printpage(); |
|||
?>
|
|||
@ -0,0 +1,982 @@ |
|||
<div id="devbox"> |
|||
</div> |
|||
<div class="controls"> |
|||
<div class="actions"> |
|||
<form> |
|||
<div id="view"> |
|||
<input type="radio" id="onedayview_radio" name="viewchooseradio"/> |
|||
<label onclick="change_view('onedayview');" for="onedayview_radio"> |
|||
1 Day |
|||
</label> |
|||
<input type="radio" id="oneweekview_radio" name="viewchooseradio"/> |
|||
<label onclick="change_view('oneweekview');" for="oneweekview_radio"> |
|||
1 Week |
|||
</label> |
|||
<input type="radio" id="fourweeksview_radio" name="viewchooseradio"/> |
|||
<label onclick="change_view('fourweeksview');" for="fourweeksview_radio"> |
|||
4 Weeks |
|||
</label> |
|||
<input type="radio" id="onemonthview_radio" name="viewchooseradio"/> |
|||
<label onclick="change_view('onemonthview');" for="onemonthview_radio"> |
|||
1 Month |
|||
</label> |
|||
<input type="radio" id="listview_radio" name="viewchooseradio"/> |
|||
<label onclick="change_view('listview');" for="listview_radio"> |
|||
List |
|||
</label> |
|||
</div> |
|||
</form> |
|||
<form> |
|||
<div id="choosecalendar"> |
|||
<input type="radio" id="today_input" checked="checked"/> |
|||
<label for="today_input" onclick="switch2today();"> |
|||
Today |
|||
</label> |
|||
<input type="radio" id="choosecalendar_input" checked="checked"/> |
|||
<label for="choosecalendar_input" onclick="choosecalendar_dialog();"> |
|||
Choose your Calendar |
|||
</label> |
|||
</div> |
|||
</form> |
|||
<form> |
|||
<div id="datecontrol"> |
|||
<input type="radio" id="datecontrol_left" /> |
|||
<label for="datecontrol_left" onclick="update_view('', 'backward');"> |
|||
< |
|||
</label> |
|||
<input type="radio" id="datecontrol_date" checked="checked"/> |
|||
<label for="datecontrol_date"> |
|||
<p id="datecontrol_date_label"> |
|||
|
|||
</p> |
|||
</label> |
|||
<input type="radio" id="datecontrol_right" /> |
|||
<label for="datecontrol_right" onclick="update_view('', 'forward');"> |
|||
> |
|||
</label> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
</div> |
|||
<div class="controls" id="calendar_holder"> |
|||
<div id="onedayview"> |
|||
<table> |
|||
<thead> |
|||
<tr> |
|||
<th class="calendar_time">Time</th> |
|||
<th id="onedayview_today" class="calendar_row"></th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<tr> |
|||
<td class="calendar_time">All day</td> |
|||
<td id="onedayview_wholeday" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">00:00</td> |
|||
<td id="onedayview_0" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">01:00</td> |
|||
<td id="onedayview_1" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">02:00</td> |
|||
<td id="onedayview_2" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">03:00</td> |
|||
<td id="onedayview_3" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">04:00</td> |
|||
<td id="onedayview_4" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">05:00</td> |
|||
<td id="onedayview_5" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">06:00</td> |
|||
<td id="onedayview_6" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">07:00</td> |
|||
<td id="onedayview_7" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">08:00</td> |
|||
<td id="onedayview_8" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">09:00</td> |
|||
<td id="onedayview_9" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">10:00</td> |
|||
<td id="onedayview_10" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">11:00</td> |
|||
<td id="onedayview_11" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">12:00</td> |
|||
<td id="onedayview_12" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">13:00</td> |
|||
<td id="onedayview_13" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">14:00</td> |
|||
<td id="onedayview_14" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">15:00</td> |
|||
<td id="onedayview_15" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">16:00</td> |
|||
<td id="onedayview_16" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">17:00</td> |
|||
<td id="onedayview_17" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">18:00</td> |
|||
<td id="onedayview_18" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">19:00</td> |
|||
<td id="onedayview_19" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">20:00</td> |
|||
<td id="onedayview_20" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">21:00</td> |
|||
<td id="onedayview_21" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">22:00</td> |
|||
<td id="onedayview_22" class="calendar_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">23:00</td> |
|||
<td id="onedayview_23" class="calendar_row"></td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
<div id="oneweekview"> |
|||
<table> |
|||
<thead> |
|||
<tr> |
|||
<th class="calendar_time">Time</th> |
|||
<th id="oneweekview_monday" class="calendar_row"></th> |
|||
<th id="oneweekview_tuesday" class="calendar_row"></th> |
|||
<th id="oneweekview_wednesday" class="calendar_row"></th> |
|||
<th id="oneweekview_thursday" class="calendar_row"></th> |
|||
<th id="oneweekview_friday" class="calendar_row"></th> |
|||
<th id="oneweekview_saturday" class="weekend_thead"></th> |
|||
<th id="oneweekview_sunday" class="weekend_thead"></th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<tr> |
|||
<td class="calendar_time">All day</td> |
|||
<td id="oneweekview_monday_allday" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_allday" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_allday" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_allday" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_allday" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_allday" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_allday" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">00:00</td> |
|||
<td id="oneweekview_monday_0" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_0" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_0" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_0" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_0" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_0" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_0" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">01:00</td> |
|||
<td id="oneweekview_monday_1" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_1" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_1" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_1" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_1" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_1" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_1" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">02:00</td> |
|||
<td id="oneweekview_monday_2" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_2" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_2" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_2" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_2" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_2" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_2" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">03:00</td> |
|||
<td id="oneweekview_monday_3" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_3" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_3" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_3" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_3" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_3" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_3" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">04:00</td> |
|||
<td id="oneweekview_monday_4" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_4" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_4" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_4" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_4" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_4" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_4" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">05:00</td> |
|||
<td id="oneweekview_monday_5" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_5" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_5" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_5" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_5" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_5" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_5" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">06:00</td> |
|||
<td id="oneweekview_monday_6" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_6" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_6" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_6" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_6" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_6" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_6" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">07:00</td> |
|||
<td id="oneweekview_monday_7" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_7" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_7" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_7" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_7" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_7" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_7" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">08:00</td> |
|||
<td id="oneweekview_monday_8" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_8" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_8" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_8" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_8" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_8" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_8" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">09:00</td> |
|||
<td id="oneweekview_monday_9" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_9" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_9" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_9" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_9" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_9" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_9" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">10:00</td> |
|||
<td id="oneweekview_monday_10" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_10" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_10" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_10" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_10" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_10" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_10" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">11:00</td> |
|||
<td id="oneweekview_monday_11" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_11" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_11" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_11" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_11" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_11" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_11" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">12:00</td> |
|||
<td id="oneweekview_monday_12" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_12" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_12" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_12" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_12" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_12" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_12" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">13:00</td> |
|||
<td id="oneweekview_monday_13" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_13" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_13" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_13" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_13" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_13" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_13" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">14:00</td> |
|||
<td id="oneweekview_monday_14" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_14" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_14" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_14" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_14" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_14" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_14" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">15:00</td> |
|||
<td id="oneweekview_monday_15" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_15" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_15" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_15" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_15" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_15" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_15" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">16:00</td> |
|||
<td id="oneweekview_monday_16" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_16" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_16" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_16" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_16" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_16" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_16" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">17:00</td> |
|||
<td id="oneweekview_monday_17" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_17" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_17" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_17" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_17" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_17" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_17" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">18:00</td> |
|||
<td id="oneweekview_monday_18" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_18" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_18" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_18" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_18" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_18" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_18" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">19:00</td> |
|||
<td id="oneweekview_monday_19" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_19" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_19" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_19" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_19" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_19" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_19" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">20:00</td> |
|||
<td id="oneweekview_monday_20" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_20" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_20" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_20" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_20" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_20" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_20" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">21:00</td> |
|||
<td id="oneweekview_monday_21" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_21" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_21" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_21" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_21" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_21" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_21" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">22:00</td> |
|||
<td id="oneweekview_monday_22" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_22" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_22" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_22" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_22" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_22" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_22" class="weekend_row"></td> |
|||
</tr> |
|||
<tr> |
|||
<td class="calendar_time">23:00</td> |
|||
<td id="oneweekview_monday_23" class="calendar_row"></td> |
|||
<td id="oneweekview_tuesday_23" class="calendar_row"></td> |
|||
<td id="oneweekview_wednesday_23" class="calendar_row"></td> |
|||
<td id="oneweekview_thursday_23" class="calendar_row"></td> |
|||
<td id="oneweekview_friday_23" class="calendar_row"></td> |
|||
<td id="oneweekview_saturday_23" class="weekend_row"></td> |
|||
<td id="oneweekview_sunday_23" class="weekend_row"></td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
<div id="fourweeksview"> |
|||
<table> |
|||
<thead> |
|||
<tr> |
|||
<th id="fourweeksview_calw_label" class="calendar_row">CW</th> |
|||
<th id="fourweeksview_monday" class="calendar_row">Monday</th> |
|||
<th id="fourweeksview_tuesday" class="calendar_row">Tuesday</th> |
|||
<th id="fourweeksview_wednesday" class="calendar_row">Wednesday</th> |
|||
<th id="fourweeksview_thursday" class="calendar_row">Thursday</th> |
|||
<th id="fourweeksview_friday" class="calendar_row">Friday</th> |
|||
<th id="fourweeksview_saturday" class="weekend_thead">Saturday</th> |
|||
<th id="fourweeksview_sunday" class="weekend_thead">Sunday</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<tr id="fourweeksview_week_1"> |
|||
<td id="fourweeksview_calw1"></td> |
|||
<td id="fourweeksview_monday_1" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_monday_1"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_monday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_tuesday_1" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_tuesday_1"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_tuesday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_wednesday_1" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_wednesday_1"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_wednesday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_thursday_1" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_thursday_1"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_thursday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_friday_1" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_friday_1"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_friday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_saturday_1" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_saturday_1"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_saturday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_sunday_1" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_sunday_1"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_sunday_1"> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
<tr id="fourweeksview_week_2"> |
|||
<td id="fourweeksview_calw2"></td> |
|||
<td id="fourweeksview_monday_2" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_monday_2"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_monday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_tuesday_2" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_tuesday_2"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_tuesday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_wednesday_2" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_wednesday_2"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_wednesday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_thursday_2" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_thursday_2"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_thursday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_friday_2" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_friday_2"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_friday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_saturday_2" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_saturday_2"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_saturday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_sunday_2" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_sunday_2"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_sunday_2"> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
<tr id="fourweeksview_week_3"> |
|||
<td id="fourweeksview_calw3"></td> |
|||
<td id="fourweeksview_monday_3" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_monday_3"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_monday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_tuesday_3" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_tuesday_3"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_tuesday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_wednesday_3" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_wednesday_3"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_wednesday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_thursday_3" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_thursday_3"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_thursday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_friday_3" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_friday_3"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_friday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_saturday_3" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_saturday_3"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_saturday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_sunday_3" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_sunday_3"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_sunday_3"> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
<tr id="fourweeksview_week_4"> |
|||
<td id="fourweeksview_calw4"></td> |
|||
<td id="fourweeksview_monday_4" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_monday_4"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_monday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_tuesday_4" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_tuesday_4"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_tuesday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_wednesday_4" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_wednesday_4"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_wednesday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_thursday_4" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_thursday_4"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_thursday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_friday_4" class="fourweeksview_item"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_friday_4"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_friday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_saturday_4" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_saturday_4"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_saturday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="fourweeksview_sunday_4" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_fourweeksview_sunday_4"> |
|||
</div> |
|||
<div class="events" id="events_fourweeksview_sunday_4"> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
<div id="onemonthview"> |
|||
<table> |
|||
<thead> |
|||
<tr> |
|||
<th id="onemonthview_monday" class="calendar_row">Monday</th> |
|||
<th id="onemonthview_tuesday" class="calendar_row">Tuesday</th> |
|||
<th id="onemonthview_wednesday" class="calendar_row">Wednesday</th> |
|||
<th id="onemonthview_thursday" class="calendar_row">Thursday</th> |
|||
<th id="onemonthview_friday" class="calendar_row">Friday</th> |
|||
<th id="onemonthview_saturday" class="weekend_thead">Saturday</th> |
|||
<th id="onemonthview_sunday" class="weekend_thead">Sunday</th> |
|||
</tr> |
|||
</thead> |
|||
<tbody> |
|||
<tr id="onemonthview_week_1"> |
|||
<td id="onemonthview_monday_1" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_monday_1"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_monday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_tuesday_1" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_tuesday_1"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_tuesday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_wednesday_1" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_wednesday_1"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_wednesday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_thursday_1" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_thursday_1"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_thursday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_friday_1" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_friday_1"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_friday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_saturday_1" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_saturday_1"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_saturday_1"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_sunday_1" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_sunday_1"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_sunday_1"> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
<tr id="onemonthview_week_2"> |
|||
<td id="onemonthview_monday_2" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_monday_2"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_monday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_tuesday_2" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_tuesday_2"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_tuesday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_wednesday_2" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_wednesday_2"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_wednesday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_thursday_2" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_thursday_2"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_thursday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_friday_2" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_friday_2"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_friday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_saturday_2" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_saturday_2"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_saturday_2"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_sunday_2" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_sunday_2"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_sunday_2"> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
<tr id="onemonthview_week_3"> |
|||
<td id="onemonthview_monday_3" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_monday_3"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_monday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_tuesday_3" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_tuesday_3"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_tuesday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_wednesday_3" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_wednesday_3"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_wednesday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_thursday_3" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_thursday_3"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_thursday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_friday_3" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_friday_3"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_friday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_saturday_3" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_saturday_3"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_saturday_3"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_sunday_3" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_sunday_3"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_sunday_3"> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
<tr id="onemonthview_week_4"> |
|||
<td id="onemonthview_monday_4" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_monday_4"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_monday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_tuesday_4" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_tuesday_4"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_tuesday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_wednesday_4" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_wednesday_4"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_wednesday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_thursday_4" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_thursday_4"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_thursday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_friday_4" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_friday_4"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_friday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_saturday_4" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_saturday_4"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_saturday_4"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_sunday_4" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_sunday_4"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_sunday_4"> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
<tr id="onemonthview_week_5"> |
|||
<td id="onemonthview_monday_5" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_monday_5"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_monday_5"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_tuesday_5" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_tuesday_5"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_tuesday_5"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_wednesday_5" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_wednesday_5"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_wednesday_5"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_thursday_5" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_thursday_5"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_thursday_5"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_friday_5" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_friday_5"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_friday_5"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_saturday_5" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_saturday_5"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_saturday_5"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_sunday_5" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_sunday_5"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_sunday_5"> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
<tr id="onemonthview_week_6"> |
|||
<td id="onemonthview_monday_6" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_monday_6"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_monday_6"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_tuesday_6" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_tuesday_6"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_tuesday_6"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_wednesday_6" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_wednesday_6"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_wednesday_6"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_thursday_6" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_thursday_6"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_thursday_6"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_friday_6" class="onemonthview_item"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_friday_6"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_friday_6"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_saturday_6" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_saturday_6"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_saturday_6"> |
|||
</div> |
|||
</td> |
|||
<td id="onemonthview_sunday_6" class="weekend"> |
|||
<div class="dateinfo" id="dateinfo_onemonthview_sunday_6"> |
|||
</div> |
|||
<div class="events" id="events_onemonthview_sunday_6"> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
</tbody> |
|||
</table> |
|||
</div> |
|||
<div id="listview"> |
|||
|
|||
</div> |
|||
<p class="center"> |
|||
<a href="http://ownclouddev.georgswebsite.de/feedback/" target="_blank">Feedback</a> ♦ |
|||
<a href="http://ownclouddev.georgswebsite.de/devinfo/" target="_blank">Developer information</a> ♦ |
|||
<a href="http://ownclouddev.georgswebsite.de/bugs/">Bugs</a> |
|||
</p> |
|||
</div> |
|||
<!-- Dialogs --> |
|||
<div id="choosecalendar_dialog" title="Please choose visible calendars."> |
|||
<br/> |
|||
<input type="checkbox" class="choosecalendar_check" id="choosecalendar_cal1" /> |
|||
<label for="choosecalendar_cal1"> |
|||
Calendar 1 |
|||
</label> |
|||
<br/> |
|||
<br/> |
|||
<input type="checkbox" class="choosecalendar_check" id="choosecalendar_cal2" /> |
|||
<label for="choosecalendar_cal2"> |
|||
Calendar 2 |
|||
</label> |
|||
<br/> |
|||
<br/> |
|||
<input type="checkbox" class="choosecalendar_check" id="choosecalendar_cal3" /> |
|||
<label for="choosecalendar_cal3"> |
|||
Calendar 3 |
|||
</label> |
|||
<br/> |
|||
<br/> |
|||
<input type="checkbox" class="choosecalendar_check" id="choosecalendar_cal4" /> |
|||
<label for="choosecalendar_cal4"> |
|||
Calendar 4 |
|||
</label> |
|||
<br/> |
|||
<br /> |
|||
<input type="submit" class="choosecalendar_check" id="choosecalendar_submit" onclick="choosecalendar_dialog_submit();" value="Save"/> |
|||
</div> |
|||
<div id="newevent" title="Create a new event"> |
|||
</div> |
|||
<div id="editevent" title="Edit a event"> |
|||
</div> |
|||
<div id="parsingfail_dialog" title="Parsing Fail"> |
|||
There was a fail, while parsing the file. |
|||
</div> |
|||
<!-- End of Dialogs --> |
|||
<script type="text/javascript"> |
|||
<?php |
|||
include("cfg/" . OC_USER::getUser() . ".cfg.php"); |
|||
echo "var currentview = \"" . $defaultview . "\";\n"; |
|||
?>
|
|||
document.getElementById(currentview).style.display = "block"; |
|||
document.getElementById(currentview + "_radio").checked = "checked"; |
|||
update_view(currentview); |
|||
function change_view(view, task){ |
|||
document.getElementById(currentview).style.display = "none"; |
|||
document.getElementById(view).style.display = "block"; |
|||
currentview = view; |
|||
update_view(view, task); |
|||
} |
|||
</script> |
|||
<script type="text/javascript" id="js_events"></script> |
|||
@ -0,0 +1,17 @@ |
|||
<fieldset> |
|||
<legend>Please choose your default view:</legend> |
|||
<input type="radio" id="oneday" name="radio"/><label for="oneday">One Day</label> |
|||
<input type="radio" id="oneweek" name="radio"/><label for="oneweek">One Week</label> |
|||
<input type="radio" id="fourweek" name="radio"/><label for="fourweek">Four Weeks</label> |
|||
<input type="radio" id="onemonth" name="radio"/><label for="onemonth">One Month</label> |
|||
<input type="radio" id="list" name="radio"/><label for="list">List</label> |
|||
</fieldset> |
|||
|
|||
<fieldset> |
|||
<legend>Calender Files</legend> |
|||
<ul> |
|||
<?php |
|||
showicsfiles(); |
|||
?>
|
|||
</ul> |
|||
</fieldset> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue