diff --git a/apps/calendar/ajax/duration.php b/apps/calendar/ajax/duration.php
new file mode 100644
index 0000000000..cdc41388ab
--- /dev/null
+++ b/apps/calendar/ajax/duration.php
@@ -0,0 +1,12 @@
+
+ * 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();
+$duration = OC_Preferences::getValue( OC_User::getUser(), 'calendar', 'duration', "60");
+OC_JSON::encodedPrint(array("duration" => $duration));
+?>
diff --git a/apps/calendar/ajax/neweventform.php b/apps/calendar/ajax/neweventform.php
index 9bab2cd484..9d4dcfa2e1 100644
--- a/apps/calendar/ajax/neweventform.php
+++ b/apps/calendar/ajax/neweventform.php
@@ -29,35 +29,21 @@ if($starttime != 'undefined' && !is_nan($starttime) && !$allday){
$starttime = '0';
$startminutes = '00';
}else{
- $starttime = date('H');
- if(strlen($starttime) == 2 && $starttime <= 9){
- $starttime = substr($starttime, 1, 1);
- }
+ $starttime = date('G');
+
$startminutes = date('i');
}
-$endday = $startday;
-$endmonth = $startmonth;
-$endyear = $startyear;
-$endtime = $starttime;
-$endminutes = $startminutes;
-if($endtime == 23) {
- if($startday == date(t, mktime($starttime, $startminutes, 0, $startmonth, $startday, $startyear))){
- $datetimestamp = mktime(0, 0, 0, $startmonth, $startday, $startyear);
- $datetimestamp = $datetimestamp + 86400;
- $endmonth = date("m", $datetimestamp);
- $endday = date("d", $datetimestamp);
- $endyear = date("Y", $datetimestamp);
- }else{
- $endday++;
- if($endday <= 9){
- $endday = "0" . $endday;
- }
- }
- $endtime = 0;
-} else {
- $endtime++;
-}
+$datetimestamp = mktime($starttime, $startminutes, 0, $startmonth, $startday, $startyear);
+$duration = OC_Preferences::getValue( OC_User::getUser(), 'calendar', 'duration', "60");
+$datetimestamp = $datetimestamp + ($duration * 60);
+$endmonth = date("m", $datetimestamp);
+$endday = date("d", $datetimestamp);
+$endyear = date("Y", $datetimestamp);
+$endtime = date("G", $datetimestamp);
+$endminutes = date("i", $datetimestamp);
+
+
$tmpl = new OC_Template('calendar', 'part.newevent');
$tmpl->assign('calendar_options', $calendar_options);
diff --git a/apps/calendar/ajax/setduration.php b/apps/calendar/ajax/setduration.php
new file mode 100644
index 0000000000..a75c8faea4
--- /dev/null
+++ b/apps/calendar/ajax/setduration.php
@@ -0,0 +1,17 @@
+
+ * 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["duration"])){
+ OC_Preferences::setValue(OC_User::getUser(), 'calendar', 'duration', $_POST["duration"]);
+ OC_JSON::success();
+}else{
+ OC_JSON::error();
+}
+?>
+
diff --git a/apps/calendar/js/settings.js b/apps/calendar/js/settings.js
index fc5fc7377a..07e912aaa7 100644
--- a/apps/calendar/js/settings.js
+++ b/apps/calendar/js/settings.js
@@ -46,6 +46,17 @@ $(document).ready(function(){
$("#" + jsondata.timeformat).attr('selected',true);
$("#timeformat").chosen();
});
+ $("#duration").blur( function(){
+ var data = $("#duration").val();
+ $.post( OC.filePath('calendar', 'ajax', 'setduration.php'), {duration: data}, function(data){
+ if(data == "error"){
+ console.log("saving duration failed");
+ }
+ });
+ });
+ $.getJSON(OC.filePath('calendar', 'ajax', 'duration.php'), function(jsondata, status) {
+ $("#duration").val(jsondata.duration);
+ });
$("#weekend").change( function(){
var data = $("#weekend").serialize();
$.post( OC.filePath('calendar', 'ajax', 'setdaysofweekend.php'), data, function(data){
diff --git a/apps/calendar/templates/settings.php b/apps/calendar/templates/settings.php
index d3e3e3c525..75f094aab4 100644
--- a/apps/calendar/templates/settings.php
+++ b/apps/calendar/templates/settings.php
@@ -50,7 +50,9 @@ OC_UTIL::addStyle('', 'jquery.multiselect');
+
+
+ t("Minutes");?>
Calendar CalDAV syncing address: