From ffa835c56f4575b3e6e40a1d2247f7b374fdc892 Mon Sep 17 00:00:00 2001
From: Georg Ehrke <ownclouddev@georgswebsite.de>
Date: Mon, 26 Dec 2011 19:59:15 +0100
Subject: [PATCH] fix the default setting for yearly repeating events

---
 apps/calendar/ajax/neweventform.php |  2 +-
 apps/calendar/js/calendar.js        | 10 ++++------
 apps/calendar/lib/object.php        | 14 ++++++++------
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/apps/calendar/ajax/neweventform.php b/apps/calendar/ajax/neweventform.php
index 1812407dd6..88468dd3db 100644
--- a/apps/calendar/ajax/neweventform.php
+++ b/apps/calendar/ajax/neweventform.php
@@ -69,6 +69,6 @@ $tmpl->assign('repeat_end', 'never');
 $tmpl->assign('repeat_count', '10');
 $tmpl->assign('repeat_weekofmonth', 'auto');
 $tmpl->assign('repeat_date', '');
-$tmpl->assign('repeat_year', 'byyearday');
+$tmpl->assign('repeat_year', 'bydate');
 $tmpl->printpage();
 ?>
diff --git a/apps/calendar/js/calendar.js b/apps/calendar/js/calendar.js
index 93dddf516f..892dbd79e4 100644
--- a/apps/calendar/js/calendar.js
+++ b/apps/calendar/js/calendar.js
@@ -292,7 +292,6 @@ Calendar={
 				}
 				if($('#repeat option:selected').val() == 'yearly'){
 					$('#advanced_year').css('display', 'block');
-					$('#advanced_byyearday').css('display', 'block');
 				}
 				if($('#repeat option:selected').val() == 'doesnotrepeat'){
 					$('#advanced_options_repeating').slideUp('slow');
@@ -312,14 +311,13 @@ Calendar={
 				$('#advanced_bymonth').css('display', 'none');
 				$('#advanced_byweekno').css('display', 'none');
 				$('#advanced_bymonthday').css('display', 'none');
-				if($('#advanced_year option:selected').val() == 'byyearday'){
-					$('#advanced_byyearday').css('display', 'block');
+				if($('#advanced_year_select option:selected').val() == 'byyearday'){
+					//$('#advanced_byyearday').css('display', 'block');
 				}
-				if($('#advanced_year option:selected').val() == 'byweekno'){
+				if($('#advanced_year_select option:selected').val() == 'byweekno'){
 					$('#advanced_byweekno').css('display', 'block');
-					
 				}
-				if($('#advanced_year option:selected').val() == 'bydaymonth'){
+				if($('#advanced_year_select option:selected').val() == 'bydaymonth'){
 					$('#advanced_bymonth').css('display', 'block');
 					$('#advanced_bymonthday').css('display', 'block');
 					$('#advanced_weekday').css('display', 'block');
diff --git a/apps/calendar/lib/object.php b/apps/calendar/lib/object.php
index c5ae760d00..b53feb0bf0 100644
--- a/apps/calendar/lib/object.php
+++ b/apps/calendar/lib/object.php
@@ -438,6 +438,7 @@ class OC_Calendar_Object{
 
 	public static function getYearOptions($l10n){
 		return array(
+			'bydate' => $l10n->t('by events date'),
 			'byyearday' => $l10n->t('by yearday(s)'),
 			'byweekno'  => $l10n->t('by weeknumber(s)'),
 			'bydaymonth'  => $l10n->t('by day and month')
@@ -700,12 +701,13 @@ class OC_Calendar_Object{
 					break;
 				case 'yearly':
 					$rrule .= 'FREQ=YEARLY';
-					if($request['advanced_year_select'] == 'byyearday'){
-						$byyearday = '';
-						foreach($request['byyearday'] as $yearday){
-							if($byyearday == ''){
-								$byyearday = $yearday;
-							}else{
+					if($request['advanced_year_select'] == 'bydate'){
+						
+					}elseif($request['advanced_year_select'] == 'byyearday'){
+						list($_day, $_month, $_year) = explode('-', $from);
+						$byyearday = date('z', mktime(0,0,0, $_month, $_day, $_year)) + 1;
+						if(array_key_exists('byyearday', $request)){
+							foreach($request['byyearday'] as $yearday){
 								$byyearday .= ',' . $yearday;
 							}
 						}
-- 
GitLab