choosable first day of week & choosable days of weekend

This commit is contained in:
Georg Ehrke 2011-10-01 09:54:52 +02:00
parent 21a88613a1
commit 0514a1925b
9 changed files with 224 additions and 25 deletions

View File

@ -0,0 +1,11 @@
<?php
/**
* Copyright (c) 2011 Georg Ehrke <ownclouddev at georgswebsite dot de>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
require_once('../../../lib/base.php');
OC_JSON::checkLoggedIn();
echo OC_Preferences::getValue( OC_User::getUser(), 'calendar', 'weekend', '{"Monday":"false","Tuesday":"false","Wednesday":"false","Thursday":"false","Friday":"false","Saturday":"true","Sunday":"true"}');
?>

View File

@ -0,0 +1,12 @@
<?php
/**
* Copyright (c) 2011 Georg Ehrke <ownclouddev at georgswebsite dot de>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
require_once('../../../lib/base.php');
OC_JSON::checkLoggedIn();
$firstdayofweek = OC_Preferences::getValue( OC_User::getUser(), 'calendar', 'firstdayofweek', "1");
OC_JSON::encodedPrint(array("firstdayofweek" => $firstdayofweek));
?>

View File

@ -1,9 +0,0 @@
<?php
/**
* Copyright (c) 2011 Georg Ehrke <ownclouddev at georgswebsite dot de>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
?>

View File

@ -0,0 +1,30 @@
<?php
/**
* Copyright (c) 2011 Georg Ehrke <ownclouddev at georgswebsite dot de>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
require_once('../../../lib/base.php');
OC_JSON::checkLoggedIn();
$weekenddays = array("Monday"=>"false", "Tuesday"=>"false", "Wednesday"=>"false", "Thursday"=>"false", "Friday"=>"false", "Saturday"=>"false", "Sunday"=>"false");
for($i = 0;$i < count($_POST["weekend"]); $i++){
switch ($_POST["weekend"][$i]){
case "Monday":
case "Tuesday":
case "Wednesday":
case "Thursday":
case "Friday":
case "Saturday":
case "Sunday":
break;
default:
OC_JSON::error();
exit;
}
$weekenddays[$_POST["weekend"][$i]] = "true";
}
$setValue = json_encode($weekenddays);
OC_Preferences::setValue(OC_User::getUser(), 'calendar', 'weekend', $setValue);
OC_JSON::success();
?>

View File

@ -0,0 +1,16 @@
<?php
/**
* Copyright (c) 2011 Georg Ehrke <ownclouddev at georgswebsite dot de>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
require_once('../../../lib/base.php');
OC_JSON::checkLoggedIn();
if(isset($_POST["firstdayofweek"])){
OC_Preferences::setValue(OC_User::getUser(), 'calendar', 'firstdayofweek', $_POST["firstdayofweek"]);
OC_JSON::success();
}else{
OC_JSON::error();
}
?>

View File

@ -8,6 +8,8 @@
Calendar={ Calendar={
space:' ', space:' ',
firstdayofweek: '',
weekend: '',
Date:{ Date:{
normal_year_cal: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], normal_year_cal: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
leap_year_cal: [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], leap_year_cal: [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
@ -79,7 +81,7 @@ Calendar={
}, },
UI:{ UI:{
weekdays: ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"], weekdays: '',
formatDayShort:function(day){ formatDayShort:function(day){
if (typeof(day) == 'undefined'){ if (typeof(day) == 'undefined'){
day = Calendar.Date.current.getDay(); day = Calendar.Date.current.getDay();
@ -219,7 +221,7 @@ Calendar={
if (!events) { if (!events) {
return; return;
} }
var weekday = (date.getDay()+6)%7; var weekday = (date.getDay()+7-Calendar.firstdayofweek)%7;
if( typeof (events["allday"]) != "undefined") { if( typeof (events["allday"]) != "undefined") {
var eventnumber = 1; var eventnumber = 1;
var eventcontainer = this.current.getEventContainer(week, weekday, "allday"); var eventcontainer = this.current.getEventContainer(week, weekday, "allday");
@ -496,7 +498,7 @@ Calendar={
cancel:function(button, calendarid){ cancel:function(button, calendarid){
$(button).closest('tr').prev().show().next().remove(); $(button).closest('tr').prev().show().next().remove();
}, },
}, },/*
OneDay:{ OneDay:{
forward:function(){ forward:function(){
Calendar.Date.forward_day(); Calendar.Date.forward_day();
@ -526,7 +528,7 @@ Calendar={
return $(document.createElement('p')) return $(document.createElement('p'))
.html(time + event['description']) .html(time + event['description'])
}, },
}, },*/
OneWeek:{ OneWeek:{
forward:function(){ forward:function(){
Calendar.Date.forward_week(); Calendar.Date.forward_week();
@ -545,7 +547,7 @@ Calendar={
var dates = this.generateDates(); var dates = this.generateDates();
var today = new Date(); var today = new Date();
for(var i = 0; i <= 6; i++){ for(var i = 0; i <= 6; i++){
$("#oneweekview th." + Calendar.UI.weekdays[i]).html(Calendar.UI.formatDayShort((i+1)%7) + Calendar.space + dates[i].getDate() + Calendar.space + Calendar.UI.formatMonthShort(dates[i].getMonth())); $("#oneweekview th." + Calendar.UI.weekdays[i]).html(Calendar.UI.formatDayShort((i+Calendar.firstdayofweek)%7) + Calendar.space + dates[i].getDate() + Calendar.space + Calendar.UI.formatMonthShort(dates[i].getMonth()));
if(dates[i].getDate() == today.getDate() && dates[i].getMonth() == today.getMonth() && dates[i].getFullYear() == today.getFullYear()){ if(dates[i].getDate() == today.getDate() && dates[i].getMonth() == today.getMonth() && dates[i].getFullYear() == today.getFullYear()){
$("#oneweekview ." + Calendar.UI.weekdays[i]).addClass("thisday"); $("#oneweekview ." + Calendar.UI.weekdays[i]).addClass("thisday");
} }
@ -576,14 +578,18 @@ Calendar={
if(dayofweek == 0) { if(dayofweek == 0) {
dayofweek = 7; dayofweek = 7;
} }
date.setDate(date.getDate() - dayofweek + 1); if(Calendar.firstdayofweek > dayofweek){
date.setDate(date.getDate() - dayofweek + Calendar.firstdayofweek - 7);
}else{
date.setDate(date.getDate() - dayofweek + Calendar.firstdayofweek);
}
for(var i = 0; i <= 6; i++) { for(var i = 0; i <= 6; i++) {
dates[i] = new Date(date) dates[i] = new Date(date)
date.setDate(date.getDate() + 1); date.setDate(date.getDate() + 1);
} }
return dates; return dates;
}, },
}, },/*
FourWeeks:{ FourWeeks:{
forward:function(){ forward:function(){
Calendar.Date.forward_week(); Calendar.Date.forward_week();
@ -680,7 +686,7 @@ Calendar={
} }
return dates; return dates;
}, },
}, },*/
OneMonth:{ OneMonth:{
forward:function(){ forward:function(){
Calendar.Date.forward_month(); Calendar.Date.forward_month();
@ -782,7 +788,11 @@ Calendar={
dayofweek = 7; dayofweek = 7;
this.rows++; this.rows++;
} }
date.setDate(date.getDate() - dayofweek + 1); if(Calendar.firstdayofweek > dayofweek){
date.setDate(date.getDate() - dayofweek + Calendar.firstdayofweek - 7);
}else{
date.setDate(date.getDate() - dayofweek + Calendar.firstdayofweek);
}
for(var i = 0; i <= 41; i++) { for(var i = 0; i <= 41; i++) {
dates[i] = new Date(date) dates[i] = new Date(date)
date.setDate(date.getDate() + 1); date.setDate(date.getDate() + 1);

View File

@ -8,4 +8,38 @@ $(document).ready(function(){
}); });
return false; return false;
}); });
$("#timezone").chosen();
$("#firstdayofweek").change( function(){
var data = $("#firstdayofweek").serialize();
$.post( OC.filePath('calendar', 'ajax', 'setfirstdayofweek.php'), data, function(data){
if(data == "error"){
console.log("saving first day of week failed");
}
});
});
$.getJSON(OC.filePath('calendar', 'ajax', 'firstdayofweek.php'), function(jsondata, status) {
$("#select_" + jsondata.firstdayofweek).attr('selected',true);
$("#firstdayofweek").chosen();
});
$.getJSON(OC.filePath('calendar', 'ajax', 'daysofweekend.php'), function(jsondata, status) {
for(day in jsondata){
if(jsondata[day] == "true"){
$("#selectweekend_" + day).attr('selected',true);
}
}
$("#weekend").multiselect({
header: false,
noneSelectedText: $('#weekend').attr('title'),
selectedList: 2,
minWidth:'auto',
});
});
$("#weekend").change( function(){
var data = $("#weekend").serialize();
$.post( OC.filePath('calendar', 'ajax', 'setdaysofweekend.php'), data, function(data){
if(data == "error"){
console.log("saving days of weekend failed");
}
});
});
}); });

View File

@ -26,9 +26,82 @@ $hours = array(
22 => '22', 22 => '22',
23 => '23', 23 => '23',
); );
$weekdays = array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'); /*
$hours24 = array(
'allday' => $l->t('All day'),
0 => '0',
1 => '1',
2 => '2',
3 => '3',
4 => '4',
5 => '5',
6 => '6',
7 => '7',
8 => '8',
9 => '9',
10 => '10',
11 => '11',
12 => '12',
13 => '13',
14 => '14',
15 => '15',
16 => '16',
17 => '17',
18 => '18',
19 => '19',
20 => '20',
21 => '21',
22 => '22',
23 => '23',
);
$hoursampm = array(
'allday' => $l->t('All day'),
0 => '12 a.m.',
1 => '1 a.m.',
2 => '2 a.m.',
3 => '3 a.m.',
4 => '4 a.m.',
5 => '5 a.m.',
6 => '6 a.m.',
7 => '7 a.m.',
8 => '8 a.m.',
9 => '9 a.m.',
10 => '10 a.m.',
11 => '11 a.m.',
12 => '12 p.m.',
13 => '1 p.m.',
14 => '2 p.m.',
15 => '3 p.m.',
16 => '4 p.m.',
17 => '5 p.m.',
18 => '6 p.m.',
19 => '7 p.m.',
20 => '8 p.m.',
21 => '9 p.m.',
22 => '10 p.m.',
23 => '11 p.m.',
);
*/
$weekdaynames = array('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday');
$dayforgenerator = OC_Preferences::getValue( OC_User::getUser(), 'calendar', 'firstdayofweek', "1");
$weekdays = array();
for($i = 0;$i <= 6; $i++){
$weekdays[$i] = $weekdaynames[$dayforgenerator];
if($dayforgenerator == 6){
$dayforgenerator = 0;
}else{
$dayforgenerator++;
}
}
$weekendjson = OC_Preferences::getValue( OC_User::getUser(), 'calendar', 'weekend', '{"Monday":"false","Tuesday":"false","Wednesday":"false","Thursday":"false","Friday":"false","Saturday":"true","Sunday":"true"}');
$weekend = json_decode($weekendjson, true);
$weekenddays = array("sunday"=>$weekend["Sunday"], "monday"=>$weekend["Monday"], "tuesday"=>$weekend["Tuesday"], "wednesday"=>$weekend["Wednesday"], "thursday"=>$weekend["Thursday"], "friday"=>$weekend["Friday"], "saturday"=>$weekend["Saturday"]);
?> ?>
<script type="text/javascript"> <script type="text/javascript">
<?php
echo "var weekdays = new Array('".$weekdays[0]."','".$weekdays[1]."','".$weekdays[2]."','".$weekdays[3]."','".$weekdays[4]."','".$weekdays[5]."','".$weekdays[6]."');\n";
?>
Calendar.UI.weekdays = weekdays;
Calendar.UI.daylong = new Array("<?php echo $l -> t("Sunday");?>", "<?php echo $l -> t("Monday");?>", "<?php echo $l -> t("Tuesday");?>", "<?php echo $l -> t("Wednesday");?>", "<?php echo $l -> t("Thursday");?>", "<?php echo $l -> t("Friday");?>", "<?php echo $l -> t("Saturday");?>"); Calendar.UI.daylong = new Array("<?php echo $l -> t("Sunday");?>", "<?php echo $l -> t("Monday");?>", "<?php echo $l -> t("Tuesday");?>", "<?php echo $l -> t("Wednesday");?>", "<?php echo $l -> t("Thursday");?>", "<?php echo $l -> t("Friday");?>", "<?php echo $l -> t("Saturday");?>");
Calendar.UI.dayshort = new Array("<?php echo $l -> t("Sun.");?>", "<?php echo $l -> t("Mon.");?>", "<?php echo $l -> t("Tue.");?>", "<?php echo $l -> t("Wed.");?>", "<?php echo $l -> t("Thu.");?>", "<?php echo $l -> t("Fri.");?>", "<?php echo $l -> t("Sat.");?>"); Calendar.UI.dayshort = new Array("<?php echo $l -> t("Sun.");?>", "<?php echo $l -> t("Mon.");?>", "<?php echo $l -> t("Tue.");?>", "<?php echo $l -> t("Wed.");?>", "<?php echo $l -> t("Thu.");?>", "<?php echo $l -> t("Fri.");?>", "<?php echo $l -> t("Sat.");?>");
Calendar.UI.monthlong = new Array("<?php echo $l -> t("January");?>", "<?php echo $l -> t("February");?>", "<?php echo $l -> t("March");?>", "<?php echo $l -> t("April");?>", "<?php echo $l -> t("May");?>", "<?php echo $l -> t("June");?>", "<?php echo $l -> t("July");?>", "<?php echo $l -> t("August");?>", "<?php echo $l -> t("September");?>", "<?php echo $l -> t("October");?>", "<?php echo $l -> t("November");?>", "<?php echo $l -> t("December");?>"); Calendar.UI.monthlong = new Array("<?php echo $l -> t("January");?>", "<?php echo $l -> t("February");?>", "<?php echo $l -> t("March");?>", "<?php echo $l -> t("April");?>", "<?php echo $l -> t("May");?>", "<?php echo $l -> t("June");?>", "<?php echo $l -> t("July");?>", "<?php echo $l -> t("August");?>", "<?php echo $l -> t("September");?>", "<?php echo $l -> t("October");?>", "<?php echo $l -> t("November");?>", "<?php echo $l -> t("December");?>");
@ -37,6 +110,7 @@ $weekdays = array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'satur
Calendar.UI.cws_label = "<?php echo $l->t("Weeks");?>"; Calendar.UI.cws_label = "<?php echo $l->t("Weeks");?>";
Calendar.UI.more_before = String('<?php echo $l->t('More before {startdate}') ?>'); Calendar.UI.more_before = String('<?php echo $l->t('More before {startdate}') ?>');
Calendar.UI.more_after = String('<?php echo $l->t('More after {enddate}') ?>'); Calendar.UI.more_after = String('<?php echo $l->t('More after {enddate}') ?>');
Calendar.firstdayofweek = parseInt("<?php echo OC_Preferences::getValue( OC_User::getUser(), 'calendar', 'firstdayofweek', "1"); ?>");
//use last view as default on the next //use last view as default on the next
Calendar.UI.setCurrentView("<?php echo OC_Preferences::getValue(OC_USER::getUser(), "calendar", "currentview", "onemonthview") ?>"); Calendar.UI.setCurrentView("<?php echo OC_Preferences::getValue(OC_USER::getUser(), "calendar", "currentview", "onemonthview") ?>");
var totalurl = "<?php echo OC_Helper::linkTo('calendar', 'caldav.php', null, true) . '/calendars'; ?>"; var totalurl = "<?php echo OC_Helper::linkTo('calendar', 'caldav.php', null, true) . '/calendars'; ?>";
@ -93,7 +167,7 @@ $weekdays = array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'satur
<tr> <tr>
<th class="calendar_time"><?php echo $l->t("Time");?></th> <th class="calendar_time"><?php echo $l->t("Time");?></th>
<?php foreach($weekdays as $weekdaynr => $weekday): ?> <?php foreach($weekdays as $weekdaynr => $weekday): ?>
<th class="calendar_row <?php echo $weekday ?> <?php echo $weekdaynr > 4 ? 'weekend_thead' : '' ?>" onclick="Calendar.UI.newEvent('#oneweekview th.<?php echo $weekday ?>');"></th> <th class="calendar_row <?php echo $weekday ?> <?php echo $weekenddays[$weekday] == "true" ? 'weekend_thead' : '' ?>" onclick="Calendar.UI.newEvent('#oneweekview th.<?php echo $weekday ?>');"></th>
<?php endforeach; ?> <?php endforeach; ?>
</tr> </tr>
</thead> </thead>
@ -102,7 +176,7 @@ $weekdays = array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'satur
<tr> <tr>
<td class="calendar_time"><?php echo $time_label?></td> <td class="calendar_time"><?php echo $time_label?></td>
<?php foreach($weekdays as $weekdaynr => $weekday): ?> <?php foreach($weekdays as $weekdaynr => $weekday): ?>
<td class="<?php echo $weekday ?> <?php echo $time ?> calendar_row <?php echo $weekdaynr > 4 ? 'weekend_row' : '' ?>" onclick="Calendar.UI.newEvent('#oneweekview th.<?php echo $weekday ?>', '<?php echo $time ?>');"></td> <td class="<?php echo $weekday ?> <?php echo $time ?> calendar_row <?php echo $weekenddays[$weekday] == "true" ? 'weekend_row' : '' ?>" onclick="Calendar.UI.newEvent('#oneweekview th.<?php echo $weekday ?>', '<?php echo $time ?>');"></td>
<?php endforeach; ?> <?php endforeach; ?>
</tr> </tr>
<?php endforeach; ?> <?php endforeach; ?>
@ -139,7 +213,7 @@ $weekdays = array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'satur
<thead> <thead>
<tr> <tr>
<?php foreach($weekdays as $weekdaynr => $weekday): ?> <?php foreach($weekdays as $weekdaynr => $weekday): ?>
<th class="calendar_row <?php echo $weekdaynr > 4 ? 'weekend_thead' : '' ?> <?php echo $weekday ?>"><?php echo $l->t(ucfirst($weekday));?></th> <th class="calendar_row <?php echo $weekenddays[$weekday] == "true" ? 'weekend_thead' : '' ?> <?php echo $weekday ?>"><?php echo $l->t(ucfirst($weekday));?></th>
<?php endforeach; ?> <?php endforeach; ?>
</tr> </tr>
</thead> </thead>
@ -147,7 +221,7 @@ $weekdays = array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'satur
<?php foreach(range(1, 6) as $week): ?> <?php foreach(range(1, 6) as $week): ?>
<tr class="week_<?php echo $week ?>"> <tr class="week_<?php echo $week ?>">
<?php foreach($weekdays as $weekdaynr => $weekday): ?> <?php foreach($weekdays as $weekdaynr => $weekday): ?>
<td class="day <?php echo $weekday ?> <?php echo $weekdaynr > 4 ? 'weekend' : '' ?>" onclick="Calendar.UI.newEvent('#onemonthview .week_<?php echo $week ?> .<?php echo $weekday ?>')"> <td class="day <?php echo $weekday ?> <?php echo $weekenddays[$weekday] == "true" ? 'weekend' : '' ?>" onclick="Calendar.UI.newEvent('#onemonthview .week_<?php echo $week ?> .<?php echo $weekday ?>')">
<div class="dateinfo"></div> <div class="dateinfo"></div>
<div class="events"></div> <div class="events"></div>
</td> </td>

