Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2012-02-25 19:36:58 +0400
committerRobin Appelman <icewind@owncloud.com>2012-02-25 19:36:58 +0400
commitea8f71a19c59e7138d4a504bacc0beb410fc77e8 (patch)
tree5c4da1ddafb6d81feb90d3a70e927e59dc0a5e0d
parent814bc2fd2bef739938716ae840a4db0de502422a (diff)
parent8b93a9a237603185501d0e24e9c08705168fc553 (diff)
Merge branch 'master' into encryption
-rw-r--r--apps/bookmarks/addBm.php17
-rw-r--r--apps/bookmarks/ajax/addBookmark.php50
-rw-r--r--apps/bookmarks/ajax/getMeta.php39
-rw-r--r--apps/bookmarks/appinfo/app.php2
-rw-r--r--apps/bookmarks/appinfo/database.xml8
-rw-r--r--apps/bookmarks/appinfo/info.xml4
-rw-r--r--apps/bookmarks/bookmarksHelper.php52
-rw-r--r--apps/bookmarks/css/bookmarks.css26
-rw-r--r--apps/bookmarks/js/addBm.js5
-rw-r--r--apps/bookmarks/js/bookmarks.js84
-rw-r--r--apps/bookmarks/settings.php4
-rw-r--r--apps/bookmarks/templates/addBm.php18
-rw-r--r--apps/bookmarks/templates/bookmarklet.php8
-rw-r--r--apps/bookmarks/templates/list.php25
-rw-r--r--apps/bookmarks/templates/settings.php9
-rw-r--r--apps/calendar/ajax/calendar/activation.php (renamed from apps/calendar/ajax/activation.php)2
-rw-r--r--apps/calendar/ajax/calendar/delete.php (renamed from apps/calendar/ajax/deletecalendar.php)2
-rw-r--r--apps/calendar/ajax/calendar/edit.form.php (renamed from apps/calendar/ajax/editcalendar.php)2
-rw-r--r--apps/calendar/ajax/calendar/edit.php20
-rw-r--r--apps/calendar/ajax/calendar/new.form.php (renamed from apps/calendar/ajax/newcalendar.php)2
-rw-r--r--apps/calendar/ajax/calendar/new.php (renamed from apps/calendar/ajax/createcalendar.php)2
-rw-r--r--apps/calendar/ajax/calendar/overview.php (renamed from apps/calendar/ajax/choosecalendar.php)2
-rw-r--r--apps/calendar/ajax/calendar/update.php (renamed from apps/calendar/ajax/updatecalendar.php)12
-rw-r--r--apps/calendar/ajax/changeview.php13
-rw-r--r--apps/calendar/ajax/event/delete.php (renamed from apps/calendar/ajax/deleteevent.php)2
-rw-r--r--apps/calendar/ajax/event/edit.form.php (renamed from apps/calendar/ajax/editeventform.php)14
-rw-r--r--apps/calendar/ajax/event/edit.php (renamed from apps/calendar/ajax/editevent.php)2
-rw-r--r--apps/calendar/ajax/event/move.php (renamed from apps/calendar/ajax/moveevent.php)2
-rw-r--r--apps/calendar/ajax/event/new.form.php (renamed from apps/calendar/ajax/neweventform.php)2
-rw-r--r--apps/calendar/ajax/event/new.php (renamed from apps/calendar/ajax/newevent.php)2
-rw-r--r--apps/calendar/ajax/event/resize.php (renamed from apps/calendar/ajax/resizeevent.php)2
-rwxr-xr-xapps/calendar/ajax/events.php2
-rw-r--r--apps/calendar/ajax/import/dialog.php (renamed from apps/calendar/ajax/importdialog.php)2
-rw-r--r--apps/calendar/ajax/import/import.php120
-rw-r--r--apps/calendar/ajax/settings/gettimezonedetection.php (renamed from apps/calendar/ajax/gettimezonedetection.php)2
-rwxr-xr-xapps/calendar/ajax/settings/guesstimezone.php (renamed from apps/calendar/ajax/guesstimezone.php)2
-rw-r--r--apps/calendar/ajax/settings/settimeformat.php (renamed from apps/calendar/ajax/settimeformat.php)2
-rw-r--r--apps/calendar/ajax/settings/settimezone.php (renamed from apps/calendar/ajax/settimezone.php)2
-rw-r--r--apps/calendar/ajax/settings/timeformat.php (renamed from apps/calendar/ajax/timeformat.php)2
-rw-r--r--apps/calendar/ajax/settings/timezonedetection.php (renamed from apps/calendar/ajax/timezonedetection.php)2
-rw-r--r--apps/calendar/ajax/share/changepermission.php40
-rw-r--r--apps/calendar/ajax/share/dropdown.php18
-rw-r--r--apps/calendar/ajax/share/share.php51
-rw-r--r--apps/calendar/ajax/share/unshare.php44
-rw-r--r--apps/calendar/js/calendar.js22
-rwxr-xr-xapps/calendar/js/geo.js2
-rw-r--r--apps/calendar/js/loader.js6
-rw-r--r--apps/calendar/js/settings.js10
-rw-r--r--apps/calendar/templates/part.editevent.php4
-rw-r--r--apps/calendar/templates/part.eventform.php7
-rw-r--r--apps/calendar/templates/part.newevent.php2
-rw-r--r--apps/contacts/css/contacts.css4
-rw-r--r--apps/contacts/js/contacts.js6
-rwxr-xr-xapps/files_pdfviewer/appinfo/info.xml3
-rw-r--r--apps/files_sharing/css/sharing.css3
-rw-r--r--apps/files_sharing/js/share.js2
-rw-r--r--apps/files_texteditor/css/style.css6
-rw-r--r--apps/files_texteditor/js/editor.js5
-rw-r--r--apps/gallery/css/styles.css6
-rw-r--r--apps/gallery/lib/photo.php1
-rw-r--r--apps/media/js/collection.js24
-rw-r--r--apps/media/js/loader.js4
-rw-r--r--apps/media/js/music.js12
-rw-r--r--apps/media/js/playlist.js8
-rw-r--r--apps/media/js/scanner.js8
-rwxr-xr-xconfig/config.sample.php2
-rw-r--r--core/css/styles.css13
-rw-r--r--core/js/js.js22
-rw-r--r--core/templates/layout.user.php4
-rw-r--r--db_structure.xml12
-rw-r--r--files/js/files.js7
-rw-r--r--lib/base.php33
-rw-r--r--lib/db.php3
-rw-r--r--lib/filecache.php2
-rw-r--r--lib/fileproxy/quota.php30
-rw-r--r--lib/group/database.php2
-rw-r--r--lib/template.php22
-rw-r--r--lib/user.php5
-rw-r--r--lib/util.php2
-rw-r--r--settings/ajax/setquota.php22
-rw-r--r--settings/css/settings.css10
-rw-r--r--settings/js/users.js116
-rw-r--r--settings/templates/users.php40
-rw-r--r--settings/users.php11
84 files changed, 803 insertions, 423 deletions
diff --git a/apps/bookmarks/addBm.php b/apps/bookmarks/addBm.php
index f56022c42c2..861b677222d 100644
--- a/apps/bookmarks/addBm.php
+++ b/apps/bookmarks/addBm.php
@@ -28,19 +28,6 @@ OC_Util::checkLoggedIn();
OC_Util::checkAppEnabled('bookmarks');
require_once('bookmarksHelper.php');
+addBookmark($_GET['url'], '', 'Read-Later');
-OC_App::setActiveNavigationEntry( 'bookmarks_index' );
-
-OC_Util::addScript('bookmarks','addBm');
-OC_Util::addStyle('bookmarks', 'bookmarks');
-
-$tmpl = new OC_Template( 'bookmarks', 'addBm', 'user' );
-
-$url = isset($_GET['url']) ? urldecode($_GET['url']) : '';
-$metadata = getURLMetadata($url);
-
-$tmpl->assign('URL', htmlentities($metadata['url'],ENT_COMPAT,'utf-8'));
-$title = isset($metadata['title']) ? $metadata['title'] : (isset($_GET['title']) ? $_GET['title'] : '');
-$tmpl->assign('TITLE', htmlentities($title,ENT_COMPAT,'utf-8'));
-
-$tmpl->printPage();
+include 'templates/addBm.php';
diff --git a/apps/bookmarks/ajax/addBookmark.php b/apps/bookmarks/ajax/addBookmark.php
index 45b16ae5fa6..8cda7f0f060 100644
--- a/apps/bookmarks/ajax/addBookmark.php
+++ b/apps/bookmarks/ajax/addBookmark.php
@@ -30,50 +30,6 @@ require_once('../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('bookmarks');
-$CONFIG_DBTYPE = OC_Config::getValue( "dbtype", "sqlite" );
-if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){
- $_ut = "strftime('%s','now')";
-} elseif($CONFIG_DBTYPE == 'pgsql') {
- $_ut = 'date_part(\'epoch\',now())::integer';
-} else {
- $_ut = "UNIX_TIMESTAMP()";
-}
-
-//FIXME: Detect when user adds a known URL
-$query = OC_DB::prepare("
- INSERT INTO *PREFIX*bookmarks
- (url, title, user_id, public, added, lastmodified)
- VALUES (?, ?, ?, 0, $_ut, $_ut)
- ");
-
-
-$params=array(
- htmlspecialchars_decode($_GET["url"]),
- htmlspecialchars_decode($_GET["title"]),
- OC_User::getUser()
- );
-$query->execute($params);
-
-$b_id = OC_DB::insertid('*PREFIX*bookmarks');
-
-
-if($b_id !== false) {
- $query = OC_DB::prepare("
- INSERT INTO *PREFIX*bookmarks_tags
- (bookmark_id, tag)
- VALUES (?, ?)
- ");
-
- $tags = explode(' ', urldecode($_GET["tags"]));
- foreach ($tags as $tag) {
- if(empty($tag)) {
- //avoid saving blankspaces
- continue;
- }
- $params = array($b_id, trim($tag));
- $query->execute($params);
- }
-
- OC_JSON::success(array('data' => $b_id));
-}
-
+require_once('../bookmarksHelper.php');
+$id = addBookmark($_GET['url'], $_GET['title'], $_GET['tags']);
+OC_JSON::success(array('data' => $id)); \ No newline at end of file
diff --git a/apps/bookmarks/ajax/getMeta.php b/apps/bookmarks/ajax/getMeta.php
deleted file mode 100644
index ca797315ef4..00000000000
--- a/apps/bookmarks/ajax/getMeta.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?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/>.
-*
-*/
-
-//no apps or filesystem
-$RUNTIME_NOSETUPFS=true;
-
-require_once('../../../lib/base.php');
-
-// Check if we are a user
-OC_JSON::checkLoggedIn();
-OC_JSON::checkAppEnabled('bookmarks');
-
-// $metadata = array();
-
-require '../bookmarksHelper.php';
-$metadata = getURLMetadata(htmlspecialchars_decode($_GET["url"]));
-
-
-OC_JSON::success(array('data' => $metadata));
diff --git a/apps/bookmarks/appinfo/app.php b/apps/bookmarks/appinfo/app.php
index 479d8ed4767..a1f6139d89b 100644
--- a/apps/bookmarks/appinfo/app.php
+++ b/apps/bookmarks/appinfo/app.php
@@ -1,6 +1,6 @@
<?php
/**
-* Copyright (c) 2011 Marvin Thomas Rabe <m.rabe@echtzeitraum.de>
+* Copyright (c) 2011 Marvin Thomas Rabe <mrabe@marvinrabe.de>
* Copyright (c) 2011 Arthur Schiwon <blizzz@arthur-schiwon.de>
* This file is licensed under the Affero General Public License version 3 or
* later.
diff --git a/apps/bookmarks/appinfo/database.xml b/apps/bookmarks/appinfo/database.xml
index fca38ad84b2..f2fc68e4b58 100644
--- a/apps/bookmarks/appinfo/database.xml
+++ b/apps/bookmarks/appinfo/database.xml
@@ -75,14 +75,6 @@
<sorting>descending</sorting>
</field>
</index>
-<!-- <index>
- <name>url</name>
- <unique>true</unique>
- <field>
- <name>url</name>
- <sorting>ascending</sorting>
- </field>
- </index>-->
</declaration>
</table>
diff --git a/apps/bookmarks/appinfo/info.xml b/apps/bookmarks/appinfo/info.xml
index 23aa6c219a9..862ab805a60 100644
--- a/apps/bookmarks/appinfo/info.xml
+++ b/apps/bookmarks/appinfo/info.xml
@@ -3,8 +3,8 @@
<id>bookmarks</id>
<name>Bookmarks</name>
<description>Bookmark manager for ownCloud</description>
- <version>0.1</version>
+ <version>0.2</version>
<licence>AGPL</licence>
- <author>Arthur Schiwon</author>
+ <author>Arthur Schiwon, Marvin Thomas Rabe</author>
<require>2</require>
</info> \ No newline at end of file
diff --git a/apps/bookmarks/bookmarksHelper.php b/apps/bookmarks/bookmarksHelper.php
index ac512fbc241..8def7401e2f 100644
--- a/apps/bookmarks/bookmarksHelper.php
+++ b/apps/bookmarks/bookmarksHelper.php
@@ -70,3 +70,55 @@ function getURLMetadata($url) {
return $metadata;
}
+
+function addBookmark($url, $title='', $tags='') {
+ $CONFIG_DBTYPE = OC_Config::getValue( "dbtype", "sqlite" );
+ if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ){
+ $_ut = "strftime('%s','now')";
+ } elseif($CONFIG_DBTYPE == 'pgsql') {
+ $_ut = 'date_part(\'epoch\',now())::integer';
+ } else {
+ $_ut = "UNIX_TIMESTAMP()";
+ }
+
+ //FIXME: Detect when user adds a known URL
+ $query = OC_DB::prepare("
+ INSERT INTO *PREFIX*bookmarks
+ (url, title, user_id, public, added, lastmodified)
+ VALUES (?, ?, ?, 0, $_ut, $_ut)
+ ");
+
+ if(empty($title)) {
+ $metadata = getURLMetadata($url);
+ $title = $metadata['title'];
+ }
+
+ $params=array(
+ htmlspecialchars_decode($url),
+ htmlspecialchars_decode($title),
+ OC_User::getUser()
+ );
+ $query->execute($params);
+
+ $b_id = OC_DB::insertid('*PREFIX*bookmarks');
+
+ if($b_id !== false) {
+ $query = OC_DB::prepare("
+ INSERT INTO *PREFIX*bookmarks_tags
+ (bookmark_id, tag)
+ VALUES (?, ?)
+ ");
+
+ $tags = explode(' ', urldecode($tags));
+ foreach ($tags as $tag) {
+ if(empty($tag)) {
+ //avoid saving blankspaces
+ continue;
+ }
+ $params = array($b_id, trim($tag));
+ $query->execute($params);
+ }
+
+ return $b_id;
+ }
+} \ No newline at end of file
diff --git a/apps/bookmarks/css/bookmarks.css b/apps/bookmarks/css/bookmarks.css
index 8dfdc8a07b9..b1139f2c346 100644
--- a/apps/bookmarks/css/bookmarks.css
+++ b/apps/bookmarks/css/bookmarks.css
@@ -1,4 +1,8 @@
-#content { overflow: auto; }
+#content { overflow: auto; height: 100%; }
+#firstrun { width: 80%; margin: 5em auto auto auto; text-align: center; font-weight:bold; font-size:1.5em; color:#777;}
+#firstrun small { display: block; font-weight: normal; font-size: 0.5em; margin-bottom: 1.5em; }
+#firstrun .button { font-size: 0.7em; }
+#firstrun #selections { font-size:0.8em; font-weight: normal; width: 100%; margin: 2em auto auto auto; clear: both; }
.bookmarks_headline {
font-size: large;
@@ -12,11 +16,6 @@
padding: 0.5ex;
}
-.bookmarks_add {
- display: none;
- margin-top: 45px;
-}
-
.bookmarks_list {
margin-top: 36px;
}
@@ -32,7 +31,7 @@
}
.bookmarks_input {
- width: 20em;
+ width: 8em;
}
.bookmark_actions {
@@ -84,16 +83,3 @@
display: none;
margin-left: 5px;
}
-
-#footer {
- color: #999;
- font-size: medium;
- text-align: center;
- position: absolute;
- bottom: 10px;
- left: 0px;
- width: 100%;
- height: 20px;
- visibility: visible;
- display: block
-}
diff --git a/apps/bookmarks/js/addBm.js b/apps/bookmarks/js/addBm.js
index 6e13b59bb2e..d64e55e8920 100644
--- a/apps/bookmarks/js/addBm.js
+++ b/apps/bookmarks/js/addBm.js
@@ -4,13 +4,12 @@ $(document).ready(function() {
function addBookmark(event) {
var url = $('#bookmark_add_url').val();
- var title = $('#bookmark_add_title').val();
var tags = $('#bookmark_add_tags').val();
$.ajax({
url: 'ajax/addBookmark.php',
- data: 'url=' + encodeURI(url) + '&title=' + encodeURI(title) + '&tags=' + encodeURI(tags),
+ data: 'url=' + encodeURI(url) + '&tags=' + encodeURI(tags),
success: function(data){
- location.href='index.php';
+ window.close();
}
});
} \ No newline at end of file
diff --git a/apps/bookmarks/js/bookmarks.js b/apps/bookmarks/js/bookmarks.js
index fadbbd5513a..7317a154a76 100644
--- a/apps/bookmarks/js/bookmarks.js
+++ b/apps/bookmarks/js/bookmarks.js
@@ -3,19 +3,12 @@ var bookmarks_loading = false;
var bookmarks_sorting = 'bookmarks_sorting_recent';
-$(document).ready(function() {
- $('.bookmarks_addBtn').click(function(event){
- $('.bookmarks_add').slideToggle();
- });
-
+$(document).ready(function() {
$('#bookmark_add_submit').click(addOrEditBookmark);
$(window).scroll(updateOnBottom);
- $('#bookmark_add_url').focusout(getMetadata);
-
$('.bookmarks_list').empty();
getBookmarks();
-
});
function getBookmarks() {
@@ -35,6 +28,10 @@ function getBookmarks() {
for(var i in bookmarks.data) {
updateBookmarksList(bookmarks.data[i]);
+ $("#firstrun").hide();
+ }
+ if($('.bookmarks_list').is(':empty')) {
+ $("#firstrun").show();
}
$('.bookmark_link').click(recordClick);
@@ -46,20 +43,6 @@ function getBookmarks() {
});
}
-function getMetadata() {
- var url = encodeEntities($('#bookmark_add_url').val());
- $('.loading_meta').css('display','inline');
- $.ajax({
- url: 'ajax/getMeta.php',
- data: 'url=' + encodeURIComponent(url),
- success: function(pageinfo){
- $('#bookmark_add_url').val(pageinfo.data.url);
- $('#bookmark_add_title').val(pageinfo.data.title);
- $('.loading_meta').css('display','none');
- }
- });
-}
-
// function addBookmark() {
// Instead of creating editBookmark() function, Converted the one above to
// addOrEditBookmark() to make .js file more compact.
@@ -69,35 +52,17 @@ function addOrEditBookmark(event) {
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> ';
- }
+ $("#firstrun").hide();
if (id == 0) {
$.ajax({
url: 'ajax/addBookmark.php',
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_actions">' +
- '<span class="bookmark_delete">' +
- '<img class="svg" src="'+OC.imagePath('core', 'actions/delete')+'" title="Delete">' +
- '</span>&nbsp;' +
- '<span class="bookmark_edit">' +
- '<img class="svg" src="'+OC.imagePath('core', 'actions/rename')+'" title="Edit">' +
- '</span>' +
- '</p>' +
- '<p class="bookmark_title"><a href="' + url + '" target="_blank" class="bookmark_link">' + title + '</a></p>' +
- '<p class="bookmark_tags">' + tagshtml + '</p>' +
- '<p class="bookmark_url">' + url + '</p>' +
- '</div>'
- );
+ $('.bookmarks_input').val('');
+ $('.bookmarks_list').empty();
+ bookmarks_page = 0;
+ getBookmarks();
}
});
}
@@ -106,18 +71,11 @@ function addOrEditBookmark(event) {
url: 'ajax/editBookmark.php',
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('');
+ $('.bookmarks_input').val('');
$('#bookmark_add_id').val('0');
-
- var record = $('.bookmark_single[data-id = "' + id + '"]');
- record.children('.bookmark_url:first').text(url);
-
- var record_title = record.children('.bookmark_title:first').children('a:first');
- record_title.attr('href', url);
- record_title.text(title);
-
- record.children('.bookmark_tags:first').html(tagshtml);
+ $('.bookmarks_list').empty();
+ bookmarks_page = 0;
+ getBookmarks();
}
});
}
@@ -129,7 +87,12 @@ function delBookmark(event) {
$.ajax({
url: 'ajax/delBookmark.php',
data: 'url=' + encodeURI($(this).parent().parent().children('.bookmark_url:first').text()),
- success: function(data){ record.animate({ opacity: 'hide' }, 'fast'); }
+ success: function(data){
+ record.remove();
+ if($('.bookmarks_list').is(':empty')) {
+ $("#firstrun").show();
+ }
+ }
});
}
@@ -159,15 +122,16 @@ function updateBookmarksList(bookmark) {
if(!hasProtocol(bookmark.url)) {
bookmark.url = 'http://' + bookmark.url;
}
+ if(bookmark.title == '') bookmark.title = bookmark.url;
$('.bookmarks_list').append(
'<div class="bookmark_single" data-id="' + bookmark.id +'" >' +
'<p class="bookmark_actions">' +
- '<span class="bookmark_delete">' +
- '<img class="svg" src="'+OC.imagePath('core', 'actions/delete')+'" title="Delete">' +
- '</span>&nbsp;' +
'<span class="bookmark_edit">' +
'<img class="svg" src="'+OC.imagePath('core', 'actions/rename')+'" title="Edit">' +
'</span>' +
+ '<span class="bookmark_delete">' +
+ '<img class="svg" src="'+OC.imagePath('core', 'actions/delete')+'" title="Delete">' +
+ '</span>&nbsp;' +
'</p>' +
'<p class="bookmark_title">'+
'<a href="' + encodeEntities(bookmark.url) + '" target="_blank" class="bookmark_link">' + encodeEntities(bookmark.title) + '</a>' +
diff --git a/apps/bookmarks/settings.php b/apps/bookmarks/settings.php
index 0ace04fa2c8..9d945f64dad 100644
--- a/apps/bookmarks/settings.php
+++ b/apps/bookmarks/settings.php
@@ -1,6 +1,6 @@
<?php
/**
- * Copyright (c) 2011 Marvin Thomas Rabe <m.rabe@echtzeitraum.de>
+ * Copyright (c) 2011 Marvin Thomas Rabe <mrabe@marvinrabe.de>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
@@ -8,6 +8,4 @@
$tmpl = new OC_Template( 'bookmarks', 'settings');
-//OC_Util::addScript('bookmarks','settings');
-
return $tmpl->fetchPage();
diff --git a/apps/bookmarks/templates/addBm.php b/apps/bookmarks/templates/addBm.php
index c285c3579c5..dbe673f53a8 100644
--- a/apps/bookmarks/templates/addBm.php
+++ b/apps/bookmarks/templates/addBm.php
@@ -1,7 +1,11 @@
-<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('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>
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Read later - ownCloud</title>
+ <link rel="stylesheet" href="css/readlater.css">
+ </head>
+ <body>
+ <div class="message"><h1>Saved!</h1></div>
+ </body>
+</html> \ No newline at end of file
diff --git a/apps/bookmarks/templates/bookmarklet.php b/apps/bookmarks/templates/bookmarklet.php
new file mode 100644
index 00000000000..3d8bbcc7b31
--- /dev/null
+++ b/apps/bookmarks/templates/bookmarklet.php
@@ -0,0 +1,8 @@
+<?php
+
+function createBookmarklet() {
+ $l = new OC_L10N('bookmarks');
+ echo '<small>' . $l->t('Drag this to your browser bookmarks and click it, when you want to bookmark a webpage quickly:') . '</small>'
+ . '<a class="button" href="javascript:(function(){var a=window,b=document,c=encodeURIComponent,d=a.open(\'' . OC_Helper::linkToAbsolute('bookmarks', 'addBm.php') . '?output=popup&url=\'+c(b.location),\'bkmk_popup\',\'left=\'+((a.screenX||a.screenLeft)+10)+\',top=\'+((a.screenY||a.screenTop)+10)+\',height=230px,width=230px,resizable=1,alwaysRaised=1\');a.setTimeout(function(){d.focus()},300);})();">'
+ . $l->t('Read later') . '</a>';
+}
diff --git a/apps/bookmarks/templates/list.php b/apps/bookmarks/templates/list.php
index d44a0ecbcdb..1abdbb7f838 100644
--- a/apps/bookmarks/templates/list.php
+++ b/apps/bookmarks/templates/list.php
@@ -1,6 +1,6 @@
<?php
/**
- * Copyright (c) 2011 Marvin Thomas Rabe <m.rabe@echtzeitraum.de>
+ * Copyright (c) 2011 Marvin Thomas Rabe <mrabe@marvinrabe.de>
* Copyright (c) 2011 Arthur Schiwon <blizzz@arthur-schiwon.de>
* This file is licensed under the Affero General Public License version 3 or
* later.
@@ -9,21 +9,18 @@
?>
<input type="hidden" id="bookmarkFilterTag" value="<?php if(isset($_GET['tag'])) echo htmlentities($_GET['tag']); ?>" />
<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('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>
+ <input type="text" id="bookmark_add_url" placeholder="<?php echo $l->t('Address'); ?>" class="bookmarks_input" />
+ <input type="text" id="bookmark_add_title" placeholder="<?php echo $l->t('Title'); ?>" class="bookmarks_input" />
+ <input type="text" id="bookmark_add_tags" placeholder="<?php echo $l->t('Tags'); ?>" class="bookmarks_input" />
+ <input type="submit" value="<?php echo $l->t('Add bookmark'); ?>" id="bookmark_add_submit" />
</div>
<div class="bookmarks_list">
- <?php echo $l->t('You have no bookmarks'); ?>
</div>
-<div id="footer">
-Bookmark pages more easily. Drag this bookmarklet to the Bookmarks bar of your browser:
-<a style='background-color:#dddddd;border:1px groove #999; padding:5px;padding-top:0px;padding-bottom:2px; text-decoration:none; margin-top:5px' href='javascript:(function(){var a=window,b=document,c=encodeURIComponent,d=a.open("<?php echo OC_Helper::linkToAbsolute('bookmarks', 'addBm.php') ?>?output=popup&url="+c(b.location)+"&title="+c(b.title),"bkmk_popup","left="+((a.screenX||a.screenLeft)+10)+",top="+((a.screenY||a.screenTop)+10)+",height=510px,width=550px,resizable=1,alwaysRaised=1");a.setTimeout(function(){d.focus()},300)})();'>ownCloud bookmark</a>
+<div id="firstrun" style="display: none;">
+ <?php
+ echo $l->t('You have no bookmarks');
+ require_once('bookmarklet.php');
+ createBookmarklet();
+ ?>
</div>
diff --git a/apps/bookmarks/templates/settings.php b/apps/bookmarks/templates/settings.php
index a985ee9d61b..31edf7478bf 100644
--- a/apps/bookmarks/templates/settings.php
+++ b/apps/bookmarks/templates/settings.php
@@ -1,6 +1,6 @@
<?php
/**
- * Copyright (c) 2011 Marvin Thomas Rabe <m.rabe@echtzeitraum.de>
+ * Copyright (c) 2011 Marvin Thomas Rabe <mrabe@marvinrabe.de>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
@@ -8,7 +8,10 @@
?>
<form id="bookmarks">
<fieldset class="personalblock">
- <span class="bold"><?php echo $l->t('Bookmarklet:');?></span>&nbsp;<a class="bookmarks_addBml" href="javascript:(function(){url=encodeURIComponent(location.href);window.open('<?php echo OC_Helper::linkToAbsolute('bookmarks', 'addBm.php'); ?>?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 />
+ <span class="bold"><?php echo $l->t('Bookmarklet <br />');?></span>
+ <?php
+ require_once('bookmarklet.php');
+ createBookmarklet();
+ ?>
</fieldset>
</form>
diff --git a/apps/calendar/ajax/activation.php b/apps/calendar/ajax/calendar/activation.php
index ada2e44547b..7677d85aff3 100644
--- a/apps/calendar/ajax/activation.php
+++ b/apps/calendar/ajax/calendar/activation.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once ("../../../lib/base.php");
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('calendar');
$calendarid = $_POST['calendarid'];
diff --git a/apps/calendar/ajax/deletecalendar.php b/apps/calendar/ajax/calendar/delete.php
index 901cbbfcb08..a2f5311731c 100644
--- a/apps/calendar/ajax/deletecalendar.php
+++ b/apps/calendar/ajax/calendar/delete.php
@@ -5,7 +5,7 @@
* later.
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('calendar');
diff --git a/apps/calendar/ajax/editcalendar.php b/apps/calendar/ajax/calendar/edit.form.php
index 7aeb5bbe305..8922b3eba4e 100644
--- a/apps/calendar/ajax/editcalendar.php
+++ b/apps/calendar/ajax/calendar/edit.form.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('calendar');
diff --git a/apps/calendar/ajax/calendar/edit.php b/apps/calendar/ajax/calendar/edit.php
new file mode 100644
index 00000000000..8922b3eba4e
--- /dev/null
+++ b/apps/calendar/ajax/calendar/edit.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
+ * 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();
+OC_JSON::checkAppEnabled('calendar');
+
+$calendarcolor_options = OC_Calendar_Calendar::getCalendarColorOptions();
+$calendar = OC_Calendar_App::getCalendar($_GET['calendarid']);
+$tmpl = new OC_Template("calendar", "part.editcalendar");
+$tmpl->assign('new', false);
+$tmpl->assign('calendarcolor_options', $calendarcolor_options);
+$tmpl->assign('calendar', $calendar);
+$tmpl->printPage();
+?>
diff --git a/apps/calendar/ajax/newcalendar.php b/apps/calendar/ajax/calendar/new.form.php
index af3ba4fbbea..6e7423cbe92 100644
--- a/apps/calendar/ajax/newcalendar.php
+++ b/apps/calendar/ajax/calendar/new.form.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
$l10n = new OC_L10N('calendar');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('calendar');
diff --git a/apps/calendar/ajax/createcalendar.php b/apps/calendar/ajax/calendar/new.php
index 8d7b12f9b89..228e6247724 100644
--- a/apps/calendar/ajax/createcalendar.php
+++ b/apps/calendar/ajax/calendar/new.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
// Check if we are a user
OC_JSON::checkLoggedIn();
diff --git a/apps/calendar/ajax/choosecalendar.php b/apps/calendar/ajax/calendar/overview.php
index 9281c8edbdc..2f73f5d0710 100644
--- a/apps/calendar/ajax/choosecalendar.php
+++ b/apps/calendar/ajax/calendar/overview.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
$l10n = new OC_L10N('calendar');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('calendar');
diff --git a/apps/calendar/ajax/updatecalendar.php b/apps/calendar/ajax/calendar/update.php
index 20c225d8a29..f400c8c14b4 100644
--- a/apps/calendar/ajax/updatecalendar.php
+++ b/apps/calendar/ajax/calendar/update.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
// Check if we are a user
OC_JSON::checkLoggedIn();
@@ -25,16 +25,8 @@ foreach($calendars as $cal){
}
$calendarid = $_POST['id'];
-$calendarcolor = $_POST['color'];
-if (preg_match('/^#?([0-9a-f]{6})/', $calendarcolor, $matches)) {
- $calendarcolor = '#'.$matches[1];
-}
-else {
- $calendarcolor = null;
-}
-
$calendar = OC_Calendar_App::getCalendar($calendarid);//access check
-OC_Calendar_Calendar::editCalendar($calendarid, strip_tags($_POST['name']), null, null, null, $calendarcolor);
+OC_Calendar_Calendar::editCalendar($calendarid, strip_tags($_POST['name']), null, null, null, $_POST['color']);
OC_Calendar_Calendar::setCalendarActive($calendarid, $_POST['active']);
$calendar = OC_Calendar_App::getCalendar($calendarid);
diff --git a/apps/calendar/ajax/changeview.php b/apps/calendar/ajax/changeview.php
index ef05c7cd496..ae48b229b16 100644
--- a/apps/calendar/ajax/changeview.php
+++ b/apps/calendar/ajax/changeview.php
@@ -9,7 +9,16 @@
require_once ("../../../lib/base.php");
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('calendar');
-$currentview = $_GET["v"];
-OC_Preferences::setValue(OC_USER::getUser(), "calendar", "currentview", $currentview);
+$view = $_GET['v'];
+switch($view){
+ case 'agendaWeek':
+ case 'month';
+ case 'list':
+ break;
+ default:
+ OC_JSON::error(array('message'=>'unexspected parameter: ' . $view));
+ exit;
+}
+OC_Preferences::setValue(OC_USER::getUser(), 'calendar', 'currentview', $view);
OC_JSON::success();
?>
diff --git a/apps/calendar/ajax/deleteevent.php b/apps/calendar/ajax/event/delete.php
index b25a5af1a29..862dec6bf5b 100644
--- a/apps/calendar/ajax/deleteevent.php
+++ b/apps/calendar/ajax/event/delete.php
@@ -5,7 +5,7 @@
* later.
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
$l10n = new OC_L10N('calendar');
diff --git a/apps/calendar/ajax/editeventform.php b/apps/calendar/ajax/event/edit.form.php
index 19f6a80a167..837edbbbf05 100644
--- a/apps/calendar/ajax/editeventform.php
+++ b/apps/calendar/ajax/event/edit.form.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
if(!OC_USER::isLoggedIn()) {
die('<script type="text/javascript">document.location = oc_webroot;</script>');
@@ -243,16 +243,6 @@ if($repeat['repeat'] != 'doesnotrepeat'){
$tmpl->assign('repeat_bymonth', $repeat['bymonth']);
$tmpl->assign('repeat_byweekno', $repeat['byweekno']);
}
-else {
- $tmpl->assign('repeat_month', 'monthday');
- $tmpl->assign('repeat_weekdays', array());
- $tmpl->assign('repeat_interval', 1);
- $tmpl->assign('repeat_end', 'never');
- $tmpl->assign('repeat_count', '10');
- $tmpl->assign('repeat_weekofmonth', 'auto');
- $tmpl->assign('repeat_date', '');
- $tmpl->assign('repeat_year', 'bydate');
-}
$tmpl->printpage();
-?>
+?> \ No newline at end of file
diff --git a/apps/calendar/ajax/editevent.php b/apps/calendar/ajax/event/edit.php
index 5a487da1758..64daffddef0 100644
--- a/apps/calendar/ajax/editevent.php
+++ b/apps/calendar/ajax/event/edit.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('calendar');
diff --git a/apps/calendar/ajax/moveevent.php b/apps/calendar/ajax/event/move.php
index f2256d4eee6..8150fdbaa32 100644
--- a/apps/calendar/ajax/moveevent.php
+++ b/apps/calendar/ajax/event/move.php
@@ -5,7 +5,7 @@
* later.
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
$id = $_POST['id'];
diff --git a/apps/calendar/ajax/neweventform.php b/apps/calendar/ajax/event/new.form.php
index 3870c879b0e..c19928a727e 100644
--- a/apps/calendar/ajax/neweventform.php
+++ b/apps/calendar/ajax/event/new.form.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
if(!OC_USER::isLoggedIn()) {
die('<script type="text/javascript">document.location = oc_webroot;</script>');
diff --git a/apps/calendar/ajax/newevent.php b/apps/calendar/ajax/event/new.php
index c7c4d29943a..59fda79da73 100644
--- a/apps/calendar/ajax/newevent.php
+++ b/apps/calendar/ajax/event/new.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
$l10n = new OC_L10N('calendar');
diff --git a/apps/calendar/ajax/resizeevent.php b/apps/calendar/ajax/event/resize.php
index 68347906529..aa2d420e77d 100644
--- a/apps/calendar/ajax/resizeevent.php
+++ b/apps/calendar/ajax/event/resize.php
@@ -5,7 +5,7 @@
* later.
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
$id = $_POST['id'];
diff --git a/apps/calendar/ajax/events.php b/apps/calendar/ajax/events.php
index 7734129bd95..1436f634316 100755
--- a/apps/calendar/ajax/events.php
+++ b/apps/calendar/ajax/events.php
@@ -7,7 +7,7 @@
*/
require_once ('../../../lib/base.php');
-require_once('../../../3rdparty/when/When.php');
+require_once('when/When.php');
function create_return_event($event, $vevent){
$return_event = array();
diff --git a/apps/calendar/ajax/importdialog.php b/apps/calendar/ajax/import/dialog.php
index f6b8453fc22..2e002092150 100644
--- a/apps/calendar/ajax/importdialog.php
+++ b/apps/calendar/ajax/import/dialog.php
@@ -6,7 +6,7 @@
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_Util::checkAppEnabled('calendar');
$l10n = new OC_L10N('calendar');
diff --git a/apps/calendar/ajax/import/import.php b/apps/calendar/ajax/import/import.php
new file mode 100644
index 00000000000..96d7af48341
--- /dev/null
+++ b/apps/calendar/ajax/import/import.php
@@ -0,0 +1,120 @@
+<?php
+/**
+ * Copyright (c) 2012 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.
+ */
+//check for calendar rights or create new one
+ob_start();
+require_once('../../../../lib/base.php');
+OC_JSON::checkLoggedIn();
+OC_Util::checkAppEnabled('calendar');
+$nl = "\n";
+$progressfile = OC::$SERVERROOT . '/apps/calendar/import_tmp/' . md5(session_id()) . '.txt';
+if(is_writable('import_tmp/')){
+ $progressfopen = fopen($progressfile, 'w');
+ fwrite($progressfopen, '10');
+ fclose($progressfopen);
+}
+$file = OC_Filesystem::file_get_contents($_POST['path'] . '/' . $_POST['file']);
+if($_POST['method'] == 'new'){
+ $id = OC_Calendar_Calendar::addCalendar(OC_User::getUser(), $_POST['calname']);
+ OC_Calendar_Calendar::setCalendarActive($id, 1);
+}else{
+ $calendar = OC_Calendar_App::getCalendar($_POST['id']);
+ if($calendar['userid'] != OC_USER::getUser()){
+ OC_JSON::error();
+ exit();
+ }
+ $id = $_POST['id'];
+}
+//analyse the calendar file
+if(is_writable('import_tmp/')){
+ $progressfopen = fopen($progressfile, 'w');
+ fwrite($progressfopen, '20');
+ fclose($progressfopen);
+}
+$searchfor = array('VEVENT', 'VTODO', 'VJOURNAL');
+$parts = $searchfor;
+$filearr = explode($nl, $file);
+$inelement = false;
+$parts = array();
+$i = 0;
+foreach($filearr as $line){
+ foreach($searchfor as $search){
+ if(substr_count($line, $search) == 1){
+ list($attr, $val) = explode(':', $line);
+ if($attr == 'BEGIN'){
+ $parts[]['begin'] = $i;
+ $inelement = true;
+ }
+ if($attr == 'END'){
+ $parts[count($parts) - 1]['end'] = $i;
+ $inelement = false;
+ }
+ }
+ }
+ $i++;
+}
+//import the calendar
+if(is_writable('import_tmp/')){
+ $progressfopen = fopen($progressfile, 'w');
+ fwrite($progressfopen, '40');
+ fclose($progressfopen);
+}
+$start = '';
+for ($i = 0; $i < $parts[0]['begin']; $i++) {
+ if($i == 0){
+ $start = $filearr[0];
+ }else{
+ $start .= $nl . $filearr[$i];
+ }
+}
+$end = '';
+for($i = $parts[count($parts) - 1]['end'] + 1;$i <= count($filearr) - 1; $i++){
+ if($i == $parts[count($parts) - 1]['end'] + 1){
+ $end = $filearr[$parts[count($parts) - 1]['end'] + 1];
+ }else{
+ $end .= $nl . $filearr[$i];
+ }
+}
+if(is_writable('import_tmp/')){
+ $progressfopen = fopen($progressfile, 'w');
+ fwrite($progressfopen, '50');
+ fclose($progressfopen);
+}
+$importready = array();
+foreach($parts as $part){
+ for($i = $part['begin']; $i <= $part['end'];$i++){
+ if($i == $part['begin']){
+ $content = $filearr[$i];
+ }else{
+ $content .= $nl . $filearr[$i];
+ }
+ }
+ $importready[] = $start . $nl . $content . $nl . $end;
+}
+if(is_writable('import_tmp/')){
+ $progressfopen = fopen($progressfile, 'w');
+ fwrite($progressfopen, '70');
+ fclose($progressfopen);
+}
+if(count($parts) == 1){
+ OC_Calendar_Object::add($id, $file);
+}else{
+ foreach($importready as $import){
+ OC_Calendar_Object::add($id, $import);
+ }
+}
+//done the import
+if(is_writable('import_tmp/')){
+ $progressfopen = fopen($progressfile, 'w');
+ fwrite($progressfopen, '100');
+ fclose($progressfopen);
+}
+sleep(3);
+if(is_writable('import_tmp/')){
+ unlink($progressfile);
+}
+OC_JSON::success(); \ No newline at end of file
diff --git a/apps/calendar/ajax/gettimezonedetection.php b/apps/calendar/ajax/settings/gettimezonedetection.php
index ae58370712d..11255fe8ef3 100644
--- a/apps/calendar/ajax/gettimezonedetection.php
+++ b/apps/calendar/ajax/settings/gettimezonedetection.php
@@ -5,7 +5,7 @@
* later.
* See the COPYING-README file.
*/
-require_once ("../../../lib/base.php");
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('calendar');
OC_JSON::success(array('detection' => OC_Preferences::getValue(OC_USER::getUser(), 'calendar', 'timezonedetection'))); \ No newline at end of file
diff --git a/apps/calendar/ajax/guesstimezone.php b/apps/calendar/ajax/settings/guesstimezone.php
index 41aea26985f..cfa92e1aee8 100755
--- a/apps/calendar/ajax/guesstimezone.php
+++ b/apps/calendar/ajax/settings/guesstimezone.php
@@ -18,7 +18,7 @@ function make_array_out_of_xml ($xml){
}
return $returnarray;
}
-require_once ("../../../lib/base.php");
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('calendar');
$l = new OC_L10N('calendar');
diff --git a/apps/calendar/ajax/settimeformat.php b/apps/calendar/ajax/settings/settimeformat.php
index 7805120ba5e..8f65447065c 100644
--- a/apps/calendar/ajax/settimeformat.php
+++ b/apps/calendar/ajax/settings/settimeformat.php
@@ -5,7 +5,7 @@
* later.
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
if(isset($_POST["timeformat"])){
OC_Preferences::setValue(OC_User::getUser(), 'calendar', 'timeformat', $_POST["timeformat"]);
diff --git a/apps/calendar/ajax/settimezone.php b/apps/calendar/ajax/settings/settimezone.php
index c726a11471d..c639753fe2f 100644
--- a/apps/calendar/ajax/settimezone.php
+++ b/apps/calendar/ajax/settings/settimezone.php
@@ -7,7 +7,7 @@
*/
// Init owncloud
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
$l=new OC_L10N('calendar');
diff --git a/apps/calendar/ajax/timeformat.php b/apps/calendar/ajax/settings/timeformat.php
index 3533adcf8e0..e0dbe8d3cd7 100644
--- a/apps/calendar/ajax/timeformat.php
+++ b/apps/calendar/ajax/settings/timeformat.php
@@ -5,7 +5,7 @@
* later.
* See the COPYING-README file.
*/
-require_once('../../../lib/base.php');
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
$timeformat = OC_Preferences::getValue( OC_User::getUser(), 'calendar', 'timeformat', "24");
OC_JSON::encodedPrint(array("timeformat" => $timeformat));
diff --git a/apps/calendar/ajax/timezonedetection.php b/apps/calendar/ajax/settings/timezonedetection.php
index 77e4c4f6ebe..f67bab901e7 100644
--- a/apps/calendar/ajax/timezonedetection.php
+++ b/apps/calendar/ajax/settings/timezonedetection.php
@@ -5,7 +5,7 @@
* later.
* See the COPYING-README file.
*/
-require_once ("../../../lib/base.php");
+require_once('../../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('calendar');
if($_POST['timezonedetection'] == 'on'){
diff --git a/apps/calendar/ajax/share/changepermission.php b/apps/calendar/ajax/share/changepermission.php
new file mode 100644
index 00000000000..d91f87b613f
--- /dev/null
+++ b/apps/calendar/ajax/share/changepermission.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Copyright (c) 2012 Georg Ehrke <ownclouddev@georgswebsite.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');
+$id = strip_tags($_GET['id']);
+$idtype = strip_tags($_GET['idtype']);
+$permission = (int) strip_tags($_GET['permission']);
+switch($idtype){
+ case 'calendar':
+ case 'event':
+ break;
+ default:
+ OC_JSON::error(array('message'=>'unexspected parameter'));
+ exit;
+}
+$sharewith = $_GET['sharewith'];
+$sharetype = strip_tags($_GET['sharetype']);
+switch($sharetype){
+ case 'user':
+ case 'group':
+ case 'public':
+ break;
+ default:
+ OC_JSON::error(array('message'=>'unexspected parameter'));
+ exit;
+}
+if($sharetype == 'user' && !OC_User::userExists($sharewith)){
+ OC_JSON::error(array('message'=>'user not found'));
+ exit;
+}
+if($sharetype == 'group' && !OC_Group::groupExists($sharewith)){
+ OC_JSON::error(array('message'=>'group not found'));
+ exit;
+}
+$success = OC_Calendar_Share::changepermission($sharewith, $sharetype, $id, $permission, (($idtype=='calendar') ? OC_Calendar_Share::CALENDAR : OC_Calendar_Share::Event));
+OC_JSON::success(); \ No newline at end of file
diff --git a/apps/calendar/ajax/share/dropdown.php b/apps/calendar/ajax/share/dropdown.php
new file mode 100644
index 00000000000..eb396d38fd9
--- /dev/null
+++ b/apps/calendar/ajax/share/dropdown.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Copyright (c) 2012 Georg Ehrke <ownclouddev@georgswebsite.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');
+$user = OC_USER::getUser();
+$calid = $_GET['calid'];
+$calendar = OC_Calendar_Calendar::find($calid);
+if($calendar['userid'] != $user){
+ OC_JSON::error();
+ exit;
+}
+$tmpl = new OC_Template('calendar', 'share.dropdown');
+$tmpl->assign('calid', $calid);
+$tmpl->printPage(); \ No newline at end of file
diff --git a/apps/calendar/ajax/share/share.php b/apps/calendar/ajax/share/share.php
new file mode 100644
index 00000000000..d892727701a
--- /dev/null
+++ b/apps/calendar/ajax/share/share.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Copyright (c) 2012 Georg Ehrke <ownclouddev@georgswebsite.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');
+$id = strip_tags($_GET['id']);
+$idtype = strip_tags($_GET['idtype']);
+switch($idtype){
+ case 'calendar':
+ case 'event':
+ break;
+ default:
+ OC_JSON::error(array('message'=>'unexspected parameter'));
+ exit;
+}
+$sharewith = $_GET['sharewith'];
+$sharetype = strip_tags($_GET['sharetype']);
+switch($sharetype){
+ case 'user':
+ case 'group':
+ case 'public':
+ break;
+ default:
+ OC_JSON::error(array('message'=>'unexspected parameter'));
+ exit;
+}
+if($sharetype == 'user' && !OC_User::userExists($sharewith)){
+ OC_JSON::error(array('message'=>'user not found'));
+ exit;
+}
+if($sharetype == 'group' && !OC_Group::groupExists($sharewith)){
+ OC_JSON::error(array('message'=>'group not found'));
+ exit;
+}
+if($sharetype == 'user' && OC_User::getUser() == $sharewith){
+ OC_JSON::error(array('meesage'=>'you can not share with yourself'));
+}
+$success = OC_Calendar_Share::share(OC_User::getUser(), $sharewith, $sharetype, $id, (($idtype=='calendar') ? OC_Calendar_Share::CALENDAR : OC_Calendar_Share::Event));
+if($success){
+ if($sharetype == 'public'){
+ OC_JSON::success(array('message'=>$success));
+ }else{
+ OC_JSON::success(array('message'=>'shared'));
+ }
+}else{
+ OC_JSON::error(array('message'=>'can not share'));
+ exit;
+} \ No newline at end of file
diff --git a/apps/calendar/ajax/share/unshare.php b/apps/calendar/ajax/share/unshare.php
new file mode 100644
index 00000000000..ec3150a89aa
--- /dev/null
+++ b/apps/calendar/ajax/share/unshare.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Copyright (c) 2012 Georg Ehrke <ownclouddev@georgswebsite.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');
+$id = strip_tags($_GET['id']);
+$idtype = strip_tags($_GET['idtype']);
+switch($idtype){
+ case 'calendar':
+ case 'event':
+ break;
+ default:
+ OC_JSON::error(array('message'=>'unexspected parameter'));
+ exit;
+}
+$sharewith = $_GET['sharewith'];
+$sharetype = strip_tags($_GET['sharetype']);
+switch($sharetype){
+ case 'user':
+ case 'group':
+ case 'public':
+ break;
+ default:
+ OC_JSON::error(array('message'=>'unexspected parameter'));
+ exit;
+}
+if($sharetype == 'user' && !OC_User::userExists($sharewith)){
+ OC_JSON::error(array('message'=>'user not found'));
+ exit;
+}
+if($sharetype == 'group' && !OC_Group::groupExists($sharewith)){
+ OC_JSON::error(array('message'=>'group not found'));
+ exit;
+}
+$success = OC_Calendar_Share::unshare(OC_User::getUser(), $sharewith, $sharetype, $id, (($idtype=='calendar') ? OC_Calendar_Share::CALENDAR : OC_Calendar_Share::Event));
+if($success){
+ OC_JSON::success();
+}else{
+ OC_JSON::error(array('message'=>'can not unshare'));
+ exit;
+} \ No newline at end of file
diff --git a/apps/calendar/js/calendar.js b/apps/calendar/js/calendar.js
index ba8e293819a..84b76a3c88f 100644
--- a/apps/calendar/js/calendar.js
+++ b/apps/calendar/js/calendar.js
@@ -69,7 +69,7 @@ Calendar={
$('#event').dialog('destroy').remove();
}else{
Calendar.UI.loading(true);
- $('#dialog_holder').load(OC.filePath('calendar', 'ajax', 'neweventform.php'), {start:start, end:end, allday:allday?1:0}, Calendar.UI.startEventDialog);
+ $('#dialog_holder').load(OC.filePath('calendar', 'ajax/event', 'new.form.php'), {start:start, end:end, allday:allday?1:0}, Calendar.UI.startEventDialog);
}
},
editEvent:function(calEvent, jsEvent, view){
@@ -79,7 +79,7 @@ Calendar={
$('#event').dialog('destroy').remove();
}else{
Calendar.UI.loading(true);
- $('#dialog_holder').load(OC.filePath('calendar', 'ajax', 'editeventform.php') + '?id=' + id, Calendar.UI.startEventDialog);
+ $('#dialog_holder').load(OC.filePath('calendar', 'ajax/event', 'edit.form.php') + '?id=' + id, Calendar.UI.startEventDialog);
}
},
submitDeleteEventForm:function(url){
@@ -141,7 +141,7 @@ Calendar={
moveEvent:function(event, dayDelta, minuteDelta, allDay, revertFunc){
$('.tipsy').remove();
Calendar.UI.loading(true);
- $.post(OC.filePath('calendar', 'ajax', 'moveevent.php'), { id: event.id, dayDelta: dayDelta, minuteDelta: minuteDelta, allDay: allDay?1:0, lastmodified: event.lastmodified},
+ $.post(OC.filePath('calendar', 'ajax/event', 'move.php'), { id: event.id, dayDelta: dayDelta, minuteDelta: minuteDelta, allDay: allDay?1:0, lastmodified: event.lastmodified},
function(data) {
Calendar.UI.loading(false);
if (data.status == 'success'){
@@ -156,7 +156,7 @@ Calendar={
resizeEvent:function(event, dayDelta, minuteDelta, revertFunc){
$('.tipsy').remove();
Calendar.UI.loading(true);
- $.post(OC.filePath('calendar', 'ajax', 'resizeevent.php'), { id: event.id, dayDelta: dayDelta, minuteDelta: minuteDelta, lastmodified: event.lastmodified},
+ $.post(OC.filePath('calendar', 'ajax/event', 'resize.php'), { id: event.id, dayDelta: dayDelta, minuteDelta: minuteDelta, lastmodified: event.lastmodified},
function(data) {
Calendar.UI.loading(false);
if (data.status == 'success'){
@@ -373,7 +373,7 @@ Calendar={
$('#choosecalendar_dialog').dialog('moveToTop');
}else{
Calendar.UI.loading(true);
- $('#dialog_holder').load(OC.filePath('calendar', 'ajax', 'choosecalendar.php'), function(){
+ $('#dialog_holder').load(OC.filePath('calendar', 'ajax/calendar', 'overview.php'), function(){
$('#choosecalendar_dialog').dialog({
width : 600,
close : function(event, ui) {
@@ -387,7 +387,7 @@ Calendar={
activation:function(checkbox, calendarid)
{
Calendar.UI.loading(true);
- $.post(OC.filePath('calendar', 'ajax', 'activation.php'), { calendarid: calendarid, active: checkbox.checked?1:0 },
+ $.post(OC.filePath('calendar', 'ajax/calendar', 'activation.php'), { calendarid: calendarid, active: checkbox.checked?1:0 },
function(data) {
Calendar.UI.loading(false);
if (data.status == 'success'){
@@ -402,13 +402,13 @@ Calendar={
},
newCalendar:function(object){
var tr = $(document.createElement('tr'))
- .load(OC.filePath('calendar', 'ajax', 'newcalendar.php'),
+ .load(OC.filePath('calendar', 'ajax/calendar', 'new.form.php'),
function(){Calendar.UI.Calendar.colorPicker(this)});
$(object).closest('tr').after(tr).hide();
},
edit:function(object, calendarid){
var tr = $(document.createElement('tr'))
- .load(OC.filePath('calendar', 'ajax', 'editcalendar.php') + "?calendarid="+calendarid,
+ .load(OC.filePath('calendar', 'ajax/calendar', 'edit.form.php') + "?calendarid="+calendarid,
function(){Calendar.UI.Calendar.colorPicker(this)});
$(object).closest('tr').after(tr).hide();
},
@@ -417,7 +417,7 @@ Calendar={
if(check == false){
return false;
}else{
- $.post(OC.filePath('calendar', 'ajax', 'deletecalendar.php'), { calendarid: calid},
+ $.post(OC.filePath('calendar', 'ajax/calendar', 'delete.php'), { calendarid: calid},
function(data) {
if (data.status == 'success'){
var url = 'ajax/events.php?calendar_id='+calid;
@@ -442,9 +442,9 @@ Calendar={
var url;
if (calendarid == 'new'){
- url = OC.filePath('calendar', 'ajax', 'createcalendar.php');
+ url = OC.filePath('calendar', 'ajax/calendar', 'new.php');
}else{
- url = OC.filePath('calendar', 'ajax', 'updatecalendar.php');
+ url = OC.filePath('calendar', 'ajax/calendar', 'update.php');
}
$.post(url, { id: calendarid, name: displayname, active: active, description: description, color: calendarcolor },
function(data){
diff --git a/apps/calendar/js/geo.js b/apps/calendar/js/geo.js
index ae6a971e938..c9cc5dd0955 100755
--- a/apps/calendar/js/geo.js
+++ b/apps/calendar/js/geo.js
@@ -6,7 +6,7 @@
*/
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
- $.getJSON(OC.filePath('calendar', 'ajax', 'guesstimezone.php?lat=' + position.coords.latitude + '&long=' + position.coords.longitude + ''),
+ $.getJSON(OC.filePath('calendar', 'ajax/settings', 'guesstimezone.php?lat=' + position.coords.latitude + '&long=' + position.coords.longitude + ''),
function(data){
if (data.status == 'success' && typeof(data.message) != 'undefined'){
$('#notification').html(data.message);
diff --git a/apps/calendar/js/loader.js b/apps/calendar/js/loader.js
index 4e483f9864e..54003879759 100644
--- a/apps/calendar/js/loader.js
+++ b/apps/calendar/js/loader.js
@@ -8,7 +8,7 @@ Calendar_Import={
importdialog: function(filename){
var path = $('#dir').val();
$('body').append('<div id="calendar_import"></div>');
- $('#calendar_import').load(OC.filePath('calendar', 'ajax', 'importdialog.php'), {filename:filename, path:path}, function(){Calendar_Import.initdialog(filename);});
+ $('#calendar_import').load(OC.filePath('calendar', 'ajax/import', 'dialog.php'), {filename:filename, path:path}, function(){Calendar_Import.initdialog(filename);});
},
initdialog: function(filename){
$('#calendar_import_dialog').dialog({
@@ -68,7 +68,7 @@ Calendar_Import={
if(percent < 100){
window.setTimeout('Calendar_Import.getimportstatus(\'' + progressfile + '\')', 500);
}else{
- $('#import_done').css('display', 'block');
+ $('#import_done').css('display', 'block');
}
});
}
@@ -78,4 +78,4 @@ $(document).ready(function(){
FileActions.register('text/calendar','importcal', '', Calendar_Import.importdialog);
FileActions.setDefault('text/calendar','importcal');
};
-}); \ No newline at end of file
+});
diff --git a/apps/calendar/js/settings.js b/apps/calendar/js/settings.js
index 73300885565..fcbfc423db3 100644
--- a/apps/calendar/js/settings.js
+++ b/apps/calendar/js/settings.js
@@ -3,7 +3,7 @@ $(document).ready(function(){
OC.msg.startSaving('#calendar .msg')
// Serialize the data
var post = $( '#timezone' ).serialize();
- $.post( OC.filePath('calendar', 'ajax', 'settimezone.php'), post, function(data){
+ $.post( OC.filePath('calendar', 'ajax/settings', 'settimezone.php'), post, function(data){
//OC.msg.finishedSaving('#calendar .msg', data);
});
return false;
@@ -11,7 +11,7 @@ $(document).ready(function(){
$('#timezone').chosen();
$('#timeformat').change( function(){
var data = $('#timeformat').serialize();
- $.post( OC.filePath('calendar', 'ajax', 'settimeformat.php'), data, function(data){
+ $.post( OC.filePath('calendar', 'ajax/settings', 'settimeformat.php'), data, function(data){
if(data == 'error'){
console.log('saving timeformat failed');
}
@@ -19,15 +19,15 @@ $(document).ready(function(){
});
$('#timezonedetection').change( function(){
var post = $('#timezonedetection').serialize();
- $.post( OC.filePath('calendar', 'ajax', 'timezonedetection.php'), post, function(data){
+ $.post( OC.filePath('calendar', 'ajax/settings', 'timezonedetection.php'), post, function(data){
});
});
- $.getJSON(OC.filePath('calendar', 'ajax', 'timeformat.php'), function(jsondata, status) {
+ $.getJSON(OC.filePath('calendar', 'ajax/settings', 'timeformat.php'), function(jsondata, status) {
$('#' + jsondata.timeformat).attr('selected',true);
$('#timeformat').chosen();
});
- $.getJSON(OC.filePath('calendar', 'ajax', 'gettimezonedetection.php'), function(jsondata, status){
+ $.getJSON(OC.filePath('calendar', 'ajax/settings', 'gettimezonedetection.php'), function(jsondata, status){
if(jsondata.detection == 'true'){
$('#timezonedetection').attr('checked', 'checked');
}
diff --git a/apps/calendar/templates/part.editevent.php b/apps/calendar/templates/part.editevent.php
index b3acfc4a072..6e319e1b4e0 100644
--- a/apps/calendar/templates/part.editevent.php
+++ b/apps/calendar/templates/part.editevent.php
@@ -5,8 +5,8 @@
<?php echo $this->inc("part.eventform"); ?>
<div style="width: 100%;text-align: center;color: #FF1D1D;" id="errorbox"></div>
<span id="actions">
- <input type="button" class="submit" style="float: left;" value="<?php echo $l->t("Submit");?>" onclick="Calendar.UI.validateEventForm('ajax/editevent.php');">
- <input type="button" class="submit" style="float: left;" name="delete" value="<?php echo $l->t("Delete");?>" onclick="Calendar.UI.submitDeleteEventForm('ajax/deleteevent.php');">
+ <input type="button" class="submit" style="float: left;" value="<?php echo $l->t("Submit");?>" onclick="Calendar.UI.validateEventForm('ajax/event/edit.php');">
+ <input type="button" class="submit" style="float: left;" name="delete" value="<?php echo $l->t("Delete");?>" onclick="Calendar.UI.submitDeleteEventForm('ajax/event/delete.php');">
<input type="button" class="submit" style="float: right;" name="export" value="<?php echo $l->t("Export");?>" onclick="window.location='export.php?eventid=<?php echo $_['id'] ?>';">
</span>
</form>
diff --git a/apps/calendar/templates/part.eventform.php b/apps/calendar/templates/part.eventform.php
index 49214aca77c..8a8f420f846 100644
--- a/apps/calendar/templates/part.eventform.php
+++ b/apps/calendar/templates/part.eventform.php
@@ -17,6 +17,7 @@
?>
</select>
</td>
+ <?php if(count($_['calendar_options']) > 1) { ?>
<th width="75px">&nbsp;&nbsp;&nbsp;<?php echo $l->t("Calendar");?>:</th>
<td>
<select style="width:140px;" name="calendar">
@@ -26,6 +27,12 @@
?>
</select>
</td>
+ <?php } else { ?>
+ <th width="75px">&nbsp;</th>
+ <td>
+ <input type="hidden" name="calendar" value="<?php echo $_['calendar_options'][0]['id'] ?>">
+ </td>
+ <?php } ?>
</tr>
</table>
<hr>
diff --git a/apps/calendar/templates/part.newevent.php b/apps/calendar/templates/part.newevent.php
index b1e2a5eab84..11416260344 100644
--- a/apps/calendar/templates/part.newevent.php
+++ b/apps/calendar/templates/part.newevent.php
@@ -3,7 +3,7 @@
<?php echo $this->inc("part.eventform"); ?>
<div style="width: 100%;text-align: center;color: #FF1D1D;" id="errorbox"></div>
<span id="actions">
- <input type="button" class="submit" style="float: left;" value="<?php echo $l->t("Submit");?>" onclick="Calendar.UI.validateEventForm('ajax/newevent.php');">
+ <input type="button" class="submit" style="float: left;" value="<?php echo $l->t("Submit");?>" onclick="Calendar.UI.validateEventForm('ajax/event/new.php');">
</span>
</form>
</div>
diff --git a/apps/contacts/css/contacts.css b/apps/contacts/css/contacts.css
index 384541f3751..b24ec438f24 100644
--- a/apps/contacts/css/contacts.css
+++ b/apps/contacts/css/contacts.css
@@ -17,8 +17,8 @@
#contacts_propertymenu li a:hover { color: #fff }
#actionbar { height: 30px; width: 200px; position: fixed; right: 0px; top: 75px; margin: 0 0 0 0; padding: 0 0 0 0;}
#card { /*max-width: 70em; border: thin solid lightgray; display: block;*/ }
-#firstrun { /*border: thin solid lightgray;*/ width: 80%; margin: 5em auto auto auto; text-align: center; font-weight:bold; font-size:1.5em; color:#777;}
-#firstrun #selections { /*border: thin solid lightgray;*/ font-size:0.8em; width: 100%; margin: 2em auto auto auto; clear: both; }
+#firstrun { width: 100%; position: absolute; top: 5em; left: 0; text-align: center; font-weight:bold; font-size:1.5em; color:#777; }
+#firstrun #selections { font-size:0.8em; margin: 2em auto auto auto; clear: both; }
#card input[type="text"].contacts_property,input[type="email"].contacts_property { width: 16em; }
#card input[type="text"],input[type="email"],input[type="tel"],input[type="date"], select { background-color: #f8f8f8; border: 0 !important; -webkit-appearance:none !important; -moz-appearance:none !important; -webkit-box-sizing:none !important; -moz-box-sizing:none !important; box-sizing:none !important; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; float: left; }
diff --git a/apps/contacts/js/contacts.js b/apps/contacts/js/contacts.js
index 11661320c59..d033e3f21cd 100644
--- a/apps/contacts/js/contacts.js
+++ b/apps/contacts/js/contacts.js
@@ -8,7 +8,7 @@ String.prototype.strip_tags = function(){
tags = this;
stripped = tags.replace(/[\<\>]/gi, "");
return stripped;
-}
+};
Contacts={
@@ -142,7 +142,7 @@ Contacts={
}
});
});
- }
+ };
},
loadListHandlers:function() {
//$('.add,.delete').hide();
@@ -323,7 +323,7 @@ Contacts={
}
});
},
- delete:function() {
+ delete: function() {
$('#contacts_deletecard').tipsy('hide');
$.getJSON('ajax/deletecard.php',{'id':this.id},function(jsondata){
if(jsondata.status == 'success'){
diff --git a/apps/files_pdfviewer/appinfo/info.xml b/apps/files_pdfviewer/appinfo/info.xml
index 86a6c3f22f7..f133f1900d7 100755
--- a/apps/files_pdfviewer/appinfo/info.xml
+++ b/apps/files_pdfviewer/appinfo/info.xml
@@ -1,7 +1,8 @@
<?xml version="1.0"?>
<info>
<id>files_pdfviewer</id>
- <name>PDF viewer (pdfjs-based)</name>
+ <name>PDF Viewer</name>
+ <description>Inline PDF viewer (pdfjs-based)</description>
<version>0.1</version>
<licence>GPL</licence>
<author>Joan Creus</author>
diff --git a/apps/files_sharing/css/sharing.css b/apps/files_sharing/css/sharing.css
index 0759af2c274..db59a3d340b 100644
--- a/apps/files_sharing/css/sharing.css
+++ b/apps/files_sharing/css/sharing.css
@@ -5,4 +5,5 @@
#shared_list { padding:0.5em; list-style-type: none; }
#public { border-top:1px solid #ddd; padding-top:0.5em; }
a.unshare { float:right; display:inline; margin:0 .5em; padding:.3em .3em 0 .3em !important; opacity:.5; }
-a.unshare:hover { opacity:1; } \ No newline at end of file
+a.unshare:hover { opacity:1; }
+#share_with { width: 16em; } \ No newline at end of file
diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js
index d01a07447a6..fc9e17c25c7 100644
--- a/apps/files_sharing/js/share.js
+++ b/apps/files_sharing/js/share.js
@@ -174,7 +174,7 @@ $(document).ready(function() {
function createDropdown(filename, files) {
var html = '<div id="dropdown" class="drop" data-file="'+files+'">';
html += '<div id="private">';
- html += '<select data-placeholder="User or Group" style="width:220px;" id="share_with" class="chzen-select">';
+ html += '<select data-placeholder="User or Group" id="share_with" class="chzen-select">';
html += '<option value=""></option>';
html += '</select>';
html += '<ul id="shared_list"></ul>';
diff --git a/apps/files_texteditor/css/style.css b/apps/files_texteditor/css/style.css
index cf24950232f..e260ab0dd46 100644
--- a/apps/files_texteditor/css/style.css
+++ b/apps/files_texteditor/css/style.css
@@ -1,8 +1,8 @@
#editor{
- position: absoloute;
+ position: fixed;
display: block;
- top: 80px;
- left: 160px;
+ top: 6.5em;
+ left: 12.5em;
}
#editorwrapper{
position: absoloute;
diff --git a/apps/files_texteditor/js/editor.js b/apps/files_texteditor/js/editor.js
index 7473d532304..e45652b6ef3 100644
--- a/apps/files_texteditor/js/editor.js
+++ b/apps/files_texteditor/js/editor.js
@@ -172,6 +172,7 @@ function giveEditorFocus(){
function showFileEditor(dir,filename){
if(!editorIsShown()){
// Loads the file editor and display it.
+ $('#content').append('<div id="editor"></div>');
var data = $.getJSON(
OC.filePath('files_texteditor','ajax','loadfile.php'),
{file:filename,dir:dir},
@@ -273,10 +274,10 @@ $(document).ready(function(){
var dir=text.substr(0,text.length-file.length-1);
showFileEditor(dir,file);
});
- }
+ };
// Binds the file save and close editor events, and gotoline button
bindControlEvents();
-
+ $('#editor').remove();
// Binds the save keyboard shortcut events
//$(document).unbind('keydown').bind('keydown',checkForSaveKeyPress);
});
diff --git a/apps/gallery/css/styles.css b/apps/gallery/css/styles.css
index c039cd5ec02..da94f9ac9e5 100644
--- a/apps/gallery/css/styles.css
+++ b/apps/gallery/css/styles.css
@@ -1,8 +1,8 @@
-div#gallery_list { margin: 70pt 20pt 0 20pt; }
+div#gallery_list { margin: 4.5em 2em 0 2em; }
div#gallery_list.leftcontent { padding-top: 15pt; margin: 0; position: absolute; bottom:0px; text-align: center; overflow: auto; }
-div.gallery_album_box { width: 200px; position:relative; text-align: center; border: 0; display: inline-block; margin: 5pt; vertical-align: top; padding: 20px 5px 5px 5px; position: relative; -webkit-transition: color 0.5s ease-in-out; -o-transition: color 0.5s ease-in-out; -moz-transition: color 0.5s ease-in-out;color: #BBB;}
+div.gallery_album_box { width: 200px; position:relative; text-align: center; border: 0; display: inline-block; margin: 5pt; vertical-align: top; padding: 5px 5px 5px 5px; position: relative; -webkit-transition: color 0.5s ease-in-out; -o-transition: color 0.5s ease-in-out; -moz-transition: color 0.5s ease-in-out;color: #BBB;}
div.gallery_album_box h1 { font-size: 9pt; font-family: Verdana; }
-div.gallery_album_decoration { width: 200px; position: absolute; border: 0; height: 20px; top: 20px; text-align:right; vertical-align:middle; background-color: #eee; opacity: 0; -webkit-transition: opacity 0.5s ease-in-out; -moz-transition: opacity 0.5s ease-in-out; -o-transition: opacity 0.5s ease-in-out; border-bottom-right-radius: 7px; border-bottom-left-radius: 7px; -moz-border-radius-bottomright: 7px; -moz-border-radius-bottomleft:7px;}
+div.gallery_album_decoration { width: 200px; position: absolute; border: 0; height: 20px; top: 5px; text-align:right; vertical-align:middle; background-color: #eee; opacity: 0; -webkit-transition: opacity 0.5s ease-in-out; -moz-transition: opacity 0.5s ease-in-out; -o-transition: opacity 0.5s ease-in-out; border-bottom-right-radius: 7px; border-bottom-left-radius: 7px; -moz-border-radius-bottomright: 7px; -moz-border-radius-bottomleft:7px;}
div.gallery_album_box:hover { color: black; }
div.gallery_album_box:hover div.gallery_album_decoration { opacity: 0.7;}
div.gallery_album_decoration a {padding: 0 4pt; cursor: pointer;}
diff --git a/apps/gallery/lib/photo.php b/apps/gallery/lib/photo.php
index 4eb313bfc33..872ecc9488a 100644
--- a/apps/gallery/lib/photo.php
+++ b/apps/gallery/lib/photo.php
@@ -69,7 +69,6 @@ class OC_Gallery_Photo {
public static function getThumbnail($image_name) {
$save_dir = OC_Config::getValue("datadirectory").'/'. OC_User::getUser() .'/gallery/';
$save_dir .= dirname($image_name). '/';
- $image_name = basename($image_name);
$thumb_file = $save_dir . $image_name;
if (file_exists($thumb_file)) {
$image = new OC_Image($thumb_file);
diff --git a/apps/media/js/collection.js b/apps/media/js/collection.js
index 2249acf3cc4..753785f77b0 100644
--- a/apps/media/js/collection.js
+++ b/apps/media/js/collection.js
@@ -1,3 +1,5 @@
+var initScanned = false;
+
Collection={
artists:[],
albums:[],
@@ -68,10 +70,10 @@ Collection={
for(var i=0;i<Collection.loadedListeners.length;i++){
Collection.loadedListeners[i]();
}
- if(data.songs.length==0){
+ if(data.songs.length==0 && initScanned == false){
$('#scan input.start').click();
+ initScanned = true;
}
-
}
});
}
@@ -81,13 +83,11 @@ Collection={
Collection.parent.show();
}
if(!Collection.loaded){
- Collection.load(Collection.display)
+ Collection.load(Collection.display);
}else{
if(Collection.parent){
Collection.parent.find('tr:not(.template)').remove();
var template=Collection.parent.find('tr.template');
- var lastArtist='';
- var lastAlbum='';
$.each(Collection.artists,function(i,artist){
if(artist.name && artist.songs.length>0){
var tr=template.clone().removeClass('template');
@@ -108,7 +108,7 @@ Collection={
$('tr[data-artist="'+artist.name+'"]').addClass('active');
});
if(artist.songs.length>1){
- var expander=$('<a class="expander">&gt;</a>');
+ expander=$('<a class="expander">&gt;</a>');
expander.data('expanded',false);
expander.click(function(event){
var tr=$(this).parent().parent();
@@ -136,10 +136,11 @@ Collection={
var first=true;
$.each(artist.albums,function(j,album){
$.each(album.songs,function(i,song){
+ var newRow;
if(first){
newRow=tr;
}else{
- var newRow=tr.clone();
+ newRow=tr.clone();
newRow.find('td.artist').text('');
newRow.find('.expander').remove();
}
@@ -221,13 +222,14 @@ Collection={
tr.find('td.album-expander a.expander').addClass('expanded');
tr.find('td.album-expander a.expander').text('v');
$.each(albumData.songs,function(i,song){
+ var newRow;
if(i>0){
- var newRow=tr.clone();
+ newRow=tr.clone();
newRow.find('a.expander').remove();
newRow.find('td.album a').text('');
newRow.find('td.artist a').text('');
}else{
- var newRow=tr;
+ newRow=tr;
}
newRow.find('td.title a').text(song.name);
newRow.find('td.title a').click(function(event){
@@ -339,11 +341,11 @@ Collection={
path:song.song_path,
playCount:song.song_playcount,
};
- album.songs.push(songData)
+ album.songs.push(songData);
artist.songs.push(songData);
Collection.songs.push(songData);
}
-}
+};
$(document).ready(function(){
Collection.parent=$('#collection');
diff --git a/apps/media/js/loader.js b/apps/media/js/loader.js
index 055f858ae16..a832180d1e3 100644
--- a/apps/media/js/loader.js
+++ b/apps/media/js/loader.js
@@ -1,7 +1,7 @@
function musicTypeFromFile(file){
var extention=file.substr(file.indexOf('.')+1);
if(extention=='ogg'){
- return 'oga'
+ return 'oga';
}
//TODO check for more specific cases
return extention;
@@ -39,7 +39,7 @@ function loadPlayer(type,ready){
}
$(document).ready(function() {
- loadPlayer.done=false
+ loadPlayer.done=false;
// FileActions.register('audio','Add to playlist','',addAudio);
// FileActions.register('application/ogg','Add to playlist','',addAudio);
diff --git a/apps/media/js/music.js b/apps/media/js/music.js
index 3373cbac257..1ffe4e10087 100644
--- a/apps/media/js/music.js
+++ b/apps/media/js/music.js
@@ -16,7 +16,7 @@ $(document).ready(function(){
PlayList.render();
});
var button=$('<input type="button" title="'+t('media','Add album to playlist')+'" class="add"></input>');
- button.css('background-image','url('+OC.imagePath('core','actions/play-add')+')')
+ button.css('background-image','url('+OC.imagePath('core','actions/play-add')+')');
button.click(function(event){
event.stopPropagation();
PlayList.add(media);
@@ -24,7 +24,7 @@ $(document).ready(function(){
});
row.find('div.name').append(button);
button.tipsy({gravity:'n', fade:true, delayIn: 400, live:true});
- }
+ };
Collection.display();
Collection.load(function(){
@@ -34,11 +34,9 @@ $(document).ready(function(){
PlayList.add(song);
PlayList.play(0);
}
- })
+ });
});
-
-
function getUrlVars(){
var vars = {}, hash;
var hashes = window.location.hash.substr(1).split('&');
@@ -52,8 +50,8 @@ function getUrlVars(){
function musicTypeFromFile(file){
var extention=file.split('.').pop();
if(extention=='ogg'){
- return 'oga'
+ return 'oga';
}
//TODO check for more specific cases
return extention;
-} \ No newline at end of file
+}
diff --git a/apps/media/js/playlist.js b/apps/media/js/playlist.js
index 089065989ae..8e9e2a91537 100644
--- a/apps/media/js/playlist.js
+++ b/apps/media/js/playlist.js
@@ -26,19 +26,19 @@ PlayList.render=function(){
li.click(function(event){
PlayList.play($(this).data('index'));
});
- li.append(img)
+ li.append(img);
li.data('index',i);
li.addClass('song');
PlayList.parent.append(li);
}
$(".jp-playlist-" + PlayList.current).addClass("collection_playing");
-}
+};
PlayList.getSelected=function(){
return $('tbody td.name input:checkbox:checked').parent().parent();
-}
+};
PlayList.hide=function(){
$('#playlist').hide();
-}
+};
$(document).ready(function(){
PlayList.parent=$('#leftcontent');
diff --git a/apps/media/js/scanner.js b/apps/media/js/scanner.js
index 0baa9db419a..6c991b60d52 100644
--- a/apps/media/js/scanner.js
+++ b/apps/media/js/scanner.js
@@ -6,7 +6,7 @@ Scanner={
$.getJSON(OC.linkTo('media','ajax/api.php')+'?action=find_music',function(songs){
Scanner.songsFound=songs.length;
if(ready){
- ready(songs)
+ ready(songs);
}
});
},
@@ -24,13 +24,13 @@ Scanner={
Scanner.songsScanned=data.count;
$('#scan span.songCount').text(Scanner.songsScanned);
var progress=(Scanner.songsScanned/Scanner.songsFound)*100;
- $('#scanprogressbar').progressbar('value',progress)
+ $('#scanprogressbar').progressbar('value',progress);
});
Scanner.eventSource.listen('done',function(count){
$('#scan input.start').show();
$('#scan input.stop').hide();
$('#scanprogressbar').hide();
- Collection.load(Collection.display)
+ Collection.load(Collection.display);
if(ready){
ready();
}
@@ -41,4 +41,4 @@ Scanner={
Scanner.close();
},
-}
+};
diff --git a/config/config.sample.php b/config/config.sample.php
index cd525358713..52067374555 100755
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -13,6 +13,8 @@ $CONFIG = array(
"forcessl" => false,
"enablebackup" => false,
"theme" => "",
+"3rdpartyroot" => "",
+"3rdpartyurl" => "",
// "datadirectory" => ""
);
?>
diff --git a/core/css/styles.css b/core/css/styles.css
index 53af8b383e3..b14c8fb9caf 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -3,6 +3,7 @@
See the COPYING-README file. */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; cursor:default; }
+html, body { height: 100%; }
article, aside, dialog, figure, footer, header, hgroup, nav, section { display:block; }
body { line-height:1.5; }
table { border-collapse:separate; border-spacing:0; white-space:nowrap; }
@@ -39,8 +40,8 @@ input[type="text"]:hover, input[type="text"]:focus, input[type="text"]:active,
input[type="password"]:hover, input[type="password"]:focus, input[type="password"]:active,
.searchbox input[type="search"]:hover, .searchbox input[type="search"]:focus, .searchbox input[type="search"]:active { background-color:#fff; color:#333; opacity:1; }
-input[type="submit"], input[type="button"], 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; }
-input[type="submit"]:hover, input[type="submit"]:focus, input[type="button"]:hover, input[type="button"]:focus, .button:hover { background:#fff; color:#333; }
+input[type="submit"], input[type="button"], button, .button, #quota, div.jp-progress, select, .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; }
+input[type="submit"]:hover, input[type="submit"]:focus, input[type="button"]:hover, select:hover, select:focus, select:active, input[type="button"]:focus, .button:hover { background:#fff; color:#333; }
input[type="checkbox"] { width:auto; }
#quota { cursor:default; }
@@ -55,11 +56,11 @@ input[type="submit"].highlight{ background:#ffc100; border:1px solid #db0; text-
/* CONTENT ------------------------------------------------------------------ */
#controls { padding: 0 0.5em; width:100%; top:3.5em; height:2.8em; margin:0; background:#f7f7f7; border-bottom:1px solid #eee; position:fixed; z-index:50; -moz-box-shadow:0 -3px 7px #000; -webkit-box-shadow:0 -3px 7px #000; box-shadow:0 -3px 7px #000; }
#controls .button { display:inline-block; }
-#content { margin:3.5em 0 0 12.5em; }
+#content { top: 3.5em; left: 12.5em; position: absolute; }
#leftcontent, .leftcontent { position:fixed; overflow: auto; top:6.4em; width:20em; background:#f8f8f8; border-right:1px solid #ddd; }
#leftcontent li, .leftcontent li { background:#f8f8f8; padding:.3em .8em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; -webkit-transition:background-color 500ms; -moz-transition:background-color 500ms; -o-transition:background-color 500ms; transition:background-color 500ms; }
#leftcontent li:hover, #leftcontent li:active, #leftcontent li.active, .leftcontent li:hover, .leftcontent li:active, .leftcontent li.active { background:#eee; }
-#rightcontent, .rightcontent { position:absolute; top:6.4em; left:33em; }
+#rightcontent, .rightcontent { position:fixed; top: 6.4em; left: 32.5em; }
/* LOG IN & INSTALLATION ------------------------------------------------------------ */
@@ -113,8 +114,8 @@ table:not(.nostyle) tr { -webkit-transition:background-color 500ms; -moz-transit
tbody tr:hover, tr:active { background-color:#f8f8f8; }
#body-settings .personalblock, #body-settings .helpblock { padding:.5em 1em; margin:1em; background:#f8f8f8; color:#555; text-shadow:#fff 0 1px 0; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; }
-#body-settings .personalblock#quota { position:relative; margin-top:4.5em; padding:0; }
-#body-settings #controls+.helpblock { position:relative; margin-top:7.3em; }
+#body-settings .personalblock#quota { position:relative; padding:0; }
+#body-settings #controls+.helpblock { position:relative; margin-top: 3em; }
.personalblock > legend { margin-top:2em; }
#quota div, div.jp-play-bar, div.jp-seek-bar { padding:0; background:#e6e6e6; font-weight:normal; white-space:nowrap; -moz-border-radius-bottomleft:.4em; -webkit-border-bottom-left-radius:.4em; border-bottom-left-radius:.4em; -moz-border-radius-topleft:.4em; -webkit-border-top-left-radius:.4em; border-top-left-radius:.4em; }
diff --git a/core/js/js.js b/core/js/js.js
index c6cde3cea95..6da9c29e693 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -13,7 +13,7 @@ function t(app,text){
success:function(jsondata){
t.cache[app] = jsondata.data;
},
- })
+ });
// Bad answer ...
if( !( app in t.cache )){
@@ -58,7 +58,7 @@ OC={
}
link+=app;
if(type){
- link+=type+'/'
+ link+=type+'/';
}
link+=file;
return link;
@@ -73,7 +73,7 @@ OC={
*/
imagePath:function(app,file){
if(file.indexOf('.')==-1){//if no extention is given, use png or svg depending on browser support
- file+=(SVGSupport())?'.svg':'.png'
+ file+=(SVGSupport())?'.svg':'.png';
}
return OC.filePath(app,'img',file);
},
@@ -126,7 +126,7 @@ OC={
});
}
}
-}
+};
OC.search.customResults={};
OC.search.currentResult=-1;
OC.search.lastQuery='';
@@ -147,7 +147,7 @@ if(typeof localStorage !='undefined'){
getItem:function(name){
return JSON.parse(localStorage.getItem(OC.localStorage.namespace+name));
}
- }
+ };
}else{
//dummy localstorage
OC.localStorage={
@@ -160,7 +160,7 @@ if(typeof localStorage !='undefined'){
getItem:function(name){
return null;
}
- }
+ };
}
/**
@@ -182,7 +182,7 @@ if (!Array.prototype.filter) {
}
}
return res;
- }
+ };
}
/**
* implement Array.indexOf for browsers without native support
@@ -235,11 +235,11 @@ SVGSupport.checkMimeType=function(){
});
if(headers["Content-Type"]!='image/svg+xml'){
replaceSVG();
- SVGSupport.checkMimeType.correct=false
+ SVGSupport.checkMimeType.correct=false;
}
}
});
-}
+};
SVGSupport.checkMimeType.correct=true;
//replace all svg images with png for browser compatibility
@@ -305,11 +305,12 @@ $(document).ready(function(){
$(window).resize(function () {
fillHeight($('#leftcontent'));
+ fillWindow($('#content'));
fillWindow($('#rightcontent'));
});
$(window).trigger('resize');
- if(!SVGSupport()){//replace all svg images with png images for browser that dont support svg
+ if(!SVGSupport()){ //replace all svg images with png images for browser that dont support svg
replaceSVG();
}else{
SVGSupport.checkMimeType();
@@ -379,7 +380,6 @@ $(document).ready(function(){
}
});
- if($('body').attr("id")=="body-user") { $('#settings #expanddiv').hide(); }
$('#settings #expand').click(function(event) {
$('#settings #expanddiv').slideToggle();
event.stopPropagation();
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php
index 64353d4d4f4..c048653cce9 100644
--- a/core/templates/layout.user.php
+++ b/core/templates/layout.user.php
@@ -44,8 +44,8 @@
<ul id="settings" class="svg">
<img id="expand" class="svg" alt="<?php echo $l->t('Settings');?>" src="<?php echo image_path('', 'actions/settings.svg'); ?>" />
- <span style="display:none"><?php echo $l->t('Settings');?></span>
- <div id="expanddiv">
+ <span style="display:none;"><?php echo $l->t('Settings');?></span>
+ <div id="expanddiv" <?php if($_['bodyid'] == 'body-user') echo 'style="display:none;"'; ?>>
<?php foreach($_['settingsnavigation'] as $entry):?>
<li><a style="background-image:url(<?php echo $entry['icon']; ?>)" href="<?php echo $entry['href']; ?>" title="" <?php if( $entry["active"] ): ?> class="active"<?php endif; ?>><?php echo $entry['name'] ?></a></li>
<?php endforeach; ?>
diff --git a/db_structure.xml b/db_structure.xml
index 8e59a59c6e5..1d459b75fda 100644
--- a/db_structure.xml
+++ b/db_structure.xml
@@ -31,12 +31,12 @@
<field>
<name>configvalue</name>
- <type>text</type>
- <default></default>
+ <type>clob</type>
<notnull>true</notnull>
- <length>255</length>
</field>
+
+
</declaration>
</table>
@@ -55,7 +55,7 @@
<notnull>true</notnull>
<length>4</length>
</field>
-
+
<field>
<name>path</name>
<type>text</type>
@@ -90,7 +90,7 @@
<notnull>true</notnull>
<length>64</length>
</field>
-
+
<field>
<name>size</name>
<type>integer</type>
@@ -522,7 +522,7 @@
</declaration>
</table>
-
+
<table>
<name>*dbprefix*properties</name>
diff --git a/files/js/files.js b/files/js/files.js
index bebcf4e97a4..9f1f5368df0 100644
--- a/files/js/files.js
+++ b/files/js/files.js
@@ -166,6 +166,7 @@ $(document).ready(function() {
$('.file_upload_start').live('change',function(){
var form=$(this).closest('form');
+ var that=this;
var uploadId=form.attr('data-upload-id');
var files=this.files;
var target=form.children('iframe');
@@ -173,6 +174,12 @@ $(document).ready(function() {
if(files){
for(var i=0;i<files.length;i++){
totalSize+=files[i].size;
+ if(FileList.deleteFiles && FileList.deleteFiles.indexOf(files[i].name)!=-1){//finish delete if we are uploading a deleted file
+ FileList.finishDelete(function(){
+ $(that).change();
+ });
+ return;
+ }
}
}
if(totalSize>$('#max_upload').val()){
diff --git a/lib/base.php b/lib/base.php
index 652b1f11bad..85afaa62258 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -54,6 +54,14 @@ class OC{
* the folder that stores the data for the root filesystem (e.g. /srv/http/owncloud/data)
*/
public static $CONFIG_DATADIRECTORY_ROOT = '';
+ /**
+ * The installation path of the 3rdparty folder on the server (e.g. /srv/http/owncloud/3rdparty)
+ */
+ public static $THIRDPARTYROOT = '';
+ /**
+ * the root path of the 3rdparty folder for http requests (e.g. owncloud/3rdparty)
+ */
+ public static $THIRDPARTYWEBROOT = '';
/**
* SPL autoload
@@ -138,12 +146,35 @@ class OC{
}
OC::$WEBROOT=substr($scriptName,0,strlen($scriptName)-strlen(OC::$SUBURI));
+
if(OC::$WEBROOT!='' and OC::$WEBROOT[0]!=='/'){
OC::$WEBROOT='/'.OC::$WEBROOT;
}
+ // search the 3rdparty folder
+ if(OC_Config::getValue('3rdpartyroot', '')<>'' and OC_Config::getValue('3rdpartyurl', '')<>''){
+ OC::$THIRDPARTYROOT=OC_Config::getValue('3rdpartyroot', '');
+ OC::$THIRDPARTYWEBROOT=OC_Config::getValue('3rdpartyurl', '');
+ }elseif(file_exists(OC::$SERVERROOT.'/3rdparty')){
+ OC::$THIRDPARTYROOT=OC::$SERVERROOT;
+ OC::$THIRDPARTYWEBROOT=OC::$WEBROOT;
+ }elseif(file_exists(OC::$SERVERROOT.'/../3rdparty')){
+ $url_tmp=explode('/',OC::$WEBROOT);
+ $length=count($url_tmp);
+ unset($url_tmp[$length-1]);
+ OC::$THIRDPARTYWEBROOT=implode('/',$url_tmp);
+ $root_tmp=explode('/',OC::$SERVERROOT);
+ $length=count($root_tmp);
+ unset($root_tmp[$length-1]);
+ OC::$THIRDPARTYROOT=implode('/',$root_tmp);
+ }else{
+ echo("3rdparty directory not found! Please put the ownCloud 3rdparty folder in the ownCloud folder or the folder above. You can also configure the location in the config.php file.");
+ exit;
+ }
+
+
// set the right include path
- set_include_path(OC::$SERVERROOT.'/lib'.PATH_SEPARATOR.OC::$SERVERROOT.'/config'.PATH_SEPARATOR.OC::$SERVERROOT.'/3rdparty'.PATH_SEPARATOR.get_include_path().PATH_SEPARATOR.OC::$SERVERROOT);
+ set_include_path(OC::$SERVERROOT.'/lib'.PATH_SEPARATOR.OC::$SERVERROOT.'/config'.PATH_SEPARATOR.OC::$THIRDPARTYROOT.'/3rdparty'.PATH_SEPARATOR.get_include_path().PATH_SEPARATOR.OC::$SERVERROOT);
// Redirect to installer if not installed
if (!OC_Config::getValue('installed', false) && OC::$SUBURI != '/index.php') {
diff --git a/lib/db.php b/lib/db.php
index 9d3c20e0145..4c17cd0dbd1 100644
--- a/lib/db.php
+++ b/lib/db.php
@@ -318,6 +318,9 @@ class OC_DB {
// Make changes and save them to a temporary file
$file2 = tempnam( get_temp_dir(), 'oc_db_scheme_' );
+ if($file2 == ''){
+ die('could not create tempfile in get_temp_dir() - aborting');
+ }
$content = str_replace( '*dbname*', $CONFIG_DBNAME, $content );
$content = str_replace( '*dbprefix*', $CONFIG_DBTABLEPREFIX, $content );
if( $CONFIG_DBTYPE == 'pgsql' ){ //mysql support it too but sqlite doesn't
diff --git a/lib/filecache.php b/lib/filecache.php
index 83eaffb171a..6ccb0d90ef1 100644
--- a/lib/filecache.php
+++ b/lib/filecache.php
@@ -275,7 +275,7 @@ class OC_FileCache{
if(is_array($result)){
return $result['id'];
}else{
- OC_Log::write('getFieldId(): file not found in cache ('.$path.')','core',OC_Log::DEBUG);
+ OC_Log::write('getFileId(): file not found in cache ('.$path.')','core',OC_Log::DEBUG);
return -1;
}
}
diff --git a/lib/fileproxy/quota.php b/lib/fileproxy/quota.php
index 94a49176ee6..9e4c2d0643e 100644
--- a/lib/fileproxy/quota.php
+++ b/lib/fileproxy/quota.php
@@ -26,11 +26,37 @@
*/
class OC_FileProxy_Quota extends OC_FileProxy{
+ private $userQuota=-1;
+
+ /**
+ * get the quota for the current user
+ * @return int
+ */
+ private function getQuota(){
+ if($this->userQuota!=-1){
+ return $this->userQuota;
+ }
+ $userQuota=OC_Preferences::getValue(OC_User::getUser(),'files','quota','default');
+ if($userQuota=='default'){
+ $userQuota=OC_AppConfig::getValue('files','default_quota','none');
+ }
+ if($userQuota=='none'){
+ $this->userQuota=0;
+ }else{
+ $this->userQuota=OC_Helper::computerFileSize($userQuota);
+ }
+ return $this->userQuota;
+
+ }
+
+ /**
+ * get the free space in the users home folder
+ * @return int
+ */
private function getFreeSpace(){
$rootInfo=OC_FileCache::get('');
$usedSpace=$rootInfo['size'];
- $totalSpace=OC_Preferences::getValue(OC_User::getUser(),'files','quota',0);
- $totalSpace=OC_Helper::computerFileSize($totalSpace);
+ $totalSpace=$this->getQuota();
if($totalSpace==0){
return 0;
}
diff --git a/lib/group/database.php b/lib/group/database.php
index f35f61434f0..1afd4b5fe4c 100644
--- a/lib/group/database.php
+++ b/lib/group/database.php
@@ -130,7 +130,7 @@ class OC_Group_Database extends OC_Group_Backend {
* removes the user from a group.
*/
public static function removeFromGroup( $uid, $gid ){
- $query = OC_DB::prepare( "DELETE FROM `*PREFIX*group_user` WHERE `uid` = ? AND `gid` = ?" );
+ $query = OC_DB::prepare( "DELETE FROM *PREFIX*group_user WHERE uid = ? AND gid = ?" );
$result = $query->execute( array( $uid, $gid ));
return true;
diff --git a/lib/template.php b/lib/template.php
index d991759fbcd..5fe2eb7d6c7 100644
--- a/lib/template.php
+++ b/lib/template.php
@@ -346,31 +346,41 @@ class OC_Template{
// Add the core js files or the js files provided by the selected theme
foreach(OC_Util::$scripts as $script){
- if(is_file(OC::$SERVERROOT."/themes/$theme/apps/$script$fext.js" )){
+ // Is it in 3rd party?
+ if(is_file(OC::$THIRDPARTYROOT."/$script.js" )){
+ $page->append( "jsfiles", OC::$THIRDPARTYWEBROOT."/$script.js" );
+
+ // Is it in apps and overwritten by the theme?
+ }elseif(is_file(OC::$SERVERROOT."/themes/$theme/apps/$script$fext.js" )){
$page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/apps/$script$fext.js" );
}elseif(is_file(OC::$SERVERROOT."/themes/$theme/apps/$script.js" )){
$page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/apps/$script.js" );
+ // Is it part of an app?
}elseif(is_file(OC::$SERVERROOT."/apps/$script$fext.js" )){
$page->append( "jsfiles", OC::$WEBROOT."/apps/$script$fext.js" );
}elseif(is_file(OC::$SERVERROOT."/apps/$script.js" )){
$page->append( "jsfiles", OC::$WEBROOT."/apps/$script.js" );
+ // Is it in the owncloud root but overwritten by the theme?
}elseif(is_file(OC::$SERVERROOT."/themes/$theme/$script$fext.js" )){
$page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/$script$fext.js" );
}elseif(is_file(OC::$SERVERROOT."/themes/$theme/$script.js" )){
$page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/$script.js" );
-
+
+ // Is it in the owncloud root ?
}elseif(is_file(OC::$SERVERROOT."/$script$fext.js" )){
$page->append( "jsfiles", OC::$WEBROOT."/$script$fext.js" );
}elseif(is_file(OC::$SERVERROOT."/$script.js" )){
$page->append( "jsfiles", OC::$WEBROOT."/$script.js" );
+ // Is in core but overwritten by a theme?
}elseif(is_file(OC::$SERVERROOT."/themes/$theme/core/$script$fext.js" )){
$page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/core/$script$fext.js" );
}elseif(is_file(OC::$SERVERROOT."/themes/$theme/core/$script.js" )){
$page->append( "jsfiles", OC::$WEBROOT."/themes/$theme/core/$script.js" );
+ // Is it in core?
}elseif(is_file(OC::$SERVERROOT."/core/$script$fext.js" )){
$page->append( "jsfiles", OC::$WEBROOT."/core/$script$fext.js" );
}else{
@@ -380,14 +390,20 @@ class OC_Template{
}
// Add the css files
foreach(OC_Util::$styles as $style){
- if(is_file(OC::$SERVERROOT."/apps/$style$fext.css" )){
+ // is it in 3rdparty?
+ if(is_file(OC::$THIRDPARTYROOT."/$style.css" )){
+ $page->append( "cssfiles", OC::$THIRDPARTYWEBROOT."/$style.css" );
+ // or in apps?
+ }elseif(is_file(OC::$SERVERROOT."/apps/$style$fext.css" )){
$page->append( "cssfiles", OC::$WEBROOT."/apps/$style$fext.css" );
}elseif(is_file(OC::$SERVERROOT."/apps/$style.css" )){
$page->append( "cssfiles", OC::$WEBROOT."/apps/$style.css" );
+ // or in the owncloud root?
}elseif(is_file(OC::$SERVERROOT."/$style$fext.css" )){
$page->append( "cssfiles", OC::$WEBROOT."/$style$fext.css" );
}elseif(is_file(OC::$SERVERROOT."/$style.css" )){
$page->append( "cssfiles", OC::$WEBROOT."/$style.css" );
+ // or in core ?
}elseif(is_file(OC::$SERVERROOT."/core/$style$fext.css" )){
$page->append( "cssfiles", OC::$WEBROOT."/core/$style$fext.css" );
}else{
diff --git a/lib/user.php b/lib/user.php
index 826215b2289..fda19a33154 100644
--- a/lib/user.php
+++ b/lib/user.php
@@ -321,7 +321,10 @@ class OC_User {
$users=array();
foreach(self::$_usedBackends as $backend){
if($backend->implementsActions(OC_USER_BACKEND_GET_USERS)){
- $users=array_merge($users,$backend->getUsers());
+ $backendUsers=$backend->getUsers();
+ if(is_array($backendUsers)){
+ $users=array_merge($users,$backendUsers);
+ }
}
}
return $users;
diff --git a/lib/util.php b/lib/util.php
index 18a5db3e4ee..2fd1dd543d6 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -66,7 +66,7 @@ class OC_Util {
* @return array
*/
public static function getVersion(){
- return array(3,00,1);
+ return array(3,00,2);
}
/**
diff --git a/settings/ajax/setquota.php b/settings/ajax/setquota.php
index d4e3c58ac11..dc87625a05d 100644
--- a/settings/ajax/setquota.php
+++ b/settings/ajax/setquota.php
@@ -5,14 +5,28 @@ require_once('../../lib/base.php');
OC_JSON::checkAdminUser();
-$username = $_POST["username"];
+$username = isset($_POST["username"])?$_POST["username"]:'';
//make sure the quota is in the expected format
-$quota= OC_Helper::computerFileSize($_POST["quota"]);
-$quota=OC_Helper::humanFileSize($quota);
+$quota=$_POST["quota"];
+if($quota!='none' and $quota!='default'){
+ $quota= OC_Helper::computerFileSize($quota);
+ if($quota==0){
+ $quota='default';
+ }else{
+ $quota=OC_Helper::humanFileSize($quota);
+ }
+}
// Return Success story
-OC_Preferences::setValue($username,'files','quota',$quota);
+if($username){
+ OC_Preferences::setValue($username,'files','quota',$quota);
+}else{//set the default quota when no username is specified
+ if($quota=='default'){//'default' as default quota makes no sense
+ $quota='none';
+ }
+ OC_Appconfig::setValue('files','default_quota',$quota);
+}
OC_JSON::success(array("data" => array( "username" => $username ,'quota'=>$quota)));
?>
diff --git a/settings/css/settings.css b/settings/css/settings.css
index 8d89cee6ec0..7a5873bb4d2 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -26,9 +26,15 @@ tr:hover>td.password>span { margin:0; cursor:pointer; }
tr:hover>td.remove>img, tr:hover>td.password>img, tr:hover>td.quota>img { visibility:visible; cursor:pointer; }
tr:hover>td.remove>img { float:right; }
li.selected { background-color:#ddd; }
-#content>table:not(.nostyle) { margin-top:6.5em; }
+#content>table:not(.nostyle) { margin-top:3em; }
table:not(.nostyle) { width:100%; }
-
+#rightcontent { padding-left: 1em; }
+td.quota { position:relative }
+div.quota { float:right; display:block; position:absolute; right:25em; top:0; }
+select.quota { position:absolute; left:0; top:0; width:10em; }
+input.quota-other { display:none; position:absolute; left:0.1em; top:0.1em; width:7em; border:none; -webkit-box-shadow: none -mox-box-shadow:none ; box-shadow:none; }
+div.quota>span { position:absolute; right:0em; white-space:nowrap; top: 0.7em }
+select.quota.active { background: #fff; }
/* APPS */
li { color:#888; }
diff --git a/settings/js/users.js b/settings/js/users.js
index c9b1d855db0..eed93d3b303 100644
--- a/settings/js/users.js
+++ b/settings/js/users.js
@@ -5,6 +5,18 @@
*/
$(document).ready(function(){
+ function setQuota(uid,quota,ready){
+ $.post(
+ OC.filePath('settings','ajax','setquota.php'),
+ {username:uid,quota:quota},
+ function(result){
+ if(ready){
+ ready(result.data.quota);
+ }
+ }
+ );
+ }
+
function applyMultiplySelect(element){
var checked=[];
var user=element.data('username');
@@ -82,48 +94,66 @@ $(document).ready(function(){
$('td.password').live('click',function(event){
$(this).children('img').click();
});
-
- $('td.quota>img').live('click',function(event){
- event.stopPropagation();
- var img=$(this);
- var uid=img.parent().parent().data('uid');
- var input=$('<input>');
- var quota=img.parent().children('span').text();
- if(quota=='None'){
- quota='';
+
+ $('select.quota').live('change',function(){
+ var select=$(this);
+ var uid=$(this).parent().parent().data('uid');
+ var quota=$(this).val();
+ var other=$(this).next();
+ if(quota!='other'){
+ other.hide();
+ select.data('previous',quota);
+ setQuota(uid,quota);
+ }else{
+ other.show();
+ select.addClass('active');
+ other.focus();
}
- input.val(quota);
- img.css('display','none');
- img.parent().children('span').replaceWith(input);
- input.focus();
- input.keypress(function(event) {
- if(event.keyCode == 13) {
- $(this).parent().attr('data-quota',$(this).val());
- if($(this).val().length>0){
- $.post(
- OC.filePath('settings','ajax','setquota.php'),
- {username:uid,quota:$(this).val()},
- function(result){
- img.parent().children('span').text(result.data.quota)
- $(this).parent().attr('data-quota',result.data.quota);
- }
- );
- input.blur();
+ });
+ $('select.quota').each(function(i,select){
+ $(select).data('previous',$(select).val());
+ })
+
+ $('input.quota-other').live('change',function(){
+ var uid=$(this).parent().parent().data('uid');
+ var quota=$(this).val();
+ var select=$(this).prev();
+ var other=$(this);
+ if(quota){
+ setQuota(uid,quota,function(quota){
+ select.children().attr('selected',null);
+ var existingOption=select.children().filter(function(i,option){
+ return ($(option).val()==quota);
+ });
+ if(existingOption.length){
+ existingOption.attr('selected','selected');
}else{
- input.blur();
+ var option=$('<option/>');
+ option.attr('selected','selected').attr('value',quota).text(quota);
+ select.children().last().before(option);
}
- }
- });
- input.blur(function(){
- var quota=$(this).parent().attr('data-quota');
- $(this).replaceWith($('<span>'+quota+'</span>'));
- img.css('display','');
- });
- });
- $('td.quota').live('click',function(event){
- $(this).children('img').click();
+ select.val(quota);
+ select.removeClass('active');
+ other.val(null);
+ other.hide();
+ });
+ }else{
+ var previous=select.data('previous');
+ select.children().attr('selected',null);
+ select.children().each(function(i,option){
+ if($(option).val()==previous){
+ $(option).attr('selected','selected');
+ }
+ });
+ select.removeClass('active');
+ other.hide();
+ }
});
+ $('input.quota-other').live('blur',function(){
+ $(this).change();
+ })
+
$('#newuser').submit(function(event){
event.preventDefault();
var username=$('#newusername').val();
@@ -157,7 +187,13 @@ $(document).ready(function(){
select.data('username',username);
select.data('userGroups',groups.join(', '));
tr.find('td.groups').empty();
- $.each($('#content table').data('groups').split(', '),function(i,group){
+ var allGroups=$('#content table').data('groups').split(', ');
+ for(var i=0;i<groups.length;i++){
+ if(allGroups.indexOf(groups[i])==-1){
+ allGroups.push(groups[i]);
+ }
+ }
+ $.each(allGroups,function(i,group){
select.append($('<option value="'+group+'">'+group+'</option>'));
});
tr.find('td.groups').append(select);
@@ -166,5 +202,9 @@ $(document).ready(function(){
}
applyMultiplySelect(select);
$('#content table tbody').last().after(tr);
+
+ tr.find('select.quota option').attr('selected',null);
+ tr.find('select.quota option').first().attr('selected','selected');
+ tr.find('select.quota').data('previous','default');
});
});
diff --git a/settings/templates/users.php b/settings/templates/users.php
index bcc4d65fe43..a23a5bafe61 100644
--- a/settings/templates/users.php
+++ b/settings/templates/users.php
@@ -12,16 +12,30 @@ foreach($_["groups"] as $group) {
<div id="controls">
<form id="newuser">
- <th class="name"><input id="newusername" placeholder="<?php echo $l->t('Name')?>" /></th>
- <th class="password"><input type="password" id="newuserpassword" placeholder="<?php echo $l->t('Password')?>" /></th>
- <th class="groups"><select id="newusergroups" data-placeholder="groups" title="<?php echo $l->t('Groups')?>" multiple="multiple">
+ <input id="newusername" placeholder="<?php echo $l->t('Name')?>" />
+ <input type="password" id="newuserpassword" placeholder="<?php echo $l->t('Password')?>" />
+ <select id="newusergroups" data-placeholder="groups" title="<?php echo $l->t('Groups')?>" multiple="multiple">
<?php foreach($_["groups"] as $group): ?>
<option value="<?php echo $group['name'];?>"><?php echo $group['name'];?></option>
<?php endforeach;?>
- </select></th>
- <th class="quota"></th>
- <th><input type="submit" value="<?php echo $l->t('Create')?>" /></th>
+ </select>
+ <input type="submit" value="<?php echo $l->t('Create')?>" />
</form>
+ <div class="quota">
+ <span><?php echo $l->t('Default Quota');?>:</span>
+ <select class='quota'>
+ <?php foreach($_['quota_preset'] as $preset):?>
+ <?php if($preset!='default'):?>
+ <option <?php if($_['default_quota']==$preset) echo 'selected="selected"';?> value='<?php echo $preset;?>'><?php echo $preset;?></option>
+ <?php endif;?>
+ <?php endforeach;?>
+ <?php if(array_search($_['default_quota'],$_['quota_preset'])===false):?>
+ <option selected="selected" value='<?php echo $_['default_quota'];?>'><?php echo $_['default_quota'];?></option>
+ <?php endif;?>
+ <option value='other'><?php echo $l->t('Other');?>...</option>
+ </select>
+ <input class='quota-other'></input>
+ </div>
</div>
<table data-groups="<?php echo implode(', ',$allGroups);?>">
@@ -49,9 +63,17 @@ foreach($_["groups"] as $group) {
<?php endforeach;?>
</select>
</td>
- <td class="quota" data-quota="<?php echo $user['quota']?>">
- <span><?php echo ($user['quota']>0)?$user['quota']:'None';?></span>
- <img class="svg action" src="<?php echo image_path('core','actions/rename.svg')?>" alt="set new password" title="set quota" />
+ <td class="quota">
+ <select class='quota'>
+ <?php foreach($_['quota_preset'] as $preset):?>
+ <option <?php if($user['quota']==$preset) echo 'selected="selected"';?> value='<?php echo $preset;?>'><?php echo $preset;?></option>
+ <?php endforeach;?>
+ <?php if(array_search($user['quota'],$_['quota_preset'])===false):?>
+ <option selected="selected" value='<?php echo $user['quota'];?>'><?php echo $user['quota'];?></option>
+ <?php endif;?>
+ <option value='other'><?php echo $l->t('Other');?>...</option>
+ </select>
+ <input class='quota-other'></input>
</td>
<td class="remove">
<?php if($user['name']!=OC_User::getUser()):?>
diff --git a/settings/users.php b/settings/users.php
index e5dcc049481..96515a90ce4 100644
--- a/settings/users.php
+++ b/settings/users.php
@@ -18,17 +18,26 @@ $users = array();
$groups = array();
foreach( OC_User::getUsers() as $i ){
- $users[] = array( "name" => $i, "groups" => join( ", ", OC_Group::getUserGroups( $i ) ),'quota'=>OC_Preferences::getValue($i,'files','quota',0));
+ $users[] = array( "name" => $i, "groups" => join( ", ", OC_Group::getUserGroups( $i ) ),'quota'=>OC_Preferences::getValue($i,'files','quota','default'));
}
foreach( OC_Group::getGroups() as $i ){
// Do some more work here soon
$groups[] = array( "name" => $i );
}
+$quotaPreset=OC_Appconfig::getValue('files','quota_preset','default,none,1 GB, 5 GB, 10 GB');
+$quotaPreset=explode(',',$quotaPreset);
+foreach($quotaPreset as &$preset){
+ $preset=trim($preset);
+}
+
+$defaultQuota=OC_Appconfig::getValue('files','default_quota','none');
$tmpl = new OC_Template( "settings", "users", "user" );
$tmpl->assign( "users", $users );
$tmpl->assign( "groups", $groups );
+$tmpl->assign( 'quota_preset', $quotaPreset);
+$tmpl->assign( 'default_quota', $defaultQuota);
$tmpl->printPage();
?>