aboutsummaryrefslogtreecommitdiffstats
path: root/apps/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'apps/calendar')
-rw-r--r--apps/calendar/ajax/events.php16
-rw-r--r--apps/calendar/ajax/import/dropimport.php2
-rw-r--r--apps/calendar/index.php8
-rw-r--r--apps/calendar/js/calendar.js19
-rw-r--r--apps/calendar/lib/app.php20
-rw-r--r--apps/calendar/lib/calendar.php9
-rw-r--r--apps/calendar/lib/search.php2
-rw-r--r--apps/calendar/templates/calendar.php2
-rw-r--r--apps/calendar/templates/part.showevent.php23
9 files changed, 59 insertions, 42 deletions
diff --git a/apps/calendar/ajax/events.php b/apps/calendar/ajax/events.php
index 5c7baa568aa..ccf6102ab46 100644
--- a/apps/calendar/ajax/events.php
+++ b/apps/calendar/ajax/events.php
@@ -9,21 +9,19 @@ OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('calendar');
// Look for the calendar id
-$calendar_id = OC_Calendar_App::getCalendar($_GET['calendar_id'], false, false);
-if($calendar_id !== false){
- if(! is_numeric($calendar_id['userid']) && $calendar_id['userid'] != OCP\User::getUser()){
- OCP\JSON::error();
- exit;
+$calendar_id = null;
+if (strval(intval($_GET['calendar_id'])) == strval($_GET['calendar_id'])) { // integer for sure.
+ $id = intval($_GET['calendar_id']);
+ $calendarrow = OC_Calendar_App::getCalendar($id, true, false); // Let's at least security check otherwise we might as well use OC_Calendar_Calendar::find()
+ if($calendarrow !== false && is_int($calendar_id['userid']) && $id == $calendar_id['userid']) {
+ $calendar_id = $id;
}
}
-else {
- $calendar_id = $_GET['calendar_id'];
-}
+$calendar_id = (is_null($calendar_id)?strip_tags($_GET['calendar_id']):$calendar_id);
$start = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['start']):new DateTime('@' . $_GET['start']);
$end = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['end']):new DateTime('@' . $_GET['end']);
$events = OC_Calendar_App::getrequestedEvents($calendar_id, $start, $end);
-
$output = array();
foreach($events as $event){
$output = array_merge($output, OC_Calendar_App::generateEventOutput($event, $start, $end));
diff --git a/apps/calendar/ajax/import/dropimport.php b/apps/calendar/ajax/import/dropimport.php
index e98c282ef41..684eebf5fdd 100644
--- a/apps/calendar/ajax/import/dropimport.php
+++ b/apps/calendar/ajax/import/dropimport.php
@@ -45,7 +45,7 @@ foreach($lines as $line) {
}
$i++;
}
-$calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser(), 1);
+$calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser(), true);
$id = $calendars[0]['id'];
foreach($uids as $uid) {
$prefix=$suffix=$content=array();
diff --git a/apps/calendar/index.php b/apps/calendar/index.php
index 05a808a5ae0..4b871195927 100644
--- a/apps/calendar/index.php
+++ b/apps/calendar/index.php
@@ -11,15 +11,17 @@ OCP\User::checkLoggedIn();
OCP\App::checkAppEnabled('calendar');
// Create default calendar ...
-$calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser(), 1);
+$calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser(), false);
if( count($calendars) == 0){
OC_Calendar_Calendar::addCalendar(OCP\USER::getUser(),'Default calendar');
- $calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser(), 1);
+ $calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser(), true);
}
$eventSources = array();
foreach($calendars as $calendar){
- $eventSources[] = OC_Calendar_Calendar::getEventSourceInfo($calendar);
+ if($calendar['active'] == 1) {
+ $eventSources[] = OC_Calendar_Calendar::getEventSourceInfo($calendar);
+ }
}
$eventSources[] = array('url' => '?app=calendar&getfile=ajax/events.php?calendar_id=shared_rw', 'backgroundColor' => '#1D2D44', 'borderColor' => '#888', 'textColor' => 'white', 'editable'=>'true');
diff --git a/apps/calendar/js/calendar.js b/apps/calendar/js/calendar.js
index 7ae4a3a6eb1..5136c3e7745 100644
--- a/apps/calendar/js/calendar.js
+++ b/apps/calendar/js/calendar.js
@@ -430,6 +430,7 @@ Calendar={
$('#calendar_holder').fullCalendar('removeEventSource', url);
$('#choosecalendar_dialog').dialog('destroy').remove();
Calendar.UI.Calendar.overview();
+ $('#calendar_holder').fullCalendar('refetchEvents');
}
});
}
@@ -845,7 +846,7 @@ $(document).ready(function(){
dayNamesShort: dayNamesShort,
allDayText: allDayText,
viewDisplay: function(view) {
- $('#datecontrol_date').html(view.title);
+ $('#datecontrol_date').val($('<p>').html(view.title).text());
if (view.name != defaultView) {
$.post(OC.filePath('calendar', 'ajax', 'changeview.php'), {v:view.name});
defaultView = view.name;
@@ -884,6 +885,22 @@ $(document).ready(function(){
loading: Calendar.UI.loading,
eventSources: eventSources
});
+ $('#datecontrol_date').datepicker({
+ changeMonth: true,
+ changeYear: true,
+ showButtonPanel: true,
+ beforeShow: function(input, inst) {
+ var calendar_holder = $('#calendar_holder');
+ var date = calendar_holder.fullCalendar('getDate');
+ inst.input.datepicker('setDate', date);
+ inst.input.val(calendar_holder.fullCalendar('getView').title);
+ return inst;
+ },
+ onSelect: function(value, inst) {
+ var date = inst.input.datepicker('getDate');
+ $('#calendar_holder').fullCalendar('gotoDate', date);
+ }
+ });
fillWindow($('#content'));
OCCategories.changed = Calendar.UI.categoriesChanged;
OCCategories.app = 'calendar';
diff --git a/apps/calendar/lib/app.php b/apps/calendar/lib/app.php
index 4711bf7a2e3..17c23f4ea32 100644
--- a/apps/calendar/lib/app.php
+++ b/apps/calendar/lib/app.php
@@ -50,10 +50,7 @@ class OC_Calendar_App{
return false;
}
}
- if($calendar === false){
- return false;
- }
- return OC_Calendar_Calendar::find($id);
+ return $calendar;
}
/*
@@ -329,26 +326,29 @@ class OC_Calendar_App{
*/
public static function getrequestedEvents($calendarid, $start, $end){
$events = array();
- if($calendarid == 'shared_rw' || $_GET['calendar_id'] == 'shared_r'){
+ if($calendarid == 'shared_rw' || $calendarid == 'shared_r'){
$calendars = OC_Calendar_Share::allSharedwithuser(OCP\USER::getUser(), OC_Calendar_Share::CALENDAR, 1, ($_GET['calendar_id'] == 'shared_rw')?'rw':'r');
foreach($calendars as $calendar){
$calendarevents = OC_Calendar_Object::allInPeriod($calendar['calendarid'], $start, $end);
+ foreach($calendarevents as $event){
+ $event['summary'] .= ' (' . self::$l10n->t('by') . ' ' . OC_Calendar_Object::getowner($event['id']) . ')';
+ }
$events = array_merge($events, $calendarevents);
}
$singleevents = OC_Calendar_Share::allSharedwithuser(OCP\USER::getUser(), OC_Calendar_Share::EVENT, 1, ($_GET['calendar_id'] == 'shared_rw')?'rw':'r');
foreach($singleevents as $singleevent){
$event = OC_Calendar_Object::find($singleevent['eventid']);
+ $event['summary'] .= ' (' . self::$l10n->t('by') . ' ' . OC_Calendar_Object::getowner($event['id']) . ')';
$events[] = $event;
}
}else{
- $calendar_id = $_GET['calendar_id'];
- if (is_numeric($calendar_id)) {
- $calendar = self::getCalendar($calendar_id);
+ if (is_numeric($calendarid)) {
+ $calendar = self::getCalendar($calendarid);
OCP\Response::enableCaching(0);
OCP\Response::setETagHeader($calendar['ctag']);
- $events = OC_Calendar_Object::allInPeriod($calendar_id, $start, $end);
+ $events = OC_Calendar_Object::allInPeriod($calendarid, $start, $end);
} else {
- OCP\Util::emitHook('OC_Calendar', 'getEvents', array('calendar_id' => $calendar_id, 'events' => &$events));
+ OCP\Util::emitHook('OC_Calendar', 'getEvents', array('calendar_id' => $calendarid, 'events' => &$events));
}
}
return $events;
diff --git a/apps/calendar/lib/calendar.php b/apps/calendar/lib/calendar.php
index 9af5c0ca81c..b725898858d 100644
--- a/apps/calendar/lib/calendar.php
+++ b/apps/calendar/lib/calendar.php
@@ -44,13 +44,13 @@ class OC_Calendar_Calendar{
/**
* @brief Returns the list of calendars for a specific user.
* @param string $uid User ID
- * @param boolean $active Only return calendars with this $active state, default(=null) is don't care
+ * @param boolean $active Only return calendars with this $active state, default(=false) is don't care
* @return array
*/
- public static function allCalendars($uid, $active=null){
+ public static function allCalendars($uid, $active=false){
$values = array($uid);
$active_where = '';
- if (!is_null($active) && $active){
+ if ($active){
$active_where = ' AND active = ?';
$values[] = $active;
}
@@ -206,6 +206,9 @@ class OC_Calendar_Calendar{
$stmt->execute(array($id));
OCP\Util::emitHook('OC_Calendar', 'deleteCalendar', $id);
+ if(count(self::allCalendars()) == 0) {
+ self::addCalendar(OCP\USER::getUser(),'Default calendar');
+ }
return true;
}
diff --git a/apps/calendar/lib/search.php b/apps/calendar/lib/search.php
index 03516b3b70c..6526b4223ac 100644
--- a/apps/calendar/lib/search.php
+++ b/apps/calendar/lib/search.php
@@ -1,7 +1,7 @@
<?php
class OC_Search_Provider_Calendar extends OC_Search_Provider{
function search($query){
- $calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser(), 1);
+ $calendars = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser(), true);
if(count($calendars)==0 || !OCP\App::isEnabled('calendar')){
//return false;
}
diff --git a/apps/calendar/templates/calendar.php b/apps/calendar/templates/calendar.php
index b0cb20f2f15..2246a0178e3 100644
--- a/apps/calendar/templates/calendar.php
+++ b/apps/calendar/templates/calendar.php
@@ -46,7 +46,7 @@
</form>
<form id="datecontrol">
<input type="button" value="&nbsp;&lt;&nbsp;" id="datecontrol_left"/>
- <span class="button" id="datecontrol_date"></span>
+ <input type="button" value="" id="datecontrol_date"/>
<input type="button" value="&nbsp;&gt;&nbsp;" id="datecontrol_right"/>
</form>
</div>
diff --git a/apps/calendar/templates/part.showevent.php b/apps/calendar/templates/part.showevent.php
index a5bbfd5b8f5..59684d831e5 100644
--- a/apps/calendar/templates/part.showevent.php
+++ b/apps/calendar/templates/part.showevent.php
@@ -19,26 +19,23 @@
<th width="75px"><?php echo $l->t("Category");?>:</th>
<td>
<?php
- if(count($_['categories']) == 0){
+ if(count($_['categories']) == 0 || $_['categories'] == ''){
echo $l->t('No categories selected');
}else{
- echo '<select id="category" name="categories[]" multiple="multiple" title="' . $l->t("Select category") . '">';
- echo OCP\html_select_options($_['categories'], $_['categories'], array('combine'=>true));
- echo '</select>';
+ echo '<ul>';
+ foreach($_['categories'] as $categorie){
+ echo '<li>' . $categorie . '</li>';
+ }
+ echo '</ul>';
}
?>
</td>
<th width="75px">&nbsp;&nbsp;&nbsp;<?php echo $l->t("Calendar");?>:</th>
<td>
- <select name="calendar" disabled="disabled">
- <option>
- <?php
- $calendar = OC_Calendar_App::getCalendar($_['calendar']);
- echo $calendar['displayname'] . ' ' . $l->t('of') . ' ' . $calendar['userid'];
- ?>
- </option>
-
- </select>
+ <?php
+ $calendar = OC_Calendar_App::getCalendar($_['calendar'], false, false);
+ echo $calendar['displayname'] . ' ' . $l->t('of') . ' ' . $calendar['userid'];
+ ?>
</td>
<th width="75px">&nbsp;</th>
<td>