View File

@ -1,15 +1,18 @@
<?php <?php
/** /**
* Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl> * Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
* Copyright (c) 2011 Georg Ehrke <ownclouddev at georgswebsite dot de>
* This file is licensed under the Affero General Public License version 3 or * This file is licensed under the Affero General Public License version 3 or
* later. * later.
* See the COPYING-README file. * See the COPYING-README file.
*/ */
OC_UTIL::addScript('', 'jquery.multiselect');
OC_UTIL::addStyle('', 'jquery.multiselect');
?> ?>
<form id="calendar"> <form id="calendar">
<fieldset class="personalblock"> <fieldset class="personalblock">
<label for="timezone"><strong><?php echo $l->t('Timezone');?></strong></label> <label for="timezone"><strong><?php echo $l->t('Timezone');?></strong></label>
<select id="timezone" name="timezone"> <select style="display: none;" id="timezone" name="timezone">
<?php <?php
$continent = ''; $continent = '';
foreach($_['timezones'] as $timezone): foreach($_['timezones'] as $timezone):
@ -24,7 +27,25 @@
echo '<option value="'.$timezone.'"'.($_['timezone'] == $timezone?' selected="selected"':'').'>'.$city.'</option>'; echo '<option value="'.$timezone.'"'.($_['timezone'] == $timezone?' selected="selected"':'').'>'.$city.'</option>';
endif; endif;
endforeach;?> endforeach;?>
</select><span class="msg"></span> </select><span class="msg"></span>&nbsp;&nbsp;
<label for="firstdayofweek"><strong><?php echo $l->t('First day of the week');?></strong></label>
<select style="display: none;" id="firstdayofweek" name="firstdayofweek">
<?php
$weekdays = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
for($i = 0;$i <= 6;$i++){
echo '<option value="'.$i.'" id="select_'.$i.'">' . $l->t($weekdays[$i]) . '</option>';
}
?>
</select>&nbsp;&nbsp;
<label for="weekend"><strong><?php echo $l->t('Days of weekend');?></strong></label>
<select id="weekend" name="weekend[]" multiple="multiple" title="<?php echo "Wochenende"; ?>">
<?php
$weekdays = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
for($i = 0;$i <= 6;$i++){
echo '<option value="'.$weekdays[$i].'" id="selectweekend_' . $weekdays[$i] . '">' . $l->t($weekdays[$i]) . '</option>';
}
?>
</select>
<br /> <br />
Calendar CalDAV syncing address: Calendar CalDAV syncing address:
<?php echo OC_Helper::linkTo('apps/calendar', 'caldav.php', null, true); ?><br /> <?php echo OC_Helper::linkTo('apps/calendar', 'caldav.php', null, true); ?><br />