Merge branch 'master' of gitorious.org:owncloud/owncloud into ace-editor
This commit is contained in:
commit
deaeab3d92
|
@ -41,6 +41,5 @@ $metadata = getURLMetadata($url);
|
|||
|
||||
$tmpl->assign('URL', htmlentities($metadata['url']));
|
||||
$tmpl->assign('TITLE', htmlentities($metadata['title']));
|
||||
$tmpl->assign('DESCRIPTION', htmlentities($metadata['description']));
|
||||
|
||||
$tmpl->printPage();
|
||||
|
|
|
@ -40,15 +40,14 @@ if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){
|
|||
//FIXME: Detect when user adds a known URL
|
||||
$query = OC_DB::prepare("
|
||||
INSERT INTO *PREFIX*bookmarks
|
||||
(url, title, description, user_id, public, added, lastmodified)
|
||||
VALUES (?, ?, ?, ?, 0, $_ut, $_ut)
|
||||
(url, title, user_id, public, added, lastmodified)
|
||||
VALUES (?, ?, ?, 0, $_ut, $_ut)
|
||||
");
|
||||
|
||||
|
||||
$params=array(
|
||||
htmlspecialchars_decode($_GET["url"]),
|
||||
htmlspecialchars_decode($_GET["title"]),
|
||||
htmlspecialchars_decode($_GET["description"]),
|
||||
OC_User::getUser()
|
||||
);
|
||||
$query->execute($params);
|
||||
|
|
|
@ -41,14 +41,13 @@ $bookmark_id = (int)$_GET["id"];
|
|||
|
||||
$query = OC_DB::prepare("
|
||||
UPDATE *PREFIX*bookmarks
|
||||
SET url = ?, title =?, description = ?, lastmodified = $_ut
|
||||
SET url = ?, title =?, lastmodified = $_ut
|
||||
WHERE id = $bookmark_id
|
||||
");
|
||||
|
||||
$params=array(
|
||||
htmlspecialchars_decode($_GET["url"]),
|
||||
htmlspecialchars_decode($_GET["title"]),
|
||||
htmlspecialchars_decode($_GET["description"]),
|
||||
);
|
||||
$query->execute($params);
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){
|
|||
}
|
||||
|
||||
$query = OC_DB::prepare('
|
||||
SELECT id, url, title, description,
|
||||
SELECT id, url, title,
|
||||
CASE WHEN *PREFIX*bookmarks.id = *PREFIX*bookmarks_tags.bookmark_id
|
||||
THEN GROUP_CONCAT( tag ' .$_gc_separator. ' )
|
||||
ELSE \' \'
|
||||
|
|
|
@ -1,27 +1,14 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* ownCloud - bookmarks plugin
|
||||
*
|
||||
* @author Arthur Schiwon
|
||||
* @copyright 2011 Arthur Schiwon blizzz@arthur-schiwon.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 Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Copyright (c) 2011 Marvin Thomas Rabe <m.rabe@echtzeitraum.de>
|
||||
* Copyright (c) 2011 Arthur Schiwon <blizzz@arthur-schiwon.de>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
OC_App::register( array( 'order' => 70, 'id' => 'bookmark', 'name' => 'Bookmarks' ));
|
||||
|
||||
OC_App::addNavigationEntry( array( 'id' => 'bookmarks_index', 'order' => 70, 'href' => OC_Helper::linkTo( 'bookmarks', 'index.php' ), 'icon' => OC_Helper::imagePath( 'bookmarks', 'bookmarks.png' ), 'name' => 'Bookmarks' ));
|
||||
|
||||
OC_App::registerPersonal('bookmarks', 'settings');
|
||||
|
|
|
@ -29,13 +29,6 @@
|
|||
<notnull>true</notnull>
|
||||
<length>140</length>
|
||||
</field>
|
||||
<field>
|
||||
<name>description</name>
|
||||
<type>text</type>
|
||||
<default></default>
|
||||
<notnull>false</notnull>
|
||||
<length>255</length>
|
||||
</field>
|
||||
<field>
|
||||
<name>user_id</name>
|
||||
<type>text</type>
|
||||
|
|
|
@ -19,10 +19,6 @@ function getURLMetadata($url) {
|
|||
$metadata['title'] = htmlspecialchars_decode(@$match[1]);
|
||||
|
||||
$meta = get_meta_tags($url);
|
||||
|
||||
if(array_key_exists('description', $meta)) {
|
||||
$metadata['description'] = $meta['description'];
|
||||
}
|
||||
|
||||
return $metadata;
|
||||
}
|
|
@ -12,34 +12,13 @@
|
|||
padding: 0.5ex;
|
||||
}
|
||||
|
||||
.bookmark_actions {
|
||||
font-size: smaller;
|
||||
color: #ff44ff;
|
||||
padding-left: 4em;
|
||||
}
|
||||
|
||||
.bookmark_actions span:hover {
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.bookmarks_sorting {
|
||||
float: left;
|
||||
margin-left: 2em;
|
||||
}
|
||||
|
||||
.bookmarks_sorting li {
|
||||
padding: 1ex 1em;
|
||||
border: 1px solid gray;
|
||||
-moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em;
|
||||
}
|
||||
|
||||
.bookmarks_sorting_active {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bookmarks_add {
|
||||
display: none;
|
||||
margin-top: 45px;
|
||||
}
|
||||
|
||||
.bookmarks_list {
|
||||
margin-top: 45px;
|
||||
}
|
||||
|
||||
.bookmarks_addBml {
|
||||
|
@ -56,15 +35,28 @@
|
|||
width: 20em;
|
||||
}
|
||||
|
||||
.bookmark_actions {
|
||||
display: none;
|
||||
font-size: smaller;
|
||||
color: #666;
|
||||
padding-left: 4em;
|
||||
}
|
||||
|
||||
.bookmark_actions span:hover {
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.bookmark_single {
|
||||
margin-left: 2em;
|
||||
margin-top: 3ex;
|
||||
padding: 0.5ex;
|
||||
/* border-bottom: 1px solid black; */
|
||||
padding: 0.5em 1em;
|
||||
}
|
||||
|
||||
.bookmark_single:hover {
|
||||
background-color: #ccccff;
|
||||
background-color: #EAEAEA;
|
||||
}
|
||||
|
||||
.bookmark_single:hover .bookmark_actions {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.bookmark_title {
|
||||
|
@ -77,14 +69,10 @@
|
|||
color: green;
|
||||
}
|
||||
|
||||
.bookmark_tags {
|
||||
.bookmark_tag {
|
||||
color: #ff3333;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear:both;
|
||||
}
|
||||
|
||||
.loading_meta {
|
||||
display: none;
|
||||
margin-left: 5px;
|
||||
|
|
|
@ -5,11 +5,10 @@ $(document).ready(function() {
|
|||
function addBookmark(event) {
|
||||
var url = $('#bookmark_add_url').val();
|
||||
var title = $('#bookmark_add_title').val();
|
||||
var description = $('#bookmark_add_description').val();
|
||||
var tags = $('#bookmark_add_tags').val();
|
||||
$.ajax({
|
||||
url: 'ajax/addBookmark.php',
|
||||
data: 'url=' + encodeURI(url) + '&title=' + encodeURI(title) + '&description=' + encodeURI(description) + '&tags=' + encodeURI(tags),
|
||||
data: 'url=' + encodeURI(url) + '&title=' + encodeURI(title) + '&tags=' + encodeURI(tags),
|
||||
success: function(data){
|
||||
location.href='index.php';
|
||||
}
|
||||
|
|
|
@ -12,9 +12,6 @@ $(document).ready(function() {
|
|||
$(window).scroll(updateOnBottom);
|
||||
|
||||
$('#bookmark_add_url').focusout(getMetadata);
|
||||
$('.' + bookmarks_sorting).addClass('bookmarks_sorting_active');
|
||||
|
||||
$('.bookmarks_sorting li').click(function(event){changeSorting(this)});
|
||||
|
||||
$('.bookmarks_list').empty();
|
||||
getBookmarks();
|
||||
|
@ -39,6 +36,7 @@ function getBookmarks() {
|
|||
for(var i in bookmarks.data) {
|
||||
updateBookmarksList(bookmarks.data[i]);
|
||||
}
|
||||
|
||||
$('.bookmark_link').click(recordClick);
|
||||
$('.bookmark_delete').click(delBookmark);
|
||||
$('.bookmark_edit').click(showBookmark);
|
||||
|
@ -57,36 +55,21 @@ function getMetadata() {
|
|||
success: function(pageinfo){
|
||||
$('#bookmark_add_url').val(pageinfo.data.url);
|
||||
$('#bookmark_add_title').val(pageinfo.data.title);
|
||||
if (pageinfo.data.description !== undefined){
|
||||
$('#bookmark_add_description').val(pageinfo.data.description);
|
||||
}
|
||||
$('.loading_meta').css('display','none');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function changeSorting(sortEl) {
|
||||
$('.' + bookmarks_sorting).removeClass('bookmarks_sorting_active');
|
||||
bookmarks_sorting = sortEl.className;
|
||||
$('.' + bookmarks_sorting).addClass('bookmarks_sorting_active');
|
||||
|
||||
$('.bookmarks_list').empty();
|
||||
bookmarks_page = 0;
|
||||
bookmarks_loading = false;
|
||||
getBookmarks();
|
||||
}
|
||||
|
||||
// function addBookmark() {
|
||||
// Instead of creating editBookmark() function, Converted the one above to
|
||||
// addOrEditBookmark() to make .js file more compact.
|
||||
|
||||
function addOrEditBookmark(event) {
|
||||
var id = $('#bookmark_add_id').val();
|
||||
var url = encodeEntities($('#bookmark_add_url').val())
|
||||
var title = encodeEntities($('#bookmark_add_title').val())
|
||||
var description = encodeEntities($('#bookmark_add_description').val())
|
||||
var tags = encodeEntities($('#bookmark_add_tags').val())
|
||||
var taglist = tags.split(' ')
|
||||
var url = encodeEntities($('#bookmark_add_url').val());
|
||||
var title = encodeEntities($('#bookmark_add_title').val());
|
||||
var tags = encodeEntities($('#bookmark_add_tags').val());
|
||||
var taglist = tags.split(' ');
|
||||
var tagshtml = '';
|
||||
for ( var i=0, len=taglist.length; i<len; ++i ){
|
||||
tagshtml += '<a class="bookmark_tag" href="?tag=' + encodeURI(taglist[i]) + '">' + taglist[i] + '</a> ';
|
||||
|
@ -95,16 +78,15 @@ function addOrEditBookmark(event) {
|
|||
if (id == 0) {
|
||||
$.ajax({
|
||||
url: 'ajax/addBookmark.php',
|
||||
data: 'url=' + encodeURI(url) + '&title=' + encodeURI(title) + '&description=' + encodeURI(description) + '&tags=' + encodeURI(tags),
|
||||
data: 'url=' + encodeURI(url) + '&title=' + encodeURI(title) + '&tags=' + encodeURI(tags),
|
||||
success: function(response){
|
||||
var bookmark_id = response.data;
|
||||
$('.bookmarks_add').slideToggle();
|
||||
$('.bookmarks_add').children('p').children('.bookmarks_input').val('');
|
||||
$('.bookmarks_list').prepend(
|
||||
'<div class="bookmark_single" data-id="' + bookmark_id + '" >' +
|
||||
'<p class="bookmark_title"><a href="' + url + '" target="_new" class="bookmark_link">' + title + '</a></p>' +
|
||||
'<p class="bookmark_title"><a href="' + url + '" target="_blank" class="bookmark_link">' + title + '</a></p>' +
|
||||
'<p class="bookmark_url">' + url + '</p>' +
|
||||
'<p class="bookmark_description">' + description + '</p>' +
|
||||
'<p class="bookmark_tags">' + tagshtml + '</p>' +
|
||||
'<p class="bookmark_actions"><span class="bookmark_delete">Delete</span> <span class="bookmark_edit">Edit</span></p>' +
|
||||
'</div>'
|
||||
|
@ -115,8 +97,7 @@ function addOrEditBookmark(event) {
|
|||
else {
|
||||
$.ajax({
|
||||
url: 'ajax/editBookmark.php',
|
||||
data: 'id=' + id + '&url=' + encodeURI(url) + '&title=' + encodeURI(title) + '&description=' +
|
||||
encodeURI(description) + '&tags=' + encodeURI(tags),
|
||||
data: 'id=' + id + '&url=' + encodeURI(url) + '&title=' + encodeURI(title) + '&tags=' + encodeURI(tags),
|
||||
success: function(){
|
||||
$('.bookmarks_add').slideToggle();
|
||||
$('.bookmarks_add').children('p').children('.bookmarks_input').val('');
|
||||
|
@ -124,7 +105,6 @@ function addOrEditBookmark(event) {
|
|||
|
||||
var record = $('.bookmark_single[data-id = "' + id + '"]');
|
||||
record.children('.bookmark_url:first').text(url);
|
||||
record.children('.bookmark_description:first').text(description);
|
||||
|
||||
var record_title = record.children('.bookmark_title:first').children('a:first');
|
||||
record_title.attr('href', url);
|
||||
|
@ -138,7 +118,7 @@ function addOrEditBookmark(event) {
|
|||
}
|
||||
|
||||
function delBookmark(event) {
|
||||
var record = $(this).parent().parent()
|
||||
var record = $(this).parent().parent();
|
||||
$.ajax({
|
||||
url: 'ajax/delBookmark.php',
|
||||
data: 'url=' + encodeURI($(this).parent().parent().children('.bookmark_url:first').text()),
|
||||
|
@ -151,7 +131,6 @@ function showBookmark(event) {
|
|||
$('#bookmark_add_id').val(record.attr('data-id'));
|
||||
$('#bookmark_add_url').val(record.children('.bookmark_url:first').text());
|
||||
$('#bookmark_add_title').val(record.children('.bookmark_title:first').text());
|
||||
$('#bookmark_add_description').val(record.children('.bookmark_description:first').text());
|
||||
$('#bookmark_add_tags').val(record.children('.bookmark_tags:first').text());
|
||||
|
||||
if ($('.bookmarks_add').css('display') == 'none') {
|
||||
|
@ -163,10 +142,6 @@ function showBookmark(event) {
|
|||
|
||||
}
|
||||
|
||||
function editBookmark(event) {
|
||||
|
||||
}
|
||||
|
||||
function updateBookmarksList(bookmark) {
|
||||
var tags = encodeEntities(bookmark.tags).split(' ');
|
||||
var taglist = '';
|
||||
|
@ -178,9 +153,8 @@ function updateBookmarksList(bookmark) {
|
|||
}
|
||||
$('.bookmarks_list').append(
|
||||
'<div class="bookmark_single" data-id="' + bookmark.id +'" >' +
|
||||
'<p class="bookmark_title"><a href="' + encodeEntities(bookmark.url) + '" target="_new" class="bookmark_link">' + encodeEntities(bookmark.title) + '</a></p>' +
|
||||
'<p class="bookmark_title"><a href="' + encodeEntities(bookmark.url) + '" target="_blank" class="bookmark_link">' + encodeEntities(bookmark.title) + '</a></p>' +
|
||||
'<p class="bookmark_url">' + encodeEntities(bookmark.url) + '</p>' +
|
||||
'<p class="bookmark_description">' + encodeEntities(bookmark.description) + '</p>' +
|
||||
'<p class="bookmark_tags">' + taglist + '</p>' +
|
||||
'<p class="bookmark_actions"><span class="bookmark_delete">Delete</span> <span class="bookmark_edit">Edit</span></p>' +
|
||||
'</div>'
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2011 Marvin Thomas Rabe <m.rabe@echtzeitraum.de>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
$tmpl = new OC_Template( 'bookmarks', 'settings');
|
||||
|
||||
OC_Util::addScript('bookmarks','settings');
|
||||
|
||||
return $tmpl->fetchPage();
|
|
@ -1,7 +1,6 @@
|
|||
<div class="bookmarks_addBm">
|
||||
<p><label class="bookmarks_label"><?php echo $l->t('Address'); ?></label><input type="text" id="bookmark_add_url" class="bookmarks_input" value="<?php echo $_['URL']; ?>"/></p>
|
||||
<p><label class="bookmarks_label"><?php echo $l->t('Title'); ?></label><input type="text" id="bookmark_add_title" class="bookmarks_input" value="<?php echo $_['TITLE']; ?>" /></p>
|
||||
<p><label class="bookmarks_label"><?php echo $l->t('Description'); ?></label><input type="text" id="bookmark_add_description" class="bookmarks_input" value="<?php echo $_['DESCRIPTION']; ?>" /></p>
|
||||
<p><label class="bookmarks_label"><?php echo $l->t('Tags'); ?></label><input type="text" id="bookmark_add_tags" class="bookmarks_input" /></p>
|
||||
<p><label class="bookmarks_label"> </label><label class="bookmarks_hint"><?php echo $l->t('Hint: Use space to separate tags.'); ?></label></p>
|
||||
<p><label class="bookmarks_label"></label><input type="submit" value="<?php echo $l->t('Add bookmark'); ?>" id="bookmark_add_submit" /></p>
|
||||
|
|
|
@ -1,27 +1,25 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2011 Marvin Thomas Rabe <m.rabe@echtzeitraum.de>
|
||||
* Copyright (c) 2011 Arthur Schiwon <blizzz@arthur-schiwon.de>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
?>
|
||||
<input type="hidden" id="bookmarkFilterTag" value="<?php if(isset($_GET['tag'])) echo htmlentities($_GET['tag']); ?>" />
|
||||
<h2 class="bookmarks_headline"><?php echo isset($_GET["tag"]) ? $l->t('Bookmarks with tag: ') . urldecode($_GET["tag"]) : $l->t('All bookmarks'); ?></h2>
|
||||
<div class="bookmarks_menu">
|
||||
<input type="button" class="bookmarks_addBtn" value="<?php echo $l->t('Add bookmark'); ?>"/>
|
||||
<a class="bookmarks_addBml" href="javascript:var url = encodeURIComponent(location.href);window.open('<?php echo OC_Helper::linkTo('bookmarks', 'addBm.php', null, true); ?>?url='+url, 'owncloud-bookmarks');" title="<?php echo $l->t('Drag this to your browser bookmarks and click it, when you want to bookmark a webpage.'); ?>"><?php echo $l->t('Add page to ownCloud'); ?></a>
|
||||
<div id="controls">
|
||||
<input type="button" class="bookmarks_addBtn" value="<?php echo $l->t('Add bookmark'); ?>"/>
|
||||
</div>
|
||||
<div class="bookmarks_add">
|
||||
<input type="hidden" id="bookmark_add_id" value="0" />
|
||||
<p><label class="bookmarks_label"><?php echo $l->t('Address'); ?></label><input type="text" id="bookmark_add_url" class="bookmarks_input" /></p>
|
||||
<p><label class="bookmarks_label"><?php echo $l->t('Title'); ?></label><input type="text" id="bookmark_add_title" class="bookmarks_input" />
|
||||
<img class="loading_meta" src="<?php echo OC_Helper::imagePath('core', 'loading.gif'); ?>" /></p>
|
||||
<p><label class="bookmarks_label"><?php echo $l->t('Description'); ?></label><input type="text" id="bookmark_add_description" class="bookmarks_input" />
|
||||
<img class="loading_meta" src="<?php echo OC_Helper::imagePath('core', 'loading.gif'); ?>" /></p>
|
||||
<p><label class="bookmarks_label"><?php echo $l->t('Tags'); ?></label><input type="text" id="bookmark_add_tags" class="bookmarks_input" /></p>
|
||||
<p><label class="bookmarks_label"> </label><label class="bookmarks_hint"><?php echo $l->t('Hint: Use space to separate tags.'); ?></label></p>
|
||||
<p><label class="bookmarks_label"></label><input type="submit" value="<?php echo $l->t('Add bookmark'); ?>" id="bookmark_add_submit" /></p>
|
||||
</div>
|
||||
<div class="bookmarks_sorting pager">
|
||||
<ul>
|
||||
<li class="bookmarks_sorting_recent"><?php echo $l->t('Recent Bookmarks'); ?></li>
|
||||
<li class="bookmarks_sorting_clicks"><?php echo $l->t('Most clicks'); ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<div class="bookmarks_list">
|
||||
<?php echo $l->t('You have no bookmarks'); ?>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2011 Marvin Thomas Rabe <m.rabe@echtzeitraum.de>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
?>
|
||||
<form id="bookmarks">
|
||||
<fieldset class="personalblock">
|
||||
<span class="bold"><?php echo $l->t('Bookmarklet:');?></span> <a class="bookmarks_addBml" href="javascript:var url = encodeURIComponent(location.href);window.open('<?php echo OC_Helper::linkTo('bookmarks', 'addBm.php', null, true); ?>?url='+url, 'owncloud-bookmarks');"><?php echo $l->t('Add page to ownCloud'); ?></a>
|
||||
<br/><em><?php echo $l->t('Drag this to your browser bookmarks and click it, when you want to bookmark a webpage.'); ?></em><br />
|
||||
</fieldset>
|
||||
</form>
|
|
@ -15,7 +15,7 @@ OC_JSON::checkLoggedIn();
|
|||
OC_JSON::checkAppEnabled('calendar');
|
||||
|
||||
$userid = OC_User::getUser();
|
||||
$calendarid = OC_Calendar_Calendar::addCalendar($userid, $_POST['name'], $_POST['description'], 'VEVENT,VTODO,VJOURNAL', null, 0, $_POST['color']);
|
||||
$calendarid = OC_Calendar_Calendar::addCalendar($userid, $_POST['name'], 'VEVENT,VTODO,VJOURNAL', null, 0, $_POST['color']);
|
||||
OC_Calendar_Calendar::setCalendarActive($calendarid, 1);
|
||||
$calendar = OC_Calendar_Calendar::findCalendar($calendarid);
|
||||
$tmpl = new OC_Template('calendar', 'part.choosecalendar.rowfields');
|
||||
|
|
|
@ -28,674 +28,43 @@ $select_year = $_GET["year"];
|
|||
$user_timezone = OC_Preferences::getValue(OC_USER::getUser(), "calendar", "timezone", "Europe/London");
|
||||
foreach($events as $event)
|
||||
{
|
||||
if($select_year != substr($event['startdate'], 0, 4) && $event["repeating"] == false)
|
||||
if ($select_year != substr($event['startdate'], 0, 4))
|
||||
continue;
|
||||
if($select_year == substr($event['startdate'], 0, 4) && $event["repeating"] == false){
|
||||
$object = Sabre_VObject_Reader::read($event['calendardata']);
|
||||
$vevent = $object->VEVENT;
|
||||
$dtstart = $vevent->DTSTART;
|
||||
$dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
|
||||
$start_dt = $dtstart->getDateTime();
|
||||
$start_dt->setTimezone(new DateTimeZone($user_timezone));
|
||||
$end_dt = $dtend->getDateTime();
|
||||
$end_dt->setTimezone(new DateTimeZone($user_timezone));
|
||||
$year = $start_dt->format('Y');
|
||||
$month = $start_dt->format('n') - 1; // return is 0 based
|
||||
$day = $start_dt->format('j');
|
||||
$hour = $start_dt->format('G');
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop)
|
||||
{
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
if ($hour == 'allday')
|
||||
{
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour]))
|
||||
{
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
$object = Sabre_VObject_Reader::read($event['calendardata']);
|
||||
$vevent = $object->VEVENT;
|
||||
$dtstart = $vevent->DTSTART;
|
||||
$dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
|
||||
$start_dt = $dtstart->getDateTime();
|
||||
$start_dt->setTimezone(new DateTimeZone($user_timezone));
|
||||
$end_dt = $dtend->getDateTime();
|
||||
$end_dt->setTimezone(new DateTimeZone($user_timezone));
|
||||
$year = $start_dt->format('Y');
|
||||
$month = $start_dt->format('n') - 1; // return is 0 based
|
||||
$day = $start_dt->format('j');
|
||||
$hour = $start_dt->format('G');
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
if($event["repeating"] == 1){
|
||||
$object = Sabre_VObject_Reader::read($event['calendardata']);
|
||||
$vevent = $object->VEVENT;
|
||||
//echo substr_count($event["calendardata"], "EXDATE");
|
||||
$numofelements = substr_count($vevent->RRULE, ";");
|
||||
$properties = array("FREQ"=>"false", "UNTIL"=>"false", "COUNT"=>"false", "INTERVAL"=>"false", "BYDAY"=>"false", "BYMONTHDAY"=>"false", "BYWEEKNO"=>"false", "BYMONTH"=>"false", "BYYEARDAY"=>"false", "BYSETPOS"=>"false");
|
||||
$exruleproperties = array("FREQ"=>"false", "UNTIL"=>"false", "COUNT"=>"false", "INTERVAL"=>"false", "BYDAY"=>"false", "BYMONTHDAY"=>"false", "BYWEEKNO"=>"false", "BYMONTH"=>"false", "BYYEARDAY"=>"false", "BYSETPOS"=>"false");
|
||||
$byday = array("MO"=>"false", "TU"=>"false", "WE"=>"false", "TH"=>"false", "FR"=>"false", "SA"=>"false", "SU"=>"false");
|
||||
if($numofelements != 0){
|
||||
$rrule = explode(";", $vevent->RRULE);
|
||||
for($i = 0;$i <= $numofelements;$i++){
|
||||
$rule = explode("=", $rrule[$i]);
|
||||
$property = $rule[0];
|
||||
$value = $rule[1];
|
||||
$properties[$property] = $value;
|
||||
}
|
||||
if($properties["BYDAY"] != "false"){
|
||||
$numofdays = substr_count($properties["BYDAY"], ",");
|
||||
if($numofdays == 0){
|
||||
if(strlen($properties["BYDAY"]) != 2){
|
||||
$lenght = strlen($properties["BYDAY"]);
|
||||
switch($lenght){
|
||||
case "3":
|
||||
$properties["BYSETPOS"] = substr($properties["BYDAY"],0,1);
|
||||
$properties["BYDAY"] = substr($properties["BYDAY"],1,2);
|
||||
break;
|
||||
case "4":
|
||||
$properties["BYSETPOS"] = substr($properties["BYDAY"],0,2);
|
||||
$properties["BYDAY"] = substr($properties["BYDAY"],2,2);
|
||||
break;
|
||||
case "5":
|
||||
$properties["BYSETPOS"] = substr($properties["BYDAY"],0,3);
|
||||
$properties["BYDAY"] = substr($properties["BYDAY"],3,2);
|
||||
break;
|
||||
case "6":
|
||||
$properties["BYSETPOS"] = substr($properties["BYDAY"],0,4);
|
||||
$properties["BYDAY"] = substr($properties["BYDAY"],4,2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
$byday[$properties["BYDAY"]] = true;
|
||||
|
||||
}else{
|
||||
$days = explode(",", $properties["BYDAY"]);
|
||||
for($i = 0;$i <= $numofdays;$i++){
|
||||
$day = $days[$i];
|
||||
$byday[$day] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$rule = explode("=", $vevent->RRULE);
|
||||
$properties[$rule[0]] = $rule[1];
|
||||
}
|
||||
if($properties["INTERVAL"] == "false"){
|
||||
$properties["INTERVAL"] = 1;
|
||||
}
|
||||
$count = 0; //counts all loops
|
||||
$countedoutputs = 0; //counts only the outputs
|
||||
$countchecker = true;
|
||||
$dtstart = $vevent->DTSTART;
|
||||
$dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
|
||||
$start_dt = $dtstart->getDateTime();
|
||||
$start_dt->setTimezone(new DateTimeZone($user_timezone));
|
||||
$end_dt = $dtend->getDateTime();
|
||||
$end_dt->setTimezone(new DateTimeZone($user_timezone));
|
||||
$firststart_year = $start_dt->format('Y');
|
||||
$firststart_month = $start_dt->format('n');
|
||||
$firststart_day = $start_dt->format('j');
|
||||
$hour = $start_dt->format('G');
|
||||
$interval = 0;
|
||||
if($properties["UNTIL"] != "false"){
|
||||
$until = $properties["UNTIL"];
|
||||
$until_year = substr($until, 0, 4);
|
||||
$until_month = substr($until, 4, 2);
|
||||
$until_day = substr($until, 6, 2);
|
||||
}
|
||||
//print_r($properties);
|
||||
//print_r($byday);
|
||||
if($properties["FREQ"] == "DAILY"){
|
||||
if($properties["BYDAY"] == "false"){
|
||||
$byday = array("MO"=>"1", "TU"=>"1", "WE"=>"1", "TH"=>"1", "FR"=>"1", "SA"=>"1", "SU"=>"1");
|
||||
}
|
||||
while(date("Y", mktime(0,0,0, $firststart_month, $firststart_day, $firststart_year) + ($count * 1 * 86400 * $interval)) <= $select_year && $countchecker == true){
|
||||
if($byday[strtoupper(substr(date("D", mktime(0,0,0, $firststart_month, $firststart_day, $firststart_year) + ($count * 1 * 86400 * $interval)), 0, 2))] == "1"){
|
||||
$newunixtime = mktime(0,0,0, $firststart_month, $firststart_day, $firststart_year) + ($count * 1 * 86400 * $interval);
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = date("n", $newunixtime) - 1; // return is 0 based
|
||||
$day = date("j", $newunixtime);
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
if($properties["FREQ"] == "WEEKLY"){
|
||||
if($properties["BYDAY"] == "false"){
|
||||
$byday[strtoupper(substr(date("D", mktime(0,0,0, $firststart_month, $firststart_day, $firststart_year)), 0, 2))] = "1";
|
||||
}
|
||||
while(date("Y", mktime(0,0,0, $firststart_month, $firststart_day, $firststart_year) + ($count * 1 * 86400 * $interval)) <= $select_year && $countchecker == true){
|
||||
if($byday[strtoupper(substr(date("D", mktime(0,0,0, $firststart_month, $firststart_day, $firststart_year) + ($count * 1 * 86400 * $interval)), 0, 2))] == "1"){
|
||||
$newunixtime = mktime(0,0,0, $firststart_month, $firststart_day, $firststart_year) + ($count * 1 * 86400 * $interval);
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = date("n", $newunixtime) - 1; // return is 0 based
|
||||
$day = date("j", $newunixtime);
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
if($properties["FREQ"] == "MONTHLY"){
|
||||
if(substr_count($properties["BYMONTHDAY"], ",") != 0){
|
||||
$numofBYMONTHDAY = substr_count($properties["BYMONTHDAY"], ",");
|
||||
if($numofBYMONTHDAY == 0){
|
||||
$BYMONTHDAY = array();
|
||||
$BYMONTHDAY[0] = $properties["BYMONTHDAY"];
|
||||
}else{
|
||||
$BYMONTHDAY = explode(",", $properties["BYMONTHDAY"]);
|
||||
}
|
||||
while(date("Y", mktime(0,0,0, $firststart_month + ($count * $interval), $properties["BYMONTHDAY"], $firststart_year)) <= $select_year && $countchecker == true){
|
||||
for($i = 0;$i <= $numofBYMONTHDAY;$i++){
|
||||
$newunixtime = mktime(0,0,0, $firststart_month + ($count * $interval), $BYMONTHDAY[$i], $firststart_year);
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = date("n", $newunixtime) - 1; // return is 0 based
|
||||
$day = date("j", $newunixtime);
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
//if($properties["BYMONTHDAY"] != "false"){
|
||||
if($properties["BYSETPOS"] == "false"){
|
||||
while(date("Y", mktime(0,0,0, $firststart_month + ($count * $interval), $properties["BYMONTHDAY"], $firststart_year)) <= $select_year && $countchecker == true){
|
||||
$newunixtime = mktime(0,0,0, $firststart_month + ($count * $interval), $properties["BYMONTHDAY"], $firststart_year);
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = date("n", $newunixtime) - 1; // return is 0 based
|
||||
$day = date("j", $newunixtime);
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}else{
|
||||
if(!is_nan($properties["BYSETPOS"]) && $properties["BYSETPOS"] >= 1){
|
||||
while(date("Y", mktime(0,0,0, $firststart_month + ($count * $interval), $firststart_day, $firststart_year)) <= $select_year && $countchecker == true){
|
||||
$lastdayofmonth = date("t", mktime(0,0,0, $firststart_month + ($count * $interval), $firststart_day, $firststart_year));
|
||||
$matches = 0;
|
||||
$matchedday = "";
|
||||
for($i = 1;$i <= $lastdayofmonth;$i++){
|
||||
$thisday = date("j", mktime(0,0,0, $firststart_month + ($count * $interval), $i, $firststart_year));
|
||||
$thisdayname = strtoupper(substr(date("D", mktime(0,0,0, $firststart_month + ($count * $interval), $i, $firststart_year)),0,2));
|
||||
//echo $thisdayname . " " . $thisday . "\n";
|
||||
if($byday[$thisdayname] == 1){
|
||||
$matches++;
|
||||
}
|
||||
if($matches == $properties["BYSETPOS"]){
|
||||
$matchedday = $thisday;
|
||||
$i = 32;
|
||||
}
|
||||
}
|
||||
$newunixtime = mktime(0,0,0, $firststart_month + ($count * $interval), $firststart_day, $firststart_year);
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = date("n", $newunixtime) - 1; // return is 0 based
|
||||
$day = $matchedday;
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}elseif(!is_nan($properties["BYSETPOS"]) && $properties["BYSETPOS"] <= -1){
|
||||
while(date("Y", mktime(0,0,0, $firststart_month + ($count * $interval), $firststart_day, $firststart_year)) <= $select_year && $countchecker == true){
|
||||
$lastdayofmonth = date("t", mktime(0,0,0, $firststart_month + ($count * $interval), 1, $firststart_year));
|
||||
$matches = 0;
|
||||
$matchedday = "";
|
||||
for($i = $lastdayofmonth;$i >= 1;$i--){
|
||||
$thisday = date("j", mktime(0,0,0, $firststart_month + ($count * $interval), $i, $firststart_year));
|
||||
$thisdayname = strtoupper(substr(date("D", mktime(0,0,0, $firststart_month + ($count * $interval), $i, $firststart_year)),0,2));
|
||||
//echo $thisdayname . " " . $thisday . "\n";
|
||||
if($byday[$thisdayname] == 1){
|
||||
$matches++;
|
||||
}
|
||||
if($matches == $properties["BYSETPOS"]){
|
||||
$matchedday = $thisday;
|
||||
$i = 0;
|
||||
}
|
||||
}
|
||||
$newunixtime = mktime(0,0,0, $firststart_month + ($count * $interval), $firststart_day, $firststart_year);
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = date("n", $newunixtime) - 1; // return is 0 based
|
||||
$day = $matchedday;
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
//}
|
||||
}
|
||||
}
|
||||
if(strlen($properties["BYDAY"]) == 2){
|
||||
while(date("Y", mktime(0,0,0, $firststart_month + ($count * $interval), $firststart_day, $firststart_year)) <= $select_year && $countchecker == true){
|
||||
if($byday[strtoupper(substr(date("D", mktime(0,0,0, $firststart_month + ($count * $interval), $firststart_day, $firststart_year)), 0, 2))] == "1"){
|
||||
$newunixtime = mktime(0,0,0, $firststart_month + ($count * $interval), $firststart_day, $firststart_year);
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = date("n", $newunixtime) - 1; // return is 0 based
|
||||
$day = date("j", $newunixtime);
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}else{
|
||||
while(date("Y", mktime(0,0,0, 0, 0, $firststart_year + ($count * $interval))) <= $select_year && $countchecker == true){
|
||||
$newunixtime = mktime(0,0,0, $properties["BYMONTH"], $properties["BYMONTHDAY"], $firststart_year + ($count * $interval));
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = $month - 1; // return is 0 based
|
||||
$day = $dateofweekone;
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if($properties["FREQ"] == "YEARLY"){
|
||||
if($properties["BYMONTH"] != "false"){
|
||||
if($properties["BYMONTHDAY"] == false){
|
||||
$properties["BYMONTHDAY"] = date("j", mktime(0,0,0, $firststart_month, $firststart_day, $firststart_year));
|
||||
}
|
||||
if($properties["BYDAY"] == "false"){
|
||||
while(date("Y", mktime(0,0,0, $properties["BYMONTH"], $properties["BYMONTHDAY"], $firststart_year + ($count * $interval))) <= $select_year && $countchecker == true){
|
||||
$newunixtime = mktime(0,0,0, $properties["BYMONTH"], $properties["BYMONTHDAY"], $firststart_year + ($count * $interval));
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = date("n", $newunixtime) - 1; // return is 0 based
|
||||
$day = date("j", $newunixtime);
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
if(strlen($properties["BYDAY"]) == 2){
|
||||
while(date("Y", mktime(0,0,0, $properties["BYMONTH"], $properties["BYMONTHDAY"], $firststart_year + ($count * $interval))) <= $select_year && $countchecker == true){
|
||||
$newunixtime = mktime(0,0,0, $properties["BYMONTH"], $properties["BYMONTHDAY"], $firststart_year + ($count * $interval));
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = date("n", $newunixtime) - 1; // return is 0 based
|
||||
$day = date("j", $newunixtime);
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}else{
|
||||
$number = substr($properties["BYDAY"],0,1);
|
||||
$weekday = substr($properties["BYDAY"],1,2);
|
||||
$month = $properties["BYMONTH"];
|
||||
$dateofweekone = "";
|
||||
for($i = 0; $i <= 7;$i++){
|
||||
if(strtoupper(substr(date("D", mktime(0,0,0, $properties["BYMONTH"], $i, $select_year)), 0, 2)) == $weekday){
|
||||
$dateofweekone = date("j", mktime(0,0,0, $properties["BYMONTH"], $i, $select_year));
|
||||
$i = 8;
|
||||
}
|
||||
}
|
||||
if($number != 1){
|
||||
$dateofweekone = $dateofweekone + (7 * ($number - 1));
|
||||
}
|
||||
while(date("Y", mktime(0,0,0, 0, 0, $firststart_year + ($count * $interval))) <= $select_year && $countchecker == true){
|
||||
$newunixtime = mktime(0,0,0, $properties["BYMONTH"], $properties["BYMONTHDAY"], $firststart_year + ($count * $interval));
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = $month - 1; // return is 0 based
|
||||
$day = $dateofweekone;
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}elseif($properties["BYYEARDAY"] != false){
|
||||
$numofyeardays = substr_count($properties["BYYEARDAY"], ",");
|
||||
if($numofyeardays == 0){
|
||||
$yeardays = array();
|
||||
$yeardays[0] = $properties["BYYEARDAY"];
|
||||
}else{
|
||||
$yeardays = explode(",", $properties["BYYEARDAY"]);
|
||||
}
|
||||
while(date("Y", mktime(0,0,0, 0, 0, $firststart_year + ($count * $interval)) + ($yeardays[$numofyeardays]-1) * 86400) <= $select_year && $countchecker == true){
|
||||
for($i = 0;$i <= $numofyeardays;$i++){
|
||||
$newunixtime = mktime(0,0,0, 1, 1, $firststart_year + ($count * $interval)) + ($yeardays[$i] -1) * 86400;
|
||||
$year = date("Y", $newunixtime);
|
||||
$month = date("n", $newunixtime) - 1; // return is 0 based
|
||||
$day = date("j", $newunixtime);
|
||||
if($properties["UNTIL"] != "false"){
|
||||
if($year >= $until_year && $month + 1 >= $until_month && $day > $until_day){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE) {
|
||||
$hour = 'allday';
|
||||
}
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop){
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
$interval = $properties["INTERVAL"];
|
||||
$countedoutputs++;
|
||||
if($properties["COUNT"] != "false"){
|
||||
if($countedoutputs == $properties["COUNT"]){
|
||||
$countchecker = false;
|
||||
}
|
||||
}
|
||||
if ($hour == 'allday'){
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour])){
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}else{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
}
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$return_event = array();
|
||||
foreach(array('id', 'calendarid', 'objecttype', 'repeating') as $prop)
|
||||
{
|
||||
$return_event[$prop] = $event[$prop];
|
||||
}
|
||||
$return_event['startdate'] = explode('|', $start_dt->format('Y|m|d|H|i'));
|
||||
$return_event['enddate'] = explode('|', $end_dt->format('Y|m|d|H|i'));
|
||||
$return_event['description'] = $event['summary'];
|
||||
if ($hour == 'allday')
|
||||
{
|
||||
$return_event['allday'] = true;
|
||||
}
|
||||
if (isset($return[$year][$month][$day][$hour]))
|
||||
{
|
||||
$return[$year][$month][$day][$hour][] = $return_event;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return[$year][$month][$day][$hour] = array(1 => $return_event);
|
||||
}
|
||||
}
|
||||
OC_JSON::encodedPrint($return);
|
||||
|
|
|
@ -15,7 +15,6 @@ OC_JSON::checkAppEnabled('calendar');
|
|||
$calendar = array(
|
||||
'id' => 'new',
|
||||
'displayname' => '',
|
||||
'description' => '',
|
||||
'calendarcolor' => '',
|
||||
);
|
||||
$tmpl = new OC_Template('calendar', 'part.editcalendar');
|
||||
|
|
|
@ -15,7 +15,7 @@ OC_JSON::checkLoggedIn();
|
|||
OC_JSON::checkAppEnabled('calendar');
|
||||
|
||||
$calendarid = $_POST['id'];
|
||||
OC_Calendar_Calendar::editCalendar($calendarid, $_POST['name'], $_POST['description'], null, null, null, $_POST['color']);
|
||||
OC_Calendar_Calendar::editCalendar($calendarid, $_POST['name'], null, null, null, $_POST['color']);
|
||||
OC_Calendar_Calendar::setCalendarActive($calendarid, $_POST['active']);
|
||||
$calendar = OC_Calendar_Calendar::findCalendar($calendarid);
|
||||
$tmpl = new OC_Template('calendar', 'part.choosecalendar.rowfields');
|
||||
|
|
|
@ -153,12 +153,6 @@
|
|||
<length>4</length>
|
||||
</field>
|
||||
|
||||
<field>
|
||||
<name>description</name>
|
||||
<type>clob</type>
|
||||
<notnull>false</notnull>
|
||||
</field>
|
||||
|
||||
<field>
|
||||
<name>calendarorder</name>
|
||||
<type>integer</type>
|
||||
|
|
|
@ -23,7 +23,7 @@ if($_GET["import"] == "existing"){
|
|||
$filename = "/" . $_GET["file"];
|
||||
}
|
||||
}else{
|
||||
$id = OC_Calendar_Calendar::addCalendar(OC_User::getUser(), $_POST['calname'], $_POST['description']);
|
||||
$id = OC_Calendar_Calendar::addCalendar(OC_User::getUser(), $_POST['calname']);
|
||||
OC_Calendar_Calendar::setCalendarActive($id, 1);
|
||||
$calid = $id;
|
||||
if($_POST["path"] != ""){
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
* uri VARCHAR(100),
|
||||
* active INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||
* ctag INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||
* description TEXT,
|
||||
* calendarorder INTEGER UNSIGNED NOT NULL DEFAULT '0',
|
||||
* calendarcolor VARCHAR(10),
|
||||
* timezone TEXT,
|
||||
|
@ -94,14 +93,13 @@ class OC_Calendar_Calendar{
|
|||
* @brief Creates a new calendar
|
||||
* @param string $userid
|
||||
* @param string $name
|
||||
* @param string $description
|
||||
* @param string $components Default: "VEVENT,VTODO,VJOURNAL"
|
||||
* @param string $timezone Default: null
|
||||
* @param integer $order Default: 1
|
||||
* @param string $color Default: null
|
||||
* @return insertid
|
||||
*/
|
||||
public static function addCalendar($userid,$name,$description,$components='VEVENT,VTODO,VJOURNAL',$timezone=null,$order=0,$color=null){
|
||||
public static function addCalendar($userid,$name,$components='VEVENT,VTODO,VJOURNAL',$timezone=null,$order=0,$color=null){
|
||||
$all = self::allCalendars($userid);
|
||||
$uris = array();
|
||||
foreach($all as $i){
|
||||
|
@ -110,8 +108,8 @@ class OC_Calendar_Calendar{
|
|||
|
||||
$uri = self::createURI($name, $uris );
|
||||
|
||||
$stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*calendar_calendars (userid,displayname,uri,ctag,description,calendarorder,calendarcolor,timezone,components) VALUES(?,?,?,?,?,?,?,?,?)' );
|
||||
$result = $stmt->execute(array($userid,$name,$uri,1,$description,$order,$color,$timezone,$components));
|
||||
$stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*calendar_calendars (userid,displayname,uri,ctag,calendarorder,calendarcolor,timezone,components) VALUES(?,?,?,?,?,?,?,?)' );
|
||||
$result = $stmt->execute(array($userid,$name,$uri,1,$order,$color,$timezone,$components));
|
||||
|
||||
return OC_DB::insertid();
|
||||
}
|
||||
|
@ -121,18 +119,17 @@ class OC_Calendar_Calendar{
|
|||
* @param string $principaluri
|
||||
* @param string $uri
|
||||
* @param string $name
|
||||
* @param string $description
|
||||
* @param string $components
|
||||
* @param string $timezone
|
||||
* @param integer $order
|
||||
* @param string $color
|
||||
* @return insertid
|
||||
*/
|
||||
public static function addCalendarFromDAVData($principaluri,$uri,$name,$description,$components,$timezone,$order,$color){
|
||||
public static function addCalendarFromDAVData($principaluri,$uri,$name,$components,$timezone,$order,$color){
|
||||
$userid = self::extractUserID($principaluri);
|
||||
|
||||
$stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*calendar_calendars (userid,displayname,uri,ctag,description,calendarorder,calendarcolor,timezone,components) VALUES(?,?,?,?,?,?,?,?,?)' );
|
||||
$result = $stmt->execute(array($userid,$name,$uri,1,$description,$order,$color,$timezone,$components));
|
||||
$stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*calendar_calendars (userid,displayname,uri,ctag,calendarorder,calendarcolor,timezone,components) VALUES(?,?,?,?,?,?,?,?)' );
|
||||
$result = $stmt->execute(array($userid,$name,$uri,1,$order,$color,$timezone,$components));
|
||||
|
||||
return OC_DB::insertid();
|
||||
}
|
||||
|
@ -141,7 +138,6 @@ class OC_Calendar_Calendar{
|
|||
* @brief Edits a calendar
|
||||
* @param integer $id
|
||||
* @param string $name Default: null
|
||||
* @param string $description Default: null
|
||||
* @param string $components Default: null
|
||||
* @param string $timezone Default: null
|
||||
* @param integer $order Default: null
|
||||
|
@ -150,20 +146,19 @@ class OC_Calendar_Calendar{
|
|||
*
|
||||
* Values not null will be set
|
||||
*/
|
||||
public static function editCalendar($id,$name=null,$description=null,$components=null,$timezone=null,$order=null,$color=null){
|
||||
public static function editCalendar($id,$name=null,$components=null,$timezone=null,$order=null,$color=null){
|
||||
// Need these ones for checking uri
|
||||
$calendar = self::findCalendar($id);
|
||||
|
||||
// Keep old stuff
|
||||
if(is_null($name)) $name = $calendar['name'];
|
||||
if(is_null($description)) $description = $calendar['description'];
|
||||
if(is_null($components)) $components = $calendar['components'];
|
||||
if(is_null($timezone)) $timezone = $calendar['timezone'];
|
||||
if(is_null($order)) $order = $calendar['calendarorder'];
|
||||
if(is_null($color)) $color = $calendar['color'];
|
||||
|
||||
$stmt = OC_DB::prepare( 'UPDATE *PREFIX*calendar_calendars SET displayname=?,description=?,calendarorder=?,calendarcolor=?,timezone=?,components=?,ctag=ctag+1 WHERE id=?' );
|
||||
$result = $stmt->execute(array($name,$description,$order,$color,$timezone,$components,$id));
|
||||
$stmt = OC_DB::prepare( 'UPDATE *PREFIX*calendar_calendars SET displayname=?,calendarorder=?,calendarcolor=?,timezone=?,components=?,ctag=ctag+1 WHERE id=?' );
|
||||
$result = $stmt->execute(array($name,$order,$color,$timezone,$components,$id));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -102,13 +102,12 @@ class OC_Connector_Sabre_CalDAV extends Sabre_CalDAV_Backend_Abstract {
|
|||
}
|
||||
|
||||
if(!isset($newValues['displayname'])) $newValues['displayname'] = 'unnamed';
|
||||
if(!isset($newValues['description'])) $newValues['description'] = '';
|
||||
if(!isset($newValues['components'])) $newValues['components'] = 'VEVENT,VTODO';
|
||||
if(!isset($newValues['timezone'])) $newValues['timezone'] = null;
|
||||
if(!isset($newValues['calendarorder'])) $newValues['calendarorder'] = 0;
|
||||
if(!isset($newValues['calendarcolor'])) $newValues['calendarcolor'] = null;
|
||||
|
||||
return OC_Calendar_Calendar::addCalendarFromDAVData($principalUri,$calendarUri,$newValues['displayname'],$newValues['description'],$newValues['components'],$newValues['timezone'],$newValues['calendarorder'],$newValues['calendarcolor']);
|
||||
return OC_Calendar_Calendar::addCalendarFromDAVData($principalUri,$calendarUri,$newValues['displayname'],$newValues['components'],$newValues['timezone'],$newValues['calendarorder'],$newValues['calendarcolor']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -191,12 +190,11 @@ class OC_Connector_Sabre_CalDAV extends Sabre_CalDAV_Backend_Abstract {
|
|||
|
||||
// Success
|
||||
if(!isset($newValues['displayname'])) $newValues['displayname'] = null;
|
||||
if(!isset($newValues['description'])) $newValues['description'] = null;
|
||||
if(!isset($newValues['timezone'])) $newValues['timezone'] = null;
|
||||
if(!isset($newValues['calendarorder'])) $newValues['calendarorder'] = null;
|
||||
if(!isset($newValues['calendarcolor'])) $newValues['calendarcolor'] = null;
|
||||
|
||||
OC_Calendar_Calendar::editCalendar($calendarId,$newValues['displayname'],$newValues['description'],null,$newValues['timezone'],$newValues['calendarorder'],$newValues['calendarcolor']);
|
||||
OC_Calendar_Calendar::editCalendar($calendarId,$newValues['displayname'],null,$newValues['timezone'],$newValues['calendarorder'],$newValues['calendarcolor']);
|
||||
|
||||
return true;
|
||||
|
||||
|
|
|
@ -25,12 +25,6 @@
|
|||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<tr>
|
||||
<th><?php echo $l->t('Description') ?></th>
|
||||
<td>
|
||||
<textarea id="description_<?php echo $_['calendar']['id'] ?>"><?php echo $_['calendar']['description'] ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $l->t('Calendar color') ?></th>
|
||||
<td>
|
||||
|
|
|
@ -31,11 +31,6 @@ foreach($calendars as $calendar){
|
|||
<input id="displayname" type="text" value="">
|
||||
</td>
|
||||
</tr>
|
||||
<th><?php echo $l->t('Description') ?></th>
|
||||
<td>
|
||||
<textarea id="description"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- end of modified part -->
|
||||
<br><br>
|
||||
|
@ -65,8 +60,7 @@ function importcal(importtype){
|
|||
}
|
||||
if(importtype == "new"){
|
||||
var calname = $("#displayname").val();
|
||||
var description = $("#description").val();
|
||||
$.post(OC.filePath('calendar', '', 'import.php'), {'import':'new', 'calname':calname, 'description':description, 'path':path, 'file':file}, function(){
|
||||
$.post(OC.filePath('calendar', '', 'import.php'), {'import':'new', 'calname':calname, 'path':path, 'file':file}, function(){
|
||||
$("#importdialog").dialog('destroy').remove();
|
||||
$("#importdialogholder").remove();
|
||||
});
|
||||
|
|
|
@ -6,8 +6,6 @@
|
|||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
OC_UTIL::addScript('', 'jquery.multiselect');
|
||||
OC_UTIL::addStyle('', 'jquery.multiselect');
|
||||
?>
|
||||
<form id="calendar">
|
||||
<fieldset class="personalblock">
|
||||
|
|
|
@ -37,16 +37,28 @@ if( $addressbook === false || $addressbook['userid'] != OC_USER::getUser()){
|
|||
}
|
||||
|
||||
$fn = $_POST['fn'];
|
||||
$values = $_POST['value'];
|
||||
$parameters = $_POST['parameters'];
|
||||
|
||||
$vcard = new Sabre_VObject_Component('VCARD');
|
||||
$vcard->add(new Sabre_VObject_Property('FN',$fn));
|
||||
$vcard->add(new Sabre_VObject_Property('UID',OC_Contacts_VCard::createUID()));
|
||||
foreach(array('ADR', 'TEL', 'EMAIL', 'ORG') as $propname){
|
||||
$value = $values[$propname];
|
||||
if (isset($parameters[$propname])){
|
||||
$prop_parameters = $parameters[$propname];
|
||||
} else {
|
||||
$prop_parameters = array();
|
||||
}
|
||||
OC_Contacts_VCard::addVCardProperty($vcard, $propname, $value, $prop_parameters);
|
||||
}
|
||||
$id = OC_Contacts_VCard::add($aid,$vcard->serialize());
|
||||
|
||||
$details = OC_Contacts_VCard::structureContact($vcard);
|
||||
$name = $details['FN'][0]['value'];
|
||||
$tmpl = new OC_Template('contacts','part.details');
|
||||
$tmpl->assign('details',$details);
|
||||
$tmpl->assign('id',$id);
|
||||
$page = $tmpl->fetchPage();
|
||||
|
||||
OC_JSON::success(array('data' => array( 'id' => $id, 'page' => $page )));
|
||||
OC_JSON::success(array('data' => array( 'id' => $id, 'name' => $name, 'page' => $page )));
|
||||
|
|
|
@ -53,7 +53,7 @@ $name = $_POST['name'];
|
|||
$value = $_POST['value'];
|
||||
$parameters = isset($_POST['parameteres'])?$_POST['parameters']:array();
|
||||
|
||||
OC_Contacts_VCard::addVCardProperty($vcard, $name, $value, $parameters);
|
||||
$property = OC_Contacts_VCard::addVCardProperty($vcard, $name, $value, $parameters);
|
||||
|
||||
$line = count($vcard->children) - 1;
|
||||
$checksum = md5($property->serialize());
|
||||
|
|
|
@ -75,7 +75,7 @@ $(document).ready(function(){
|
|||
$('#contacts_addpropertyform input[type="submit"]').live('click',function(){
|
||||
$.post('ajax/addproperty.php',$('#contacts_addpropertyform').serialize(),function(jsondata){
|
||||
if(jsondata.status == 'success'){
|
||||
$('#contacts_cardoptions').before(jsondata.data.page);
|
||||
$('#contacts_details').append(jsondata.data.page);
|
||||
$('#contacts_addpropertyform').remove();
|
||||
$('#contacts_addcontactsparts').remove();
|
||||
}
|
||||
|
@ -129,7 +129,7 @@ $(document).ready(function(){
|
|||
});
|
||||
|
||||
$('#contacts_setpropertyform input[type="submit"]').live('click',function(){
|
||||
$.post('ajax/setproperty.php',$('#contacts_setpropertyform').serialize(),function(jsondata){
|
||||
$.post('ajax/setproperty.php',$(this).parent('form').serialize(),function(jsondata){
|
||||
if(jsondata.status == 'success'){
|
||||
$('.contacts_details_property[data-checksum="'+jsondata.data.oldchecksum+'"]').replaceWith(jsondata.data.page);
|
||||
}
|
||||
|
|
|
@ -290,6 +290,7 @@ class OC_Contacts_VCard{
|
|||
}
|
||||
|
||||
$vcard->add($property);
|
||||
return $property;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?php if(array_key_exists('FN',$_['details'])): ?>
|
||||
<table>
|
||||
<table id="contacts_details">
|
||||
<?php if(isset($_['details']['PHOTO'])): // Emails first ?>
|
||||
<tr class="contacts_details_property">
|
||||
<td class="contacts_details_left"> </td>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<tr class="contacts_details_property" data-checksum="<?php echo $_['property']['checksum']; ?>">
|
||||
<?php if($_['property']['name'] == 'FN'): ?>
|
||||
<td class="contacts_details_left"><?php echo $l->t('Name'); ?></td>
|
||||
<td class="contacts_details_left"></td>
|
||||
<td class="contacts_details_right">
|
||||
<?php echo $_['property']['value']; ?>
|
||||
<strong><?php echo $_['property']['value']; ?></strong>
|
||||
<span style="display:none;" data-use="edit"><img class="svg action" src="<?php echo image_path('', 'actions/rename.svg'); ?>" /></span>
|
||||
</td>
|
||||
<?php elseif($_['property']['name'] == 'BDAY'): ?>
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
<fieldset class="personalblock">
|
||||
<strong>Media</strong><br />
|
||||
Ampache address:
|
||||
<?php echo OC_Helper::linkTo('apps/media', 'tomahawk.php', null, true); ?><br />
|
||||
<?php echo OC_Helper::linkTo('apps/media', '', null, true); ?><br />
|
||||
</fieldset>
|
||||
</form>
|
||||
|
|
|
@ -34,6 +34,7 @@ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#35537a', end
|
|||
input[type="text"], input[type="password"] { cursor:text; }
|
||||
input, select, .button, #quota, div.jp-progress, .pager li a { font-size:1em; width:10em; margin:.3em; padding:.6em .5em .4em; background:#fff; color:#333; border:1px solid #ddd; -moz-box-shadow:0 1px 1px #fff, 0 2px 0 #bbb inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; outline:none; }
|
||||
input[type="text"], input[type="password"], input[type="search"] { background:#f8f8f8; color:#555; cursor:text; }
|
||||
input[type="text"], input[type="password"], input[type="search"] { -webkit-appearance:textfield; -webkit-box-sizing:content-box; }
|
||||
input[type="text"]:hover, input[type="text"]:focus, input[type="password"]:hover, input[type="password"]:focus, input[type="search"]:hover, input[type="search"]:focus { background:#fff; color:#333; }
|
||||
|
||||
input[type="submit"], input[type="button"], .button, #quota, div.jp-progress, .pager li a { width:auto; padding:.4em; border:1px solid #ddd; font-weight:bold; cursor:pointer; background:#f8f8f8; color:#555; text-shadow:#fff 0 1px 0; -moz-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; }
|
||||
|
|
|
@ -32,6 +32,6 @@
|
|||
</div></header>
|
||||
<?php echo $_['content']; ?>
|
||||
</div>
|
||||
<footer><p class="info"><a href="http://owncloud.org/">ownCloud</a>: <?php echo $l->t( 'web services under your control' ); ?></p></footer>
|
||||
<footer><p class="info"><a href="http://owncloud.org/">ownCloud</a> – <?php echo $l->t( 'web services under your control' ); ?></p></footer>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -123,6 +123,10 @@ $(document).ready(function(){
|
|||
$('#newuser').submit(function(event){
|
||||
event.preventDefault();
|
||||
var username=$('#newusername').val();
|
||||
if(username == '') {
|
||||
alert('Please provide a username!');
|
||||
return false;
|
||||
}
|
||||
var password=$('#newuserpassword').val();
|
||||
var groups=$('#newusergroups').prev().children('div').data('settings').checked;
|
||||
$.post(
|
||||
|
|
|
@ -50,8 +50,7 @@
|
|||
};?>
|
||||
|
||||
<p class="personalblock">
|
||||
<strong>ownCloud</strong>
|
||||
<?php echo(OC_Util::getVersionString()); ?>
|
||||
<strong>ownCloud</strong> <?php echo(OC_Util::getVersionString()); ?>, <a href="http://gitorious.org/owncloud" target="_blank">source code</a> licensed freely under <a href="http://www.gnu.org/licenses/agpl-3.0.html" target="_blank">AGPL</a>
|
||||
</p>
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue